|  | // 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); | 
|  | } | 
|  | } |