summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker
diff options
context:
space:
mode:
authorMatthias Zenger <mzenger@gmail.com>2003-09-24 22:21:00 +0000
committerMatthias Zenger <mzenger@gmail.com>2003-09-24 22:21:00 +0000
commit423ecdde9b683f8b32624e5e08930c7f461dca4e (patch)
tree023d3e4d85ed27a5def1dfe7946da6c77e5b75e9 /sources/scalac/typechecker
parent191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5 (diff)
downloadscala-423ecdde9b683f8b32624e5e08930c7f461dca4e.tar.gz
scala-423ecdde9b683f8b32624e5e08930c7f461dca4e.tar.bz2
scala-423ecdde9b683f8b32624e5e08930c7f461dca4e.zip
Support for pattern matching on Jaco case class...
Support for pattern matching on Jaco case classes in Scala.
Diffstat (limited to 'sources/scalac/typechecker')
-rw-r--r--sources/scalac/typechecker/Analyzer.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java
index f840da0c30..3bec1700e2 100644
--- a/sources/scalac/typechecker/Analyzer.java
+++ b/sources/scalac/typechecker/Analyzer.java
@@ -1226,7 +1226,12 @@ public class Analyzer extends Transformer implements Modifiers, Kinds {
if (clazz.isCaseClass()) {
// set type to instantiated case class constructor
tree.type = tree.type.prefix().memberType(
- clazz.primaryConstructor());
+ clazz.primaryConstructor());
+ // MZ: this is a hack, but I didn't know how to do it better
+ if ((clazz.flags & (JAVA | CASE)) == (JAVA | CASE)) {
+ tree.type = tree.type.prefix().memberType(
+ clazz.allConstructors().alternativeSymbols()[1]);
+ }
switch (tree.type) {
case PolyType(Symbol[] tparams, Type restp):
try {