| /******************************************************************************* |
| * Copyright (c) 2005, 2011 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.core.tests.model; |
| |
| import org.eclipse.jdt.core.BindingKey; |
| import org.eclipse.jdt.core.Signature; |
| |
| import junit.framework.Test; |
| |
| public class BindingKeyTests extends AbstractJavaModelTests { |
| |
| static { |
| // TESTS_PREFIX = "testInvalidCompilerOptions"; |
| // TESTS_NAMES = new String[] { "test028"}; |
| // TESTS_NUMBERS = new int[] { 56 }; |
| } |
| |
| public BindingKeyTests(String name) { |
| super(name); |
| } |
| |
| public static Test suite() { |
| return buildModelTestSuite(BindingKeyTests.class); |
| } |
| |
| protected void assertBindingKeyEquals(String expected, String key) { |
| if (!(expected.equals(key))) |
| System.out.println(displayString(key, 3) + ","); |
| assertEquals(expected, key); |
| } |
| |
| protected void assertBindingKeySignatureEquals(String expected, String key) { |
| BindingKey bindingKey = new BindingKey(key); |
| String signature = bindingKey.toSignature(); |
| if (!(expected.equals(signature))) |
| System.out.println(displayString(signature, 3) + ","); |
| assertEquals(expected, signature); |
| } |
| |
| protected void assertBindingKeyTypeArgumentsEqual(String expected, String key) { |
| BindingKey bindingKey = new BindingKey(key); |
| String[] typeArguments = bindingKey.getTypeArguments(); |
| assertStringsEqual("Unexpected type arguments", expected, typeArguments); |
| } |
| |
| protected void assertBindingKeyDeclaringTypesEqual(String expected, String key) { |
| BindingKey bindingKey = new BindingKey(key); |
| BindingKey declaringTypeBindingKey = bindingKey.getDeclaringType(); |
| if (expected == null) { |
| assertNull("Unexpected declaring type",declaringTypeBindingKey); |
| } else { |
| String signature = declaringTypeBindingKey.toSignature(); |
| assertEquals("Unexpected declaring type", expected, signature); |
| } |
| } |
| /* |
| * Package. |
| */ |
| public void test001() { |
| assertBindingKeySignatureEquals( |
| "p", |
| "p" |
| ); |
| } |
| |
| /* |
| * Top level type in non default package. |
| */ |
| public void test002() { |
| assertBindingKeySignatureEquals( |
| "Lp.X;", |
| "Lp/X;" |
| ); |
| } |
| |
| /* |
| * Top level type in default package. |
| */ |
| public void test003() { |
| assertBindingKeySignatureEquals( |
| "LClazz;", |
| "LClazz;" |
| ); |
| } |
| |
| /* |
| * Member type |
| */ |
| public void test004() { |
| assertBindingKeySignatureEquals( |
| "Lp.X$Member;", |
| "Lp/X$Member;" |
| ); |
| } |
| |
| /* |
| * Member type (2 levels deep) |
| */ |
| public void test005() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$Member1$Member2;", |
| "Lp1/X$Member1$Member2;" |
| ); |
| } |
| |
| /* |
| * Anonymous type |
| */ |
| public void test006() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$1;", |
| "Lp1/X$1;" |
| ); |
| } |
| |
| /* |
| * Local type |
| */ |
| public void test007() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$1$Y;", |
| "Lp1/X$1$Y;" |
| ); |
| } |
| |
| /* |
| * Array type |
| */ |
| public void test008() { |
| assertBindingKeySignatureEquals( |
| "[Lp1.X;", |
| "[Lp1/X;" |
| ); |
| } |
| |
| /* |
| * Generic type |
| */ |
| public void test009() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava/lang/Object;>Lp1.X;", |
| "Lp1/X<TT;>;" |
| ); |
| } |
| |
| /* |
| * Generic type |
| */ |
| public void test010() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava/lang/Object;U:Ljava/lang/Object;>Lp1.X;", |
| "Lp1/X<TT;TU;>;" |
| ); |
| } |
| |
| /* |
| * Parameterized type |
| */ |
| public void test011() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X<Ljava.lang.String;>;", |
| "Lp1/X<Ljava/lang/String;>;" |
| ); |
| } |
| |
| /* |
| * Secondary type |
| */ |
| public void test012() { |
| assertBindingKeySignatureEquals( |
| "Lp1.Secondary;", |
| "Lp1/X~Secondary;" |
| ); |
| } |
| |
| /* |
| * Anonymous in a secondary type |
| */ |
| public void test013() { |
| assertBindingKeySignatureEquals( |
| "Lp1.Secondary$1;", |
| "Lp1/X~Secondary$1;" |
| ); |
| } |
| |
| /* |
| * Method |
| * (regression test for bug 85811 BindingKey.toSignature should return method signature for methods) |
| */ |
| public void test014() { |
| assertBindingKeySignatureEquals( |
| "(Ljava.lang.String;I)Z", |
| "Lp1/X;.foo(Ljava/lang/String;I)Z" |
| ); |
| } |
| |
| /* |
| * Create a type binding key from a fully qualified name |
| */ |
| public void test015() { |
| String key = BindingKey.createTypeBindingKey("java.lang.Object"); |
| assertBindingKeyEquals( |
| "Ljava/lang/Object;", |
| key); |
| } |
| |
| /* |
| * Create a type binding key from a primitive type name |
| */ |
| public void test016() { |
| String key = BindingKey.createTypeBindingKey("int"); |
| assertBindingKeyEquals( |
| "I", |
| key); |
| } |
| |
| /* |
| * Create a type binding key from an array type name |
| */ |
| public void test017() { |
| String key = BindingKey.createTypeBindingKey("boolean[]"); |
| assertBindingKeyEquals( |
| "[Z", |
| key); |
| } |
| |
| /* |
| * Create a parameterized type binding key |
| */ |
| public void test018() { |
| String key = BindingKey.createParameterizedTypeBindingKey("Ljava/util/Map<TK;TV;>;", new String[] {"Ljava/lang/String;", "Ljava/lang/Object;"}); |
| assertBindingKeyEquals( |
| "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;", |
| key); |
| } |
| |
| /* |
| * Create a raw type binding key |
| */ |
| public void test019() { |
| String key = BindingKey.createParameterizedTypeBindingKey("Ljava/util/List<TE:>;", new String[] {}); |
| assertBindingKeyEquals( |
| "Ljava/util/List<>;", |
| key); |
| } |
| |
| /* |
| * Create an array type binding key |
| */ |
| public void test020() { |
| String key = BindingKey.createArrayTypeBindingKey("Ljava/lang/Object;", 1); |
| assertBindingKeyEquals( |
| "[Ljava/lang/Object;", |
| key); |
| } |
| |
| /* |
| * Create an array type binding key |
| */ |
| public void test021() { |
| String key = BindingKey.createArrayTypeBindingKey("I", 2); |
| assertBindingKeyEquals( |
| "[[I", |
| key); |
| } |
| |
| /** |
| * @deprecated |
| */ |
| private String getWildcardBindingKey(String typeKey, char kind) { |
| return BindingKey.createWilcardTypeBindingKey(typeKey, kind); |
| } |
| |
| /* |
| * Create a wildcard type binding key |
| */ |
| public void test022() { |
| String key = getWildcardBindingKey(null, Signature.C_STAR); |
| assertBindingKeyEquals( |
| "*", |
| key); |
| assertBindingKeyEquals(BindingKey.createWildcardTypeBindingKey( |
| BindingKey.createTypeBindingKey("java.util.ArrayList"), Signature.C_STAR, null, 0), |
| "Ljava/util/ArrayList;{0}*"); |
| } |
| |
| /* |
| * Create a wildcard type binding key |
| */ |
| public void test023() { |
| String key = getWildcardBindingKey("Ljava/util/List<TE;>;", Signature.C_SUPER); |
| assertBindingKeyEquals( |
| "-Ljava/util/List<TE;>;", |
| key); |
| assertBindingKeyEquals(BindingKey.createWildcardTypeBindingKey( |
| BindingKey.createTypeBindingKey("java.util.ArrayList"), Signature.C_SUPER, |
| BindingKey.createTypeBindingKey("java.lang.String"), 0), |
| "Ljava/util/ArrayList;{0}-Ljava/lang/String;" |
| ); |
| } |
| |
| /* |
| * Create a wildcard type binding key |
| */ |
| public void test024() { |
| String key = getWildcardBindingKey("Ljava/util/ArrayList;", Signature.C_EXTENDS); |
| assertBindingKeyEquals( |
| "+Ljava/util/ArrayList;", |
| key); |
| assertBindingKeyEquals(BindingKey.createWildcardTypeBindingKey( |
| BindingKey.createTypeBindingKey("java.util.ArrayList"), Signature.C_EXTENDS, |
| BindingKey.createTypeBindingKey("java.lang.String"), 0), |
| "Ljava/util/ArrayList;{0}+Ljava/lang/String;" |
| ); |
| } |
| |
| /* |
| * Create a type variable binding key |
| */ |
| public void test025() { |
| String key = BindingKey.createTypeVariableBindingKey("T", "Ljava/util/List<TE;>;"); |
| assertBindingKeyEquals( |
| "Ljava/util/List<TE;>;:TT;", |
| key); |
| } |
| |
| /* |
| * Create a type variable binding key |
| */ |
| public void test026() { |
| String key = BindingKey.createTypeVariableBindingKey("SomeTypeVariable", "Lp/X;.foo()V"); |
| assertBindingKeyEquals( |
| "Lp/X;.foo()V:TSomeTypeVariable;", |
| key); |
| } |
| |
| /* |
| * Parameterized member type |
| */ |
| public void test027() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X<Ljava.lang.String;>.Member;", |
| "Lp1/X<Ljava/lang/String;>.Member;" |
| ); |
| } |
| |
| /* |
| * Wildcard binding (no bounds) |
| */ |
| public void test028() { |
| assertBindingKeySignatureEquals( |
| "*", |
| "Lp1/X;{0}*" |
| ); |
| } |
| |
| /* |
| * Wildcard binding (super bounds) |
| */ |
| public void test029() { |
| assertBindingKeySignatureEquals( |
| "-Ljava.util.List<TT;>;", |
| "Lp1/X;{0}-Ljava/util/List<Lp1/X;:TT;>" |
| ); |
| } |
| |
| /* |
| * Wildcard binding (extends bounds) |
| */ |
| public void test030() { |
| assertBindingKeySignatureEquals( |
| "+Ljava.util.ArrayList;", |
| "Lp1/X;{0}+Ljava/util/ArrayList;" |
| ); |
| } |
| |
| /* |
| * Capture binding (no bounds) |
| */ |
| public void test031() { |
| assertBindingKeySignatureEquals( |
| "!*", |
| "Ljava/util/List;&!Lp1/X;{0}*123;" |
| ); |
| } |
| |
| /* |
| * Capture binding (super bounds) |
| */ |
| public void test032() { |
| assertBindingKeySignatureEquals( |
| "!-Ljava.util.List<TT;>;", |
| "Ljava/util/List;&!Lp1/X;{0}-Ljava/util/List<Lp1/X;:TT;>;123;" |
| ); |
| } |
| |
| /* |
| * Capture binding (extends bounds) |
| */ |
| public void test033() { |
| assertBindingKeySignatureEquals( |
| "!+Ljava.util.ArrayList;", |
| "Ljava/util/List;&!Lp1/X;{0}+Ljava/util/ArrayList<>;123;" |
| ); |
| } |
| |
| /* |
| * Method starting with an upper case corresponding to a primitive type |
| * (regression test for bug 94398 Error attempting to find References) |
| */ |
| public void test034() { |
| assertBindingKeySignatureEquals( |
| "(Ljava.lang.String;I)Z", |
| "Lp1/X;.Set(Ljava/lang/String;I)Z" |
| ); |
| } |
| |
| /* |
| * Parameterized method with capture argument |
| * (regression test for bug 96410 Incorrect information in selection resolved key) |
| */ |
| public void test035() { |
| assertBindingKeySignatureEquals( |
| "(!*)!*", |
| "LX;&LX~Store<!LX~Store;*157;>;.get(!*)!*" |
| ); |
| } |
| |
| /* |
| * Parameterized method with argument similar to a type name |
| */ |
| public void test036() { |
| assertBindingKeySignatureEquals( |
| "<U:Ljava.lang.Object;>(La.TU;La.TU;)V", |
| "La/A<La/A~TU;>;.foo<U:Ljava/lang/Object;>(TU;La/TU;)V%<La/A~TU;>" |
| ); |
| } |
| |
| /* |
| * Field |
| * (regression test for bug 87362 BindingKey#internalToSignature() should return the field's type signature) |
| */ |
| public void test037() { |
| assertBindingKeySignatureEquals( |
| "Ljava.lang.String;", |
| "Lp/X;.foo)Ljava/lang/String;" |
| ); |
| } |
| |
| /* |
| * Generic secondary type |
| * (regression test for bug 96858 IllegalArgumentException in Signature) |
| */ |
| public void test038() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava/lang/Object;U:Ljava/lang/Object;>Lp1.Y;", |
| "Lp1/X~Y<TT;TU;>;" |
| ); |
| } |
| |
| /* |
| * Base type |
| * (regression test for bug 97187 [rendering] Shows Single Char for primitve Types) |
| */ |
| public void test039() { |
| assertBindingKeySignatureEquals( |
| "Z", |
| "Z" |
| ); |
| } |
| |
| /* |
| * Parameterized method with argument nested in another argument |
| * (regression test for bug 97275 method reference should not contain type variable anymore) |
| */ |
| public void test040() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava.lang.Object;>(Ljava.util.List<Ljava.lang.String;>;Ljava.lang.Integer;)V", |
| "Lp1/X;.foo<T:Ljava/lang/Object;>(Ljava/util/List<TT;>;Ljava/lang/Integer;)V%<Ljava/lang/String;>)" |
| ); |
| } |
| |
| /* |
| * Parameterized method with argument nested in another argument as a wilcard bound |
| * (regression test for bug 97814 Incorrect resolved information on hover) |
| */ |
| public void test041() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava.lang.Object;>(LY<-Ljava.lang.NullPointerException;>;Ljava.lang.NullPointerException;)V", |
| "LX~Z;.foo<T:Ljava/lang/Object;>(LY<-TT;>;TT;)V%<Ljava/lang/NullPointerException;>" |
| ); |
| } |
| |
| /* |
| * Parameterized method with argument nested in another argument as an array |
| * (regression test for bug 97814 Incorrect resolved information on hover) |
| */ |
| public void test042() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava.lang.Object;>([Ljava.lang.NullPointerException;Ljava.lang.NullPointerException;)V", |
| "LX~Z;.foo<T:Ljava/lang/Object;>([TT;TT;)V%<Ljava/lang/NullPointerException;>" |
| ); |
| } |
| |
| /* |
| * Parameterized type binding with a type variable of the current's method in its arguments |
| * (regression test for bug 97902 NPE on Open Declaration on reference to generic type) |
| */ |
| public void test043() { |
| assertBindingKeySignatureEquals( |
| "Lp1.Y<TT;>;", |
| "Lp1/X~Y<Lp1/X;:40TT;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=102710 |
| */ |
| public void test044() { |
| assertBindingKeySignatureEquals( |
| "<SM:Ljava/lang/Object;LM:Ljava/lang/Object;>LX;", |
| "LX<TSM;TLM;>;" |
| ); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized type binding key are correct |
| */ |
| public void test045() { |
| assertBindingKeyTypeArgumentsEqual( |
| "Ljava.lang.String;\n", |
| "LX<Ljava/lang/String;>;" |
| ); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized type binding key are correct |
| */ |
| public void test046() { |
| assertBindingKeyTypeArgumentsEqual( |
| "Ljava.lang.String;\n" + |
| "LY;\n", |
| "LX<Ljava/lang/String;LY;>;" |
| ); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized type binding key are correct |
| */ |
| public void test047() { |
| assertBindingKeyTypeArgumentsEqual( |
| "", |
| "LX;" |
| ); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized type binding key are correct |
| * (regression test for bug 103654 BindingKey.getTypeArguments bug with qualified types) |
| */ |
| public void test048() { |
| assertBindingKeyTypeArgumentsEqual( |
| "Ljava.lang.Object;\n", |
| "LX<Ljava/lang/String;>.LY<Ljava/lang/Object;>;" |
| ); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized method binding key are correct |
| */ |
| public void test049() { |
| assertBindingKeyTypeArgumentsEqual( |
| "Ljava.lang.String;\n", |
| "LX;.foo<T:Ljava/lang/Object;>(TT;)V%<Ljava/lang/String;>" |
| ); |
| } |
| |
| /* |
| * Parameterized method |
| */ |
| public void test050() { |
| assertBindingKeySignatureEquals( |
| "<T:Ljava.lang.Object;>(Ljava.lang.String;)V", |
| "LX;.foo<T:Ljava/lang/Object;>(TT;)V%<Ljava/lang/String;>" |
| ); |
| } |
| |
| /* |
| * Ensures that the binding key of a parameterized type is not a raw type |
| * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=209475) |
| */ |
| public void test051() { |
| assertFalse("Should not be a raw type", new BindingKey("Ltest/ZZ<Ljava/lang/Object;>;").isRawType()); |
| } |
| |
| /* |
| * Ensures that the signature of a method defined in a cu with a $ name is correct |
| * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=127739 ) |
| */ |
| public void test052() { |
| assertBindingKeySignatureEquals( |
| "()V", |
| "LA$B~A$B;.m()V" |
| ); |
| } |
| |
| /* |
| * Ensures that the signature of a method with a $ name is correct |
| * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=127739 ) |
| */ |
| public void test053() { |
| assertBindingKeySignatureEquals( |
| "()V", |
| "LA;.m$1()V" |
| ); |
| } |
| |
| /* |
| * Ensures that the signature of a field with a capture return type is correct |
| * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=234172 ) |
| */ |
| public void test054() { |
| assertBindingKeySignatureEquals( |
| "!*", |
| "LX;&LX~Box<!LX~Box;{0}*232;!LX~Box;{1}*232;>;.value)!LX~Box;{0}*232;" |
| ); |
| } |
| |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=209479 |
| */ |
| public void test055() { |
| assertFalse("Should not be a raw type", new BindingKey("Ltest/ZZ<Ljava/lang/Object>;").isRawType()); |
| } |
| |
| /* |
| * Ensures that the type arguments for a parameterized type binding key are correct for secondary type |
| */ |
| public void test056() { |
| assertBindingKeyTypeArgumentsEqual( |
| "[LOuter<Ljava.lang.Integer;>.Inner<Ljava.lang.Double;>;\n", |
| "LNullBinding~One<[LNullBinding~Outer<Ljava/lang/Integer;>.Inner<Ljava/lang/Double;>;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=336451 |
| * Make sure that the binding obtained is a type binding corresponding to the |
| * method type variables |
| */ |
| public void test057() { |
| assertBindingKeySignatureEquals( |
| "TT;", |
| "LEclipseTest$InvokerIF;.invoke<T::LEclipseTest$ArgIF;>(TT;)TT;|Ljava/lang/RuntimeException;:TT;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=336451 |
| * Make sure that the binding obtained is a type binding corresponding to the |
| * method type variables. In this case method has 2 exceptions and 2 type variables. |
| */ |
| public void test058() { |
| assertBindingKeySignatureEquals( |
| "TT;", |
| "LEclipseTest$InvokerIF;.invoke<T::LEclipseTest$ArgIF;Y:Ljava/lang/Object;>(TT;)TT;|Ljava/lang/RuntimeException;|Ljava/lang/IndexOutOfBoundsException;:TT;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for a method |
| */ |
| public void test059() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Ljava.util.ArrayList<Ljava.lang.String;>;", |
| "Ljava/util/ArrayList<Ljava/lang/String;>;.()V" |
| ); |
| } |
| |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return null for a type |
| */ |
| public void test060() { |
| assertBindingKeyDeclaringTypesEqual( |
| null, |
| "Ljava/util/ArrayList<Ljava/lang/String;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * methods of a secondary type |
| */ |
| public void test061() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.Secondary<Ljava.lang.String;>;", |
| "Lpkg/A~Secondary<Ljava/lang/String;>;.()V" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return null for a secondary type |
| */ |
| public void test062() { |
| assertBindingKeyDeclaringTypesEqual( |
| null, |
| "Lpkg/A~Secondary<Ljava/lang/String;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * methods of a secondary's inner type |
| */ |
| public void test063() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.Secondary<Ljava.lang.String;>.Inner<Ljava.lang.String;>;", |
| "Lpkg/A~Secondary<Ljava/lang/String;>.Inner<Ljava/lang/String;>;.(Lpkg/Secondary;)V" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * for a secondary's inner type |
| */ |
| public void test064() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.Secondary<Ljava.lang.String;>;", |
| "Lpkg/A~Secondary<Ljava/lang/String;>.Inner<Ljava/lang/String;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * methods of an inner type |
| */ |
| public void test065() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.A$Inner<Ljava.lang.String;>;", |
| "Lpkg/A$Inner<Ljava/lang/String;>;.(Lpkg/A;)V" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for an inner type |
| */ |
| public void test066() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.A;", |
| "Lpkg/A$Inner<Ljava/lang/String;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * methods of an inner type's inner type |
| */ |
| public void test067() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.A$Inner1<Ljava.lang.String;>.Inner2<Ljava.lang.String;>;", |
| "Lpkg/A$Inner1<Ljava/lang/String;>.Inner2<Ljava/lang/String;>;.(Lpkg/A$Inner1;)V" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return the correct type for |
| * an inner type's inner type |
| */ |
| public void test068() { |
| assertBindingKeyDeclaringTypesEqual( |
| "Lpkg.A$Inner1<Ljava.lang.String;>;", |
| "Lpkg/A$Inner1<Ljava/lang/String;>.Inner2<Ljava/lang/String;>;" |
| ); |
| } |
| /* |
| * https://bugs.eclipse.org/bugs/show_bug.cgi?id=351165 |
| * getDeclaringType should return null for a local variable |
| */ |
| public void test069() { |
| assertBindingKeyDeclaringTypesEqual( |
| null, |
| "Lpkg/A;.foo()V#c" |
| ); |
| } |
| } |