File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,9 @@ object ProtoTypes {
41
41
/** Test compatibility after normalization in a fresh typerstate. */
42
42
def normalizedCompatible (tp : Type , pt : Type )(implicit ctx : Context ) = ctx.typerState.test {
43
43
val normTp = normalize(tp, pt)
44
- isCompatible(normTp, pt) || pt.isRef(defn.UnitClass ) && normTp.isParameterless || isCompatible(tp, pt)
44
+ isCompatible(normTp, pt) ||
45
+ pt.isRef(defn.UnitClass ) && normTp.isParameterless ||
46
+ pt.isInstanceOf [ApplyingProto ] && isCompatible(tp, pt) // check i3352
45
47
}
46
48
47
49
private def disregardProto (pt : Type )(implicit ctx : Context ): Boolean = pt.dealias match {
@@ -102,7 +104,7 @@ object ProtoTypes {
102
104
def qualifies (m : SingleDenotation ) =
103
105
memberProto.isRef(defn.UnitClass ) ||
104
106
compat.normalizedCompatible(m.info, memberProto) ||
105
- compat.normalizedCompatible(m.namedType, memberProto)
107
+ memberProto. isInstanceOf [ ApplyingProto ] && compat.normalizedCompatible(m.namedType, memberProto) // check i3352
106
108
mbr match { // hasAltWith inlined for performance
107
109
case mbr : SingleDenotation => mbr.exists && qualifies(mbr)
108
110
case _ => mbr hasAltWith qualifies
You can’t perform that action at this time.
0 commit comments