File tree 1 file changed +7
-8
lines changed
compiler/src/dotty/tools/dotc/transform
1 file changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -37,15 +37,14 @@ class SpecializeTuples extends MiniPhase:
37
37
end transformApply
38
38
39
39
override def transformSelect (tree : Select )(using Context ): Tree = tree match
40
- case Select (qual, nme._1) if isAppliedSpecializableTuple(qual.tpe.widenDealias) =>
41
- Select (qual, nme._1.specializedName(qual.tpe.widenDealias.argInfos.slice(0 , 1 )))
42
- case Select (qual, nme._2) if isAppliedSpecializableTuple(qual.tpe.widenDealias) =>
43
- Select (qual, nme._2.specializedName(qual.tpe.widenDealias.argInfos.slice(1 , 2 )))
40
+ case Select (qual, name @ (nme._1 | nme._2)) =>
41
+ qual.tpe.widenDealias match
42
+ case AppliedType (tycon, args) if defn.isSpecializableTuple(tycon.classSymbol, args) =>
43
+ val argIdx = if name == nme._1 then 0 else 1
44
+ Select (qual, name.specializedName(args(argIdx) :: Nil ))
45
+ case _ =>
46
+ tree
44
47
case _ => tree
45
-
46
- private def isAppliedSpecializableTuple (tp : Type )(using Context ) = tp match
47
- case AppliedType (tycon, args) => defn.isSpecializableTuple(tycon.classSymbol, args)
48
- case _ => false
49
48
end SpecializeTuples
50
49
51
50
object SpecializeTuples :
You can’t perform that action at this time.
0 commit comments