@@ -607,33 +607,24 @@ class Semantic {
607607 if classRef.memberClasses.nonEmpty || ! warm.isFullyFilled then
608608 return PromoteError (msg, source, trace.toVector) :: Nil
609609
610- val fields = classRef.fields
611- val methods = classRef.membersBasedOnFlags(Flags .Method , Flags .Deferred | Flags .Accessor )
612610 val buffer = new mutable.ArrayBuffer [Error ]
613611
614- fields.exists { denot =>
615- val f = denot.symbol
616- if ! f.isOneOf(Flags .Deferred | Flags .Private | Flags .Protected ) && f.hasSource then
617- val trace2 = trace.add(f.defTree)
618- val res = warm.select(f, source)
619- locally {
620- given Trace = trace2
621- buffer ++= res.ensureHot(msg, source).errors
622- }
623- buffer.nonEmpty
624- }
625-
626- buffer.nonEmpty || methods.exists { denot =>
627- val m = denot.symbol
628- if ! m.isConstructor && m.hasSource then
629- val trace2 = trace.add(m.defTree)
630- locally {
631- given Trace = trace2
632- val args = m.info.paramInfoss.flatten.map(_ => ArgInfo (Hot , EmptyTree ))
633- val res = warm.call(m, args, superType = NoType , source = source)
634- buffer ++= res.ensureHot(msg, source).errors
635- }
636- buffer.nonEmpty
612+ warm.klass.baseClasses.exists { klass =>
613+ klass.hasSource && klass.info.decls.exists { member =>
614+ if ! member.isType && ! member.isConstructor && member.hasSource && ! member.is(Flags .Deferred ) then
615+ if member.is(Flags .Method ) then
616+ val trace2 = trace.add(source)
617+ locally {
618+ given Trace = trace2
619+ val args = member.info.paramInfoss.flatten.map(_ => ArgInfo (Hot , EmptyTree ))
620+ val res = warm.call(member, args, superType = NoType , source = member.defTree)
621+ buffer ++= res.ensureHot(msg, source).errors
622+ }
623+ else
624+ val res = warm.select(member, source)
625+ buffer ++= res.ensureHot(msg, source).errors
626+ buffer.nonEmpty
627+ }
637628 }
638629
639630 if buffer.isEmpty then Nil
0 commit comments