diff options
author | Matthias Zenger <mzenger@gmail.com> | 2003-09-24 22:21:00 +0000 |
---|---|---|
committer | Matthias Zenger <mzenger@gmail.com> | 2003-09-24 22:21:00 +0000 |
commit | 423ecdde9b683f8b32624e5e08930c7f461dca4e (patch) | |
tree | 023d3e4d85ed27a5def1dfe7946da6c77e5b75e9 /sources/scalac/typechecker | |
parent | 191c921e2e289b9e2daf7cb4e5b5a45d5dff8de5 (diff) | |
download | scala-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.java | 7 |
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 { |