blob: f99fd8cd746d7800f6965a9c9dd6feba16d893bc [file] [log] [blame]
// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package shaking2;
public class Shaking {
public static void callInterfaceMethod(Interface object) {
object.interfaceMethod4();
object.interfaceMethod5(1, 2, 3, 4, 5, 6, 7, 8);
}
public static void callAsSuperClassAndInterface(SuperClass object) {
object.interfaceMethod();
object.interfaceMethod2();
object.interfaceMethod3();
object.virtualMethod();
object.virtualMethod2(1, 2, 3, 4, 5, 6, 7, 8);
object.accessFields();
callInterfaceMethod(object);
}
public static void accessStaticFields() {
System.out.println("StaticFields::used: " + StaticFields.used);
System.out.println("StaitcFields::read" +
" " + StaticFields.readInt +
" " + StaticFields.readBoolean+
" " + StaticFields.readByte +
" " + StaticFields.readChar +
" " + StaticFields.readObject +
" " + StaticFields.readShort +
" " + StaticFields.readDouble);
StaticFields.writeInt = 1;
StaticFields.writeBoolean = true;
StaticFields.writeByte = 2;
StaticFields.writeChar = 3;
StaticFields.writeObject = new Object();
StaticFields.writeShort = 3;
StaticFields.writeDouble = 3.3;
}
public static void main(String[] args) {
accessStaticFields();
SuperClass.staticMethod();
SuperClass.staticMethod2(1, 2, 3, 4, 5, 6, 7, 8);
SubClass1 instance1 = new SubClass1(1);
callAsSuperClassAndInterface(instance1);
instance1.virtualMethod3();
instance1.virtualMethod4(1, 2, 3, 4, 5, 6, 7, 8);
callAsSuperClassAndInterface(new SubClass1(1, 2, 3, 4, 5, 6, 7, 8));
SubClass2 instance2 = new SubClass2(2);
callAsSuperClassAndInterface(instance2);
instance2.virtualMethod3();
instance2.virtualMethod4(1, 2, 3, 4, 5, 6, 7, 8);
}
}