Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

back end crash (Cannot create ClassBType from non-class symbol) #9907

Closed
scabug opened this issue Aug 26, 2016 · 6 comments
Closed

back end crash (Cannot create ClassBType from non-class symbol) #9907

scabug opened this issue Aug 26, 2016 · 6 comments
Assignees
Labels
Milestone

Comments

@scabug
Copy link

scabug commented Aug 26, 2016

[info] Compiling 1 Scala source to /home/gui/center/codemirror/client/target/scala-2.11/classes...
java.lang.AssertionError: assertion failed: 
  Cannot create ClassBType from non-class symbol type Callback
     while compiling: /home/gui/center/codemirror/client/src/main/scala/client/Editor.scala
        during phase: jvm
     library version: version 2.11.8
    compiler version: version 2.11.8
  reconstructed args: -classpath /home/gui/center/codemirror/client/target/scala-2.11/classes:/home/gui/center/codemirror/codemirror/target/scala-2.11/classes:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/japgolly/scalajs-react/core_sjs0.6_2.11/0.11.1/core_sjs0.6_2.11-0.11.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.11/0.6.11/scalajs-library_2.11-0.6.11.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/webjars/bower/codemirror/5.18.2/codemirror-5.18.2.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-dom_sjs0.6_2.11/0.9.1/scalajs-dom_sjs0.6_2.11-0.9.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/webjars/bower/react/15.2.1/react-15.2.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/japgolly/scalajs-react/extra_sjs0.6_2.11/0.11.1/extra_sjs0.6_2.11-0.11.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.11.8/scala-reflect-2.11.8.jar -Ywarn-value-discard -feature -Ywarn-numeric-widen -unchecked -Ydelambdafy:method -Yno-adapted-args -Ywarn-unused-import -deprecation -Xlint:adapted-args -Xlint:nullary-unit -Xlint:inaccessible -Xlint:nullary-override -Xlint:infer-any -Xlint:missing-interpolator -Xlint:doc-detached -Xlint:private-shadow -Xlint:type-parameter-shadow -Xlint:poly-implicit-overload -Xlint:option-implicit -Xlint:delayedinit-select -Xlint:by-name-right-associative -Xlint:package-object-classes -Xlint:unsound-match -Xlint:stars-align -Yrangepos -bootclasspath /nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/resources.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/rt.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/sunrsasign.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jsse.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jce.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/charsets.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jfr.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/classes:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.8/scala-library-2.11.8.jar -Xfatal-warnings -Xplugin:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-compiler_2.11.8/0.6.11/scalajs-compiler_2.11.8-0.6.11.jar -Yinline-warnings -Ybackend:GenBCode -Ywarn-dead-code

  last tree to typer: TypeTree(class Editor$EditorState)
       tree position: line 85 of /home/gui/center/codemirror/client/src/main/scala/client/Editor.scala
            tree tpe: client.Editor.Editor$EditorState
              symbol: (case private[object Editor]) class Editor$EditorState in package client
   symbol definition: case private[object Editor] class Editor$EditorState extends Product with Serializable (a ClassSymbol)
      symbol package: client
       symbol owners: class Editor$EditorState
           call site: constructor Editor$$anonfun$$nestedInanonfun$14$1 in package client
== Source file context for tree position ==

    82         // editor.onChange((_, _) => backend.codeChange(editor.getDoc().getValue()))
    83 
    84         scope.modState(_.copy(editor = Some(editor)))
    85       }
    86     }
    87   }
    88 
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.classBTypeFromSymbol(BTypesFromSymbols.scala:105)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.buildNestedInfo(BTypesFromSymbols.scala:395)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.scala$tools$nsc$backend$jvm$BTypesFromSymbols$$setClassInfo(BTypesFromSymbols.scala:351)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols$$anonfun$classBTypeFromSymbol$4.apply(BTypesFromSymbols.scala:120)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols$$anonfun$classBTypeFromSymbol$4.apply(BTypesFromSymbols.scala:112)
        at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
        at scala.collection.concurrent.TrieMap.getOrElse(TrieMap.scala:633)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.classBTypeFromSymbol(BTypesFromSymbols.scala:112)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols$$anonfun$primitiveOrClassToBType$1$2.apply(BTypesFromSymbols.scala:153)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols$$anonfun$primitiveOrClassToBType$1$2.apply(BTypesFromSymbols.scala:153)
        at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
        at scala.collection.AbstractMap.getOrElse(Map.scala:59)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.primitiveOrClassToBType$1(BTypesFromSymbols.scala:153)
        at scala.tools.nsc.backend.jvm.BTypesFromSymbols.typeToBType(BTypesFromSymbols.scala:168)
        at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.toTypeKind(BCodeHelpers.scala:354)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.toTypeKind(BCodeSkelBuilder.scala:50)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder$$anonfun$paramTKs$1.apply(BCodeSkelBuilder.scala:78)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder$$anonfun$paramTKs$1.apply(BCodeSkelBuilder.scala:78)
        at scala.collection.immutable.List.map(List.scala:277)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.paramTKs(BCodeSkelBuilder.scala:78)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:676)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:712)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:312)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:919)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:676)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:712)
        at scala.tools.nsc.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:312)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.emitNormalMethodBody$1(BCodeSkelBuilder.scala:621)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genDefDef(BCodeSkelBuilder.scala:655)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:525)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:527)
        at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:125)
        at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1.visit(GenBCode.scala:188)
        at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1$$anonfun$run$1.apply$mcV$sp(GenBCode.scala:137)
        at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:431)
        at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1.run(GenBCode.scala:137)
        at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.buildAndSendToDisk(GenBCode.scala:357)
        at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.run(GenBCode.scala:326)
        at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1501)
        at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1486)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:1481)
        at scala.tools.nsc.Global$Run.compile(Global.scala:1582)
        at xsbt.CachedCompiler0.run(CompilerInterface.scala:116)
        at xsbt.CachedCompiler0.run(CompilerInterface.scala:95)
        at xsbt.CompilerInterface.run(CompilerInterface.scala:26)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
        at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
        at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
        at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:50)
 at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:50)
        at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:50)
        at sbt.compiler.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:74)
        at sbt.compiler.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:49)
        at sbt.compiler.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:64)
        at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
        at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
        at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:66)
        at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:64)
        at sbt.inc.IncrementalCommon.cycle(IncrementalCommon.scala:32)
        at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:68)
        at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:67)
        at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:95)
        at sbt.inc.Incremental$.compile(Incremental.scala:67)
        at sbt.inc.IncrementalCompile$.apply(Compile.scala:54)
        at sbt.compiler.IC$.compileInternal(IncrementalCompiler.scala:160)
        at sbt.compiler.IC$.incrementalCompile(IncrementalCompiler.scala:138)
        at sbt.Compiler$.compile(Compiler.scala:152)
        at sbt.Compiler$.compile(Compiler.scala:138)
        at sbt.Defaults$.sbt$Defaults$$compileIncrementalTaskImpl(Defaults.scala:860)
        at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:851)
        at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:849)
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
        at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
        at sbt.std.Transform$$anon$4.work(System.scala:63)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
        at sbt.Execute.work(Execute.scala:237)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
[error] Error while emitting Editor.scala
[error] assertion failed: 
[error]   Cannot create ClassBType from non-class symbol type Callback
[error]      while compiling: /home/gui/center/codemirror/client/src/main/scala/client/Editor.scala
[error]         during phase: jvm
[error]      library version: version 2.11.8
[error]     compiler version: version 2.11.8
[error]   reconstructed args: -classpath /home/gui/center/codemirror/client/target/scala-2.11/classes:/home/gui/center/codemirror/codemirror/target/scala-2.11/classes:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/japgolly/scalajs-react/core_sjs0.6_2.11/0.11.1/core_sjs0.6_2.11-0.11.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.11/0.6.11/scalajs-library_2.11-0.6.11.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/webjars/bower/codemirror/5.18.2/codemirror-5.18.2.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-dom_sjs0.6_2.11/0.9.1/scalajs-dom_sjs0.6_2.11-0.9.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/webjars/bower/react/15.2.1/react-15.2.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/japgolly/scalajs-react/extra_sjs0.6_2.11/0.11.1/extra_sjs0.6_2.11-0.11.1.jar:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.11.8/scala-reflect-2.11.8.jar -Ywarn-value-discard -feature -Ywarn-numeric-widen -unchecked -Ydelambdafy:method -Yno-adapted-args -Ywarn-unused-import -deprecation -Xlint:adapted-args -Xlint:nullary-unit -Xlint:inaccessible -Xlint:nullary-override -Xlint:infer-any -Xlint:missing-interpolator -Xlint:doc-detached -Xlint:private-shadow -Xlint:type-parameter-shadow -Xlint:poly-implicit-overload -Xlint:option-implicit -Xlint:delayedinit-select -Xlint:by-name-right-associative -Xlint:package-object-classes -Xlint:unsound-match -Xlint:stars-align -Yrangepos -bootclasspath /nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/resources.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/rt.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/sunrsasign.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jsse.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jce.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/charsets.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/lib/jfr.jar:/nix/store/mxf095i1rdgxqqn22a7b9kgn4qx67afv-oraclejdk-8u101/jre/classes:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.8/scala-library-2.11.8.jar -Xfatal-warnings -Xplugin:/home/gui/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-compiler_2.11.8/0.6.11/scalajs-compiler_2.11.8-0.6.11.jar -Yinline-warnings -Ybackend:GenBCode -Ywarn-dead-code
[error] 
[error]   last tree to typer: TypeTree(class Editor$EditorState)
[error]        tree position: line 85 of /home/gui/center/codemirror/client/src/main/scala/client/Editor.scala
[error]             tree tpe: client.Editor.Editor$EditorState
[error]               symbol: (case private[object Editor]) class Editor$EditorState in package client
[error]    symbol definition: case private[object Editor] class Editor$EditorState extends Product with Serializable (a ClassSymbol)
[error]       symbol package: client
[error]        symbol owners: class Editor$EditorState
[error]            call site: constructor Editor$$anonfun$$nestedInanonfun$14$1 in package client
[error] 
[error] == Source file context for tree position ==
[error] 
[error]     82         // editor.onChange((_, _) => backend.codeChange(editor.getDoc().getValue()))
[error]     83 
[error]     84         scope.modState(_.copy(editor = Some(editor)))
[error]     85       }
[error]     86     }
[error]     87   }
[error]     88 
[error] one error found
[error] (client/compile:compileIncremental) Compilation failed
[error] Total time: 2 s, completed Aug 26, 2016 2:30:50 PM
private def runDelta(editor: codemirror.Editor, scope: Scope, current: App.State, next: App.State): Callback = {
    def setTheme() = {
      if(current.dark != next.dark) {
        val theme = 
          if(next.dark) "dark"
          else "light"

        editor.setOption("theme", s"solarized $theme")
      }
    }


    def setCode() = {
      if(current.code != next.code) {
        editor.getDoc().setValue(next.code)
      }    
    }

    def setAnnotations() = {
      val added = next.compilationInfos -- current.compilationInfos
      // Callback(
      val removed = next.compilationInfos -- current.compilationInfos
      // Callback(
      scope.modState(s => s.copy(annotations = Map()))
    }

    for {
      _ <- Callback(setTheme()) //CallbackTo[Unit] is fine
      _ <- CallbackTo[Unit](setCode())
      _ <- setAnnotations()
    } yield ()
  }
@scabug
Copy link
Author

scabug commented Aug 26, 2016

Imported From: https://issues.scala-lang.org/browse/SI-9907?orig=1
Reporter: Guillaume Massé (masgui)
Affected Versions: 2.12.0

@scabug
Copy link
Author

scabug commented Aug 26, 2016

Guillaume Massé (masgui) said:
it does not crash when "-Ybackend:GenBCode" is disabled

@scabug
Copy link
Author

scabug commented Aug 26, 2016

@SethTisue said:
Is it reproducible on 2.12? GenBCode is no longer maintained on 2.11

@scabug
Copy link
Author

scabug commented Aug 26, 2016

Guillaume Massé (masgui) said (edited on Aug 26, 2016 7:20:01 PM UTC):
I don't know, I don't have the artifacts for 2.12 I will close the issue since it's does not make sense to use GenBCode in scalajs.

@scabug
Copy link
Author

scabug commented Oct 24, 2016

David Barri (japgolly) said:
I'm getting this issue on 2.12.0-RC2. See japgolly/nyaya#22 (comment)

@scabug
Copy link
Author

scabug commented Oct 31, 2016

@lrytz said:
fixed by scala/scala#5482

@scabug scabug closed this as completed Oct 31, 2016
@scabug scabug added the backend label Apr 7, 2017
@scabug scabug added this to the 2.12.1 milestone Apr 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants