test/tools/javac/8015701/AnonymousParameters.java

Print this page

        

@@ -29,16 +29,18 @@
  * @run main AnonymousParameters
  */
 import java.lang.Class;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Parameter;
-import java.util.concurrent.Callable;
+import java.util.List;
+import java.util.ArrayList;
 
 public class AnonymousParameters {
 
     String[] names = {
         "this$0",
+        "startSize",
         "val$message"
     };
 
     public static void main(String... args) throws Exception {
         new AnonymousParameters().run();

@@ -47,19 +49,19 @@
     void run() throws Exception {
         Class<?> cls = new ParameterNames().makeInner("hello").getClass();
         Constructor<?> ctor = cls.getDeclaredConstructors()[0];
         Parameter[] params = ctor.getParameters();
 
-        if(params.length == 2) {
-            for(int i = 0; i < 2; i++) {
+        if(params.length == 3) {
+            for(int i = 0; i < 3; i++) {
                 System.err.println("Testing parameter " + params[i].getName());
                 if(!params[i].getName().equals(names[i]))
                     error("Expected parameter name " + names[i] +
                           " got " + params[i].getName());
             }
         } else
-            error("Expected 2 parameters");
+            error("Expected 3 parameters");
 
         if(0 != errors)
             throw new Exception("MethodParameters test failed with " +
                                 errors + " errors");
     }

@@ -72,18 +74,21 @@
     int errors;
 }
 
 class ParameterNames {
 
-    public Callable<String> makeInner(final String message) {
-        return new Callable<String>()  {
-            public String call() throws Exception {
-                return message;
+    public ArrayList<String> makeInner(final String message) {
+        class List extends ArrayList<String> {
+            public List(int startSize) {
+                super(startSize);
+                add(message);
             }
         };
+
+        return new List(2);
     }
 
     public static void main(String... args) throws Exception {
         ParameterNames test = new ParameterNames();
-        System.out.println(test.makeInner("Hello").call());
+        System.out.println(test.makeInner("Hello").get(0));
     }
 }