@@ -574,7 +574,7 @@ class Semantic {
574
574
val res = withEnv(env) { eval(body, thisV, klass) }
575
575
val errors2 = res.value.promote(msg, source)
576
576
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
578
578
else
579
579
promoted.add(fun)
580
580
Nil
@@ -611,30 +611,28 @@ class Semantic {
611
611
612
612
warm.klass.baseClasses.exists { klass =>
613
613
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
616
616
val trace2 = trace.add(member.defTree)
617
617
locally {
618
618
given Trace = trace2
619
619
val args = member.info.paramInfoss.flatten.map(_ => ArgInfo (Hot , EmptyTree ))
620
620
val res = warm.call(member, args, superType = NoType , source = source)
621
621
buffer ++= res.ensureHot(msg, source).errors
622
622
}
623
- } else if ! member.isType then {
624
- if ! member.isOneOf(Flags .Deferred | Flags .Private | Flags .Protected ) && member.hasSource then
623
+ else
625
624
val trace2 = trace.add(member.defTree)
626
625
val res = warm.select(member, source)
627
626
locally {
628
627
given Trace = trace2
629
628
buffer ++= res.ensureHot(msg, source).errors
630
629
}
631
- }
632
630
buffer.nonEmpty
633
631
}
634
632
}
635
633
636
634
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
638
636
}
639
637
640
638
end extension
0 commit comments