mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-10-15 17:47:00 +02:00
[svn r112] Fixed 'case 1,2,3:' style case statements.
Fixed a bunch of bugs with return/break/continue in loops. Fixed support for the DMDFE hidden implicit return value variable. This can be needed for some foreach statements where the loop body is converted to a nested delegate, but also possibly returns from the function. Added std.math to phobos. Added AA runtime support code, done ground work for implementing AAs. Several other bugfixes.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
module aa1;
|
||||
|
||||
void main()
|
||||
{
|
||||
int[int] aai;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
module bug70;
|
||||
|
||||
void main()
|
||||
{
|
||||
for (;false;)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
module bug71;
|
||||
|
||||
void main()
|
||||
{
|
||||
static TypeInfo skipCI(TypeInfo valti)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (valti.classinfo.name.length == 18 &&
|
||||
valti.classinfo.name[9..18] == "Invariant")
|
||||
valti = (cast(TypeInfo_Invariant)valti).next;
|
||||
else if (valti.classinfo.name.length == 14 &&
|
||||
valti.classinfo.name[9..14] == "Const")
|
||||
valti = (cast(TypeInfo_Const)valti).next;
|
||||
else
|
||||
break;
|
||||
}
|
||||
return valti;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
module bug72;
|
||||
|
||||
void main()
|
||||
{
|
||||
char c = void;
|
||||
int i = void;
|
||||
c += i;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
int find(char[] s, dchar c)
|
||||
{
|
||||
// c is a universal character
|
||||
foreach (int i, dchar c2; s)
|
||||
{
|
||||
if (c == c2)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
module switch2;
|
||||
|
||||
void main()
|
||||
{
|
||||
int i = 2;
|
||||
switch(i)
|
||||
{
|
||||
case 0: assert(0);
|
||||
case 1,2: printf("hello world\n"); break;
|
||||
default: assert(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user