| // 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 identifiernamestring; |
| |
| import java.lang.reflect.Field; |
| import java.lang.reflect.Method; |
| |
| public class Main { |
| public static void main(String[] args) throws Exception { |
| A ax = new A(); |
| assert ax.boo.equals(A.TYPE_B); |
| try { |
| // Should be renamed |
| ax.bar("identifiernamestring.B"); |
| } catch (NullPointerException e) { |
| System.err.println(e.getMessage()); |
| } |
| |
| Class a = Class.forName(A.TYPE_A); |
| Class bByA = Class.forName(B.TYPO_A); |
| // A's name is kept. |
| assert a.equals(bByA); |
| |
| Class b = Class.forName(ax.boo); |
| Class bByB = Class.forName(B.TYPO_B); |
| // As TYPO_B is not renamed, they will be different. |
| assert !b.equals(bByB); |
| |
| Field foo = R.findField(B.class, "foo"); |
| System.out.println(foo.getName()); |
| Method boo = R.findMethod(B.class, "boo", new Class[] { A.class }); |
| System.out.println(boo.getName()); |
| } |
| } |