compiler/libec: (#1072) Fixed error conditions
authorJerome St-Louis <jerome@ecere.com>
Tue, 1 Apr 2014 20:58:01 +0000 (16:58 -0400)
committerJerome St-Louis <jerome@ecere.com>
Tue, 1 Apr 2014 20:58:01 +0000 (16:58 -0400)
compiler/bootstrap/libec/bootstrap/pass0.c
compiler/libec/src/pass0.ec

index caa4ccb..7a6f8cc 100644 (file)
@@ -2244,7 +2244,7 @@ if((regClass->type == 1 || regClass->type == 6) || ((regClass->type == 5 || regC
 ListAdd(specifiers, MkSpecifier(VOID));
 else
 {
-if(regClass->type != 5 && regClass->type != 0)
+if(regClass->type != 5 && regClass->type != 0 && (!propertyDef->symbol->_property || !propertyDef->symbol->_property->conversion))
 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "set defined on type without storage for non-conversion property\n", (((void *)0))));
 ListAdd(specifiers, MkSpecifierName(regClass->fullName));
 }
index 212a228..4fc5f22 100644 (file)
@@ -1205,7 +1205,7 @@ static void ProcessClass(ClassType classType, OldList definitions, Symbol symbol
                         ListAdd(specifiers, MkSpecifier(VOID));
                      else
                      {
-                        if(regClass.type != noHeadClass && regClass.type != normalClass)
+                        if(regClass.type != noHeadClass && regClass.type != normalClass && (!propertyDef.symbol._property || !propertyDef.symbol._property.conversion))
                            Compiler_Error($"set defined on type without storage for non-conversion property\n");
                         ListAdd(specifiers, MkSpecifierName(regClass.fullName));
                      }