class ParamForwarding

For all parameter accessors

val x: T = ...

if (1) x is forwarded in the supercall to a parameter that's also named x (2) the superclass parameter accessor for x is accessible from the current class change the accessor to

def x: T = super.x.asInstanceOf[T]

Do the same also if there are intermediate inaccessible parameter accessor forwarders. The aim of this transformation is to avoid redundant parameter accessor fields.


ParamForwarding ( thisTransformer: DenotTransformer )


private val thisTransformer : DenotTransformer
def adaptRef ( tree: T ) ( implicit ctx: Context ) : T
def forwardParamAccessors ( impl: Template ) ( implicit ctx: Context ) : Template