Skip to content

trait with named parameters would lead to compiler error in specific cases #9213

Closed
@bohonghuang

Description

@bohonghuang

Minimized code

  trait A(a: Any, b: Int) {

  }                                             
//  class A(a: String, b: Int) {
//
//  }                                           //OK!
  object B extends A(b = 0, a = String(""))     
//  object B extends A(a = String(""), b = 0)   //OK!

Output

Error:dotc: Error: val a$1
java.util.NoSuchElementException: val a$1
at scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:504)
at scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:503)
at scala.collection.mutable.AnyRefMap.apply(AnyRefMap.scala:205)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder$locals$.load(BCodeSkelBuilder.scala:396)
at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:378)
at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:63)
at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock$$anonfun$1(BCodeBodyBuilder.scala:912)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:912)
at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:395)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.emitNormalMethodBody$1(BCodeSkelBuilder.scala:597)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genDefDef(BCodeSkelBuilder.scala:630)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:501)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen$$anonfun$1(BCodeSkelBuilder.scala:503)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:503)
at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:109)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:217)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:184)
at dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:514)
at dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:480)
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions