Skip to content

Commit bec2660

Browse files
committed
Try to not add a transformer
1 parent 83a60b6 commit bec2660

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,10 @@ class TreeUnpickler(reader: TastyReader,
11941194
res.withAttachment(SuppressedApplyToNone, ())
11951195
else res
11961196

1197+
def simplifyLub(tree: Tree): Tree =
1198+
tree.overwriteType(tree.tpe.simplified)
1199+
tree
1200+
11971201
def readLengthTerm(): Tree = {
11981202
val end = readEnd()
11991203
val result =
@@ -1232,34 +1236,37 @@ class TreeUnpickler(reader: TastyReader,
12321236
val expansion = exprReader.readTerm() // need bindings in scope, so needs to be read before
12331237
Inlined(call, bindings, expansion)
12341238
case IF =>
1235-
if (nextByte == INLINE) {
1236-
readByte()
1237-
InlineIf(readTerm(), readTerm(), readTerm())
1238-
}
1239-
else
1240-
If(readTerm(), readTerm(), readTerm())
1239+
simplifyLub(
1240+
if (nextByte == INLINE) {
1241+
readByte()
1242+
InlineIf(readTerm(), readTerm(), readTerm())
1243+
}
1244+
else
1245+
If(readTerm(), readTerm(), readTerm()))
12411246
case LAMBDA =>
12421247
val meth = readTerm()
12431248
val tpt = ifBefore(end)(readTpt(), EmptyTree)
12441249
Closure(Nil, meth, tpt)
12451250
case MATCH =>
1246-
if (nextByte == IMPLICIT) {
1247-
readByte()
1248-
InlineMatch(EmptyTree, readCases(end))
1249-
}
1250-
else if (nextByte == INLINE) {
1251-
readByte()
1252-
InlineMatch(readTerm(), readCases(end))
1253-
}
1254-
else Match(readTerm(), readCases(end))
1251+
simplifyLub(
1252+
if (nextByte == IMPLICIT) {
1253+
readByte()
1254+
InlineMatch(EmptyTree, readCases(end))
1255+
}
1256+
else if (nextByte == INLINE) {
1257+
readByte()
1258+
InlineMatch(readTerm(), readCases(end))
1259+
}
1260+
else Match(readTerm(), readCases(end)))
12551261
case RETURN =>
12561262
val from = readSymRef()
12571263
val expr = ifBefore(end)(readTerm(), EmptyTree)
12581264
Return(expr, Ident(from.termRef))
12591265
case WHILE =>
12601266
WhileDo(readTerm(), readTerm())
12611267
case TRY =>
1262-
Try(readTerm(), readCases(end), ifBefore(end)(readTerm(), EmptyTree))
1268+
simplifyLub(
1269+
Try(readTerm(), readCases(end), ifBefore(end)(readTerm(), EmptyTree)))
12631270
case SELECTouter =>
12641271
val levels = readNat()
12651272
readTerm().outerSelect(levels, SkolemType(readType()))

compiler/src/dotty/tools/dotc/transform/Pickler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class Pickler extends Phase {
137137
}
138138
pickling.println("************* entered toplevel ***********")
139139
for ((cls, unpickler) <- unpicklers) {
140-
val unpickled = typeSimplifier.transform(unpickler.rootTrees)
140+
val unpickled = unpickler.rootTrees
141141
testSame(i"$unpickled%\n%", beforePickling(cls), cls)
142142
}
143143
}

0 commit comments

Comments
 (0)