You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
abstractclassA:valn:Intdeffoo():Int= n
traitB:valm:Intdeffoo():Int= m
traitMextendsAwithB:vala:Intoverridedeffoo():Int= a +super.foo()
traitNextendsAwithB:valb:Intoverridedeffoo():Int= b *super.foo()
classInner:N.super[A].foo()
N.super.foo()
classCextendsAwithMwithN:newInner()
vala=10// errorvalb=20// errorvalm=30// errorvaln=40
Output
--Error: examples/super.scala:21:6--------------------------------------------21|classCextendsAwithMwithN:|^|Member method foo$A of mixin traitN is missing a concrete super implementation in classC.
Expectation
It should compile without errors as in Scala 2.
The text was updated successfully, but these errors were encountered:
A mixin qualifier foo$A is a qualified name. Previously these
were flattened to SimpleNames when expanding with a trait prefix.
But then ResolveSuper cannot decompose the name anymore.
To fix this, we now treat QualifiedNames specially in the replace
calls for SymDenotations#fullNameSeparated and NameOps#unexpanded.
Qualifiers are preserved and the replacement proceeds recursively
to their underlying part. For some as yet unknown reason we can't
do this for TraitSetterNames. It seems these need to be flattened.
Fixesscala#15702
Compiler version
master and 3.1.3
Minimized code
Output
Expectation
It should compile without errors as in Scala 2.
The text was updated successfully, but these errors were encountered: