scalameta / metals-vscode

Visual Studio Code extension for Metals
https://marketplace.visualstudio.com/items?itemName=scalameta.metals#overview
Apache License 2.0
299 stars 76 forks source link

Fresh worksheet does not work: `java.lang.NoClassDefFoundError: Could not initialize class dotty.tools.dotc.NoCompilationUnit$` #1478

Closed Sporarum closed 6 months ago

Sporarum commented 6 months ago

Describe the bug

When creating a worksheet, nothing happens on save. By checking the metals log, we can see that the error is: java.lang.NoClassDefFoundError: Could not initialize class dotty.tools.dotc.NoCompilationUnit$ (Full log below)

To Reproduce

  1. Create the scala/scala3.g8 project using metals
  2. Open the Main.scala
  3. Open the command palette
  4. Select Metals: Create Worksheet
  5. Write 1 + 1 in the worksheet
  6. Nothing happens
Stack Trace ``` ERROR worksheet: D:\Projects\scala3\src\main\scala\scala.worksheet.sc java.lang.NoClassDefFoundError: Could not initialize class dotty.tools.dotc.NoCompilationUnit$ at dotty.tools.dotc.core.Contexts$FreshContext$.initial(Contexts.scala:749) at dotty.tools.dotc.core.Contexts$ContextBase.(Contexts.scala:868) at dotty.tools.dotc.Driver.initCtx(Driver.scala:61) at mdoc.internal.markdown.MarkdownDriver.(MarkdownCompiler.scala:56) at mdoc.internal.markdown.MarkdownCompiler.newContext(MarkdownCompiler.scala:87) at mdoc.internal.markdown.MarkdownCompiler.(MarkdownCompiler.scala:99) at mdoc.internal.markdown.MarkdownBuilder$.fromClasspath(MarkdownBuilder.scala:99) at mdoc.internal.cli.Context$.fromOptions(Context.scala:90) at mdoc.internal.worksheets.Mdoc.context(Mdoc.scala:68) at mdoc.internal.worksheets.Mdoc.evaluateWorksheet(Mdoc.scala:54) at scala.meta.internal.worksheets.WorksheetProvider.scala$meta$internal$worksheets$WorksheetProvider$$evaluateWorksheet(WorksheetProvider.scala:361) at scala.meta.internal.worksheets.WorksheetProvider$$anon$1.liftedTree1$1(WorksheetProvider.scala:262) at scala.meta.internal.worksheets.WorksheetProvider$$anon$1.run(WorksheetProvider.scala:262) INFO time: evaluated worksheet 'scala.worksheet.sc' in 10ms ```

Expected behavior

One of two things should happen:

  1. Metals shows me something went wrong with the worksheet
  2. The worksheet works

Installation:

Additional context

Happens both on my local computer (preinstalled metals) and on the vdi.epfl.ch machines (fresh install of metals)

tgodzik commented 6 months ago

Thanks for reporting! This is already fixed in main, we need to do a new release early in April