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%2Fsource%2FTextualModuleSource.java;h=9a6f4c97fb07c33689e21885a1a641d4bdcadf01;hp=f4e9c7de048cc6347c1c685a60a4777a1aaaf107;hb=c26409b1caf2f1e560d37c5befd11b442399c3fe;hpb=1b4d8b692f40d946deb5db8280eb4ca5b36a75a7 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java index f4e9c7de0..9a6f4c97f 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java @@ -11,6 +11,7 @@ import org.simantics.scl.compiler.errors.Failable; import org.simantics.scl.compiler.errors.Failure; import org.simantics.scl.compiler.errors.Success; import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidator; +import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidatorFactory; import org.simantics.scl.compiler.internal.codegen.types.RuntimeJavaReferenceValidator; import org.simantics.scl.compiler.module.ImportDeclaration; import org.simantics.scl.compiler.module.Module; @@ -80,7 +81,7 @@ public abstract class TextualModuleSource implements ModuleSource { @SuppressWarnings("unchecked") @Override public Failable compileModule(final ModuleRepository environment, final UpdateListener listener, ModuleCompilationOptions options) { - SCLCompiler compiler = new SCLCompiler(options); + SCLCompiler compiler = new SCLCompiler(options, getJavaReferenceValidatorFactory()); try { compiler.addSource(getSourceReader(listener)); compiler.compile( @@ -88,9 +89,8 @@ public abstract class TextualModuleSource implements ModuleSource { environment, getBuiltinImports(listener), listener), - moduleName, - getJavaReferenceValidator()); - if(compiler.getErrorLog().isEmpty()) + moduleName); + if(compiler.getErrorLog().hasNoErrors()) return new Success(compiler.getModule()); else { LOGGER.error("While compiling " + getModuleName() + ":"); @@ -102,6 +102,21 @@ public abstract class TextualModuleSource implements ModuleSource { } } + public JavaReferenceValidatorFactory getJavaReferenceValidatorFactory() { + return new JavaReferenceValidatorFactory() { + + @Override + public JavaReferenceValidator getJavaReferenceValidator(String context) { + return (JavaReferenceValidator)TextualModuleSource.this.getJavaReferenceValidator(); + } + + @Override + public JavaReferenceValidator getDefaultJavaReferenceValidator() { + return (JavaReferenceValidator)TextualModuleSource.this.getJavaReferenceValidator(); + } + }; + } + @Override public double getPriority() { return priority;