summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2009-06-20 08:19:40 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2009-06-20 08:19:40 +0000
commit0e170e4b695adafb3f3d5823026ccf8d10047be3 (patch)
tree58dd5a4ca9e73602222733720c5ead9612e0282e /test/files/neg
parent60810d5c03ef614497d3a8ba5ad23d44e48194a8 (diff)
downloadscala-0e170e4b695adafb3f3d5823026ccf8d10047be3.tar.gz
scala-0e170e4b695adafb3f3d5823026ccf8d10047be3.tar.bz2
scala-0e170e4b695adafb3f3d5823026ccf8d10047be3.zip
improvements to names / defaults (implicits, ty...
improvements to names / defaults (implicits, type of defaults, #2064, ...)
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/bug550.check2
-rw-r--r--test/files/neg/names-defaults-neg.check41
-rw-r--r--test/files/neg/names-defaults-neg.scala21
-rw-r--r--test/files/neg/t0226.check2
4 files changed, 46 insertions, 20 deletions
diff --git a/test/files/neg/bug550.check b/test/files/neg/bug550.check
index 1cdb7931ca..bf92f6bb05 100644
--- a/test/files/neg/bug550.check
+++ b/test/files/neg/bug550.check
@@ -1,7 +1,7 @@
bug550.scala:6: error: type List takes type parameters
def sum[a](xs: List)(implicit m: Monoid[a]): a =
^
-bug550.scala:8: error: no implicit argument matching parameter type Monoid[a] was found.
+bug550.scala:8: error: could not find implicit value for parameter m:Monoid[a].
sum(List(1,2,3))
^
two errors found
diff --git a/test/files/neg/names-defaults-neg.check b/test/files/neg/names-defaults-neg.check
index b208157c6a..f1db7676dd 100644
--- a/test/files/neg/names-defaults-neg.check
+++ b/test/files/neg/names-defaults-neg.check
@@ -1,4 +1,5 @@
-names-defaults-neg.scala:63: error: not enough arguments for method apply: (a: Int,b: String)(c: Int*)Fact in object Fact, unspecified parameter: value b
+names-defaults-neg.scala:63: error: not enough arguments for method apply: (a: Int,b: String)(c: Int*)Fact in object Fact.
+Unspecified value parameter b.
val fac = Fact(1)(2, 3)
^
names-defaults-neg.scala:5: error: type mismatch;
@@ -71,23 +72,33 @@ and method f in object t8 of type (a: Int,b: java.lang.Object)java.lang.String
match argument types (a: Int,b: java.lang.String) and expected result type Any
println(t8.f(a = 0, b = "1")) // ambigous reference
^
-names-defaults-neg.scala:75: error: multiple overloaded alternatives of method foo define default arguments
+names-defaults-neg.scala:67: error: wrong number of arguments for <none>: (x: Int,y: String)A1
+ A1() match { case A1(_) => () }
+ ^
+names-defaults-neg.scala:74: error: inferred kinds of the type arguments (List[Int]) do not conform to the expected kinds of the type parameters (type T).
+List[Int]'s type parameters do not match type T's expected parameters: class List has one type parameter, but type T has one
+ test4()
+ ^
+error: type mismatch;
+ found : List[Int]
+ required: List[List[List[List[X forSome { type X }]]]]
+names-defaults-neg.scala:77: error: type mismatch;
+ found : List[Int]
+ required: List[List[?]]
+ def test6[T](x: List[List[T]] = List(1,2)) = x
+ ^
+names-defaults-neg.scala:80: error: type mismatch;
+ found : Int
+ required: String
+ new A2[String]()
+ ^
+names-defaults-neg.scala:90: error: multiple overloaded alternatives of method foo define default arguments
def foo(a: Int = 0) = a
^
-names-defaults-neg.scala:85: error: multiple overloaded alternatives of method foo define default arguments
+names-defaults-neg.scala:100: error: multiple overloaded alternatives of method foo define default arguments
override def foo(a: Int = 1092) = a
^
-names-defaults-neg.scala:88: error: type mismatch;
- found : Int(129083)
- required: java.lang.String
- def bar(i: Int = 129083) = i
- ^
-names-defaults-neg.scala:88: error: multiple overloaded alternatives of method bar define default arguments
+names-defaults-neg.scala:103: error: multiple overloaded alternatives of method bar define default arguments
def bar(i: Int = 129083) = i
^
-names-defaults-neg.scala:95: error: type mismatch;
- found : java.lang.Object
- required: java.lang.String
-class B5 extends A5 { override def foo(a: Object = new Object) = 1 }
- ^
-22 errors found \ No newline at end of file
+25 errors found
diff --git a/test/files/neg/names-defaults-neg.scala b/test/files/neg/names-defaults-neg.scala
index 68cdcf782f..2e9f755174 100644
--- a/test/files/neg/names-defaults-neg.scala
+++ b/test/files/neg/names-defaults-neg.scala
@@ -63,6 +63,21 @@ object Test extends Application {
val fac = Fact(1)(2, 3)
val facc = fac.copy(b = "dlkfj")()
+ // no defaults in patterns
+ A1() match { case A1(_) => () }
+
+
+ // return types of default getters
+
+ // definition compiles, but default cannot be used, it doesn't conform
+ def test4[T[P]](x: T[T[List[T[X forSome { type X }]]]] = List(1,2)) = x
+ test4()
+
+ // doesn't compile
+ def test6[T](x: List[List[T]] = List(1,2)) = x
+
+ // correct error message
+ new A2[String]()
// DEFINITIONS
def test1(a: Int, b: String) = a +": "+ b
@@ -90,6 +105,6 @@ class C extends B {
case class Fact(a: Int, b: String)(c: Int*)
-// overriding default must have same type
-class A5 { def foo(a: Object = "dlkf") = 0 }
-class B5 extends A5 { override def foo(a: Object = new Object) = 1 }
+case class A1(x: Int = 1, y: String = "2")
+
+class A2[T](a: T = 1)
diff --git a/test/files/neg/t0226.check b/test/files/neg/t0226.check
index 0935a3b14e..8464d72914 100644
--- a/test/files/neg/t0226.check
+++ b/test/files/neg/t0226.check
@@ -4,7 +4,7 @@ t0226.scala:5: error: not found: type A1
t0226.scala:5: error: not found: type A1
(implicit _1: Foo[List[A1]], _2: Foo[A2]): Foo[Tuple2[List[A1], A2]] =
^
-t0226.scala:8: error: no implicit argument matching parameter type Test.this.Foo[((List[Char], Int), (object Nil, Int))] was found.
+t0226.scala:8: error: could not find implicit value for parameter rep:Test.this.Foo[((List[Char], Int), (object Nil, Int))].
foo(((List('b'), 3), (Nil, 4)))
^
three errors found