| // 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 memberrebinding; | |
| import memberrebinding.subpackage.PublicClass; | |
| import memberrebindinglib.AnIndependentInterface; | |
| public class Memberrebinding { | |
| public static void main(String[] args) { | |
| ClassAtBottomOfChain bottomInstance = new ClassAtBottomOfChain(); | |
| bottomInstance.superCallsProperlyPropagate(); | |
| bottomInstance.methodThatCallsSuperCallsProperlyPropagateTwo(); | |
| bottomInstance.methodThatShadowsPrivate(); | |
| bottomInstance.ensureAllCalled(); | |
| System.out.println(bottomInstance.superField); | |
| ClassExtendsLibraryClass classExtendsLibraryClass = new ClassExtendsLibraryClass(); | |
| classExtendsLibraryClass.methodThatAddsHelloWorld(); | |
| classExtendsLibraryClass.methodThatAddsHelloWorldUsingAddAll(); | |
| System.out.println(classExtendsLibraryClass.get(0)); | |
| System.out.println(classExtendsLibraryClass.get(1)); | |
| System.out.println(classExtendsLibraryClass.get(2)); | |
| PublicClass instance = new PublicClass(); | |
| instance.aMethod(); | |
| PublicClass.aStaticMethod(); | |
| ClassExtendsOtherLibraryClass classExtendsOther = new ClassExtendsOtherLibraryClass(); | |
| System.out.println(classExtendsOther.aMethodThatReturnsOne()); | |
| System.out.println(classExtendsOther.aMethodThatReturnsTwo()); | |
| System.out.println(classExtendsOther.aMethodThatReturnsThree()); | |
| System.out.println(classExtendsOther.aMethodThatReturnsFour()); | |
| AnIndependentInterface iface = | |
| System.currentTimeMillis() >= 0 | |
| ? new ClassExtendsOtherLibraryClass() | |
| : new OtherClassExtendsOtherLibraryClass(); | |
| System.out.println(iface.aMethodThatReturnsTwo()); | |
| SuperClassOfClassExtendsOtherLibraryClass superClass = | |
| System.currentTimeMillis() >= 0 | |
| ? new ClassExtendsOtherLibraryClass() | |
| : new OtherClassExtendsOtherLibraryClass(); | |
| System.out.println(superClass.aMethodThatReturnsTrue()); | |
| System.out.println(superClass.aMethodThatReturnsFalse()); | |
| } | |
| } |