compiler/libec: Correction to the previous fix to handle 1 bad warning left
authorJerome St-Louis <jerome@ecere.com>
Sun, 10 Mar 2013 07:58:15 +0000 (03:58 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sun, 10 Mar 2013 07:58:15 +0000 (03:58 -0400)
compiler/bootstrap/libec/bootstrap/pass15.c
compiler/libec/locale/ec.pot
compiler/libec/src/pass15.ec

index ac8bd88..d6dfb65 100644 (file)
@@ -5214,7 +5214,6 @@ if(source->kind != 8)
 {
 struct Type * tempType = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
 struct Type * tempDest, * tempSource;
-unsigned int result = 0x1;
 
 for(; _class->base->type != 1000; _class = _class->base)
 ;
@@ -5226,10 +5225,7 @@ _class->symbol = FindClass(_class->fullName);
 tempType->_class = _class->symbol;
 tempType->truth = dest->truth;
 if(tempType->_class)
-result = MatchTypes(tempSource, tempDest, conversions, (((void *)0)), (((void *)0)), 0x1, 0x1, 0x0, 0x0);
-if(result)
-FreeType(sourceExp->expType);
-else
+MatchTypes(tempSource, tempDest, conversions, (((void *)0)), (((void *)0)), 0x1, 0x1, 0x0, 0x0);
 backupSourceExpType = sourceExp->expType;
 sourceExp->expType = dest;
 dest->refCount++;
index 4799a41..37aff8b 100644 (file)
@@ -299,13 +299,13 @@ msgid "redefinition of destructor for class %s\n"
 msgstr "redefinition of destructor for class %s\n"
 
 #: ./src/ecdefs.ec:1322
-#: ./src/grammar.ec:3147
-#: ./src/grammar.ec:3148
-#: ./src/grammar.ec:3149
-#: ./src/grammar.ec:3150
-#: ./src/grammar.ec:3151
-#: ./src/grammar.ec:3152
-#: ./src/grammar.ec:3153
+#: ./src/grammar.ec:3128
+#: ./src/grammar.ec:3129
+#: ./src/grammar.ec:3130
+#: ./src/grammar.ec:3131
+#: ./src/grammar.ec:3132
+#: ./src/grammar.ec:3133
+#: ./src/grammar.ec:3134
 msgid "syntax error\n"
 msgstr "syntax error\n"
 
index dd8b708..9745582 100644 (file)
@@ -3501,7 +3501,6 @@ bool MatchTypeExpression(Expression sourceExp, Type dest, OldList conversions, b
             {
                Type tempType { };
                Type tempDest, tempSource;
-               bool result = true;
 
                for(; _class.base.type != systemClass; _class = _class.base);
                tempSource = dest;
@@ -3514,15 +3513,10 @@ bool MatchTypeExpression(Expression sourceExp, Type dest, OldList conversions, b
                tempType._class = _class.symbol;
                tempType.truth = dest.truth;
                if(tempType._class)
-                  result = MatchTypes(tempSource, tempDest, conversions, null, null, true, true, false, false);
+                  MatchTypes(tempSource, tempDest, conversions, null, null, true, true, false, false);
 
-               // NOTE: To handle bad warnings on int64 vs 32 bit Id incompatibilities
-               // I was not sure whether only setting expType when result is true would cause problems
-               // where this new expression type gets converted by the checks below, so I opted for a 'revert' solution
-               if(result)
-                  FreeType(sourceExp.expType);
-               else
-                  backupSourceExpType = sourceExp.expType;
+               // NOTE: To handle bad warnings on int64 vs 32 bit eda::Id incompatibilities
+               backupSourceExpType = sourceExp.expType;
                sourceExp.expType = dest; dest.refCount++;
                //sourceExp.expType = MkClassType(_class.fullName);
                flag = true;