diff --git a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala index 5789daa9bd48..577d4126ad07 100644 --- a/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala +++ b/engine/runtime-instrument-common/src/main/scala/org/enso/interpreter/instrument/job/EnsureCompiledJob.scala @@ -99,19 +99,31 @@ final class EnsureCompiledJob( ctx: RuntimeContext, logger: TruffleLogger ): Option[CompilationStatus] = { - compile(module) - applyEdits(new File(module.getPath)).map { changeset => - compile(module) - .map { _ => - invalidateCaches(module, changeset) - if (module.isIndexed) { - ctx.jobProcessor.runBackground(AnalyzeModuleJob(module, changeset)) - } else { - AnalyzeModuleJob.analyzeModule(module, changeset) - } - runCompilationDiagnostics(module) + val result = compile(module) + result match { + case Left(ex) => + logger.log( + Level.WARNING, + s"Error while ensureCompiledModule ${module.getName}", + ex + ) + Some(CompilationStatus.Failure) + case _ => + applyEdits(new File(module.getPath)).map { changeset => + compile(module) + .map { _ => + invalidateCaches(module, changeset) + if (module.isIndexed) { + ctx.jobProcessor.runBackground( + AnalyzeModuleJob(module, changeset) + ) + } else { + AnalyzeModuleJob.analyzeModule(module, changeset) + } + runCompilationDiagnostics(module) + } + .getOrElse(CompilationStatus.Failure) } - .getOrElse(CompilationStatus.Failure) } } diff --git a/engine/runtime/src/main/java/org/enso/compiler/PackageRepositoryUtils.java b/engine/runtime/src/main/java/org/enso/compiler/PackageRepositoryUtils.java index 877d782bfdc9..38ec718eb5cc 100644 --- a/engine/runtime/src/main/java/org/enso/compiler/PackageRepositoryUtils.java +++ b/engine/runtime/src/main/java/org/enso/compiler/PackageRepositoryUtils.java @@ -3,7 +3,6 @@ import com.oracle.truffle.api.TruffleFile; import java.util.Optional; import java.util.stream.StreamSupport; -import org.enso.interpreter.util.ScalaConversions; import org.enso.pkg.Package; import org.enso.pkg.QualifiedName; @@ -20,7 +19,8 @@ private PackageRepositoryUtils() {} */ public static Optional getModuleNameForFile( PackageRepository packageRepository, TruffleFile file) { - return ScalaConversions.asJava(packageRepository.getLoadedPackages()).stream() + return scala.jdk.javaapi.CollectionConverters.asJava(packageRepository.getLoadedPackages()) + .stream() .filter(pkg -> file.startsWith(pkg.sourceDir())) .map(pkg -> pkg.moduleNameForFile(file)) .findFirst(); diff --git a/engine/runtime/src/main/java/org/enso/compiler/context/CompilerContext.java b/engine/runtime/src/main/java/org/enso/compiler/context/CompilerContext.java index 24fafdc5e603..6ad07e3db611 100644 --- a/engine/runtime/src/main/java/org/enso/compiler/context/CompilerContext.java +++ b/engine/runtime/src/main/java/org/enso/compiler/context/CompilerContext.java @@ -119,8 +119,6 @@ public abstract static class Module { public abstract Package getPackage(); - public abstract boolean isSameAs(org.enso.interpreter.runtime.Module m); - public abstract QualifiedName getName(); public abstract BindingsMap getBindingsMap(); diff --git a/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/ExportSymbolAnalysis.java b/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/ExportSymbolAnalysis.java index b99998d56633..dbee20a15782 100644 --- a/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/ExportSymbolAnalysis.java +++ b/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/ExportSymbolAnalysis.java @@ -12,7 +12,6 @@ import org.enso.compiler.core.ir.module.scope.Export; import org.enso.compiler.data.BindingsMap; import org.enso.compiler.pass.IRPass; -import org.enso.interpreter.util.ScalaConversions; import scala.collection.immutable.Seq; import scala.jdk.javaapi.CollectionConverters; @@ -49,8 +48,10 @@ public Seq precursorPasses() { } @Override + @SuppressWarnings("unchecked") public Seq invalidatedPasses() { - return ScalaConversions.nil(); + Object obj = scala.collection.immutable.Nil$.MODULE$; + return (scala.collection.immutable.List) obj; } @Override diff --git a/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/PrivateModuleAnalysis.java b/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/PrivateModuleAnalysis.java index 98c27baaab21..6e5ecbeade71 100644 --- a/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/PrivateModuleAnalysis.java +++ b/engine/runtime/src/main/java/org/enso/compiler/pass/analyse/PrivateModuleAnalysis.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.UUID; import org.enso.compiler.context.InlineContext; import org.enso.compiler.context.ModuleContext; @@ -14,7 +13,6 @@ import org.enso.compiler.core.ir.module.scope.Import; import org.enso.compiler.data.BindingsMap; import org.enso.compiler.pass.IRPass; -import org.enso.interpreter.util.ScalaConversions; import org.enso.pkg.QualifiedName; import scala.Option; import scala.collection.immutable.Seq; @@ -55,8 +53,10 @@ public Seq precursorPasses() { } @Override + @SuppressWarnings("unchecked") public Seq invalidatedPasses() { - return ScalaConversions.nil(); + Object obj = scala.collection.immutable.Nil$.MODULE$; + return (scala.collection.immutable.List) obj; } @Override diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/TruffleCompilerContext.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/TruffleCompilerContext.java index 32572b649582..2ed8376e8cd0 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/TruffleCompilerContext.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/TruffleCompilerContext.java @@ -330,7 +330,7 @@ public void invalidateCache() { public void close() { if (map != null) { if (module.bindings != null) { - throw new IllegalStateException("Reassigining bindings to " + module); + loggerCompiler.log(Level.FINE, "Reassigining bindings to {0}", module); } module.bindings = map; } @@ -384,11 +384,6 @@ final org.enso.interpreter.runtime.Module unsafeModule() { return module; } - @Override - public boolean isSameAs(org.enso.interpreter.runtime.Module m) { - return module == m; - } - @Override public QualifiedName getName() { return module.getName(); diff --git a/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala b/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala index b7c3a2f9fe99..ed27f4ca48d7 100644 --- a/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala +++ b/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala @@ -907,7 +907,7 @@ class IrToTruffle( if ( resolution.isInstanceOf[ResolvedConstructor] || !resolution.module .unsafeAsModule() - .isSameAs(moduleScope.getModule) + .equals(moduleScope.getModule.asCompilerModule) ) { resolution match { case BindingsMap.ResolvedType(module, tp) =>