X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2Frepository%2FModuleRepository.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2Frepository%2FModuleRepository.java;h=7c3de572f78456db563a65011d64953a26cb546b;hb=bb8e054f744ea6a627ac9f2e3cc49c08719bed90;hp=089f2c26c95469e639176ed9f50136b91a9c46c7;hpb=1ee8004c71eaa9818fe1a49e16d0463adbf559f6;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java index 089f2c26c..7c3de572f 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java @@ -20,6 +20,7 @@ import org.simantics.scl.compiler.errors.CompilationError; import org.simantics.scl.compiler.errors.DoesNotExist; import org.simantics.scl.compiler.errors.Failable; import org.simantics.scl.compiler.errors.Failure; +import org.simantics.scl.compiler.errors.Locations; import org.simantics.scl.compiler.errors.Success; import org.simantics.scl.compiler.module.ImportDeclaration; import org.simantics.scl.compiler.module.Module; @@ -37,6 +38,7 @@ import org.simantics.scl.compiler.top.ValueNotFound; import org.simantics.scl.compiler.types.Types; import gnu.trove.map.hash.THashMap; +import gnu.trove.map.hash.TObjectLongHashMap; import gnu.trove.procedure.TObjectObjectProcedure; import gnu.trove.set.hash.THashSet; @@ -261,11 +263,11 @@ public class ModuleRepository { THashMap result = new THashMap(); Collection failures = null; - THashSet originalImports = new THashSet(); + TObjectLongHashMap originalImports = new TObjectLongHashMap(); ArrayList stack = new ArrayList(imports.length); for(ImportDeclaration import_ : imports) { stack.add(import_); - originalImports.add(import_.moduleName); + originalImports.put(import_.moduleName, import_.location); } while(!stack.isEmpty()) { ImportDeclaration import_ = stack.remove(stack.size()-1); @@ -278,8 +280,10 @@ public class ModuleRepository { stack.addAll(compilationResult.getResult().getDependencies()); if(originalImport) { String deprecation = compilationResult.getResult().getDeprecation(); - if(deprecation != null && compilationContext != null) - compilationContext.errorLog.logWarning(import_.location, "Deprecated module " + import_.moduleName + (deprecation.isEmpty() ? "." : ": " + deprecation)); + if(deprecation != null && compilationContext != null) { + long location = originalImport ? originalImports.get(import_.moduleName) : Locations.NO_LOCATION; + compilationContext.errorLog.logWarning(location, "Deprecated module " + import_.moduleName + (deprecation.isEmpty() ? "." : ": " + deprecation)); + } } } else {