Skip to content

Commit 3a8fa8b

Browse files
committed
Merge pull request #1120 from dotty-staging/fix-1114-patmat
PatMat: remove one more trace of doing several steps at a time
2 parents d7d5ffc + e5c8cb4 commit 3a8fa8b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1543,7 +1543,7 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
15431543
val spb = subPatBinders
15441544
ExtractorTreeMaker(extractorApply, lengthGuard(binder), binder)(
15451545
spb,
1546-
subPatRefs(binder, spb, binderTypeTested),
1546+
subPatRefs(binder, spb, resultType),
15471547
aligner.isBool,
15481548
checkedLength,
15491549
patBinderOrCasted,

tests/run/patmat-option-named.scala

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
case class HasSingleField(f: HasSingleField)
2+
3+
object Test {
4+
5+
def main(args: Array[String]) = {
6+
val s: Object = HasSingleField(null)
7+
s match {
8+
case Matcher(self) =>
9+
assert(self ne null)
10+
}
11+
}
12+
}
13+
14+
object Matcher {
15+
def unapply(x: Object): Option[HasSingleField] = {
16+
if (x.isInstanceOf[HasSingleField])
17+
Some(x.asInstanceOf[HasSingleField])
18+
else
19+
None
20+
}
21+
}

0 commit comments

Comments
 (0)