summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-11-27 14:14:45 +0000
committerMartin Odersky <odersky@gmail.com>2006-11-27 14:14:45 +0000
commit6538ff2bea57b2c14e4cb27a06e10c0dbe7081bb (patch)
treefddf9843369dc814085e6f2e9193c6f2e5744014
parent2cd214e5fe5a6db7928400918c2482cbcd911e72 (diff)
downloadscala-6538ff2bea57b2c14e4cb27a06e10c0dbe7081bb.tar.gz
scala-6538ff2bea57b2c14e4cb27a06e10c0dbe7081bb.tar.bz2
scala-6538ff2bea57b2c14e4cb27a06e10c0dbe7081bb.zip
1. fixed bug834
2. changed implicit in Predef so that x+"abc" is now allowed for non-string x.
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala10
-rw-r--r--src/library/scala/Predef.scala2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index 668730f36e..167b8be1c8 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -182,8 +182,14 @@ abstract class UnCurry extends InfoTransform with TypingTransformers {
Apply(Select(Ident(ex), "key"), List()),
Object_eq),
List(Ident(key))),
- Apply(Select(Ident(ex), "value"), List()),
- Throw(Ident(ex)));
+ Apply(
+ TypeApply(
+ Select(
+ Apply(Select(Ident(ex), "value"), List()),
+ Any_asInstanceOf),
+ List(TypeTree(meth.tpe.finalResultType))),
+ List()),
+ Throw(Ident(ex)))
val keyDef = ValDef(key, New(TypeTree(ObjectClass.tpe), List(List())))
val tryCatch = Try(body, List(CaseDef(pat, EmptyTree, rhs)), EmptyTree)
Block(List(keyDef), tryCatch)
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index 6af6f273ce..9985a4f855 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -129,7 +129,7 @@ object Predef {
implicit def stringWrapper(x: String) = new runtime.RichString(x)
- implicit def any2stringadd(x: String) = new runtime.StringAdd(x)
+ implicit def any2stringadd(x: Any) = new runtime.StringAdd(x)
implicit def exceptionWrapper(exc: Throwable) = new runtime.RichException(exc)