Skip to content

Regression in cyclic reference observed in separate compilation #17233

Closed
@WojciechMazur

Description

@WojciechMazur

Compiler version

3.3.1-RC1-bin-20230302-8020c77-NIGHTLY

Minimized code

Not yet minimized. The issue is present in the library vigoo/prox based on Open CB failures https://github.com/VirtusLab/community-build3/actions/runs/4650721329/jobs/8231832515

Reproduction steps:

  1. git clone https://github.com/vigoo/prox.git -b v0.7.9
  2. Compile seperatly prox-core and prox-java9 modules with enabled flag -Ykind-projector, can be achieved with scala-cli by adding dummy test in prox-java9 module in runner.scala file and running
#Clone project repository into prox directory
git clone https://github.com/vigoo/prox.git -b v0.7.9 prox

# Modify only source in `prox-java9` module to force multi stage compilation
src=prox-java9/src/main/scala/io/github/vigoo/prox/java9/runner.scala
out=prox-java9/src/main/scala/io/github/vigoo/prox/java9/runner.test.scala
echo '//> using dep "org.scalameta:munit_2.13:0.7.29"' > $out       
cat $src >> $out
echo -e '\nclass DummyTest extends munit.FunSuite{}' >> $out
rm $src

# Run scala-cli with test command, all sources other then tests would be compiled as a single compilation unit, remaining tests would be compiled in separate unit
scalaVersion=$1
scala-cli test --scala-opt -Ykind-projector prox/prox-core prox/prox-java9 -S "$1"

Bisect points to range of commits 006e2e4 ... 2507577: but I was not able to get to exact commit due to the problems because of runtime failures when publishing locally snapshot versions of compiler (Error: Unexpected error when compiling project_9db0e00eda_15c531f81b-aac090f2f8: 'ZipFile invalid LOC header (bad signature)')

Last good release: 3.3.1-RC1-bin-20230215-006e2e4-NIGHTLY
First bad release: 3.3.1-RC1-bin-20230216-2507577-NIGHTLY

Output

[error] /home/wmazur/projects/virtuslab/community-build3/repo/prox-java9/src/main/scala/io/github/vigoo/prox/java9/runner.test.scala:13:9
[error] Could not read definition of trait ProcessConfiguration in /home/wmazur/projects/virtuslab/community-build3/repo/prox-core/.scala-build/.bloop/project_74bcc5750f_0028cda483-aac090f2f8/bloop-internal-classes/main-VoP6UW1XQYOM0Omugn5hZA==/io/github/vigoo/prox/ProcessModule.class
[error] An exception was encountered:
[error]   dotty.tools.dotc.core.CyclicReference: Cyclic reference involving trait Process
[error] Run with -Ydebug-unpickling to see full stack trace.
[error]   class JVM9ProcessRunner()
[error]         ^
Error compiling project (test, Scala 3.3.1-RC1-bin-20230407-bcaa1ca-NIGHTLY, JVM)

Expectation

Metadata

Metadata

Assignees

No one assigned

    Labels

    itype:bugregressionThis worked in a previous version but doesn't anymorestat:needs minimizationNeeds a self contained minimization

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions