View | Details | Raw Unified | Return to bug 185422
Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java (-1 / +1 lines)
Lines 1072-1078 Link Here
1072
		ReferenceBinding memberType = enclosingType.getMemberType(typeName);
1072
		ReferenceBinding memberType = enclosingType.getMemberType(typeName);
1073
		if (memberType != null) {
1073
		if (memberType != null) {
1074
			unitScope.recordTypeReference(memberType);
1074
			unitScope.recordTypeReference(memberType);
1075
			if (enclosingSourceType == null
1075
			if (enclosingSourceType == null || (this.parent == unitScope && (enclosingSourceType.tagBits & TagBits.TypeVariablesAreConnected) == 0)
1076
				? memberType.canBeSeenBy(currentPackage)
1076
				? memberType.canBeSeenBy(currentPackage)
1077
				: memberType.canBeSeenBy(enclosingType, enclosingSourceType))
1077
				: memberType.canBeSeenBy(enclosingType, enclosingSourceType))
1078
					return memberType;
1078
					return memberType;
(-)src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java (-24 / +56 lines)
Lines 38459-38467 Link Here
38459
}
38459
}
38460
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=185422
38460
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=185422
38461
public void test1135() {
38461
public void test1135() {
38462
	runConformTest(
38462
	runNegativeTest(
38463
		// test directory preparation
38464
		true /* flush output directory */,
38465
		new String[] { /* test files */
38463
		new String[] { /* test files */
38466
			"X.java",
38464
			"X.java",
38467
			"class Foo <T>{\n" +
38465
			"class Foo <T>{\n" +
Lines 38492-38504 Link Here
38492
			"    }    \n" +
38490
			"    }    \n" +
38493
			"}\n", // =================
38491
			"}\n", // =================
38494
		},
38492
		},
38495
		// compiler results
38493
		"----------\n" + 
38496
		null /* do not check compiler log */,
38494
		"1. ERROR in X.java (at line 13)\n" + 
38497
		// runtime results
38495
		"	public class X extends Foo<X.Baz> {\n" + 
38498
		"Baz" /* expected output string */,
38496
		"	                           ^^^^^\n" + 
38499
		"" /* expected error string */,
38497
		"The type X.Baz is not visible\n" + 
38500
		// javac options
38498
		"----------\n");
38501
		JavacTestOptions.EclipseJustification.EclipseBug185422 /* javac test options */);
38502
}
38499
}
38503
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154029
38500
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154029
38504
public void test1136() {
38501
public void test1136() {
Lines 42388-42396 Link Here
42388
}
42385
}
42389
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42386
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42390
public void test1244() {
42387
public void test1244() {
42391
	runConformTest(
42388
	runNegativeTest(
42392
		// test directory preparation
42393
		true /* flush output directory */,
42394
		new String[] { /* test files */
42389
		new String[] { /* test files */
42395
			"X.java",
42390
			"X.java",
42396
			"public class X {\n" +
42391
			"public class X {\n" +
Lines 42419-42431 Link Here
42419
			"    protected abstract E delegate();\n" +
42414
			"    protected abstract E delegate();\n" +
42420
			"}\n", // =================
42415
			"}\n", // =================
42421
		},
42416
		},
42422
		// compiler results
42417
		"----------\n" + 
42423
		null /* do not check compiler log */,
42418
		"1. ERROR in X.java (at line 14)\n" + 
42424
		// runtime results
42419
		"	abstract class Pool<E extends Pool.Entry<E>> {\n" + 
42425
		"SUCCESS" /* expected output string */,
42420
		"	                              ^^^^^^^^^^\n" + 
42426
		"" /* expected error string */,
42421
		"The type Pool.Entry is not visible\n" + 
42427
		// javac options
42422
		"----------\n");
42428
		JavacTestOptions.EclipseJustification.EclipseBug185422 /* javac test options */);
42429
}
42423
}
42430
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42424
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42431
public void test1245() {
42425
public void test1245() {
Lines 42447-42454 Link Here
42447
}
42441
}
42448
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42442
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216100 - variation
42449
public void test1246() {
42443
public void test1246() {
42450
	runConformTest(
42444
	runNegativeTest(
42451
		// test directory preparation
42452
		new String[] { /* test files */
42445
		new String[] { /* test files */
42453
			"X.java",
42446
			"X.java",
42454
			"public class X<T extends X.Private> {\n" +
42447
			"public class X<T extends X.Private> {\n" +
Lines 42456-42463 Link Here
42456
			"	<U extends X.Private> void foo(U u) {}\n" +
42449
			"	<U extends X.Private> void foo(U u) {}\n" +
42457
			"}\n", // =================
42450
			"}\n", // =================
42458
		},
42451
		},
42459
		// javac options
42452
		"----------\n" + 
42460
		JavacTestOptions.EclipseJustification.EclipseBug185422 /* javac test options */);
42453
		"1. ERROR in X.java (at line 1)\n" + 
42454
		"	public class X<T extends X.Private> {\n" + 
42455
		"	                         ^^^^^^^^^\n" + 
42456
		"The type X.Private is not visible\n" + 
42457
		"----------\n");
42461
}
42458
}
42462
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216558
42459
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=216558
42463
public void test1247() {
42460
public void test1247() {
Lines 49549-49552 Link Here
49549
		"----------\n"
49546
		"----------\n"
49550
	);
49547
	);
49551
}
49548
}
49549
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=273751
49550
public void test1452() {
49551
	this.runNegativeTest(
49552
		new String[] {
49553
			"A.java",
49554
			"class A<T> {}\n" +
49555
			"class B extends A<B.Secret> {\n" +
49556
			"	private class Secret {};\n" +
49557
			"	B.Secret s;\n" +
49558
			"	A<B.Secret> a;\n" +
49559
			"}\n" +
49560
			"class C extends B.Secret {}\n" +
49561
			"class D {\n" +
49562
			"	class M { private class Secret {}; }\n" +
49563
			"	class N extends A<M.Secret> {}\n" +
49564
			"}\n" +
49565
			"class E {\n" +
49566
			"	class M extends A<M.Secret> {\n" +
49567
			"	  private class Secret {};\n" +
49568
			"	}\n" +
49569
			"}"
49570
		},
49571
		"----------\n" + 
49572
		"1. ERROR in A.java (at line 2)\n" + 
49573
		"	class B extends A<B.Secret> {\n" + 
49574
		"	                  ^^^^^^^^\n" + 
49575
		"The type B.Secret is not visible\n" + 
49576
		"----------\n" + 
49577
		"2. ERROR in A.java (at line 7)\n" + 
49578
		"	class C extends B.Secret {}\n" + 
49579
		"	                ^^^^^^^^\n" + 
49580
		"The type B.Secret is not visible\n" + 
49581
		"----------\n"
49582
	);
49583
}
49552
}
49584
}

Return to bug 185422