| // Copyright (c) 2017, 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 annotationremoval; | |
| public class OuterClass { | |
| public class InnerClass { | |
| private int value; | |
| public InnerClass(int x) { | |
| this.value = x; | |
| } | |
| int computeAResult(int y) { | |
| int result = 1; | |
| for (int i = value; i < y; i++) { | |
| result++; | |
| if (result == 1) { | |
| return result; | |
| } | |
| } | |
| return value * y; | |
| } | |
| } | |
| public abstract class MagicClass { | |
| public abstract int returnAnInt(); | |
| } | |
| public int getValueFromInner(int x) { | |
| class LocalMagic extends MagicClass { | |
| @Override | |
| public int returnAnInt() { | |
| return 123; | |
| } | |
| } | |
| InnerClass inner = new InnerClass(x); | |
| MagicClass magic = new MagicClass() { | |
| @Override | |
| public int returnAnInt() { | |
| return 124; | |
| } | |
| }; | |
| MagicClass localMagic = new LocalMagic(); | |
| return inner.computeAResult(42) + magic.returnAnInt() + localMagic.returnAnInt(); | |
| } | |
| } |