< prev index next >

langtools/test/tools/javac/valhalla/values/CheckNoInvokeDirect.java

Print this page




  49         void boo() {}
  50 
  51         void test() {
  52             soo();  // static method.
  53             foo();  // invokedirect, overridden.
  54             goo();  // invokedirect inherited.
  55             boo();  // invokedirect fresh instance method
  56         }
  57     }
  58 
  59     public static void main(String[] args) {
  60         new CheckNoInvokeDirect().run();
  61     }
  62 
  63     void run() {
  64         String [] params = new String [] { "-v",
  65                                             Paths.get(System.getProperty("test.classes"),
  66                                                 "CheckNoInvokeDirect$Value.class").toString() };
  67         runCheck(params, new String [] {
  68 
  69            "#1 = Methodref          #7.#24         // \";Qjava/lang/__Value;\".\"<init>\":()V",
  70            "#2 = Methodref          #6.#25         // \";QCheckNoInvokeDirect$Value;\".soo:()V",
  71            "#3 = Methodref          #6.#26         // \";QCheckNoInvokeDirect$Value;\".foo:()V",
  72            "#4 = Methodref          #6.#27         // \";QCheckNoInvokeDirect$Value;\".goo:()V",
  73            "#5 = Methodref          #6.#28         // \";QCheckNoInvokeDirect$Value;\".boo:()V",
  74 
  75            "0: vload         0",
  76            "2: invokespecial #1                  // Method \";Qjava/lang/__Value;\".\"<init>\":()V",
  77            "5: return",
  78 
  79 
  80            "0: invokestatic  #2                  // Method soo:()V",
  81            "3: vload         0",
  82            "5: invokevirtual #3                  // Method foo:()V",
  83            "8: vload         0",
  84           "10: invokevirtual #4                  // Method goo:()V",
  85           "13: vload         0",
  86           "15: invokevirtual #5                  // Method boo:()V",
  87           "18: return"
  88                          });
  89 
  90      }
  91 
  92      void runCheck(String [] params, String [] expectedOut) {
  93         StringWriter s;


  49         void boo() {}
  50 
  51         void test() {
  52             soo();  // static method.
  53             foo();  // invokedirect, overridden.
  54             goo();  // invokedirect inherited.
  55             boo();  // invokedirect fresh instance method
  56         }
  57     }
  58 
  59     public static void main(String[] args) {
  60         new CheckNoInvokeDirect().run();
  61     }
  62 
  63     void run() {
  64         String [] params = new String [] { "-v",
  65                                             Paths.get(System.getProperty("test.classes"),
  66                                                 "CheckNoInvokeDirect$Value.class").toString() };
  67         runCheck(params, new String [] {
  68 
  69            "#1 = Methodref          #7.#19         // \";Qjava/lang/__Value;\".\"<init>\":()V",
  70            "#2 = Methodref          #6.#20         // \";QCheckNoInvokeDirect$Value;\".soo:()V",
  71            "#3 = Methodref          #6.#21         // \";QCheckNoInvokeDirect$Value;\".foo:()V",
  72            "#4 = Methodref          #6.#22         // \";QCheckNoInvokeDirect$Value;\".goo:()V",
  73            "#5 = Methodref          #6.#23         // \";QCheckNoInvokeDirect$Value;\".boo:()V",
  74 
  75            "0: vload         0",
  76            "2: invokespecial #1                  // Method \";Qjava/lang/__Value;\".\"<init>\":()V",
  77            "5: return",
  78 
  79 
  80            "0: invokestatic  #2                  // Method soo:()V",
  81            "3: vload         0",
  82            "5: invokevirtual #3                  // Method foo:()V",
  83            "8: vload         0",
  84           "10: invokevirtual #4                  // Method goo:()V",
  85           "13: vload         0",
  86           "15: invokevirtual #5                  // Method boo:()V",
  87           "18: return"
  88                          });
  89 
  90      }
  91 
  92      void runCheck(String [] params, String [] expectedOut) {
  93         StringWriter s;
< prev index next >