scala / bug

Scala 2 bug reports only. Please, no questions — proper bug reports only.
https://scala-lang.org
232 stars 21 forks source link

Zinc Bridge does not report `generatedNonLocalClass` if callback is not enabled. #13020

Open bishabosha opened 4 months ago

bishabosha commented 4 months ago

TL;DR in theory IntelliJ's sbt compiler should not be working in Scala 2 because generatedNonLocalClass is not called, but in reality it does work, which might mean there is a bug (e.g. maybe assuming all classes are Local classes?)

Problem

it used to be the case that generatedNonLocalClass is called in "xsbt-analyzer" phase, which always runs when the bridge wraps the compiler - even if AnalysisCallback is disabled (enabled == false).

in https://github.com/sbt/zinc/pull/582 (in 2018) this call was moved to the "xsbt-api" phase, which only runs when the AnalysisCallback is enabled (enabled == true).

however it seems that perhaps classes that should be generatedNonLocalClass are actually being reported as generatedLocalClass - cc @lrytz, @vasilmkd and @Gedochao

this investigation is prompted by discussion on https://github.com/scala/scala3/issues/21179 where I raised the point that in theory Scala 3 copied the behaviour of Scala 2 by moving generatedNonLocalClass calls to ExtractAPI, but in practice it behaves differently

SethTisue commented 2 weeks ago

@lrytz is this one you were thinking of looking at at some point?