X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fcompilation%2FNameExistenceChecks.java;h=d21e215f6ac0e156d4135e93ded5e58eeeb9539e;hp=1f45c5f41a9d88c8345686e70fcd8b4834dd37ff;hb=c26409b1caf2f1e560d37c5befd11b442399c3fe;hpb=3303fe4a3b363e88662ac75a4f7e873ddb3ab352 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java index 1f45c5f41..d21e215f6 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/NameExistenceChecks.java @@ -1,48 +1,48 @@ -package org.simantics.scl.compiler.compilation; - -import org.simantics.scl.compiler.elaboration.modules.SCLValue; -import org.simantics.scl.compiler.elaboration.modules.TypeConstructor; -import org.simantics.scl.compiler.environment.AmbiguousNameException; -import org.simantics.scl.compiler.environment.Environment; -import org.simantics.scl.compiler.errors.ErrorLog; -import org.simantics.scl.compiler.top.SCLCompilerConfiguration; - -public class NameExistenceChecks { - public static void checkIfValueExists(ErrorLog errorLog, long location, - Environment environment, String name) { - if(SCLCompilerConfiguration.ALLOW_OVERLOADING) - return; - else { - try { - SCLValue value = environment.getLocalNamespace().getValue(name); - if(value != null) - errorLog.log(location, - "Value " + name + " is already defined in the module " + - value.getName().module + - " that is imported to the default namespace."); - } catch(AmbiguousNameException e) { - errorLog.log(location, - "Value " + name + " is already defined in the modules " + - e.conflictingModules[0] + " and " + e.conflictingModules[1] + - " that are imported to the default namespace."); - } - } - } - - public static void checkIfTypeExists(ErrorLog errorLog, long location, - Environment environment, String name) { - try { - TypeConstructor value = environment.getLocalNamespace().getTypeConstructor(name); - if(value != null) - errorLog.log(location, - "Type " + name + " is already defined in the module " + - value.name.module + - " that is imported to the default namespace."); - } catch(AmbiguousNameException e) { - errorLog.log(location, - "Type " + name + " is already defined in the modules " + - e.conflictingModules[0] + " and " + e.conflictingModules[1] + - " that are imported to the default namespace."); - } - } -} +package org.simantics.scl.compiler.compilation; + +import org.simantics.scl.compiler.elaboration.modules.SCLValue; +import org.simantics.scl.compiler.elaboration.modules.TypeDescriptor; +import org.simantics.scl.compiler.environment.AmbiguousNameException; +import org.simantics.scl.compiler.environment.Environment; +import org.simantics.scl.compiler.errors.ErrorLog; +import org.simantics.scl.compiler.top.SCLCompilerConfiguration; + +public class NameExistenceChecks { + public static void checkIfValueExists(ErrorLog errorLog, long location, + Environment environment, String name) { + if(SCLCompilerConfiguration.ALLOW_OVERLOADING) + return; + else { + try { + SCLValue value = environment.getLocalNamespace().getValue(name); + if(value != null) + errorLog.log(location, + "Value " + name + " is already defined in the module " + + value.getName().module + + " that is imported to the default namespace."); + } catch(AmbiguousNameException e) { + errorLog.log(location, + "Value " + name + " is already defined in the modules " + + e.conflictingModules[0] + " and " + e.conflictingModules[1] + + " that are imported to the default namespace."); + } + } + } + + public static void checkIfTypeExists(ErrorLog errorLog, long location, + Environment environment, String name) { + try { + TypeDescriptor tdesc = environment.getLocalNamespace().getTypeDescriptor(name); + if(tdesc != null) + errorLog.log(location, + "Type " + name + " is already defined in the module " + + tdesc.name.module + + " that is imported to the default namespace."); + } catch(AmbiguousNameException e) { + errorLog.log(location, + "Type " + name + " is already defined in the modules " + + e.conflictingModules[0] + " and " + e.conflictingModules[1] + + " that are imported to the default namespace."); + } + } +}