File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed
compiler/src/dotty/tools/dotc/core Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -39,14 +39,17 @@ object NamerOps:
39
39
*/
40
40
extension (tp : Type )
41
41
def separateRefinements (cls : ClassSymbol , refinements : mutable.LinkedHashMap [Name , Type ] | Null )(using Context ): Type =
42
+ val widenSkolemsMap = new TypeMap :
43
+ def apply (tp : Type ) = mapOver(tp.widenSkolem)
42
44
tp match
43
45
case RefinedType (tp1, rname, rinfo) =>
44
46
try tp1.separateRefinements(cls, refinements)
45
47
finally
46
48
if refinements != null then
49
+ val rinfo1 = widenSkolemsMap(rinfo)
47
50
refinements(rname) = refinements.get(rname) match
48
- case Some (tp) => tp & rinfo
49
- case None => rinfo
51
+ case Some (tp) => tp & rinfo1
52
+ case None => rinfo1
50
53
case tp @ AnnotatedType (tp1, ann) =>
51
54
tp.derivedAnnotatedType(tp1.separateRefinements(cls, refinements), ann)
52
55
case tp : RecType =>
Original file line number Diff line number Diff line change
1
+ import language .experimental .modularity
2
+
3
+ class T (tracked val y : Int )
4
+ class C (tracked val x : Int ) extends T (x + 1 )
You can’t perform that action at this time.
0 commit comments