[SI-10068] @elidable on var cause scalac crash Created: 17/Nov/16  Updated: 14/Feb/17  Resolved: 20/Dec/16

Status: CLOSED
Project: Scala Programming Language
Component/s: Type Checker
Affects Version/s: Scala 2.11.8, Scala 2.12.0
Fix Version/s: Scala 2.12.2

Type: Bug Priority: Major
Reporter: 杨博 Assignee: A. P. Marki
Resolution: Fixed Votes: 0
Labels: elidable, has-pull-request

Issue Links:
Duplicate
is duplicated by SI-9207 Crash on arbitrary elidable elements CLOSED

 Description   

Welcome to Scala 2.12.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_102).
Type in expressions for evaluation. Or try :help.
 
scala> import scala.annotation._
import scala.annotation._
 
scala> object A { @elidable(elidable.ASSERTION) var i = 1 }
exception when typing 0 = x$1/class scala.reflect.internal.Trees$Assign
assignment to non variable in file <console>
scala.reflect.internal.Types$TypeError: assignment to non variable
	at scala.tools.nsc.typechecker.Contexts$ThrowingReporter.handleError(Contexts.scala:1374)
	at scala.tools.nsc.typechecker.Contexts$ContextReporter.issue(Contexts.scala:1226)
	at scala.tools.nsc.typechecker.Contexts$Context.issue(Contexts.scala:575)
	at scala.tools.nsc.typechecker.ContextErrors$ErrorUtils$.issueTypeError(ContextErrors.scala:106)
	at scala.tools.nsc.typechecker.ContextErrors$ErrorUtils$.issueNormalTypeError(ContextErrors.scala:99)
	at scala.tools.nsc.typechecker.ContextErrors$TyperContextErrors$TyperErrorGen$.AssignmentError(ContextErrors.scala:323)
	at scala.tools.nsc.typechecker.Typers$Typer.fail$2(Typers.scala:4302)
	at scala.tools.nsc.typechecker.Typers$Typer.typedAssign$1(Typers.scala:4305)
	at scala.tools.nsc.typechecker.Typers$Typer.typedOutsidePatternMode$1(Typers.scala:5428)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5457)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5709)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2270)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5412)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5113)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5416)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5555)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.$anonfun$transform$4(Erasure.scala:1231)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:1227)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:805)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:140)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$applyPhase$1(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:395)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1(Global.scala:366)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1$adapted(Global.scala:366)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:932)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:366)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384)
	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:430)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:801)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:759)
	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:948)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:943)
	at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:599)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:588)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:560)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:825)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:684)
	at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:402)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:423)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$process$1(ILoop.scala:993)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:892)
	at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:1004)
	at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62)
	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.console(AnalyzingCompiler.scala:76)
	at sbt.Console.sbt$Console$$console0$1(Console.scala:22)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
	at sbt.Logger$$anon$4.apply(Logger.scala:84)
	at sbt.TrapExit$App.run(TrapExit.scala:248)
	at java.lang.Thread.run(Thread.java:745)
ReplGlobal.abort: unrecoverable error
error:
  unrecoverable error
     while compiling: <console>
        during phase: globalPhase=erasure, enteringPhase=posterasure
     library version: version 2.12.0
    compiler version: version 2.12.0
  reconstructed args: -classpath /private/tmp/target/scala-2.12/classes:/Users/twer/.ivy2/cache/org.scala-lang/scala-compiler/jars/scala-compiler-2.12.0.jar:/Users/twer/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.12.0.jar:/Users/twer/.ivy2/cache/org.scala-lang.modules/scala-xml_2.12/bundles/scala-xml_2.12-1.0.5.jar:/Users/twer/.ivy2/cache/jline/jline/jars/jline-2.14.1.jar -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/classes:/Users/twer/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.0.jar -Xelide-below 2147483647 -Yrepl-sync
 
  last tree to typer: Ident(x$1)
       tree position: line 14 of <console>
              symbol: value i_=
   symbol definition: x$1: Int (a TermSymbol)
      symbol package: $line5
       symbol owners: value i_= -> variable i -> object A -> object $iw -> object $iw -> object $iw -> object $iw -> object $read
           call site: variable i in object A in package $line5
 
<Cannot read source file>
exception when typing <accessor> def i_=(x$1: Int): Unit = 0 = x$1
exception when typing object A extends Object {
  def <init>(): A.type = {
    A.super.<init>();
    ()
  };
  null;
  <accessor> def i(): Int = 0;
  <accessor> def i_=(x$1: Int): Unit = 0 = x$1
}
exception when typing object $iw extends Object {
  def <init>(): type = {
    $iw.super.<init>();
    ()
  };
  object A extends Object {
    def <init>(): A.type = {
      A.super.<init>();
      ()
    };
    null;
    <accessor> def i(): Int = 0;
    <accessor> def i_=(x$1: Int): Unit = 0 = x$1
  }
}
exception when typing object $iw extends Object {
  def <init>(): type = {
    $iw.super.<init>();
    ()
  };
  object $iw extends Object {
    def <init>(): type = {
      $iw.super.<init>();
      ()
    };
    object A extends Object {
      def <init>(): A.type = {
        A.super.<init>();
        ()
      };
      null;
      <accessor> def i(): Int = 0;
      <accessor> def i_=(x$1: Int): Unit = 0 = x$1
    }
  }
}
exception when typing object $iw extends Object {
  def <init>(): type = {
    $iw.super.<init>();
    ()
  };
  object $iw extends Object {
    def <init>(): type = {
      $iw.super.<init>();
      ()
    };
    object $iw extends Object {
      def <init>(): type = {
        $iw.super.<init>();
        ()
      };
      object A extends Object {
        def <init>(): A.type = {
          A.super.<init>();
          ()
        };
        null;
        <accessor> def i(): Int = 0;
        <accessor> def i_=(x$1: Int): Unit = 0 = x$1
      }
    }
  }
}
exception when typing object $iw extends Object {
  def <init>(): type = {
    $iw.super.<init>();
    ()
  };
  object $iw extends Object {
    def <init>(): type = {
      $iw.super.<init>();
      ()
    };
    object $iw extends Object {
      def <init>(): type = {
        $iw.super.<init>();
        ()
      };
      object $iw extends Object {
        def <init>(): type = {
          $iw.super.<init>();
          ()
        };
        object A extends Object {
          def <init>(): A.type = {
            A.super.<init>();
            ()
          };
          null;
          <accessor> def i(): Int = 0;
          <accessor> def i_=(x$1: Int): Unit = 0 = x$1
        }
      }
    }
  }
}
exception when typing object $read extends Object {
  def <init>(): $line5.$read.type = {
    $read.super.<init>();
    ()
  };
  object $iw extends Object {
    def <init>(): type = {
      $iw.super.<init>();
      ()
    };
    object $iw extends Object {
      def <init>(): type = {
        $iw.super.<init>();
        ()
      };
      object $iw extends Object {
        def <init>(): type = {
          $iw.super.<init>();
          ()
        };
        object $iw extends Object {
          def <init>(): type = {
            $iw.super.<init>();
            ()
          };
          object A extends Object {
            def <init>(): A.type = {
              A.super.<init>();
              ()
            };
            null;
            <accessor> def i(): Int = 0;
            <accessor> def i_=(x$1: Int): Unit = 0 = x$1
          }
        }
      }
    }
  }
}
exception when typing package $line5 {
  object $read extends Object {
    def <init>(): $line5.$read.type = {
      $read.super.<init>();
      ()
    };
    object $iw extends Object {
      def <init>(): type = {
        $iw.super.<init>();
        ()
      };
      object $iw extends Object {
        def <init>(): type = {
          $iw.super.<init>();
          ()
        };
        object $iw extends Object {
          def <init>(): type = {
            $iw.super.<init>();
            ()
          };
          object $iw extends Object {
            def <init>(): type = {
              $iw.super.<init>();
              ()
            };
            object A extends Object {
              def <init>(): A.type = {
                A.super.<init>();
                ()
              };
              null;
              <accessor> def i(): Int = 0;
              <accessor> def i_=(x$1: Int): Unit = 0 = x$1
            }
          }
        }
      }
    }
  }
}
scala.reflect.internal.FatalError: 
  unrecoverable error
     while compiling: <console>
        during phase: globalPhase=erasure, enteringPhase=posterasure
     library version: version 2.12.0
    compiler version: version 2.12.0
  reconstructed args: -classpath /private/tmp/target/scala-2.12/classes:/Users/twer/.ivy2/cache/org.scala-lang/scala-compiler/jars/scala-compiler-2.12.0.jar:/Users/twer/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.12.0.jar:/Users/twer/.ivy2/cache/org.scala-lang.modules/scala-xml_2.12/bundles/scala-xml_2.12-1.0.5.jar:/Users/twer/.ivy2/cache/jline/jline/jars/jline-2.14.1.jar -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/classes:/Users/twer/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.0.jar -Xelide-below 2147483647 -Yrepl-sync
 
  last tree to typer: Ident(x$1)
       tree position: line 14 of <console>
              symbol: value i_=
   symbol definition: x$1: Int (a TermSymbol)
      symbol package: $line5
       symbol owners: value i_= -> variable i -> object A -> object $iw -> object $iw -> object $iw -> object $iw -> object $read
           call site: variable i in object A in package $line5
 
<Cannot read source file>
	at scala.reflect.internal.Reporting.abort(Reporting.scala:61)
	at scala.reflect.internal.Reporting.abort$(Reporting.scala:57)
	at scala.tools.nsc.interpreter.IMain$$anon$1.scala$tools$nsc$interpreter$ReplGlobal$$super$abort(IMain.scala:242)
	at scala.tools.nsc.interpreter.ReplGlobal.abort(ReplGlobal.scala:20)
	at scala.tools.nsc.interpreter.ReplGlobal.abort$(ReplGlobal.scala:18)
	at scala.tools.nsc.interpreter.IMain$$anon$1.abort(IMain.scala:242)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:759)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5709)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2270)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5412)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1975)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1799)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5413)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5559)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:3058)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedStats$8(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3187)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5113)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5416)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:752)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5555)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.$anonfun$transform$4(Erasure.scala:1231)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:1227)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:805)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:140)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$applyPhase$1(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:395)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1(Global.scala:366)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1$adapted(Global.scala:366)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:932)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:366)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384)
	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:430)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:801)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:759)
	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:948)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:943)
	at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:599)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:588)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:560)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:825)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:684)
	at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:402)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:423)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$process$1(ILoop.scala:993)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:892)
	at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:1004)
	at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62)
	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.console(AnalyzingCompiler.scala:76)
	at sbt.Console.sbt$Console$$console0$1(Console.scala:22)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
	at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
	at sbt.Logger$$anon$4.apply(Logger.scala:84)
	at sbt.TrapExit$App.run(TrapExit.scala:248)
	at java.lang.Thread.run(Thread.java:745)



 Comments   
Comment by A. P. Marki [ 17/Nov/16 ]

Disallowing that: https://github.com/scala/scala/pull/5539

Generated at Wed Oct 24 07:06:44 CEST 2018 using JIRA 7.9.1#79001-sha1:60970b42586a2ec2760ed6cfe825b26961e62b9e.