Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 192058 Details for
Bug 339478
[1.7][compiler] support for diamond case
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
<> Implementation - Phase I
patch.txt (text/plain), 23.35 KB, created by
Srikanth Sankaran
on 2011-03-28 22:12:45 EDT
(
hide
)
Description:
<> Implementation - Phase I
Filename:
MIME Type:
Creator:
Srikanth Sankaran
Created:
2011-03-28 22:12:45 EDT
Size:
23.35 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java,v >retrieving revision 1.84.2.2 >diff -u -r1.84.2.2 AllocationExpression.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java 5 Mar 2011 18:12:56 -0000 1.84.2.2 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java 29 Mar 2011 01:58:16 -0000 >@@ -5,6 +5,10 @@ > * which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html > * >+ * This is an implementation of an early-draft specification developed under the Java >+ * Community Process (JCP) and is made available for testing and evaluation purposes >+ * only. The code is not compatible with any specification of the JCP. >+ * > * Contributors: > * IBM Corporation - initial API and implementation > * Stephan Herrmann - Contributions for >@@ -29,6 +33,7 @@ > public TypeReference[] typeArguments; > public TypeBinding[] genericTypeArguments; > public FieldDeclaration enumConstant; // for enum constant initializations >+ protected TypeBinding expectedType; // for <> inference > > public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) { > // check captured variables are initialized in current context (26134) >@@ -255,7 +260,12 @@ > // initialization of an enum constant > this.resolvedType = scope.enclosingReceiverType(); > } else { >- this.resolvedType = this.type.resolveType(scope, true /* check bounds*/); >+ TypeBinding lhsType = null; >+ if ((this.type.bits & ASTNode.IsDiamond) != 0) { >+ if (this.expectedType != null && this.expectedType.isParameterizedTypeWithActualArguments()) >+ lhsType = this.expectedType; >+ } >+ this.resolvedType = this.type.resolveType(scope, true /* check bounds*/, lhsType); > checkParameterizedAllocation: { > if (this.type instanceof ParameterizedQualifiedTypeReference) { // disallow new X<String>.Y<Integer>() > ReferenceBinding currentType = (ReferenceBinding)this.resolvedType; >@@ -409,4 +419,11 @@ > } > visitor.endVisit(this, scope); > } >+/** >+ * @see org.eclipse.jdt.internal.compiler.ast.Expression#setExpectedType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding) >+ */ >+public void setExpectedType(TypeBinding expectedType) { >+ this.expectedType = expectedType; >+} >+ > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java,v >retrieving revision 1.63.2.2 >diff -u -r1.63.2.2 ParameterizedQualifiedTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 25 Mar 2011 13:12:28 -0000 1.63.2.2 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 29 Mar 2011 01:58:17 -0000 >@@ -111,7 +111,7 @@ > /* > * No need to check for reference to raw type per construction > */ >- private TypeBinding internalResolveType(Scope scope, boolean checkBounds) { >+ private TypeBinding internalResolveType(Scope scope, boolean checkBounds, TypeBinding expectedType) { > // handle the error here > this.constant = Constant.NotAConstant; > if ((this.bits & ASTNode.DidResolve) != 0) { // is a shared type reference which was already resolved >@@ -223,6 +223,10 @@ > argTypes[j] = argType; > } > } >+ if ((this.bits & ASTNode.IsDiamond) != 0) { >+ if (expectedType != null && expectedType.isParameterizedTypeWithActualArguments()) >+ argTypes = ((ParameterizedTypeBinding) expectedType).arguments; >+ } > if (argHasError) { > return null; > } >@@ -247,9 +251,12 @@ > this.resolvedType = scope.createArrayType(this.resolvedType, this.dimensions); > } > return this.resolvedType; >- } else if (argLength != typeVariables.length && !isDiamond) { // check arity >- scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes, i); >- return null; >+ } else if (argLength != typeVariables.length) { >+ if (!isDiamond) { // check arity >+ scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes, i); >+ return null; >+ } >+ checkBounds = false; // successful <> inference needs no bounds check, we will scream foul if needed during inference. > } > // check parameterizing non-static member type of raw type > if (typeIsConsistent && !currentType.isStatic()) { >@@ -344,12 +351,15 @@ > } > return output; > } >- >+ >+ public TypeBinding resolveType(BlockScope scope, boolean checkBounds, TypeBinding expectedType) { >+ return internalResolveType(scope, checkBounds, expectedType); >+ } > public TypeBinding resolveType(BlockScope scope, boolean checkBounds) { >- return internalResolveType(scope, checkBounds); >+ return internalResolveType(scope, checkBounds, null); > } > public TypeBinding resolveType(ClassScope scope) { >- return internalResolveType(scope, false); >+ return internalResolveType(scope, false, null); > } > public void traverse(ASTVisitor visitor, BlockScope scope) { > if (visitor.visit(this, scope)) { >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java,v >retrieving revision 1.54.2.2 >diff -u -r1.54.2.2 ParameterizedSingleTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 25 Mar 2011 13:12:28 -0000 1.54.2.2 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 29 Mar 2011 01:58:17 -0000 >@@ -89,7 +89,7 @@ > /* > * No need to check for reference to raw type per construction > */ >- private TypeBinding internalResolveType(Scope scope, ReferenceBinding enclosingType, boolean checkBounds) { >+ private TypeBinding internalResolveType(Scope scope, ReferenceBinding enclosingType, boolean checkBounds, TypeBinding expectedType) { > // handle the error here > this.constant = Constant.NotAConstant; > if ((this.bits & ASTNode.DidResolve) != 0) { // is a shared type reference which was already resolved >@@ -188,6 +188,10 @@ > argTypes[i] = argType; > } > } >+ if ((this.bits & ASTNode.IsDiamond) != 0) { >+ if (expectedType != null && expectedType.isParameterizedTypeWithActualArguments()) >+ argTypes = ((ParameterizedTypeBinding) expectedType).arguments; >+ } > if (argHasError) { > return null; > } >@@ -221,9 +225,12 @@ > return this.resolvedType = type; > } > // if missing generic type, and compliance >= 1.5, then will rebuild a parameterized binding >- } else if (argLength != typeVariables.length && (this.bits & ASTNode.IsDiamond) == 0) { // check arity, IsDiamond never set for 1.6- >- scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes); >- return null; >+ } else if (argLength != typeVariables.length) { >+ if ((this.bits & ASTNode.IsDiamond) == 0) { // check arity, IsDiamond never set for 1.6- >+ scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes); >+ return null; >+ } >+ checkBounds = false; // successful <> inference needs no bounds check, we will scream foul if needed during inference. > } else if (!currentType.isStatic()) { > ReferenceBinding actualEnclosing = currentType.enclosingType(); > if (actualEnclosing != null && actualEnclosing.isRawType()){ >@@ -281,16 +288,24 @@ > return output; > } > >+ public TypeBinding resolveType(BlockScope scope, boolean checkBounds, TypeBinding expectedType) { >+ return internalResolveType(scope, null, checkBounds, expectedType); >+ } >+ > public TypeBinding resolveType(BlockScope scope, boolean checkBounds) { >- return internalResolveType(scope, null, checkBounds); >+ return internalResolveType(scope, null, checkBounds, null); > } > > public TypeBinding resolveType(ClassScope scope) { >- return internalResolveType(scope, null, false /*no bounds check in classScope*/); >+ return internalResolveType(scope, null, false /*no bounds check in classScope*/, null); > } > > public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingType) { >- return internalResolveType(scope, enclosingType, true/*check bounds*/); >+ return internalResolveType(scope, enclosingType, true/*check bounds*/, null); >+ } >+ >+ public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingType, TypeBinding expectedType) { >+ return internalResolveType(scope, enclosingType, true/*check bounds*/, expectedType); > } > > public void traverse(ASTVisitor visitor, BlockScope scope) { >Index: compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java,v >retrieving revision 1.101.2.1 >diff -u -r1.101.2.1 QualifiedAllocationExpression.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java 5 Mar 2011 18:12:56 -0000 1.101.2.1 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedAllocationExpression.java 29 Mar 2011 01:58:17 -0000 >@@ -5,6 +5,10 @@ > * which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html > * >+ * This is an implementation of an early-draft specification developed under the Java >+ * Community Process (JCP) and is made available for testing and evaluation purposes >+ * only. The code is not compatible with any specification of the JCP. >+ * > * Contributors: > * IBM Corporation - initial API and implementation > * Stephan Herrmann - Contribution for bug 319201 - [null] no warning when unboxing SingleNameReference causes NPE >@@ -261,7 +265,12 @@ > scope.problemReporter().invalidType(this.enclosingInstance, enclosingInstanceType); > hasError = true; > } else { >- receiverType = ((SingleTypeReference) this.type).resolveTypeEnclosing(scope, (ReferenceBinding) enclosingInstanceType); >+ TypeBinding lhsType = null; >+ if ((this.type.bits & ASTNode.IsDiamond) != 0) { >+ if (this.expectedType != null && this.expectedType.isParameterizedTypeWithActualArguments()) >+ lhsType = this.expectedType; >+ } >+ receiverType = ((SingleTypeReference) this.type).resolveTypeEnclosing(scope, (ReferenceBinding) enclosingInstanceType, lhsType); > if (receiverType != null && enclosingInstanceContainsCast) { > CastExpression.checkNeedForEnclosingInstanceCast(scope, this.enclosingInstance, enclosingInstanceType, receiverType); > } >@@ -407,14 +416,14 @@ > scope.problemReporter().missingTypeInConstructor(this, this.binding); > } > // The enclosing instance must be compatible with the innermost enclosing type >- ReferenceBinding expectedType = this.binding.declaringClass.enclosingType(); >- if (expectedType != enclosingInstanceType) // must call before computeConversion() and typeMismatchError() >- scope.compilationUnitScope().recordTypeConversion(expectedType, enclosingInstanceType); >- if (enclosingInstanceType.isCompatibleWith(expectedType) || scope.isBoxingCompatibleWith(enclosingInstanceType, expectedType)) { >- this.enclosingInstance.computeConversion(scope, expectedType, enclosingInstanceType); >+ ReferenceBinding typeExpected = this.binding.declaringClass.enclosingType(); >+ if (typeExpected != enclosingInstanceType) // must call before computeConversion() and typeMismatchError() >+ scope.compilationUnitScope().recordTypeConversion(typeExpected, enclosingInstanceType); >+ if (enclosingInstanceType.isCompatibleWith(typeExpected) || scope.isBoxingCompatibleWith(enclosingInstanceType, typeExpected)) { >+ this.enclosingInstance.computeConversion(scope, typeExpected, enclosingInstanceType); > return this.resolvedType = receiverType; > } >- scope.problemReporter().typeMismatchError(enclosingInstanceType, expectedType, this.enclosingInstance, null); >+ scope.problemReporter().typeMismatchError(enclosingInstanceType, typeExpected, this.enclosingInstance, null); > return this.resolvedType = receiverType; > } > ReferenceBinding superType = (ReferenceBinding) receiverType; >@@ -498,4 +507,13 @@ > } > visitor.endVisit(this, scope); > } >+ >+ /** >+ * @see org.eclipse.jdt.internal.compiler.ast.Expression#setExpectedType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding) >+ */ >+ public void setExpectedType(TypeBinding expectedType) { >+ this.expectedType = expectedType; >+ if (this.expectedType != null && this.enclosingInstance != null) >+ this.enclosingInstance.setExpectedType(this.expectedType.enclosingType()); >+ } > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java,v >retrieving revision 1.34 >diff -u -r1.34 SingleTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java 11 May 2010 18:47:09 -0000 1.34 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java 29 Mar 2011 01:58:17 -0000 >@@ -1,10 +1,14 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * Copyright (c) 2000, 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 > * >+ * This is an implementation of an early-draft specification developed under the Java >+ * Community Process (JCP) and is made available for testing and evaluation purposes >+ * only. The code is not compatible with any specification of the JCP. >+ * > * Contributors: > * IBM Corporation - initial API and implementation > *******************************************************************************/ >@@ -83,6 +87,10 @@ > } > return this.resolvedType = memberType; > } >+ >+ public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingInstanceType, TypeBinding expectedType) { >+ return this.resolveTypeEnclosing(scope, enclosingInstanceType); >+ } > > public void traverse(ASTVisitor visitor, BlockScope scope) { > visitor.visit(this, scope); >Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java,v >retrieving revision 1.44.4.1 >diff -u -r1.44.4.1 TypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java 25 Jan 2011 20:33:00 -0000 1.44.4.1 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java 29 Mar 2011 01:58:17 -0000 >@@ -208,6 +208,10 @@ > return internalResolveType(scope); > } > >+public TypeBinding resolveType(BlockScope scope, boolean checkBounds, TypeBinding expectedType) { >+ return internalResolveType(scope); >+} >+ > public TypeBinding resolveType(ClassScope scope) { > return internalResolveType(scope); > } >#P org.eclipse.jdt.core.tests.compiler >Index: src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_7.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Attic/GenericsRegressionTest_1_7.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 GenericsRegressionTest_1_7.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_7.java 25 Mar 2011 22:38:22 -0000 1.1.2.1 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/GenericsRegressionTest_1_7.java 29 Mar 2011 01:58:20 -0000 >@@ -14,8 +14,6 @@ > *******************************************************************************/ > package org.eclipse.jdt.core.tests.compiler.regression; > >-import java.util.Map; >- > import junit.framework.Test; > public class GenericsRegressionTest_1_7 extends AbstractRegressionTest { > >@@ -30,7 +28,7 @@ > public static Test suite() { > return buildMinimalComplianceTestSuite(testClass(), F_1_7); > } >-public void _test001() { >+public void test001() { > this.runConformTest( > new String[] { > "X.java", >@@ -46,7 +44,7 @@ > }, > "SUCCESS"); > } >-public void _test001a() { >+public void test001a() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -67,7 +65,7 @@ > "The method testFunction(String) in the type X<String> is not applicable for the arguments (int)\n" + > "----------\n"); > } >-public void _test001b() { >+public void test001b() { > this.runConformTest( > new String[] { > "X.java", >@@ -82,7 +80,7 @@ > "SUCCESS"); > } > // fields >-public void _test001b_1() { >+public void test001b_1() { > this.runConformTest( > new String[] { > "X.java", >@@ -96,7 +94,7 @@ > }, > "SUCCESS"); > } >-public void _test001c() { >+public void test001c() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -116,7 +114,7 @@ > "----------\n"); > } > // fields >-public void _test001c_1() { >+public void test001c_1() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -174,7 +172,7 @@ > "The method ab(ArrayList<String>) in the type X<String> is not applicable for the arguments (ArrayList<Integer>)\n" + > "----------\n"); > } >-public void _test001f() { >+public void test001f() { > this.runConformTest( > new String[] { > "X.java", >@@ -193,7 +191,7 @@ > "SUCCESS"); > } > // fields >-public void _test001f_1() { >+public void test001f_1() { > this.runConformTest( > new String[] { > "X.java", >@@ -213,7 +211,7 @@ > }, > "SUCCESS"); > } >-public void _test001g() { >+public void test001g() { > this.runConformTest( > new String[] { > "X.java", >@@ -232,7 +230,7 @@ > }, > "SUCCESS\n1"); > } >-public void _test001g_1() { >+public void test001g_1() { > this.runConformTest( > new String[] { > "X.java", >@@ -253,7 +251,7 @@ > }, > "SUCCESS\n1"); > } >-public void _test001h() { >+public void test001h() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -281,7 +279,7 @@ > "The method methodx(String) in the type X<String>.X2<String> is not applicable for the arguments (int)\n" + > "----------\n"); > } >-public void _test001h_1() { >+public void test001h_1() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -326,7 +324,7 @@ > "Type safety: The method methodx(Object) belongs to the raw type X.X2. References to generic type X<T>.X2<T> should be parameterized\n" + > "----------\n"); > } >-public void _test001i() { >+public void test001i() { > this.runConformTest( > new String[] { > "X.java", >@@ -347,7 +345,7 @@ > }, > "SUCCESS"); > } >-public void _test002() { >+public void test002() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -389,7 +387,7 @@ > "SUCCESS"); > } > >-public void _test004b() { >+public void test004b() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -408,10 +406,10 @@ > "1. ERROR in X.java (at line 5)\n" + > " new X<>().new X2<>(){\n" + > " ^^\n" + >- "Empty type argument list cannot be used in anonymous class declaration\n" + >+ "Incorrect number of arguments for type X<>.X2; it cannot be parameterized with arguments <>\n" + > "----------\n"); > } >-public void _test004c() { >+public void test004c() { > this.runConformTest( > new String[] { > "X.java", >@@ -434,7 +432,7 @@ > "1"); > } > >-public void _test006() { >+public void test006() { > this.runConformTest( > new String[] { > "X.java", >@@ -530,59 +528,7 @@ > "2"); > } > >-// To be activated if we introduce a warning to be raised when <> can be used but is not used. >-public void _test012() { >- Map options = getCompilerOptions(); >- //options.put(CompilerOptions.OPTION_ReportRedundantDeclarationOfTypeArguments, CompilerOptions.ERROR); >- this.runNegativeTest( >- new String[] { >- "X.java", >- "public class X<T> {\n" + >- " X<String> f1 = new X<String>();\n" + >- " public void foo() {\n" + >- " X<Integer> i1 = new X<Integer>();\n" + >- " }\n" + >- "}", >- }, >- "----------\n" + >- "1. ERROR in X.java (at line 2)\n" + >- " X<String> f1 = new X<String>();\n" + >- " ^^^^^^^^^^^^^^^\n" + >- "Redundant declaration of type arguments <String>\n" + >- "----------\n" + >- "2. ERROR in X.java (at line 4)\n" + >- " X<Integer> i1 = new X<Integer>();\n" + >- " ^^^^^^^^^^^^^^^^\n" + >- "Redundant declaration of type arguments <Integer>\n" + >- "----------\n", >- null, >- true, >- options); >-} >-// To be activated if we introduce a warning to be raised when <> can be used but is not used. >-public void _test013a() { >- Map options = getCompilerOptions(); >- //options.put(CompilerOptions.OPTION_ReportRedundantDeclarationOfTypeArguments, CompilerOptions.ERROR); >- this.runConformTest( >- new String[] { >- "X.java", >- "public class X<T> {\n" + >- " class Y<U>{}\n" + >- " Y<String> f1 = new Y();\n" + >- " public static void main(String[] args) {\n" + >- " X<Integer> i1 = new X<>();\n" + >- " System.out.println(\"SUCCESS\");\n" + >- " }\n" + >- "}", >- }, >- "SUCCESS", >- null, >- true, >- null, >- options, >- null); >-} >-public void _test0014() { >+public void test0014() { > this.runConformTest( > new String[] { > "X.java", >@@ -600,7 +546,7 @@ > "SUCCESS\n" + > "123"); > } >-public void _test0014a() { >+public void test0014a() { > this.runNegativeTest( > new String[] { > "X.java", >@@ -622,7 +568,7 @@ > "The method testFunction(String, Integer) in the type X<String,Integer> is not applicable for the arguments (int, String)\n" + > "----------\n"); > } >-public void _test0015() { >+public void test0015() { > this.runConformTest( > new String[] { > "X.java", >@@ -643,7 +589,7 @@ > } > // To verify that a parameterized invocation of a generic constructor works even if <> is used > // to elide class type parameters. >-public void _test0016() { >+public void test0016() { > this.runConformTest( > new String[] { > "X.java", >@@ -664,7 +610,7 @@ > } > // To verify that a parameterized invocation of a generic constructor works even if <> is used > // to elide class type parameters. This test handles fields >-public void _test0016b() { >+public void test0016b() { > this.runConformTest( > new String[] { > "X.java", >@@ -689,7 +635,7 @@ > // To verify that a parameterized invocation of a non-generic constructor works even if <> is used > // to elide class type parameters. > // This was not allowed in java 1.6 and 1.5 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=168230) >-public void _test0017() { >+public void test0017() { > this.runConformTest( > new String[] { > "X.java",
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 339478
:
190845
|
191332
|
191458
|
191707
|
191785
|
191891
|
191902
|
191946
|
191947
|
191984
|
192058
|
193887
|
193901
|
193918
|
193951
|
193962
|
193963