Mercurial > projects > ldc
comparison dmd/declaration.c @ 139:0ab29b838084 trunk
[svn r143] Fixed: a few bugs in debug information, still only line info, but should be correct files now :)
Fixed: tango.io.Console seems to be working now.
author | lindquist |
---|---|
date | Tue, 22 Jan 2008 00:01:16 +0100 |
parents | 0e28624814e8 |
children | ccd07d9f2ce9 |
comparison
equal
deleted
inserted
replaced
138:aeddd4d533b3 | 139:0ab29b838084 |
---|---|
1097 */ | 1097 */ |
1098 | 1098 |
1099 Expression *VarDeclaration::callAutoDtor() | 1099 Expression *VarDeclaration::callAutoDtor() |
1100 { Expression *e = NULL; | 1100 { Expression *e = NULL; |
1101 | 1101 |
1102 //printf("VarDeclaration::callAutoDtor() %s\n", toChars()); | |
1102 if (storage_class & (STCauto | STCscope) && !noauto) | 1103 if (storage_class & (STCauto | STCscope) && !noauto) |
1103 { | 1104 { |
1104 for (ClassDeclaration *cd = type->isClassHandle(); | 1105 for (ClassDeclaration *cd = type->isClassHandle(); |
1105 cd; | 1106 cd; |
1106 cd = cd->baseClass) | 1107 cd = cd->baseClass) |
1107 { | 1108 { |
1108 /* We can do better if there's a way with onstack | 1109 /* We can do better if there's a way with onstack |
1109 * classes to determine if there's no way the monitor | 1110 * classes to determine if there's no way the monitor |
1110 * could be set. | 1111 * could be set. |
1111 */ | 1112 */ |
1113 if (cd->isInterfaceDeclaration()) | |
1114 error("interface %s cannot be scope", cd->toChars()); | |
1112 if (1 || onstack || cd->dtors.dim) // if any destructors | 1115 if (1 || onstack || cd->dtors.dim) // if any destructors |
1113 { | 1116 { |
1114 // delete this; | 1117 // delete this; |
1115 Expression *ec; | 1118 Expression *ec; |
1116 | 1119 |