diff options
author | Martin Odersky <odersky@gmail.com> | 2004-04-08 15:58:45 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2004-04-08 15:58:45 +0000 |
commit | 8dd1635f7f4661e39eb9b77a56e14f92e0379786 (patch) | |
tree | 47f0e843fc04fd62aed9d4ae0006a7f9ab79768a /sources | |
parent | 34dca6ad930cd4bc8d3e6916364d7a75c9fe41fd (diff) | |
download | scala-8dd1635f7f4661e39eb9b77a56e14f92e0379786.tar.gz scala-8dd1635f7f4661e39eb9b77a56e14f92e0379786.tar.bz2 scala-8dd1635f7f4661e39eb9b77a56e14f92e0379786.zip |
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/tools/scalac/typechecker/Analyzer.scala | 3 | ||||
-rw-r--r-- | sources/scalac/ast/TreeGen.java | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/sources/scala/tools/scalac/typechecker/Analyzer.scala b/sources/scala/tools/scalac/typechecker/Analyzer.scala index e9b45b6c3e..3c0d37861c 100644 --- a/sources/scala/tools/scalac/typechecker/Analyzer.scala +++ b/sources/scala/tools/scalac/typechecker/Analyzer.scala @@ -575,7 +575,7 @@ class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer( val vapp = transform( make.Apply(tree.pos, vexpr, NewArray.Tree(tree)), mode, pt); if (v.symtype.isObjectType()) { - val tree1 = transform(tree.duplicate(), mode, pt); + val tree1 = gen.mkAsInstanceOf(tree.duplicate(), vapp.getType()); gen.If( gen.Apply( gen.Select( @@ -1650,7 +1650,6 @@ class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer( if (v != null) { qual = applyView( v, qual.setType(qual.getType().singleDeref()), EXPRmode, Type.AnyType); - System.out.println("app view " + qual + ":" + qual.getType());//debug sym = qual.getType().lookup(name); assert(sym.kind != NONE); } else { diff --git a/sources/scalac/ast/TreeGen.java b/sources/scalac/ast/TreeGen.java index 4abd940f9c..405f14d618 100644 --- a/sources/scalac/ast/TreeGen.java +++ b/sources/scalac/ast/TreeGen.java @@ -356,14 +356,16 @@ public class TreeGen implements Kinds, Modifiers, TypeTags { */ public Tree mkApplyTV(int pos, Tree fn, Type[] targs, Tree[] vargs) { if (targs.length != 0) fn = TypeApply(pos, fn, mkTypes(pos, targs)); - return Apply(pos, fn, vargs); + if (vargs.length == 0 && fn.getType().isObjectType()) return fn; + else return Apply(pos, fn, vargs); } public Tree mkApplyTV(Tree fn, Type[] targs, Tree[] vargs) { return mkApplyTV(fn.pos, fn, targs, vargs); } public Tree mkApplyTV(int pos, Tree fn, Tree[] targs, Tree[] vargs) { if (targs.length != 0) fn = TypeApply(pos, fn, targs); - return Apply(pos, fn, vargs); + if (vargs.length == 0 && fn.getType().isObjectType()) return fn; + else return Apply(pos, fn, vargs); } public Tree mkApplyTV(Tree fn, Tree[] targs, Tree[] vargs) { return mkApplyTV(fn.pos, fn, targs, vargs); |