From 1952b9c5cde55aa619ba5b6c714d79db56e1986e Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Wed, 23 May 2012 12:45:30 +0200 Subject: more tests for SI-3761 --- test/files/neg/t3761-overload-byname.check | 13 +++++++++++++ test/files/neg/t3761-overload-byname.scala | 13 +++++++++++++ test/files/run/t3761-overload-byname.check | 6 ++++++ test/files/run/t3761-overload-byname.scala | 18 +++++++++++++++++- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 test/files/neg/t3761-overload-byname.check create mode 100644 test/files/neg/t3761-overload-byname.scala (limited to 'test') diff --git a/test/files/neg/t3761-overload-byname.check b/test/files/neg/t3761-overload-byname.check new file mode 100644 index 0000000000..ae7d21dfa6 --- /dev/null +++ b/test/files/neg/t3761-overload-byname.check @@ -0,0 +1,13 @@ +t3761-overload-byname.scala:9: error: ambiguous reference to overloaded definition, +both method m1 in object t of type (x: => Int, s: Object)Int +and method m1 in object t of type (x: => AnyVal, s: String)Int +match argument types (Int,String) + m1(1, "") + ^ +t3761-overload-byname.scala:11: error: ambiguous reference to overloaded definition, +both method m2 in object t of type (x: => Int, s: Object)Int +and method m2 in object t of type (x: => Any, s: String)Int +match argument types (Int,String) + m2(1, "") + ^ +two errors found diff --git a/test/files/neg/t3761-overload-byname.scala b/test/files/neg/t3761-overload-byname.scala new file mode 100644 index 0000000000..5b9a381b93 --- /dev/null +++ b/test/files/neg/t3761-overload-byname.scala @@ -0,0 +1,13 @@ +object t { + def m1(x: => AnyVal, s: String) = 0 + def m1(x: => Int, s: Object) = 1 + + def m2(x: => Any, s: String) = 0 + def m2(x: => Int, s: Object) = 1 + + + m1(1, "") + m1(1d, "") + m2(1, "") + m2("", "") +} diff --git a/test/files/run/t3761-overload-byname.check b/test/files/run/t3761-overload-byname.check index 3a0a273e64..ab7eff0d8a 100644 --- a/test/files/run/t3761-overload-byname.check +++ b/test/files/run/t3761-overload-byname.check @@ -4,3 +4,9 @@ goodnight! goodnight moon, nobody, noises everywhere 0 1 +0 +1 +0 +1 +0 +1 diff --git a/test/files/run/t3761-overload-byname.scala b/test/files/run/t3761-overload-byname.scala index b1656c97ba..a52d866097 100644 --- a/test/files/run/t3761-overload-byname.scala +++ b/test/files/run/t3761-overload-byname.scala @@ -8,8 +8,18 @@ class OverTheTop { def info1(m: =>String, args: Any*) = m +" "+ args.mkString(", ") // @lrytz - def m[A](x: => Int) = 0; def m[A](x: => Int, xs: Int*) = 1 + def m[A](x: => Int) = 0; def m[A](x: => Int, xs: Int*) = 1 + + def m1(x: => Int, s: String) = 0 + def m1(x: => Int, s: Object) = 1 + + def m2(x: => Int, s: String) = 0 + def m2(x: => AnyVal, s: Object) = 1 + + def m3(x: => Int, s: String) = 0 + def m3(x: => Any, s: Object) = 1 } + object Test { def main(args: Array[String]) { val top = new OverTheTop @@ -19,5 +29,11 @@ object Test { println(top.info1("goodnight", "moon", "nobody", "noises everywhere")) println(top.m(17)) println(top.m(17,19)) + println(top.m1(1, "two")) + println(top.m1(1, new Object())) + println(top.m2(1, "")) + println(top.m2(1d, "")) + println(top.m3(1, "")) + println(top.m3("", "")) } } -- cgit v1.2.3