diff options
author | Walter Harley | 2008-03-26 00:39:13 +0000 |
---|---|---|
committer | Walter Harley | 2008-03-26 00:39:13 +0000 |
commit | 6b38a90674d8f322a6f0c632bd6a1269aa0b2341 (patch) | |
tree | 88ce6c5406015baa7f6e1942069fd7d6aac120fd | |
parent | fe964ab01ddcec37f8dfad2a7e0b4a4e86da2033 (diff) | |
download | eclipse.jdt.core-6b38a90674d8f322a6f0c632bd6a1269aa0b2341.tar.gz eclipse.jdt.core-6b38a90674d8f322a6f0c632bd6a1269aa0b2341.tar.xz eclipse.jdt.core-6b38a90674d8f322a6f0c632bd6a1269aa0b2341.zip |
Bug 223281 - report error type for parameterized, arrayed, etc. types based on recovered types.
4 files changed, 9 insertions, 4 deletions
diff --git a/org.eclipse.jdt.compiler.apt.tests/lib/apttestprocessors.jar b/org.eclipse.jdt.compiler.apt.tests/lib/apttestprocessors.jar Binary files differindex 28163d60e5..56ccf04a12 100644 --- a/org.eclipse.jdt.compiler.apt.tests/lib/apttestprocessors.jar +++ b/org.eclipse.jdt.compiler.apt.tests/lib/apttestprocessors.jar diff --git a/org.eclipse.jdt.compiler.apt.tests/processors/org/eclipse/jdt/compiler/apt/tests/processors/negative/NegativeModelProc.java b/org.eclipse.jdt.compiler.apt.tests/processors/org/eclipse/jdt/compiler/apt/tests/processors/negative/NegativeModelProc.java index 3b2ffc2695..ed81d906ef 100644 --- a/org.eclipse.jdt.compiler.apt.tests/processors/org/eclipse/jdt/compiler/apt/tests/processors/negative/NegativeModelProc.java +++ b/org.eclipse.jdt.compiler.apt.tests/processors/org/eclipse/jdt/compiler/apt/tests/processors/negative/NegativeModelProc.java @@ -197,6 +197,7 @@ public class NegativeModelProc extends AbstractProcessor " </superclass>\n" + " <interfaces>\n" + " <type-mirror kind=\"ERROR\" to-string=\"M112\"/>\n" + + " <type-mirror kind=\"ERROR\" to-string=\"M113<M114>\"/>\n" + " </interfaces>\n" + " </type-element>\n" + " </type-element>\n" + diff --git a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/AllTests.java b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/AllTests.java index e26370eac6..0b35646464 100644 --- a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/AllTests.java +++ b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/AllTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2007 BEA Systems, Inc. + * Copyright (c) 2006, 2008 BEA Systems, Inc. * 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 @@ -27,8 +27,7 @@ public class AllTests extends TestCase { suite.addTestSuite(MessagerTests.class); suite.addTestSuite(FilerTests.class); suite.addTestSuite(ModelUtilTests.class); - // Not yet supported: - // suite.addTestSuite(NegativeTests.class); + suite.addTestSuite(NegativeTests.class); return suite; } } diff --git a/org.eclipse.jdt.compiler.apt/src/org/eclipse/jdt/internal/compiler/apt/model/DeclaredTypeImpl.java b/org.eclipse.jdt.compiler.apt/src/org/eclipse/jdt/internal/compiler/apt/model/DeclaredTypeImpl.java index 820090d180..2edb524b7c 100644 --- a/org.eclipse.jdt.compiler.apt/src/org/eclipse/jdt/internal/compiler/apt/model/DeclaredTypeImpl.java +++ b/org.eclipse.jdt.compiler.apt/src/org/eclipse/jdt/internal/compiler/apt/model/DeclaredTypeImpl.java @@ -27,6 +27,7 @@ import javax.lang.model.type.TypeVisitor; import org.eclipse.jdt.internal.compiler.apt.dispatch.BaseProcessingEnvImpl; import org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding; import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding; +import org.eclipse.jdt.internal.compiler.lookup.TagBits; import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; import org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding; @@ -108,7 +109,11 @@ public class DeclaredTypeImpl extends TypeMirrorImpl implements DeclaredType { @Override public TypeKind getKind() { - if (!binding().isValidBinding()) { + // Binding.isValidBinding() will return true for a parameterized or array type whose raw + // or member type is unresolved. So we need to be a little more sensitive, so that we + // can report Zork<Quux> or Zork[] as error types. + ReferenceBinding type = (ReferenceBinding)_binding; + if ((!type.isValidBinding() || ((type.tagBits & TagBits.HasMissingType) != 0))) { return TypeKind.ERROR; } return TypeKind.DECLARED; |