Home | History | Annotate | Download | only in shaking2
      1 // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
      2 // for details. All rights reserved. Use of this source code is governed by a
      3 // BSD-style license that can be found in the LICENSE file.
      4 package shaking2;
      5 
      6 public class Shaking {
      7   public static void callInterfaceMethod(Interface object) {
      8     object.interfaceMethod4();
      9     object.interfaceMethod5(1, 2, 3, 4, 5, 6, 7, 8);
     10   }
     11 
     12   public static void callAsSuperClassAndInterface(SuperClass object) {
     13     object.interfaceMethod();
     14     object.interfaceMethod2();
     15     object.interfaceMethod3();
     16     object.virtualMethod();
     17     object.virtualMethod2(1, 2, 3, 4, 5, 6, 7, 8);
     18     object.accessFields();
     19     callInterfaceMethod(object);
     20   }
     21 
     22   public static void accessStaticFields() {
     23     System.out.println("StaticFields::used: " + StaticFields.used);
     24     System.out.println("StaitcFields::read" +
     25         " " + StaticFields.readInt +
     26         " " + StaticFields.readBoolean+
     27         " " + StaticFields.readByte +
     28         " " + StaticFields.readChar +
     29         " " + StaticFields.readObject +
     30         " " + StaticFields.readShort +
     31         " " + StaticFields.readDouble);
     32     StaticFields.writeInt = 1;
     33     StaticFields.writeBoolean = true;
     34     StaticFields.writeByte = 2;
     35     StaticFields.writeChar = 3;
     36     StaticFields.writeObject = new Object();
     37     StaticFields.writeShort = 3;
     38     StaticFields.writeDouble = 3.3;
     39   }
     40 
     41   public static void main(String[] args) {
     42     accessStaticFields();
     43     SuperClass.staticMethod();
     44     SuperClass.staticMethod2(1, 2, 3, 4, 5, 6, 7, 8);
     45     SubClass1 instance1 = new SubClass1(1);
     46     callAsSuperClassAndInterface(instance1);
     47     instance1.virtualMethod3();
     48     instance1.virtualMethod4(1, 2, 3, 4, 5, 6, 7, 8);
     49     callAsSuperClassAndInterface(new SubClass1(1, 2, 3, 4, 5, 6, 7, 8));
     50     SubClass2 instance2 = new SubClass2(2);
     51     callAsSuperClassAndInterface(instance2);
     52     instance2.virtualMethod3();
     53     instance2.virtualMethod4(1, 2, 3, 4, 5, 6, 7, 8);
     54   }
     55 }
     56