Scala Programming Language
  1. Scala Programming Language
  2. SI-2577

Type inference for annotations curio / -Ycheck

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Misc Compiler
    • Labels:
      None
    • Environment:

      inference annotations

      Description

      Consider the following code:

      case class annot[T] extends StaticAnnotation
      
      // type inference should infer @annot[Nothing] instead of @annot[T]
      // note the T is not in scope here!
      class Foo[@annot U] {
        val x = new Foo
      }
      

      Compilation succeeds, but crashes if I pass `-Ycheck:ref` to scalac. If you wonder about a use case, it's for `@specialized`, which I'd like to be able to use with no type arguments.

        Issue Links

          Activity

          Hide
          Paul Phillips added a comment -

          See also SI-1424 which I closed as a duplicate of this. Not 100% sure if by "crashes" iulian means this:

           found   : Any
           required: AnyRef
          case class annot[T] extends StaticAnnotation
                     ^
          

          If so, then safely duplicates.

          Show
          Paul Phillips added a comment - See also SI-1424 which I closed as a duplicate of this. Not 100% sure if by "crashes" iulian means this: found : Any required: AnyRef case class annot[T] extends StaticAnnotation ^ If so, then safely duplicates.
          Hide
          Simon Ochsenreither added a comment -

          Probably this:

          % scala -Ycheck:ref
          Welcome to Scala version 2.10.0-20120511-110655-3511e5960d (OpenJDK 64-Bit Server VM, Java 1.7.0_03).
          Type in expressions to have them evaluated.
          Type :help for more information.
          
          scala> [init] [Now checking: refchecks]
          [Now checking: refchecks]
          [Now checking: refchecks]
          [Now checking: refchecks]
          
          
          scala> case class annot[T] extends annotation.StaticAnnotation
          [Now checking: refchecks]
          [check: refchecks] <console>:7: trees differ
           old: T [scala.reflect.api.Trees$Ident] (tpe = T)
           new: T [scala.reflect.api.Trees$TypeTree] (tpe = T)
          [check: refchecks] <console>:7: trees differ
           old: $iw.this.annot[T] [scala.reflect.api.Trees$AppliedTypeTree] (tpe = null)
           new: annot[T] [scala.reflect.api.Trees$TypeTree] (tpe = annot[T])
          error: 
               while compiling: <console>
                  during phase: selectiveanf
               library version: version 2.10.0-20120511-110655-3511e5960d
              compiler version: version 2.10.0-20120511-110655-3511e5960d
            reconstructed args: -Ycheck:ref
          
            last tree to typer: Ident(x)
                        symbol: value x (flags: <param> <synthetic>)
             symbol definition: x: Any
                           tpe: Any
                 symbol owners: value x
                context owners: method copy -> class annot -> object $iw -> object $iw -> object $read -> package $line3
          
          == Enclosing template or block ==
          
          ApplyConstructor( // def <init>(): annot[T] in class annot
            new this.annot[T]."<init>" // def <init>(): annot[T] in class annot
            Nil
          )
          
          == Expanded type of tree ==
          
          TypeRef(TypeSymbol(abstract class Any extends ))
          
          uncaught exception during compilation: java.lang.NullPointerException
          java.lang.NullPointerException
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:5149)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:5175)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedNew$1(Typers.scala:3916)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4755)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5091)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5097)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4878)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4108)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4108)
          	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:719)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4108)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4837)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5216)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:1979)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4661)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.collection.immutable.List.loop$1(List.scala:163)
          	at scala.collection.immutable.List.mapConserve(List.scala:179)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.collection.immutable.List.loop$1(List.scala:163)
          	at scala.collection.immutable.List.mapConserve(List.scala:179)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.collection.immutable.List.loop$1(List.scala:163)
          	at scala.collection.immutable.List.mapConserve(List.scala:179)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.collection.immutable.List.loop$1(List.scala:163)
          	at scala.collection.immutable.List.mapConserve(List.scala:179)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659)
          	at scala.collection.immutable.List.loop$1(List.scala:163)
          	at scala.collection.immutable.List.mapConserve(List.scala:179)
          	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659)
          	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4644)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218)
          	at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210)
          	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5069)
          	at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$check$1.apply$mcV$sp(TreeCheckers.scala:176)
          	at scala.tools.nsc.typechecker.TreeCheckers.runWithUnit(TreeCheckers.scala:162)
          	at scala.tools.nsc.typechecker.TreeCheckers.check(TreeCheckers.scala:174)
          	at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$checkTrees$1.apply(TreeCheckers.scala:149)
          	at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$checkTrees$1.apply(TreeCheckers.scala:149)
          	at scala.collection.Iterator$class.foreach(Iterator.scala:724)
          	at scala.collection.AbstractIterator.foreach(Iterator.scala:1152)
          	at scala.tools.nsc.typechecker.TreeCheckers.checkTrees(TreeCheckers.scala:149)
          	at scala.tools.nsc.Global$Run.runCheckers(Global.scala:1309)
          	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1436)
          	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1373)
          	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1367)
          	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:461)
          	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:845)
          	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:803)
          	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:979)
          	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:974)
          	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:629)
          	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:595)
          	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:826)
          	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:883)
          	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:783)
          	at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:647)
          	at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:654)
          	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:657)
          	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:962)
          	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:924)
          	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:924)
          	at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:157)
          	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:924)
          	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:79)
          	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92)
          	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101)
          	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
          
          That entry seems to have slain the compiler.  Shall I replay
          your session? I can re-run each line except the last one.
          [y/n]
          Abandoning crashed session.
          
          Show
          Simon Ochsenreither added a comment - Probably this: % scala -Ycheck:ref Welcome to Scala version 2.10.0-20120511-110655-3511e5960d (OpenJDK 64-Bit Server VM, Java 1.7.0_03). Type in expressions to have them evaluated. Type :help for more information. scala> [init] [Now checking: refchecks] [Now checking: refchecks] [Now checking: refchecks] [Now checking: refchecks] scala> case class annot[T] extends annotation.StaticAnnotation [Now checking: refchecks] [check: refchecks] <console>:7: trees differ old: T [scala.reflect.api.Trees$Ident] (tpe = T) new: T [scala.reflect.api.Trees$TypeTree] (tpe = T) [check: refchecks] <console>:7: trees differ old: $iw.this.annot[T] [scala.reflect.api.Trees$AppliedTypeTree] (tpe = null) new: annot[T] [scala.reflect.api.Trees$TypeTree] (tpe = annot[T]) error: while compiling: <console> during phase: selectiveanf library version: version 2.10.0-20120511-110655-3511e5960d compiler version: version 2.10.0-20120511-110655-3511e5960d reconstructed args: -Ycheck:ref last tree to typer: Ident(x) symbol: value x (flags: <param> <synthetic>) symbol definition: x: Any tpe: Any symbol owners: value x context owners: method copy -> class annot -> object $iw -> object $iw -> object $read -> package $line3 == Enclosing template or block == ApplyConstructor( // def <init>(): annot[T] in class annot new this.annot[T]."<init>" // def <init>(): annot[T] in class annot Nil ) == Expanded type of tree == TypeRef(TypeSymbol(abstract class Any extends )) uncaught exception during compilation: java.lang.NullPointerException java.lang.NullPointerException at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:5149) at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:5175) at scala.tools.nsc.typechecker.Typers$Typer.typedNew$1(Typers.scala:3916) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4755) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5091) at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5097) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4878) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4108) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4108) at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:719) at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4108) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4837) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5216) at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:1979) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4661) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.collection.immutable.List.loop$1(List.scala:163) at scala.collection.immutable.List.mapConserve(List.scala:179) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658) at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586) at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.collection.immutable.List.loop$1(List.scala:163) at scala.collection.immutable.List.mapConserve(List.scala:179) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658) at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586) at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.collection.immutable.List.loop$1(List.scala:163) at scala.collection.immutable.List.mapConserve(List.scala:179) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658) at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586) at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.collection.immutable.List.loop$1(List.scala:163) at scala.collection.immutable.List.mapConserve(List.scala:179) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658) at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1723) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$39.apply(Typers.scala:1586) at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1585) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4648) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2563) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59$$anonfun$60.apply(Typers.scala:2659) at scala.collection.immutable.List.loop$1(List.scala:163) at scala.collection.immutable.List.mapConserve(List.scala:179) at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$59.apply(Typers.scala:2659) at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2658) at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4644) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5011) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.scala$tools$nsc$typechecker$TreeCheckers$TreeChecker$$super$typed(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker$$anonfun$typed$1.apply(TreeCheckers.scala:218) at scala.tools.nsc.typechecker.TreeCheckers$TreeChecker.typed(TreeCheckers.scala:210) at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5069) at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$check$1.apply$mcV$sp(TreeCheckers.scala:176) at scala.tools.nsc.typechecker.TreeCheckers.runWithUnit(TreeCheckers.scala:162) at scala.tools.nsc.typechecker.TreeCheckers.check(TreeCheckers.scala:174) at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$checkTrees$1.apply(TreeCheckers.scala:149) at scala.tools.nsc.typechecker.TreeCheckers$$anonfun$checkTrees$1.apply(TreeCheckers.scala:149) at scala.collection.Iterator$class.foreach(Iterator.scala:724) at scala.collection.AbstractIterator.foreach(Iterator.scala:1152) at scala.tools.nsc.typechecker.TreeCheckers.checkTrees(TreeCheckers.scala:149) at scala.tools.nsc.Global$Run.runCheckers(Global.scala:1309) at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1436) at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1373) at scala.tools.nsc.Global$Run.compileSources(Global.scala:1367) at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:461) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:845) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:803) at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:979) at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:974) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:629) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:595) at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:826) at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:883) at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:783) at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:647) at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:654) at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:657) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:962) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:924) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:924) at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:157) at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:924) at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:79) at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92) at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101) at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) That entry seems to have slain the compiler. Shall I replay your session? I can re-run each line except the last one. [y/n] Abandoning crashed session.
          Hide
          Simon Ochsenreither added a comment - - edited

          Weird ... not sure anymore that the crash is related to the issue, SI-4774 has a similar crash when running with `-Ycheck:ref`. Sorry for the spam. :—/

          Show
          Simon Ochsenreither added a comment - - edited Weird ... not sure anymore that the crash is related to the issue, SI-4774 has a similar crash when running with `-Ycheck:ref`. Sorry for the spam. :—/
          Hide
          Paul Phillips added a comment -

          Moving the action to SI-6860.

          Show
          Paul Phillips added a comment - Moving the action to SI-6860 .

            People

            • Assignee:
              Paul Phillips
              Reporter:
              Iulian Dragos
              TracCC:
              Paul Phillips
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development