Skip to content

crash on compilable code: NoDenotation.owner #3633

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

Closed
helloqirun opened this issue Dec 5, 2017 · 1 comment
Closed

crash on compilable code: NoDenotation.owner #3633

helloqirun opened this issue Dec 5, 2017 · 1 comment

Comments

@helloqirun
Copy link

scalac compiles but dotc crashes.

$ dotc -version

Dotty compiler version 0.5.0-bin-SNAPSHOT-git-4fefb64 -- Copyright 2002-2017, LAMP/EPFL

$ dotc abc.scala

exception while typing /* inlined from Trait2*/
  {
    1
  }
.unary_+ of class class dotty.tools.dotc.ast.Trees$Select # 241
exception while typing {
  /* inlined from Trait2*/
    {
      1
    }
  .unary_+
} of class class dotty.tools.dotc.ast.Trees$Block # 242
exception while typing def main: Int =
  {
    /* inlined from Trait2*/
      {
        1
      }
    .unary_+
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 243
exception while typing @scala.annotation.internal.SourceFile("abc.scala") final module class Test()
   extends
 Object() with Trait2 {
  def main: Int =
    {
      /* inlined from Trait2*/
        {
          1
        }
      .unary_+
    }
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 294
exception while typing package <empty> {
  @scala.annotation.internal.SourceFile("abc.scala") <trait> trait Trait1()
     extends
   Object {
    def foo2(n: Int): Int = n
  }
  @scala.annotation.internal.SourceFile("abc.scala") <trait> trait Trait2()
     extends
   Object {
    @1 @inline() inline def foo3(n: Int): Int = 1
  }
  @scala.annotation.internal.SourceFile("abc.scala") class Base() extends Object
    (
  ) {
    def foo(n: Int): Int = n
  }
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile("abc.scala") final module class Test()
     extends
   Object() with Trait2 {
    def main: Int =
      {
        /* inlined from Trait2*/
          {
            1
          }
        .unary_+
      }
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # 295

exception occurred while compiling abc.scala
Exception in thread "main" java.lang.AssertionError: NoDenotation.owner
	at dotty.tools.dotc.core.SymDenotations$NoDenotation.owner(SymDenotations.scala:1856)
	at dotty.tools.dotc.transform.Erasure$Typer.mapOwner$1(Erasure.scala:381)
	at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:385)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:1623)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:1689)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:94)
	at dotty.tools.dotc.typer.Typer.op$40(Typer.scala:1707)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:1703)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:1764)
	at dotty.tools.dotc.typer.Typer.op$10(Typer.scala:633)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:625)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:1649)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:1690)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:94)
	at dotty.tools.dotc.typer.Typer.op$40(Typer.scala:1707)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:1703)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:1764)
<snipped>

$ cat abc.scala

trait Trait1 { def foo2(n: Int) = n }
trait Trait2 { @inline def foo3(n: Int) = 1 }
class Base { def foo(n: Int) = n }
object Test extends Trait2 {
  def main = { +(foo3(2)) }
}
@allanrenucci
Copy link
Contributor

allanrenucci commented Dec 7, 2017

Minimised:

class Test {
  inline def foo = 1
  def test = -foo
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants