summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/PatternMatcher.java
diff options
context:
space:
mode:
authorMatthias Zenger <mzenger@gmail.com>2003-09-24 21:09:23 +0000
committerMatthias Zenger <mzenger@gmail.com>2003-09-24 21:09:23 +0000
commit191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5 (patch)
tree921dabb49fa86dea8a44686d33fbc9fbe6351712 /sources/scalac/transformer/matching/PatternMatcher.java
parent810aefd0aa810ba98bbb49fa0e1142b04f856369 (diff)
downloadscala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.tar.gz
scala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.tar.bz2
scala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.zip
Fixed bug 149
Diffstat (limited to 'sources/scalac/transformer/matching/PatternMatcher.java')
-rw-r--r--sources/scalac/transformer/matching/PatternMatcher.java18
1 files changed, 4 insertions, 14 deletions
diff --git a/sources/scalac/transformer/matching/PatternMatcher.java b/sources/scalac/transformer/matching/PatternMatcher.java
index e3dc2a4bf7..8466362731 100644
--- a/sources/scalac/transformer/matching/PatternMatcher.java
+++ b/sources/scalac/transformer/matching/PatternMatcher.java
@@ -472,20 +472,10 @@ public class PatternMatcher extends PatternTool {
} else {
Symbol ts = ((ClassSymbol) casted.type().symbol())
.caseFieldAccessor(index);
-// target.and = curHeader = mk.Header(
-// pat.pos,
-// getHeaderType(typeOf0(ts)),
-// make.Select(
-// pat.pos,
-// make.Ident(pat.pos, casted.name)
-// .setType(typeOf(casted))
-// .setSymbol(casted),
-// ts.name)
-// .setType(getHeaderType(typeOf0(ts)))
-// .setSymbol(ts));
+ Type accType = casted.type().memberType(ts);
target.and = curHeader = mk.Header(
pat.pos,
- ts.type().resultType(),
+ accType.resultType(),
make.Apply(
pat.pos,
make.Select(
@@ -496,9 +486,9 @@ public class PatternMatcher extends PatternTool {
ts.name)
.setType(Type.MethodType(
Symbol.EMPTY_ARRAY,
- ts.type().resultType()))
+ accType.resultType()))
.setSymbol(ts),
- Tree.EMPTY_ARRAY).setType(ts.type().resultType().asSeenFrom(casted.type(), ts.owner())));
+ Tree.EMPTY_ARRAY).setType(accType.resultType()));
}
curHeader.or = patternNode(pat, curHeader, env);
return enter(patArgs, curHeader.or, casted, env);