]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java
Merge "Re-enabled Acorn transaction cancellation support for testing"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / NameExistenceChecks.java
index 8204b5f604bea380e30625f97d8d77af70ebf47a..090f200c437a7ff4049fb5d79127ddc5795d3df6 100644 (file)
@@ -1,37 +1,42 @@
 package org.simantics.scl.compiler.compilation;\r
 \r
 import org.simantics.scl.compiler.elaboration.modules.SCLValue;\r
-import org.simantics.scl.compiler.elaboration.modules.TypeConstructor;\r
+import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor;\r
 import org.simantics.scl.compiler.environment.AmbiguousNameException;\r
 import org.simantics.scl.compiler.environment.Environment;\r
 import org.simantics.scl.compiler.errors.ErrorLog;\r
+import org.simantics.scl.compiler.top.SCLCompilerConfiguration;\r
 \r
 public class NameExistenceChecks {\r
     public static void checkIfValueExists(ErrorLog errorLog, long location,\r
             Environment environment, String name) {\r
-        try {\r
-            SCLValue value = environment.getLocalNamespace().getValue(name);\r
-            if(value != null)\r
+        if(SCLCompilerConfiguration.ALLOW_OVERLOADING)\r
+            return;\r
+        else {\r
+            try {\r
+                SCLValue value = environment.getLocalNamespace().getValue(name);\r
+                if(value != null)\r
+                    errorLog.log(location,\r
+                            "Value " + name + " is already defined in the module " + \r
+                                    value.getName().module + \r
+                            " that is imported to the default namespace.");\r
+            } catch(AmbiguousNameException e) {\r
                 errorLog.log(location,\r
-                        "Value " + name + " is already defined in the module " + \r
-                                value.getName().module + \r
-                        " that is imported to the default namespace.");\r
-        } catch(AmbiguousNameException e) {\r
-            errorLog.log(location,\r
-                    "Value " + name + " is already defined in the modules " + \r
-                            e.conflictingModules[0] + " and  " + e.conflictingModules[1] +  \r
-                    " that are imported to the default namespace.");\r
+                        "Value " + name + " is already defined in the modules " + \r
+                                e.conflictingModules[0] + " and  " + e.conflictingModules[1] +  \r
+                        " that are imported to the default namespace.");\r
+            }\r
         }\r
     }\r
     \r
     public static void checkIfTypeExists(ErrorLog errorLog, long location,\r
             Environment environment, String name) {\r
         try {\r
-            TypeConstructor value = environment.getLocalNamespace().getTypeConstructor(name);\r
-            if(value != null)\r
+            TypeDescriptor tdesc = environment.getLocalNamespace().getTypeDescriptor(name);\r
+            if(tdesc != null)\r
                 errorLog.log(location,\r
                         "Type " + name + " is already defined in the module " + \r
-                                value.name.module + \r
+                                tdesc.name.module + \r
                         " that is imported to the default namespace.");\r
         } catch(AmbiguousNameException e) {\r
             errorLog.log(location,\r