Skip to content

Commit 4ddaf55

Browse files
committed
Showcase bug
Reproduce with: sbt run -Ycheck:elimErasedValueType tests/pos/vcblock.scala sbt run -Ycheck:elimErasedValueType tests/pos/vcif.scala
1 parent a79370c commit 4ddaf55

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

src/dotty/tools/dotc/Compiler.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ class Compiler {
6060
new ElimByName,
6161
new ResolveSuper),
6262
List(new Erasure),
63-
List(new ElimErasedValueType,
64-
new ValueClassesPeepholeOptimize,
63+
List(new ElimErasedValueType),
64+
List(//new ValueClassesPeepholeOptimize,
6565
new Mixin,
6666
new Memoize,
6767
new CapturedVars,

src/dotty/tools/dotc/transform/ElimErasedValueType.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,14 @@ class ElimErasedValueType extends MiniPhaseTransform with DenotTransformer {
8989
transformTypeOfTree(tree)
9090
override def transformSelect(tree: Select)(implicit ctx: Context, info: TransformerInfo): Tree =
9191
transformTypeOfTree(tree)
92+
93+
// Disabled to showcase the bug.
94+
/*
9295
override def transformBlock(tree: Block)(implicit ctx: Context, info: TransformerInfo): Tree =
9396
transformTypeOfTree(tree)
9497
override def transformIf(tree: If)(implicit ctx: Context, info: TransformerInfo): Tree =
9598
transformTypeOfTree(tree)
99+
*/
96100
override def transformSeqLiteral(tree: SeqLiteral)(implicit ctx: Context, info: TransformerInfo): Tree =
97101
transformTypeOfTree(tree)
98102
override def transformTypeTree(tree: TypeTree)(implicit ctx: Context, info: TransformerInfo): Tree =

test/dotc/tests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class tests extends CompilerTest {
1515

1616
implicit val defaultOptions = noCheckOptions ++ List(
1717
"-Yno-deep-subtypes",
18-
"-Ycheck:tailrec,resolveSuper,mixin,restoreScopes",
18+
"-Ycheck:tailrec,resolveSuper,elimErasedValueType,mixin,restoreScopes",
1919
"-d", "./out/"
2020
)
2121

tests/pos/vcblock.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Position(val foo: Int) extends AnyVal {
2+
def thing(): Position = {
3+
val y = new Position(1)
4+
y
5+
}
6+
}

tests/pos/vcif.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class Position(val foo: Int) extends AnyVal {
2+
def orElse(that: Position) =
3+
if (this != null) this else that
4+
}

0 commit comments

Comments
 (0)