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