Skip to content

"Trying to access the this of another class" with type aliases #10681

Open
@shawjef3

Description

@shawjef3

This fails with 2.11.12 and 2.12.4.

sealed trait Example {
  type I = this.type
  def f: PartialFunction[this.type, Int] = {
    case _: I => ???
  }
}
[error] (ast/compile:compileIncremental) java.lang.AssertionError: assertion failed:
[error]
[error]      while compiling: D:\Users\Jeff\IdeaProjects\webasm\ast\src\main\scala\me\jeffshaw\webasm\ast\Instruction.scala
[error]         during phase: globalPhase=mixin, enteringPhase=cleanup
[error]      library version: version 2.11.12
[error]     compiler version: version 2.11.12
[error]   reconstructed args: -bootclasspath C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\classes;D:\Users\Jeff\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.11.12.jar -classpath D:\Users\Jeff\IdeaProjects\webasm\ast\target\scala-2.11\classes;D:\Users\Jeff\IdeaProjects\webasm\unsigned\target\scala-2.11\classes;D:\Users\Jeff\.ivy2\cache\org.scodec\scodec-core_2.11\bundles\scodec-core_2.11-1.10.3.jar;D:\Users\Jeff\.ivy2\cache\org.scodec\scodec-bits_2.11\bundles\scodec-bits_2.11-1.1.2.jar;D:\Users\Jeff\.ivy2\cache\com.chuusai\shapeless_2.11\bundles\shapeless_2.11-2.3.2.jar;D:\Users\Jeff\.ivy2\cache\org.typelevel\macro-compat_2.11\jars\macro-compat_2.11-1.1.1.jar
[error]
[error]   last tree to typer: term $outer
[error]        tree position: line 12 of D:\Users\Jeff\IdeaProjects\webasm\ast\src\main\scala\me\jeffshaw\webasm\ast\Instruction.scala
[error]             tree tpe: <notype>
[error]               symbol: private[this] value $outer
[error]    symbol definition: private[this] val $outer: me.jeffshaw.webasm.ast.Example (a TermSymbol)
[error]       symbol package: me.jeffshaw.webasm.ast
[error]        symbol owners: value $outer -> <$anon: Function1>
[error]            call site: <$anon: Function1> in package ast in package ast
[error]
[error] == Source file context for tree position ==
[error]
[error]      9 sealed trait Example {
[error]     10   type I = this.type
[error]     11   def f: PartialFunction[this.type, Int] = {
[error]     12     case _: I => ???
[error]     13   }
[error]     14 }
[error]     15

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions