diff options
author | Martin Odersky <odersky@gmail.com> | 2005-12-02 11:03:12 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-12-02 11:03:12 +0000 |
commit | 0ca9ad8078d5ca0a163b360ef02e25aeb47b3664 (patch) | |
tree | 46adce575fa238c951ddb1674d712ca1a0c80bc9 | |
parent | 854954dc3a491ede5308a0412f535bae7c668b2f (diff) | |
download | scala-0ca9ad8078d5ca0a163b360ef02e25aeb47b3664.tar.gz scala-0ca9ad8078d5ca0a163b360ef02e25aeb47b3664.tar.bz2 scala-0ca9ad8078d5ca0a163b360ef02e25aeb47b3664.zip |
*** empty log message ***
-rwxr-xr-x | sources/scala/tools/nsc/transform/Mixin.scala | 2 | ||||
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/ConstantFolder.scala | 2 | ||||
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/Infer.scala | 10 |
3 files changed, 8 insertions, 6 deletions
diff --git a/sources/scala/tools/nsc/transform/Mixin.scala b/sources/scala/tools/nsc/transform/Mixin.scala index a3ab33771b..7fb5817d02 100755 --- a/sources/scala/tools/nsc/transform/Mixin.scala +++ b/sources/scala/tools/nsc/transform/Mixin.scala @@ -101,7 +101,7 @@ abstract class Mixin extends InfoTransform { if (mixin.isImplClass) { addLateInterfaceMembers(mixin.toInterface); for (val member <- mixin.info.decls.toList) { - System.out.println("adding forwarded method " + member + member.locationString + " to " + clazz + " " + clazz.info.member(member.name).alternatives);//debug + //System.out.println("adding forwarded method " + member + " " + mmap(member) + member.locationString + " to " + clazz + " " + clazz.info.member(member.name).alternatives);//DEBUG if (isForwarded(member) && !isStatic(member) && (clazz.info.findMember(member.name, 0, 0).alternatives contains mmap(member))) { val member1 = addMember( diff --git a/sources/scala/tools/nsc/typechecker/ConstantFolder.scala b/sources/scala/tools/nsc/typechecker/ConstantFolder.scala index 7883246424..7e4864e2ea 100755 --- a/sources/scala/tools/nsc/typechecker/ConstantFolder.scala +++ b/sources/scala/tools/nsc/typechecker/ConstantFolder.scala @@ -60,7 +60,7 @@ abstract class ConstantFolder { case nme.NE => Constant(x.booleanValue != y.booleanValue) case _ => null } - case ByteTag | ShortTag | LongTag | IntTag => + case ByteTag | ShortTag | CharTag | IntTag => op match { case nme.OR => Constant(x.intValue | y.intValue) case nme.XOR => Constant(x.intValue ^ y.intValue) diff --git a/sources/scala/tools/nsc/typechecker/Infer.scala b/sources/scala/tools/nsc/typechecker/Infer.scala index e6c35e42d8..8f2472041a 100755 --- a/sources/scala/tools/nsc/typechecker/Infer.scala +++ b/sources/scala/tools/nsc/typechecker/Infer.scala @@ -553,7 +553,8 @@ package scala.tools.nsc.typechecker; } typeErrorTree(tree, tree.symbol.tpe, pt) } else if (!competing.isEmpty) { - context.ambiguousError(tree.pos, pre, best, competing.head, "expected type " + pt); + if (!pt.isError) + context.ambiguousError(tree.pos, pre, best, competing.head, "expected type " + pt); setError(tree); () } else { @@ -589,9 +590,10 @@ package scala.tools.nsc.typechecker; inferMethodAlternative(tree, undetparams, argtpes, WildcardType) } } else if (!competing.isEmpty) { - context.ambiguousError(tree.pos, pre, best, competing.head, - "argument types " + argtpes.mkString("(", ",", ")") + - (if (pt == WildcardType) "" else " and expected result type " + pt)); + if (!(argtpes exists (.isError)) && !pt.isError) + context.ambiguousError(tree.pos, pre, best, competing.head, + "argument types " + argtpes.mkString("(", ",", ")") + + (if (pt == WildcardType) "" else " and expected result type " + pt)); setError(tree); () } else { |