diff options
author | Mike Rennie | 2014-08-11 19:56:18 +0000 |
---|---|---|
committer | Mike Rennie | 2014-08-11 19:56:18 +0000 |
commit | 3686ca746692c628cbe0d135de2fe1de5512fb14 (patch) | |
tree | 9bfd76084a60cb725904ad873eb555f3b605d3e8 /apitools | |
parent | c02617456399307d291e9d928e6d83ff734247e7 (diff) | |
download | eclipse.pde.ui-3686ca746692c628cbe0d135de2fe1de5512fb14.tar.gz eclipse.pde.ui-3686ca746692c628cbe0d135de2fe1de5512fb14.tar.xz eclipse.pde.ui-3686ca746692c628cbe0d135de2fe1de5512fb14.zip |
Bug 438432 - Java 8 API errors on
ZonedDateTime#isBefore(ChronoZonedDateTime) and #toEpochSecond()
Change-Id: I6c66110dfb3c5bf2d799eea6134fb0f30e67c72a
Diffstat (limited to 'apitools')
13 files changed, 391 insertions, 197 deletions
diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8ConsRefInstantiateUsageTests.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8ConsRefInstantiateUsageTests.java index 0eb71eedf5..85af9a01ab 100644 --- a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8ConsRefInstantiateUsageTests.java +++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8ConsRefInstantiateUsageTests.java @@ -1,5 +1,3 @@ -package org.eclipse.pde.api.tools.builder.tests.usage; - /******************************************************************************* * Copyright (c) 2014 IBM Corporation and others. * All rights reserved. This program and the accompanying materials @@ -10,6 +8,7 @@ package org.eclipse.pde.api.tools.builder.tests.usage; * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ +package org.eclipse.pde.api.tools.builder.tests.usage; import junit.framework.Test; diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java index 8f9b0b485f..6bcc22e81e 100644 --- a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java +++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/builder/tests/usage/Java8DefaultMethodUsageTests.java @@ -1,8 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2014 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.pde.api.tools.builder.tests.usage; import junit.framework.Test; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; import org.eclipse.pde.api.tools.internal.problems.ApiProblemFactory; import org.eclipse.pde.api.tools.internal.provisional.descriptors.IElementDescriptor; import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem; @@ -494,5 +505,181 @@ public class Java8DefaultMethodUsageTests extends Java8UsageTest { deployUsageTest(typename, inc); } + /** + * Tests that we do not find any problems referencing default methods in JDK + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testSystemComponentNoDefaultMethodsReportedF() throws Exception { + x15(false); + } + + /** + * Tests that we do not find any problems referencing default methods in JDK + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testSystemComponentNoDefaultMethodsReportedI() throws Exception { + x15(true); + } + + private void x15(boolean inc) throws Exception { + String typename = "test15"; //$NON-NLS-1$ + expectingNoJDTProblems(); + IPath typepath = new Path(getTestingProjectName()).append(UsageTest.SOURCE_PATH).append(typename).addFileExtension("java"); //$NON-NLS-1$ + expectingNoProblemsFor(typepath); + deployUsageTest(typename, inc); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCallF() throws Exception { + x16(false); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCallI() throws Exception { + x16(true); + } + + private void x16(boolean inc) { + int[] pids = new int[] { getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) }; + String typename = "test16"; //$NON-NLS-1$ + setExpectedProblemIds(pids); + String[][] args = new String[][] { { + "INoRefJavadocDefaultInterface2", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$ + + }; + setExpectedMessageArgs(args); + setExpectedLineMappings(new LineMapping[] { new LineMapping(22, pids[0], args[0]) + + }); + deployUsageTest(typename, inc); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall2F() throws Exception { + x17(false); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall2I() throws Exception { + x17(true); + } + + private void x17(boolean inc) { + int[] pids = new int[] { getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) }; + String typename = "test17"; //$NON-NLS-1$ + setExpectedProblemIds(pids); + String[][] args = new String[][] { { + "INoRefJavadocDefaultInterface", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$ + + }; + setExpectedMessageArgs(args); + setExpectedLineMappings(new LineMapping[] { new LineMapping(22, pids[0], args[0]) + + }); + deployUsageTest(typename, inc); + } + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall3F() throws Exception { + x18(false); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall3I() throws Exception { + x18(true); + } + + private void x18(boolean inc) { + int[] pids = new int[] { getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) }; + String typename = "test18"; //$NON-NLS-1$ + setExpectedProblemIds(pids); + String[][] args = new String[][] { { + "INoRefJavadocDefaultInterface", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$ + + }; + setExpectedMessageArgs(args); + setExpectedLineMappings(new LineMapping[] { new LineMapping(23, pids[0], args[0]) + + }); + deployUsageTest(typename, inc); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall4F() throws Exception { + x19(false); + } + + /** + * Tests that we find problems referencing default methods in other bundle + * types + * + * @throws Exception + * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=438432 + */ + public void testOtherBundleDefaultMethodCall4I() throws Exception { + x19(true); + } + + private void x19(boolean inc) { + int[] pids = new int[] { getProblemId(IApiProblem.ILLEGAL_REFERENCE, IApiProblem.METHOD) }; + String typename = "test19"; //$NON-NLS-1$ + setExpectedProblemIds(pids); + String[][] args = new String[][] { { + "INoRefJavadocDefaultInterface", typename, "m1()" } //$NON-NLS-1$//$NON-NLS-2$ + + }; + setExpectedMessageArgs(args); + setExpectedLineMappings(new LineMapping[] { new LineMapping(22, pids[0], args[0]) + + }); + deployUsageTest(typename, inc); + } } diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test10.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test10.java index 5bcf757e5a..e465faa3a2 100644 --- a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test10.java +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test10.java @@ -18,6 +18,6 @@ import i.INoRefJavadocDefaultInterface2; public class test10 implements INoRefJavadocDefaultInterface2 { public void test3() { - m1(); + m1(); } } diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test15.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test15.java new file mode 100644 index 0000000000..c4682e7bb3 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test15.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2014 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 x.y.z; + +import java.time.ZonedDateTime; + +public class test15 { + public void m1() { + ZonedDateTime now = ZonedDateTime.now(); + if (now != null) { + now.toEpochSecond(); + } + } +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test16.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test16.java new file mode 100644 index 0000000000..bfe053b635 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test16.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 x.y.z; + +import c.NoRefJavadocDefaultInterfaceImpl2; + +/** + * + */ +public class test16 { + + public void method() { + NoRefJavadocDefaultInterfaceImpl2 clazz = new NoRefJavadocDefaultInterfaceImpl2(); + clazz.m1(); + } +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test17.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test17.java new file mode 100644 index 0000000000..a25ffcb500 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test17.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 x.y.z; + +import c.NoRefJavadocDefaultInterfaceImpl; + +/** + * + */ +public class test17 { + + public void method() { + NoRefJavadocDefaultInterfaceImpl clazz = new NoRefJavadocDefaultInterfaceImpl(); + clazz.m1(); + } +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test18.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test18.java new file mode 100644 index 0000000000..c9816a5414 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test18.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 x.y.z; + +import i.INoRefJavadocDefaultInterface; +import c.NoRefJavadocDefaultInterfaceImpl; + +/** + * + */ +public class test18 { + + public void method() { + INoRefJavadocDefaultInterface clazz = new NoRefJavadocDefaultInterfaceImpl(); + clazz.m1(); + } +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test19.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test19.java new file mode 100644 index 0000000000..ef1d0df737 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usage/java8/interface/test19.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 x.y.z; + +import c.IndirectNoRefJavadocDefaultInterfaceImpl; + +/** + * + */ +public class test19 { + + public void method() { + IndirectNoRefJavadocDefaultInterfaceImpl clazz = new IndirectNoRefJavadocDefaultInterfaceImpl(); + clazz.m1(); + } +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/META-INF/MANIFEST.MF b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/META-INF/MANIFEST.MF index 6072c16bd6..f23afe7a10 100644 --- a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/META-INF/MANIFEST.MF +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: refproject Bundle-SymbolicName: refprojectjava8 Bundle-Version: 1.0.0 -Export-Package: i,m +Export-Package: c,i,m Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.pde.api.tools;bundle-version="1.0.600", org.eclipse.pde.api.tools.annotations;bundle-version="1.0.0" diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/IndirectNoRefJavadocDefaultInterfaceImpl.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/IndirectNoRefJavadocDefaultInterfaceImpl.java new file mode 100644 index 0000000000..918c787829 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/IndirectNoRefJavadocDefaultInterfaceImpl.java @@ -0,0 +1,18 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 c; + +/** + * + */ +public class IndirectNoRefJavadocDefaultInterfaceImpl extends NoRefJavadocDefaultInterfaceImpl { + +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl.java new file mode 100644 index 0000000000..d4dbc55cd3 --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl.java @@ -0,0 +1,20 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 c; + +import i.INoRefJavadocDefaultInterface; + +/** + * + */ +public class NoRefJavadocDefaultInterfaceImpl implements INoRefJavadocDefaultInterface { + +} diff --git a/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl2.java b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl2.java new file mode 100644 index 0000000000..a20887335d --- /dev/null +++ b/apitools/org.eclipse.pde.api.tools.tests/test-builder/usageprojectsjava8/refprojectjava8/src/c/NoRefJavadocDefaultInterfaceImpl2.java @@ -0,0 +1,20 @@ +/******************************************************************************* + * Copyright (c) Aug 11, 2014 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 c; + +import i.INoRefJavadocDefaultInterface2; + +/** + * + */ +public class NoRefJavadocDefaultInterfaceImpl2 implements INoRefJavadocDefaultInterface2 { + +} diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java index 259983a1eb..1e00f263db 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java @@ -27,6 +27,7 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.pde.api.tools.internal.model.AbstractApiTypeRoot; import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; import org.eclipse.pde.api.tools.internal.provisional.builder.IReference; +import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline; import org.eclipse.pde.api.tools.internal.provisional.model.IApiComponent; import org.eclipse.pde.api.tools.internal.provisional.model.IApiField; import org.eclipse.pde.api.tools.internal.provisional.model.IApiMember; @@ -122,23 +123,11 @@ public class ReferenceExtractor extends ClassVisitor { this.kind = this.originalkind; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitClassType(java. - * lang.String) - */ @Override public void visitClassType(String name) { this.processType(name); } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitFormalTypeParameter - * (java.lang.String) - */ @Override public void visitFormalTypeParameter(String name) { if (this.type != TYPE) { @@ -146,32 +135,15 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitTypeVariable(java - * .lang.String) - */ @Override public void visitTypeVariable(String name) { } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitInnerClassType( - * java.lang.String) - */ @Override public void visitInnerClassType(String name) { this.processType(name); } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitParameterType() - */ @Override public SignatureVisitor visitParameterType() { this.argumentcount++; @@ -179,91 +151,52 @@ public class ReferenceExtractor extends ClassVisitor { return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitInterface() - */ @Override public SignatureVisitor visitInterface() { this.kind = IReference.REF_IMPLEMENTS; return this; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitExceptionType() - */ @Override public SignatureVisitor visitExceptionType() { this.kind = IReference.REF_THROWS; return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitArrayType() - */ @Override public SignatureVisitor visitArrayType() { return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitReturnType() - */ @Override public SignatureVisitor visitReturnType() { this.kind = IReference.REF_RETURNTYPE; return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitClassBound() - */ @Override public SignatureVisitor visitClassBound() { this.kind = IReference.REF_PARAMETERIZED_TYPEDECL; return this; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitInterfaceBound() - */ @Override public SignatureVisitor visitInterfaceBound() { this.kind = IReference.REF_PARAMETERIZED_TYPEDECL; return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitSuperclass() - */ @Override public SignatureVisitor visitSuperclass() { this.kind = IReference.REF_EXTENDS; return this; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.signature.SignatureVisitor#visitTypeArgument(char) - */ @Override public SignatureVisitor visitTypeArgument(char wildcard) { return this; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.signature.SignatureVisitor#visitEnd() - */ @Override public void visitEnd() { } @@ -319,10 +252,6 @@ public class ReferenceExtractor extends ClassVisitor { this.methodName = name; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitEnd() - */ @Override public void visitEnd() { this.implicitConstructor = false; @@ -332,10 +261,6 @@ public class ReferenceExtractor extends ClassVisitor { this.labelsToLocalMarkers = null; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitVarInsn(int, int) - */ @Override public void visitVarInsn(int opcode, int var) { this.stringLiteral = null; @@ -352,11 +277,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitFieldInsn(int, - * java.lang.String, java.lang.String, java.lang.String) - */ @Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { int refType = -1; @@ -392,13 +312,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.MethodAdapter#visitTryCatchBlock(org.objectweb. - * asm.Label, org.objectweb.asm.Label, org.objectweb.asm.Label, - * java.lang.String) - */ @Override public void visitTryCatchBlock(Label start, Label end, Label handler, String type) { if (type != null) { @@ -411,10 +324,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitLabel(Label) - */ @Override public void visitLabel(Label label) { this.linePositionTracker.addLabel(label); @@ -481,9 +390,29 @@ public class ReferenceExtractor extends ClassVisitor { IApiMember member = ReferenceExtractor.this.getMember(); if (member != null) { try { - IApiType type = member.getEnclosingType(); - if (type != null && getDefaultDefined(type, name, desc, false) != null) { - flags = IReference.F_DEFAULT_METHOD; + IApiComponent comp = fType.getApiComponent(); + if (comp != null) { + String owner_sig = processName(owner); + AbstractApiTypeRoot root = (AbstractApiTypeRoot) comp.findTypeRoot(owner_sig); + if (root == null) { + // a quick look did not find it, now ask + // for the components that provide the + // package + IApiBaseline baseline = comp.getBaseline(); + IApiComponent[] comps = baseline.resolvePackage(comp, Signatures.getPackageName(owner_sig)); + for (int i = 0; i < comps.length; i++) { + root = (AbstractApiTypeRoot) comps[i].findTypeRoot(owner_sig); + if (root != null) { + break; + } + } + } + if (root != null) { + IApiType type = root.getStructure(); + if (type != null && getDefaultDefined(type, name, desc, false) != null) { + flags = IReference.F_DEFAULT_METHOD; + } + } } } catch (CoreException ce) { // do nothing, give up @@ -526,22 +455,11 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodVisitor#visitInsnAnnotation(int, - * org.objectweb.asm.TypePath, java.lang.String, boolean) - */ @Override public AnnotationVisitor visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible) { return null; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.MethodAdapter#visitMultiANewArrayInsn(java.lang - * .String, int) - */ @Override public void visitMultiANewArrayInsn(String desc, int dims) { Type type = this.getTypeFromDescription(desc); @@ -551,21 +469,12 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitLineNumber(int, - * org.objectweb.asm.Label) - */ @Override public void visitLineNumber(int line, Label start) { this.lastLineNumber = line; this.linePositionTracker.addLineInfo(line, start); } - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ @Override public String toString() { StringBuffer buffer = new StringBuffer(); @@ -597,11 +506,6 @@ public class ReferenceExtractor extends ClassVisitor { return type; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitTypeInsn(int, - * java.lang.String) - */ @Override public void visitTypeInsn(int opcode, String desc) { Type type = this.getTypeFromDescription(desc); @@ -643,13 +547,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.MethodAdapter#visitLocalVariable(java.lang.String, - * java.lang.String, java.lang.String, org.objectweb.asm.Label, - * org.objectweb.asm.Label, int) - */ @Override public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) { if (desc.length() == 1) { @@ -700,10 +597,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.MethodAdapter#visitLdcInsn(java.lang.Object) - */ @Override public void visitLdcInsn(Object cst) { if (cst instanceof Type) { @@ -718,12 +611,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.MethodAdapter#visitAnnotation(java.lang.String, - * boolean) - */ @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { Type ctype = this.getTypeFromDescription(desc); @@ -746,31 +633,16 @@ public class ReferenceExtractor extends ClassVisitor { super(Opcodes.ASM5); } - /* - * (non-Javadoc) - * @see org.objectweb.asm.FieldVisitor#visitAnnotation(java.lang.String, - * boolean) - */ @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { addTypeReference(Type.getType(desc), IReference.REF_ANNOTATION_USE); return null; } - /* - * (non-Javadoc) - * @see - * org.objectweb.asm.FieldVisitor#visitAttribute(org.objectweb.asm.Attribute - * ) - */ @Override public void visitAttribute(Attribute attr) { } - /* - * (non-Javadoc) - * @see org.objectweb.asm.FieldVisitor#visitEnd() - */ @Override public void visitEnd() { exitMember(); @@ -972,10 +844,6 @@ public class ReferenceExtractor extends ClassVisitor { this.label = label; } - /* - * (non-Javadoc) - * @see java.lang.Comparable#compareTo(java.lang.Object) - */ @Override public int compareTo(Object o) { return this.line - ((LineInfo) o).line; @@ -990,10 +858,6 @@ public class ReferenceExtractor extends ClassVisitor { return super.equals(obj); } - /* - * (non-Javadoc) - * @see java.lang.Object#hashCode() - */ @Override public int hashCode() { return this.line + (this.label != null ? this.label.hashCode() : 0); @@ -1150,10 +1014,6 @@ public class ReferenceExtractor extends ClassVisitor { fieldtracker = tracker; } - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ @Override public String toString() { StringBuffer buffer = new StringBuffer(); @@ -1358,11 +1218,6 @@ public class ReferenceExtractor extends ClassVisitor { return null; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassVisitor#visit(int, int, java.lang.String, - * java.lang.String, java.lang.String, java.lang.String[]) - */ @Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { this.fVersion = version; @@ -1400,10 +1255,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassVisitor#visitEnd() - */ @Override public void visitEnd() { this.exitMember(); @@ -1418,11 +1269,6 @@ public class ReferenceExtractor extends ClassVisitor { } } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassVisitor#visitField(int, java.lang.String, - * java.lang.String, java.lang.String, java.lang.Object) - */ @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { if (fIsVisitMembers) { @@ -1450,11 +1296,6 @@ public class ReferenceExtractor extends ClassVisitor { return null; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassAdapter#visitInnerClass(java.lang.String, - * java.lang.String, java.lang.String, int) - */ @Override public void visitInnerClass(String name, String outerName, String innerName, int access) { try { @@ -1510,11 +1351,6 @@ public class ReferenceExtractor extends ClassVisitor { return refs; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassAdapter#visitAnnotation(java.lang.String, - * boolean) - */ @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { try { @@ -1526,11 +1362,6 @@ public class ReferenceExtractor extends ClassVisitor { return null; } - /* - * (non-Javadoc) - * @see org.objectweb.asm.ClassVisitor#visitMethod(int, java.lang.String, - * java.lang.String, java.lang.String, java.lang.String[]) - */ @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (fIsVisitMembers) { |