diff --git a/mtags/src/main/scala-3/scala/meta/internal/mtags/MtagsEnrichments.scala b/mtags/src/main/scala-3/scala/meta/internal/mtags/MtagsEnrichments.scala index 740e67b10a1..b3492f77d53 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/mtags/MtagsEnrichments.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/mtags/MtagsEnrichments.scala @@ -53,12 +53,15 @@ object MtagsEnrichments extends ScalametaCommonEnrichments: new SourcePosition(source, span) end sourcePosition - def localContext(params: OffsetParams): Context = - if driver.currentCtx.run.units.isEmpty then + def latestRun = + if driver.currentCtx.run.units.nonEmpty then + driver.currentCtx.run.units.head + else throw new RuntimeException( - "No source files were passed to the Scala 3 presentation compiler" + "No source files were compiled. Might be an error in the compiler itself." ) - val unit = driver.currentCtx.run.units.head + def localContext(params: OffsetParams): Context = + val unit = driver.latestRun val pos = driver.sourcePosition(params) val newctx = driver.currentCtx.fresh.setCompilationUnit(unit) val tpdPath = diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/AutoImportsProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/AutoImportsProvider.scala index 5aafdfa524a..cf27a1275cd 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/AutoImportsProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/AutoImportsProvider.scala @@ -34,7 +34,7 @@ final class AutoImportsProvider( uri, SourceFile.virtual(filePath.toString, params.text), ) - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val tree = unit.tpdTree val pos = driver.sourcePosition(params) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/ConvertToNamedArgumentsProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/ConvertToNamedArgumentsProvider.scala index ebb43daf1f9..68a761613ad 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/ConvertToNamedArgumentsProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/ConvertToNamedArgumentsProvider.scala @@ -27,7 +27,7 @@ final class ConvertToNamedArgumentsProvider( uri, SourceFile.virtual(filePath.toString, params.text), ) - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val newctx = driver.currentCtx.fresh.setCompilationUnit(unit) val pos = driver.sourcePosition(params) val trees = driver.openedTrees(uri) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/ExtractMethodProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/ExtractMethodProvider.scala index 04ea0bdfaf0..3aa9d6edf06 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/ExtractMethodProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/ExtractMethodProvider.scala @@ -42,7 +42,7 @@ final class ExtractMethodProvider( val filePath = Paths.get(uri) val source = SourceFile.virtual(filePath.toString, text) driver.run(uri, source) - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val pos = driver.sourcePosition(range).startPos val path = Interactive.pathTo(driver.openedTrees(uri), pos)(using driver.currentCtx) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/InferredTypeProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/InferredTypeProvider.scala index 9ee85b9a0e6..12757cc903b 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/InferredTypeProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/InferredTypeProvider.scala @@ -69,7 +69,7 @@ final class InferredTypeProvider( val source = SourceFile.virtual(filePath.toString, sourceText) driver.run(uri, source) - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val pos = driver.sourcePosition(params) val path = Interactive.pathTo(driver.openedTrees(uri), pos)(using driver.currentCtx) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/PcCollector.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/PcCollector.scala index d3e286e8293..98af2da1306 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/PcCollector.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/PcCollector.scala @@ -44,7 +44,7 @@ abstract class PcCollector[T]( driver.run(uri, source) given ctx: Context = driver.currentCtx - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val compilatonUnitContext = ctx.fresh.setCompilationUnit(unit) val offset = params match case op: OffsetParams => op.offset() diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/PcInlayHintsProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/PcInlayHintsProvider.scala index 93354e9712b..4d398274c67 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/PcInlayHintsProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/PcInlayHintsProvider.scala @@ -39,7 +39,7 @@ class PcInlayHintsProvider( SourceFile.virtual(filePath.toString, sourceText) driver.run(uri, source) given ctx: Context = driver.currentCtx - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun given InferredType.Text = InferredType.Text(text) val pos = driver.sourcePosition(params) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/SemanticdbTextDocumentProvider.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/SemanticdbTextDocumentProvider.scala index 28a5e27a484..76417b120a7 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/SemanticdbTextDocumentProvider.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/SemanticdbTextDocumentProvider.scala @@ -8,6 +8,7 @@ import java.nio.file.Paths import scala.util.Properties import scala.meta.internal.mtags.MD5 +import scala.meta.internal.mtags.MtagsEnrichments.* import dotty.tools.dotc.interactive.InteractiveDriver import dotty.tools.dotc.semanticdb.ExtractSemanticDB @@ -32,7 +33,7 @@ class SemanticdbTextDocumentProvider( uri, SourceFile.virtual(filePath.toString, validCode), ) - val tree = driver.currentCtx.run.units.head.tpdTree + val tree = driver.latestRun.tpdTree val extract = ExtractSemanticDB() val extractor = extract.Extractor() extractor.traverse(tree)(using driver.currentCtx) diff --git a/mtags/src/main/scala-3/scala/meta/internal/pc/completions/OverrideCompletions.scala b/mtags/src/main/scala-3/scala/meta/internal/pc/completions/OverrideCompletions.scala index cfb29cf9ce6..5f7e661ace8 100644 --- a/mtags/src/main/scala-3/scala/meta/internal/pc/completions/OverrideCompletions.scala +++ b/mtags/src/main/scala-3/scala/meta/internal/pc/completions/OverrideCompletions.scala @@ -177,7 +177,7 @@ object OverrideCompletions: uri, SourceFile.virtual(uri.toASCIIString, params.text), ) - val unit = driver.currentCtx.run.units.head + val unit = driver.latestRun val pos = driver.sourcePosition(params) val newctx = driver.currentCtx.fresh.setCompilationUnit(unit)