diff options
author | Matthias Zenger <mzenger@gmail.com> | 2003-09-24 21:09:23 +0000 |
---|---|---|
committer | Matthias Zenger <mzenger@gmail.com> | 2003-09-24 21:09:23 +0000 |
commit | 191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5 (patch) | |
tree | 921dabb49fa86dea8a44686d33fbc9fbe6351712 /sources/scalac/transformer | |
parent | 810aefd0aa810ba98bbb49fa0e1142b04f856369 (diff) | |
download | scala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.tar.gz scala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.tar.bz2 scala-191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5.zip |
Fixed bug 149
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r-- | sources/scalac/transformer/matching/PatternMatcher.java | 18 |
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); |