Skip to content

trait lazy val with path-dependent type should not crash during fields #219

@adriaanm

Description

@adriaanm
class Global { class Name }

trait CommonPrintUtils {
  val global: Global 
  import global._

  lazy val precedence: Name => Int = ???
}

trait CompilerProvider {
  val global: Global = ???
}

class AbstractPrinter extends CommonPrintUtils with CompilerProvider 

Crashes with (under -uniqid -Ydebug ):

error: scala.reflect.internal.Types$TypeError: type mismatch;
 found   : scala#25.this.Function1#1283[AbstractPrinter#6560.this.global#14333.Name#6687,scala#25.this.Int#929]
 required: scala#25.this.Function1#1283[AbstractPrinter#6560.this.global#14238.Name#6687,scala#25.this.Int#929]

[...]
    at scala.tools.nsc.transform.Fields$FieldsTransformer.typedPos(Fields.scala:511)
    at scala.tools.nsc.transform.AccessorSynthesis$CheckedAccessorTreeSynthesis$SynthLazyAccessorsIn.$anonfun$expandLazyClassMember$5(AccessorSynthesis.scala:356)
    at scala.tools.nsc.transform.AccessorSynthesis$CheckedAccessorTreeSynthesis$SynthLazyAccessorsIn.$anonfun$expandLazyClassMember$4(AccessorSynthesis.scala:356)
    at scala.tools.nsc.transform.AccessorSynthesis$CheckedAccessorTreeSynthesis$SynthLazyAccessorsIn.expandLazyClassMember(AccessorSynthesis.scala:356)
    at scala.tools.nsc.transform.Fields$FieldsTransformer.superLazy$1(Fields.scala:636)
    at scala.tools.nsc.transform.Fields$FieldsTransformer.$anonfun$fieldsAndAccessors$3(Fields.scala:641)
    at scala.tools.nsc.transform.Fields$FieldsTransformer.fieldsAndAccessors(Fields.scala:639)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions