summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2009-11-12 13:30:08 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2009-11-12 13:30:08 +0000
commit55ce01a926ec6fcc0474a905a6a0026811527d72 (patch)
treea6600aef9c9c981bda8252c28f1a542acf9a7511 /test
parentdf13e31bbb5f0dedc9739687bae553512a4a2517 (diff)
downloadscala-55ce01a926ec6fcc0474a905a6a0026811527d72.tar.gz
scala-55ce01a926ec6fcc0474a905a6a0026811527d72.tar.bz2
scala-55ce01a926ec6fcc0474a905a6a0026811527d72.zip
Merged revisions 19543,19545-19547 via svnmerge...
Merged revisions 19543,19545-19547 via svnmerge from https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r19543 | rytz | 2009-11-12 12:10:13 +0100 (Thu, 12 Nov 2009) | 1 line fixed #2470. ........ r19545 | cunei | 2009-11-12 13:07:09 +0100 (Thu, 12 Nov 2009) | 2 lines removed disabled files ........ r19546 | rytz | 2009-11-12 13:31:49 +0100 (Thu, 12 Nov 2009) | 1 line fix #2488. ........ r19547 | odersky | 2009-11-12 14:08:04 +0100 (Thu, 12 Nov 2009) | 1 line Allow protected access to constructor in superclass. Closes #1836 ........
Diffstat (limited to 'test')
-rw-r--r--test/files/jvm/t2470.check1
-rw-r--r--test/files/jvm/t2470/Action.java6
-rw-r--r--test/files/jvm/t2470/Read_Classfile_2.scala3
-rw-r--r--test/files/jvm/t2470/Task.java3
-rw-r--r--test/files/jvm/t2470/Test_1.scala11
-rw-r--r--test/files/neg/names-defaults-neg.check49
-rw-r--r--test/files/neg/names-defaults-neg.scala1
-rw-r--r--test/files/run/names-defaults.check4
-rw-r--r--test/files/run/names-defaults.scala2
9 files changed, 53 insertions, 27 deletions
diff --git a/test/files/jvm/t2470.check b/test/files/jvm/t2470.check
new file mode 100644
index 0000000000..11539b2a9f
--- /dev/null
+++ b/test/files/jvm/t2470.check
@@ -0,0 +1 @@
+List(@Action(block=ACTION))
diff --git a/test/files/jvm/t2470/Action.java b/test/files/jvm/t2470/Action.java
new file mode 100644
index 0000000000..62c71c43f1
--- /dev/null
+++ b/test/files/jvm/t2470/Action.java
@@ -0,0 +1,6 @@
+import java.lang.annotation.*;
+
+@Retention(value=RetentionPolicy.RUNTIME)
+public @interface Action {
+ Task.Scope block() default Task.Scope.ACTION;
+}
diff --git a/test/files/jvm/t2470/Read_Classfile_2.scala b/test/files/jvm/t2470/Read_Classfile_2.scala
new file mode 100644
index 0000000000..07961776dd
--- /dev/null
+++ b/test/files/jvm/t2470/Read_Classfile_2.scala
@@ -0,0 +1,3 @@
+class Read {
+ val t = Test
+}
diff --git a/test/files/jvm/t2470/Task.java b/test/files/jvm/t2470/Task.java
new file mode 100644
index 0000000000..64004b5867
--- /dev/null
+++ b/test/files/jvm/t2470/Task.java
@@ -0,0 +1,3 @@
+class Task {
+ public enum Scope { ACTION, HIKA }
+}
diff --git a/test/files/jvm/t2470/Test_1.scala b/test/files/jvm/t2470/Test_1.scala
new file mode 100644
index 0000000000..00cf287482
--- /dev/null
+++ b/test/files/jvm/t2470/Test_1.scala
@@ -0,0 +1,11 @@
+object Test {
+ class Foo {
+ @Action(block = Task.Scope.ACTION)
+ def foo = 0
+ }
+
+ def main(args: Array[String]) {
+ val m = classOf[Foo].getDeclaredMethods().find(_.toString.contains("foo")).get
+ println(m.getAnnotations().toList)
+ }
+}
diff --git a/test/files/neg/names-defaults-neg.check b/test/files/neg/names-defaults-neg.check
index e47cf8c420..39347cd5db 100644
--- a/test/files/neg/names-defaults-neg.check
+++ b/test/files/neg/names-defaults-neg.check
@@ -1,4 +1,4 @@
-names-defaults-neg.scala:66: error: not enough arguments for method apply: (a: Int,b: String)(c: Int*)Fact in object Fact.
+names-defaults-neg.scala:65: 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)
^
@@ -8,87 +8,84 @@ names-defaults-neg.scala:5: error: type mismatch;
test1(b = 2, a = "#")
^
names-defaults-neg.scala:8: error: positional after named argument.
- test1(a = 1, "*")
- ^
-names-defaults-neg.scala:9: error: positional after named argument.
test1(b = "(*", 23)
^
-names-defaults-neg.scala:14: error: reference to x is ambiguous; it is both, a parameter
+names-defaults-neg.scala:13: error: reference to x is ambiguous; it is both, a parameter
name of the method and the name of a variable currently in scope.
test2(x = 1)
^
-names-defaults-neg.scala:16: error: not found: value c
+names-defaults-neg.scala:15: error: not found: value c
test1(c = 0, b = "joke")
^
-names-defaults-neg.scala:17: error: not found: value m
+names-defaults-neg.scala:16: error: not found: value m
test7((m = 1)) // named arguments must be top-level assignments
^
-names-defaults-neg.scala:18: error: not found: value m
+names-defaults-neg.scala:17: error: not found: value m
test7({m = 1})
^
-names-defaults-neg.scala:19: error: not found: value m
+names-defaults-neg.scala:18: error: not found: value m
test7 { m = 1 } // no named arguments in argument block
^
-names-defaults-neg.scala:20: error: reference to x is ambiguous; it is both, a parameter
+names-defaults-neg.scala:19: error: reference to x is ambiguous; it is both, a parameter
name of the method and the name of a variable currently in scope.
test8(x = 1)
^
-names-defaults-neg.scala:23: error: parameter specified twice: a
+names-defaults-neg.scala:22: error: parameter specified twice: a
test1(1, a = 2)
^
-names-defaults-neg.scala:24: error: parameter specified twice: b
+names-defaults-neg.scala:23: error: parameter specified twice: b
test1(b = 1, b = "2")
^
-names-defaults-neg.scala:27: error: {
+names-defaults-neg.scala:26: error: {
val x$1: Int(3) = 3;
val x$2: Int(1) = 1;
Test.this.test3(1, 3)
} of type Int does not take parameters
test3(b = 3, a = 1)(3)
^
-names-defaults-neg.scala:36: error: ambiguous reference to overloaded definition,
+names-defaults-neg.scala:35: error: ambiguous reference to overloaded definition,
both method f in object t1 of type (b: String,a: Int)java.lang.String
and method f in object t1 of type (a: Int,b: String)java.lang.String
match argument types (b: java.lang.String,a: Int)
t1.f(b = "dkljf", a = 1)
^
-names-defaults-neg.scala:43: error: ambiguous reference to overloaded definition,
+names-defaults-neg.scala:42: error: ambiguous reference to overloaded definition,
both method f in object t3 of type (a2: Int)(b: Int)java.lang.String
and method f in object t3 of type (a1: Int)java.lang.String
match argument types (Int)
t3.f(1)
^
-names-defaults-neg.scala:44: error: ambiguous reference to overloaded definition,
+names-defaults-neg.scala:43: error: ambiguous reference to overloaded definition,
both method f in object t3 of type (a2: Int)(b: Int)java.lang.String
and method f in object t3 of type (a1: Int)java.lang.String
match argument types (Int)
t3.f(1)(2)
^
-names-defaults-neg.scala:50: error: ambiguous reference to overloaded definition,
+names-defaults-neg.scala:49: error: ambiguous reference to overloaded definition,
both method g in object t7 of type (a: B)java.lang.String
and method g in object t7 of type (a: C,b: Int*)java.lang.String
match argument types (C)
t7.g(new C()) // ambigous reference
^
-names-defaults-neg.scala:54: error: parameter specified twice: b
+names-defaults-neg.scala:53: error: parameter specified twice: b
test5(a = 1, b = "dkjl", b = "dkj")
^
-names-defaults-neg.scala:55: error: parameter specified twice: b
+names-defaults-neg.scala:54: error: parameter specified twice: b
test5(1, "2", b = 3)
^
-names-defaults-neg.scala:56: error: when using named arguments, the vararg parameter has to be specified exactly once
+names-defaults-neg.scala:55: error: when using named arguments, the vararg parameter has to be specified exactly once
test5(b = "dlkj")
^
-names-defaults-neg.scala:62: error: ambiguous reference to overloaded definition,
+names-defaults-neg.scala:61: error: ambiguous reference to overloaded definition,
both method f in object t8 of type (b: String,a: Int)java.lang.String
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:70: error: wrong number of arguments for <none>: (x: Int,y: String)A1
+names-defaults-neg.scala:69: error: wrong number of arguments for <none>: (x: Int,y: String)A1
A1() match { case A1(_) => () }
^
-names-defaults-neg.scala:77: error: no type parameters for method test4: (x: T[T[List[T[X forSome { type X }]]]])T[T[List[T[X forSome { type X }]]]] exist so that it can be applied to arguments (List[Int])
+names-defaults-neg.scala:76: error: no type parameters for method test4: (x: T[T[List[T[X forSome { type X }]]]])T[T[List[T[X forSome { type X }]]]] exist so that it can be applied to arguments (List[Int])
--- because ---
argument expression's type is not compatible with formal parameter type;
found : List[Int]
@@ -96,15 +93,15 @@ argument expression's type is not compatible with formal parameter type;
Error occured in an application involving default arguments.
test4()
^
-names-defaults-neg.scala:80: error: type mismatch;
+names-defaults-neg.scala:79: error: type mismatch;
found : List[Int]
required: scala.List[scala.List[?]]
def test6[T](x: List[List[T]] = List(1,2)) = x
^
-names-defaults-neg.scala:83: error: type mismatch;
+names-defaults-neg.scala:82: error: type mismatch;
found : Int
required: String
Error occured in an application involving default arguments.
new A2[String]()
^
-25 errors found
+24 errors found
diff --git a/test/files/neg/names-defaults-neg.scala b/test/files/neg/names-defaults-neg.scala
index 5829da361c..3babd56c6f 100644
--- a/test/files/neg/names-defaults-neg.scala
+++ b/test/files/neg/names-defaults-neg.scala
@@ -5,7 +5,6 @@ object Test extends Application {
test1(b = 2, a = "#")
// mixing named and positional
- test1(a = 1, "*")
test1(b = "(*", 23)
// assignment / names
diff --git a/test/files/run/names-defaults.check b/test/files/run/names-defaults.check
index 937f95962b..47d09a5083 100644
--- a/test/files/run/names-defaults.check
+++ b/test/files/run/names-defaults.check
@@ -18,12 +18,16 @@ get: [
get: 4
get: @
4: @
+get: 10
+get: flu
+10: flu
get: 8
get: 9
get: %
get: 5
5: %, 17
12: ', 13, 16
+1: bird, swine, 10
6: ~
get: 7
get: +
diff --git a/test/files/run/names-defaults.scala b/test/files/run/names-defaults.scala
index 008939cc9d..d5524b95ab 100644
--- a/test/files/run/names-defaults.scala
+++ b/test/files/run/names-defaults.scala
@@ -13,8 +13,10 @@ object Test extends Application {
// mixing named and positional
test1(get(4), b = get("@"))
+ test1(a = get(10), get("flu"))
test2(get(8), v = get(9))(get("%"), l = get(5))
test3(12, 13)("'", d = 16)
+ test3(a = 1, "swine")(c = "bird", d = 10L)
// anonymous functions