@@ -574,7 +574,7 @@ class Semantic {
574574 val res = withEnv(env) { eval(body, thisV, klass) }
575575 val errors2 = res.value.promote(msg, source)
576576 if (res.errors.nonEmpty || errors2.nonEmpty)
577- UnsafePromotion (msg, source, trace.toVector, ( res.errors ++ errors2).head ) :: Nil
577+ UnsafePromotion (msg, source, trace.toVector, res.errors ++ errors2) :: Nil
578578 else
579579 promoted.add(fun)
580580 Nil
@@ -611,30 +611,28 @@ class Semantic {
611611
612612 warm.klass.baseClasses.exists { klass =>
613613 klass.hasSource && klass.info.decls.exists { member =>
614- if member.isOneOf( Flags . Method | Flags . Lazy | Flags .Deferred ) then {
615- if ! member.isConstructor && member.hasSource then
614+ if ! member.isType && ! member.isConstructor && member.hasSource && ! member.is( Flags .Deferred ) then
615+ if member.isOneOf( Flags . Method | Flags . Lazy ) then
616616 val trace2 = trace.add(member.defTree)
617617 locally {
618618 given Trace = trace2
619619 val args = member.info.paramInfoss.flatten.map(_ => ArgInfo (Hot , EmptyTree ))
620620 val res = warm.call(member, args, superType = NoType , source = source)
621621 buffer ++= res.ensureHot(msg, source).errors
622622 }
623- } else if ! member.isType then {
624- if ! member.isOneOf(Flags .Deferred | Flags .Private | Flags .Protected ) && member.hasSource then
623+ else
625624 val trace2 = trace.add(member.defTree)
626625 val res = warm.select(member, source)
627626 locally {
628627 given Trace = trace2
629628 buffer ++= res.ensureHot(msg, source).errors
630629 }
631- }
632630 buffer.nonEmpty
633631 }
634632 }
635633
636634 if buffer.isEmpty then Nil
637- else UnsafePromotion (msg, source, trace.toVector, buffer( 0 ) ) :: Nil
635+ else UnsafePromotion (msg, source, trace.toVector, buffer.toList ) :: Nil
638636 }
639637
640638 end extension
0 commit comments