aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/transform/PatternMatcher.scala3
-rw-r--r--tests/pos/i1269.scala16
2 files changed, 17 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala
index 974053769..92d638be9 100644
--- a/src/dotty/tools/dotc/transform/PatternMatcher.scala
+++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala
@@ -763,9 +763,8 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
def outerTest(testedBinder: Symbol, expectedTp: Type): Tree = {
val expectedOuter = expectedTp.normalizedPrefix match {
- //case ThisType(clazz) => This(clazz)
//case NoType => Literal(Constant(true)) // fallback for SI-6183 todo?
- case pre => ref(pre.termSymbol)
+ case pre: SingletonType => singleton(pre)
}
// ExplicitOuter replaces `Select(q, outerSym) OBJ_EQ expectedPrefix` by `Select(q, outerAccessor(outerSym.owner)) OBJ_EQ expectedPrefix`
diff --git a/tests/pos/i1269.scala b/tests/pos/i1269.scala
new file mode 100644
index 000000000..c0b56e1ea
--- /dev/null
+++ b/tests/pos/i1269.scala
@@ -0,0 +1,16 @@
+trait Module {
+ sealed abstract class Tree
+
+ case class LetL() extends Tree
+
+ object O {
+ case class LetR() extends Tree
+ }
+}
+
+class Patmat(val module: Module) {
+ def patmat(tree: module.Tree) = tree match {
+ case module.LetL() =>
+ case module.O.LetR() =>
+ }
+}