http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/libs.javacimpl/nbproject/project.properties b/libs.javacimpl/nbproject/project.properties index b602c8a..89770eb 100644 --- a/libs.javacimpl/nbproject/project.properties +++ b/libs.javacimpl/nbproject/project.properties @@ -19,7 +19,7 @@ javac.source=1.6 nbm.homepage=http://jackpot.netbeans.org/ nbm.module.author=Petr Hrebejk spec.version.base=0.47.0 -release.external/nb-javac-impl.jar=modules/ext/nb-javac-impl.jar +#release.external/nb-javac-impl.jar=modules/ext/nb-javac-impl.jar javadoc.arch=${basedir}/arch.xml @@ -37,3 +37,4 @@ javadoc.arch=${basedir}/arch.xml # Hidden class found: com.sun.tools.javac.jvm.Code$State in method public int com.sun.tools.javac.jvm.Code.entryPoint(com.sun.tools.javac.jvm.Code$State,com.sun.tools.javac.code.Type) in class com.sun.tools.javac.jvm.Code sigtest.gen.fail.on.error=false +requires.nb.javac=true
http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.javacimpl/nbproject/project.xml ---------------------------------------------------------------------- diff --git a/libs.javacimpl/nbproject/project.xml b/libs.javacimpl/nbproject/project.xml index 7944a18..e5bdda9 100644 --- a/libs.javacimpl/nbproject/project.xml +++ b/libs.javacimpl/nbproject/project.xml @@ -30,11 +30,11 @@ <build-prerequisite/> <compile-dependency/> <run-dependency> - <specification-version>8.17</specification-version> + <implementation-version/> </run-dependency> </dependency> </module-dependencies> - <friend-packages> +<!-- <friend-packages> <friend>org.netbeans.modules.jackpot.rules</friend> <friend>org.netbeans.modules.java.hints</friend> <friend>org.netbeans.modules.java.source</friend> @@ -57,11 +57,12 @@ <package>com.sun.tools.javac.tree</package> <package>com.sun.tools.javac.util</package> <package>com.sun.tools.javadoc</package> - </friend-packages> - <class-path-extension> + </friend-packages>--> + <public-packages/> +<!-- <class-path-extension> <runtime-relative-path>ext/nb-javac-impl.jar</runtime-relative-path> <binary-origin>external/nb-javac-impl.jar</binary-origin> - </class-path-extension> + </class-path-extension>--> </data> </configuration> </project> http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.jshell.compile/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/libs.jshell.compile/nbproject/project.properties b/libs.jshell.compile/nbproject/project.properties index d192e77..01fcd9b 100644 --- a/libs.jshell.compile/nbproject/project.properties +++ b/libs.jshell.compile/nbproject/project.properties @@ -26,3 +26,4 @@ javadoc.arch=${basedir}/arch.xml module.javadoc.packages= sigtest.skip.check=true sigtest.gen.fail.on.error=false +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/libs.jshell.compile/nbproject/project.xml ---------------------------------------------------------------------- diff --git a/libs.jshell.compile/nbproject/project.xml b/libs.jshell.compile/nbproject/project.xml index 5ecafda..0ec3316 100644 --- a/libs.jshell.compile/nbproject/project.xml +++ b/libs.jshell.compile/nbproject/project.xml @@ -25,7 +25,7 @@ <data xmlns="http://www.netbeans.org/ns/nb-module-project/2"> <code-name-base>org.netbeans.libs.jshell.compile</code-name-base> <module-dependencies> - <dependency> +<!-- <dependency> <code-name-base>org.netbeans.libs.javacapi</code-name-base> <build-prerequisite/> <compile-dependency/> @@ -41,7 +41,7 @@ <release-version>1</release-version> <specification-version>0.47</specification-version> </run-dependency> - </dependency> + </dependency>--> <dependency> <code-name-base>org.netbeans.lib.nbjshell</code-name-base> <run-dependency> http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.apisupport/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/maven.apisupport/nbproject/project.properties b/maven.apisupport/nbproject/project.properties index 41c0e06..5f7dca0 100644 --- a/maven.apisupport/nbproject/project.properties +++ b/maven.apisupport/nbproject/project.properties @@ -20,3 +20,4 @@ javac.source=1.6 javac.compilerargs=-Xlint -Xlint:-serial test.config.stableBTD.includes=**/*Test.class +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.hints/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/maven.hints/nbproject/project.properties b/maven.hints/nbproject/project.properties index 2aea11b..82150ad 100644 --- a/maven.hints/nbproject/project.properties +++ b/maven.hints/nbproject/project.properties @@ -20,3 +20,4 @@ javac.source=1.6 #javac.compilerargs=-Xlint -Xlint:-serial test.config.stableBTD.includes=**/*Test.class +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.junit.ui/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/maven.junit.ui/nbproject/project.properties b/maven.junit.ui/nbproject/project.properties index 7f641b7..375b088 100644 --- a/maven.junit.ui/nbproject/project.properties +++ b/maven.junit.ui/nbproject/project.properties @@ -17,3 +17,4 @@ is.eager=true javac.source=1.6 javac.compilerargs=-Xlint -Xlint:-serial +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven.refactoring/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/maven.refactoring/nbproject/project.properties b/maven.refactoring/nbproject/project.properties index c0af75f..315878a 100644 --- a/maven.refactoring/nbproject/project.properties +++ b/maven.refactoring/nbproject/project.properties @@ -16,3 +16,4 @@ # under the License. javac.source=1.6 javac.compilerargs=-Xlint -Xlint:-serial +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java ---------------------------------------------------------------------- diff --git a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java b/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java index 1415258..0613261 100644 --- a/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java +++ b/maven/src/org/netbeans/modules/maven/queries/UnitTestsCompilerOptionsQueryImpl.java @@ -290,7 +290,7 @@ public final class UnitTestsCompilerOptionsQueryImpl implements CompilerOptionsQ cc.toPhase(JavaSource.Phase.PARSED); final CompilationUnitTree cu = cc.getCompilationUnit(); for (Tree decl : cu.getTypeDecls()) { - if (decl.getKind() == Tree.Kind.MODULE) { + if (decl.getKind().name().equals("MODULE")) { res[0] = ((ModuleTree)decl).getName().toString(); break; } http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/build.xml ---------------------------------------------------------------------- diff --git a/nbbuild/build.xml b/nbbuild/build.xml index 1db4316..68028ad 100644 --- a/nbbuild/build.xml +++ b/nbbuild/build.xml @@ -71,6 +71,7 @@ <property name="have-downloadbinaries-task" value="true" /> <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> <manifest dir="${nb_all}"> + <include name="nbbuild/external/binaries-list"/> <include name="libs.junit4/external/binaries-list"/> <include name="javahelp/external/binaries-list"/> </manifest> @@ -124,7 +125,40 @@ </downloadbinaries> </target> - <target name="init-module-list" depends="bootstrap,init-tasks"> + <target name="-check-vanilla-javac" depends="bootstrap"> + <condition property="vanilla.javac.exists"> + <and> + <available file="${nb_all}/nbbuild/external/vanilla-javac-api.jar" /> + <available file="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" /> + </and> + </condition> + </target> + + <target name="prepare-vanilla-javac" depends="-check-vanilla-javac" unless="vanilla.javac.exists"> + <delete dir="${nb_all}/nbbuild/build/langtools" /> + <mkdir dir="${nb_all}/nbbuild/build/langtools" /> + <get src="http://hg.openjdk.java.net/jdk9/jdk9/langtools/archive/tip.zip" dest="${nb_all}/nbbuild/build/langtools.zip" skipexisting="true"/> + <unzip src="${nb_all}/nbbuild/build/langtools.zip" dest="${nb_all}/nbbuild/build/langtools"> + <cutdirsmapper dirs="1"/> + </unzip> + <ant antfile="${nb_all}/nbbuild/build/langtools/make/build.xml" dir="${nb_all}/nbbuild/build/langtools/" target="generate-sources"> + <property name="langtools.jdk.home" value="${java.home}" /> + </ant> + <mkdir dir="${nb_all}/nbbuild/build/langtools/build/nb" /> + <javac srcdir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.javadoc/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes:${nb_all}/nbbuild/build/langtools/build/gensrc/jdk.compiler" + destdir="${nb_all}/nbbuild/build/langtools/build/nb" + excludes="**/module-info.java,com/sun/tools/javac/main/JavacToolProvider.java,com/sun/tools/jdeps/**,com/sun/tools/jdeprscan/**,com/sun/tools/javap/Main.java,jdk/javadoc/internal/tool/JavadocToolProvider.java,com/sun/tools/doclets/standard/Standard.java" /> + <copy todir="${nb_all}/nbbuild/build/langtools/build/nb"> + <fileset dir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes" includes="**/*.properties"/> + <fileset dir="${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes" includes="**/*.properties"/> + <fileset dir="${nb_all}/nbbuild/build/langtools/src/jdk.javadoc/share/classes" includes="**/*.properties"/> + <fileset dir="${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes" includes="**/*.properties"/> + </copy> + <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-api.jar" basedir="${nb_all}/nbbuild/build/langtools/build/nb" includes="javax/**,com/sun/source/**,com/sun/javadoc/**" /> + <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" basedir="${nb_all}/nbbuild/build/langtools/build/nb" excludes="javax/**,com/sun/source/**,com/sun/javadoc/**" /> + </target> + + <target name="init-module-list" depends="bootstrap,init-tasks,prepare-vanilla-javac"> <!-- Define modules. --> <checkmoduleconfigs nbroot=".."/> <resolvelist name="allmodules" list="${nb.clusters.list}"/> http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/cluster.properties ---------------------------------------------------------------------- diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties index 6cbb9a9..dc00472 100644 --- a/nbbuild/cluster.properties +++ b/nbbuild/cluster.properties @@ -627,6 +627,8 @@ nb.cluster.java=\ java.source.ant,\ java.source.base,\ java.source.compat8,\ + java.source.jdk9.req,\ + java.source.nbjavac,\ java.source.queries,\ java.source.queriesimpl,\ java.sourceui,\ http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/external/binaries-list ---------------------------------------------------------------------- diff --git a/nbbuild/external/binaries-list b/nbbuild/external/binaries-list index 435c1cd..7335f3b 100644 --- a/nbbuild/external/binaries-list +++ b/nbbuild/external/binaries-list @@ -16,4 +16,5 @@ # under the License. A7674A6D78B7FEA58AF76B357DAE6EA5E3FDFBE9 apitest.jar 88CADDFC6785B6B7B7E65C9DC80C03958EBAEE73 nbbuild-xhtml1-dtds-resources.zip +071355012BD9E174619F838E72F1869277E24B69 nb-javac-impl.jar 16398550402B27F81CD0D508CEF54B3E47A4A6DA org.apache.rat:apache-rat:0.12 http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/templates/common.xml ---------------------------------------------------------------------- diff --git a/nbbuild/templates/common.xml b/nbbuild/templates/common.xml index 7ff3e4c..6265067 100644 --- a/nbbuild/templates/common.xml +++ b/nbbuild/templates/common.xml @@ -534,6 +534,7 @@ <pathelement path="${module.run.classpath}"/> <pathelement path="${test.@{test.type}.run.cp.extra}"/> <pathelement path="${test.@{test.type}.cp.extra}"/> + <pathelement path="${test.extra.nb.javac.deps}"/> </path> <!-- path reference used in both compiler and executor --> <propertyset id="test.@{test.type}.properties"> http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/nbbuild/templates/projectized.xml ---------------------------------------------------------------------- diff --git a/nbbuild/templates/projectized.xml b/nbbuild/templates/projectized.xml index ef60182..1d8885f 100644 --- a/nbbuild/templates/projectized.xml +++ b/nbbuild/templates/projectized.xml @@ -170,30 +170,40 @@ If you are sure you want to build with JDK 9+ anyway, use: -Dpermit.jdk9.builds= <property name="locjhindexer.locales" value="${locales}"/> <property name="locmakenbm.locales" value="${locales}"/> <property name="locmakenbm.brands" value="${brandings}"/> - <pathconvert property="retouche.javac.api"> - <fileset dir="${nb_all}"> - <include name="libs.javacapi/external/*javac*.jar"/> - </fileset> - </pathconvert> - <pathconvert property="retouche.javac.impl"> - <fileset dir="${nb_all}"> - <include name="libs.javacimpl/external/*javac*.jar"/> - </fileset> - <fileset dir="${nbjdk.home}/../Classes" erroronmissingdir="false"> - <include name="*.jar"/> - </fileset> - </pathconvert> <!-- When requires.nb.javac property is true, prepend javac-api and javac-impl on bootclasspath to allow override the default annotation processing API located in rt.jar. --> - <condition property="bootclasspath.prepend" value="${retouche.javac.api}${path.separator}${retouche.javac.impl}"> + <property name="bootclasspath.prepend.vanilla" value="${nb_all}/nbbuild/external/vanilla-javac-api.jar:${nb_all}/nbbuild/external/vanilla-javac-impl.jar" /> + <property name="bootclasspath.prepend.nb" value="${nb_all}/nbbuild/external/vanilla-javac-api.jar:${nb_all}/nbbuild/external/nb-javac-impl.jar" /> + <condition property="bootclasspath.prepend" value="${bootclasspath.prepend.nb}"> + <istrue value="${requires.nb.javac.impl}"/> + </condition> + <condition property="bootclasspath.prepend" value="${bootclasspath.prepend.vanilla}"> <istrue value="${requires.nb.javac}"/> </condition> - <condition property="run.bootclasspath.prepend" value="${bootclasspath.prepend}"> + <condition property="run.bootclasspath.prepend" value="${bootclasspath.prepend.vanilla}"> + <and> + <istrue value="${requires.nb.javac}"/> + <istrue value="${test.use.vanilla.javac}"/> + </and> + </condition> + <condition property="run.bootclasspath.prepend" value="${bootclasspath.prepend.nb}"> <istrue value="${requires.nb.javac}"/> </condition> + <condition property="run.bootclasspath.prepend" value="${bootclasspath.prepend.nb}"> + <istrue value="${requires.nb.javac.impl}"/> + </condition> <condition property="run.bootclasspath.prepend" value="${bootclasspath.prepend}"> <isset property="bootclasspath.prepend"/> </condition> + <condition property="test.extra.nb.javac.deps" value="${java.source.nbjavac.dir}/modules/org-netbeans-modules-java-source-nbjavac.jar"> + <and> + <istrue value="${requires.nb.javac}"/> + <not> + <istrue value="${test.use.vanilla.javac}"/> + </not> + </and> + </condition> + <property name="test.extra.nb.javac.deps" value="" /> <fail message="Delete standalone/suite-related metadata from netbeans.org modules"> <condition> <or> http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/o.n.bootstrap/src/org/netbeans/ModuleManager.java ---------------------------------------------------------------------- diff --git a/o.n.bootstrap/src/org/netbeans/ModuleManager.java b/o.n.bootstrap/src/org/netbeans/ModuleManager.java index 9276954..f63fd33 100644 --- a/o.n.bootstrap/src/org/netbeans/ModuleManager.java +++ b/o.n.bootstrap/src/org/netbeans/ModuleManager.java @@ -882,7 +882,7 @@ public final class ModuleManager extends Modules { return theHost.getClassLoader(); } - private Collection<Module> getAttachedFragments(Module m) { + public Collection<Module> getAttachedFragments(Module m) { String cdn = m.getCodeNameBase(); Collection<Module> frags = fragmentModules.get(cdn); return frags == null ? Collections.<Module>emptySet() : frags; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java ---------------------------------------------------------------------- diff --git a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java b/parsing.api/src/org/netbeans/modules/parsing/api/Source.java index b608e2c..de03c14 100644 --- a/parsing.api/src/org/netbeans/modules/parsing/api/Source.java +++ b/parsing.api/src/org/netbeans/modules/parsing/api/Source.java @@ -570,6 +570,8 @@ public final class Source implements Lookup.Provider { } private void setSourceModification (boolean sourceChanged, int startOffset, int endOffset) { + if (!sourceChanged) + return ; ASourceModificationEvent oldSourceModificationEvent; ASourceModificationEvent newSourceModificationEvent; do { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java ---------------------------------------------------------------------- diff --git a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java index 7b1ce92..6ca03d9 100644 --- a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java +++ b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/ElementUtilitiesEx.java @@ -19,7 +19,7 @@ package org.netbeans.modules.profiler.nbimpl.javac; import com.sun.source.tree.ClassTree; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.util.Collections; import java.util.EnumSet; @@ -191,7 +191,7 @@ public class ElementUtilitiesEx { @Override public void run(final CompilationController cc) throws Exception { cc.toPhase(Phase.RESOLVED); - new TreePathScanner<Void, Void>() { + new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitClass(ClassTree node, Void p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java ---------------------------------------------------------------------- diff --git a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java index ee328dc..ece6b75 100644 --- a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java +++ b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/javac/JavacClassInfo.java @@ -19,7 +19,7 @@ package org.netbeans.modules.profiler.nbimpl.javac; import com.sun.source.tree.ClassTree; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.lang.ref.Reference; import java.lang.ref.SoftReference; @@ -348,7 +348,7 @@ public class JavacClassInfo extends SourceClassInfo { cc.toPhase(JavaSource.Phase.RESOLVED); - TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, Void>() { + ErrorAwareTreePathScanner<Void, Void> scanner = new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitClass(ClassTree node, Void v) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java ---------------------------------------------------------------------- diff --git a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java index 9c6906f..f681956 100644 --- a/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java +++ b/profiler.nbimpl/src/org/netbeans/modules/profiler/nbimpl/providers/JavaProfilerSourceImpl.java @@ -26,7 +26,7 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Scope; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import com.sun.source.util.Trees; import java.io.IOException; import java.util.ArrayList; @@ -194,7 +194,7 @@ public class JavaProfilerSourceImpl implements AbstractJavaProfilerSource { return; } - TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, Void>() { + ErrorAwareTreePathScanner<Void, Void> scanner = new ErrorAwareTreePathScanner<Void, Void>() { public Void visitMethod(MethodTree node, Void p) { Void retValue; @@ -241,7 +241,7 @@ public class JavaProfilerSourceImpl implements AbstractJavaProfilerSource { return; } - TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, Void>() { + ErrorAwareTreePathScanner<Void, Void> scanner = new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitClass(ClassTree node, Void param) { @@ -295,7 +295,7 @@ public class JavaProfilerSourceImpl implements AbstractJavaProfilerSource { public void run(final CompilationController controller) throws Exception { controller.toPhase(Phase.ELEMENTS_RESOLVED); - TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, Void>() { + ErrorAwareTreePathScanner<Void, Void> scanner = new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitAnnotation(AnnotationTree annTree, Void p) { @@ -632,7 +632,7 @@ public class JavaProfilerSourceImpl implements AbstractJavaProfilerSource { public void run(final CompilationController cc) throws Exception { cc.toPhase(Phase.ELEMENTS_RESOLVED); - TreePathScanner<Void, Void> scanner = new TreePathScanner<Void, Void>() { + ErrorAwareTreePathScanner<Void, Void> scanner = new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitMethod(MethodTree node, Void p) { Element e = cc.getTrees().getElement(getCurrentPath()); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/profiler.projectsupport/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/profiler.projectsupport/nbproject/project.properties b/profiler.projectsupport/nbproject/project.properties index 352701b..1918eaa 100644 --- a/profiler.projectsupport/nbproject/project.properties +++ b/profiler.projectsupport/nbproject/project.properties @@ -17,3 +17,4 @@ is.autoload=true javac.compilerargs=-Xlint -Xlint:-serial javac.source=1.6 +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java index 62de70c..c487ced 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.api; import com.sun.source.tree.MemberSelectTree; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -297,7 +297,7 @@ public final class JavaRefactoringUtils { return scanner.usages; } - private static final class InvocationScanner extends TreePathScanner <Tree, ElementHandle> implements CancellableTask <CompilationController> { + private static final class InvocationScanner extends ErrorAwareTreePathScanner <Tree, ElementHandle> implements CancellableTask <CompilationController> { private CompilationController cc; private final ElementHandle toFind; InvocationScanner (ElementHandle toFind) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java index bbd26bf..1f299e9 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/callhierarchy/CallHierarchyTasks.java @@ -22,7 +22,7 @@ package org.netbeans.modules.refactoring.java.callhierarchy; import com.sun.source.tree.*; import com.sun.source.tree.Tree.Kind; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.awt.EventQueue; import java.io.IOException; import java.lang.annotation.Annotation; @@ -530,7 +530,7 @@ final class CallHierarchyTasks { } - private static final class CalleeScanner extends TreePathScanner<Void, Void> { + private static final class CalleeScanner extends ErrorAwareTreePathScanner<Void, Void> { private final CompilationInfo javac; /** map of all executables and their occurrences in the method body */ private Map<Element, OccurrencesDesc> refs = new HashMap<Element, OccurrencesDesc>(); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java index 1cc4e4b..86a7dfd 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.TypeParameterTree; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.IOException; import java.text.MessageFormat; import java.util.*; @@ -506,7 +506,7 @@ public class ChangeParametersPlugin extends JavaRefactoringPlugin { String name = paramTable[index].getName(); int originalIndex = paramTable[index].getOriginalIndex(); final VariableElement parameterElement = originalIndex == -1 ? null : method.getParameters().get(originalIndex); - TreeScanner<Boolean, String> scanner = new TreeScanner<Boolean, String>() { + ErrorAwareTreeScanner<Boolean, String> scanner = new ErrorAwareTreeScanner<Boolean, String>() { @Override public Boolean visitVariable(VariableTree vt, String p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java index 86204c2..5194ef2 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParamsTransformer.java @@ -41,7 +41,7 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.*; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.io.IOException; import java.util.*; @@ -788,7 +788,7 @@ public class ChangeParamsTransformer extends RefactoringVisitor { do { original2Translated.clear(); if(renameParams) { - TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() { + ErrorAwareTreeScanner<Void, Void> idScan = new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitIdentifier(IdentifierTree node, Void p) { String name = node.getName().toString(); @@ -808,7 +808,7 @@ public class ChangeParamsTransformer extends RefactoringVisitor { blockTree = (BlockTree) workingCopy.getTreeUtilities().translate(blockTree, original2Translated); } original2Translated.clear(); - TreeScanner<Boolean, ExecutableElement> methodScanner = new TreeScanner<Boolean, ExecutableElement>() { + ErrorAwareTreeScanner<Boolean, ExecutableElement> methodScanner = new ErrorAwareTreeScanner<Boolean, ExecutableElement>() { @Override public Boolean visitMethodInvocation(MethodInvocationTree node, ExecutableElement p) { boolean changed = false; @@ -847,7 +847,7 @@ public class ChangeParamsTransformer extends RefactoringVisitor { boolean changed = false; do { original2Translated.clear(); - TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() { + ErrorAwareTreeScanner<Void, Void> idScan = new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitIdentifier(IdentifierTree node, Void p) { String name = node.getName().toString(); @@ -866,7 +866,7 @@ public class ChangeParamsTransformer extends RefactoringVisitor { expressionTree = (ExpressionTree) workingCopy.getTreeUtilities().translate(expressionTree, original2Translated); original2Translated.clear(); - TreeScanner<Boolean, ExecutableElement> methodScanner = new TreeScanner<Boolean, ExecutableElement>() { + ErrorAwareTreeScanner<Boolean, ExecutableElement> methodScanner = new ErrorAwareTreeScanner<Boolean, ExecutableElement>() { @Override public Boolean visitMethodInvocation(MethodInvocationTree node, ExecutableElement p) { boolean changed = false; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java index a2f5b92..0804d6d 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ExtractSuperclassRefactoringPlugin.java @@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.io.IOException; import java.util.*; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java index 1bdece1..28c9b0b 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindUsagesVisitor.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.tree.Tree.Kind; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import com.sun.source.util.Trees; import java.io.IOException; import java.util.*; @@ -51,7 +51,7 @@ import org.openide.util.Exceptions; * * @author Jan Becicka */ -public class FindUsagesVisitor extends TreePathScanner<Tree, Element> { +public class FindUsagesVisitor extends ErrorAwareTreePathScanner<Tree, Element> { private Collection<TreePath> usages = new ArrayList<>(); private List<WhereUsedElement> elements = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java index d7d5789..10f6f1c 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/FindVisitor.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -36,7 +36,7 @@ import org.openide.util.Exceptions; * * @author Jan Becicka */ -public class FindVisitor extends TreePathScanner<Tree, Element> { +public class FindVisitor extends ErrorAwareTreePathScanner<Tree, Element> { private Collection<TreePath> usages = new ArrayList<TreePath>(); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java index ac1fe21..8a36ef9 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineMethodTransformer.java @@ -31,6 +31,8 @@ import org.netbeans.api.java.source.ElementUtilities; import org.netbeans.api.java.source.GeneratorUtilities; import org.netbeans.api.java.source.TreePathHandle; import org.netbeans.api.java.source.TreeUtilities; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import org.netbeans.modules.refactoring.api.Problem; import org.netbeans.modules.refactoring.java.api.JavaRefactoringUtils; import org.netbeans.modules.refactoring.java.spi.RefactoringVisitor; @@ -208,7 +210,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { body = (BlockTree) treeUtilities.translate(body, original2TranslatedBody); final Boolean[] multiplereturn = {null}; - new TreeScanner<Void, Void>() { + new ErrorAwareTreeScanner<Void, Void>() { @Override public Void scan(Tree node, Void p) { @@ -396,7 +398,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { final ElementUtilities elementUtilities = workingCopy.getElementUtilities(); final TypeElement bodyEnclosingTypeElement = elementUtilities.enclosingTypeElement(method); - TreePathScanner<Void, ExecutableElement> idScan = new TreePathScanner<Void, ExecutableElement>() { + ErrorAwareTreePathScanner<Void, ExecutableElement> idScan = new ErrorAwareTreePathScanner<Void, ExecutableElement>() { @Override public Void visitIdentifier(IdentifierTree node, ExecutableElement p) { TreePath currentPath = getCurrentPath(); @@ -524,7 +526,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { final CompilationUnitTree compilationUnitTree = workingCopy.getTrees().getPath(resolved).getCompilationUnit(); final LinkedList<Pair<Element, String>> renames = new LinkedList<>(); // Scan the body and look for name clashes - TreeScanner<Void, ExecutableElement> nameClashScanner = new TreeScanner<Void, ExecutableElement>() { + ErrorAwareTreeScanner<Void, ExecutableElement> nameClashScanner = new ErrorAwareTreeScanner<Void, ExecutableElement>() { @Override public Void visitVariable(VariableTree node, ExecutableElement p) { TreePath path = trees.getPath(compilationUnitTree, node); @@ -577,7 +579,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { }; nameClashScanner.scan(body, (ExecutableElement) p); - TreeScanner<Void, Pair<Element, String>> idScan = new TreeScanner<Void, Pair<Element, String>>() { + ErrorAwareTreeScanner<Void, Pair<Element, String>> idScan = new ErrorAwareTreeScanner<Void, Pair<Element, String>>() { @Override public Void visitIdentifier(IdentifierTree node, Pair<Element, String> p) { TreePath path = trees.getPath(compilationUnitTree, node); @@ -617,7 +619,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { final CompilationUnitTree compilationUnitTree = workingCopy.getTrees().getPath(resolved).getCompilationUnit(); final LinkedList<Pair<Element, String>> renames = new LinkedList<>(); - TreeScanner<Void, Pair<VariableElement, ExpressionTree>> idScan = new TreeScanner<Void, Pair<VariableElement, ExpressionTree>>() { + ErrorAwareTreeScanner<Void, Pair<VariableElement, ExpressionTree>> idScan = new ErrorAwareTreeScanner<Void, Pair<VariableElement, ExpressionTree>>() { @Override public Void visitIdentifier(IdentifierTree node, Pair<VariableElement, ExpressionTree> p) { TreePath currentPath = trees.getPath(compilationUnitTree, node); @@ -675,7 +677,7 @@ public class InlineMethodTransformer extends RefactoringVisitor { } } - TreeScanner<Void, Pair<Element, String>> renameScan = new TreeScanner<Void, Pair<Element, String>>() { + ErrorAwareTreeScanner<Void, Pair<Element, String>> renameScan = new ErrorAwareTreeScanner<Void, Pair<Element, String>>() { @Override public Void visitIdentifier(IdentifierTree node, Pair<Element, String> p) { TreePath path = trees.getPath(compilationUnitTree, node); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java index 917a01e..80cfb4b 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InlineRefactoringPlugin.java @@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.io.IOException; import java.util.*; @@ -250,7 +250,7 @@ public class InlineRefactoringPlugin extends JavaRefactoringPlugin { if (initializer.getKind().equals(Tree.Kind.METHOD_INVOCATION)) { skipFirstMethodInvocation++; } - TreeScanner<Boolean, Boolean> scanner = new UnsafeTreeScanner(skipFirstMethodInvocation); + ErrorAwareTreeScanner<Boolean, Boolean> scanner = new UnsafeTreeScanner(skipFirstMethodInvocation); Boolean isChanged = scanner.scan(initializer, false); if (isChanged != null && isChanged) { preCheckProblem = createProblem(preCheckProblem, false, WRN_InlineChange()); //NOI18N @@ -542,7 +542,7 @@ public class InlineRefactoringPlugin extends JavaRefactoringPlugin { } } - private static class UnsafeTreeScanner extends TreeScanner<Boolean, Boolean> { + private static class UnsafeTreeScanner extends ErrorAwareTreeScanner<Boolean, Boolean> { private int skipFirstMethodInvocation; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java index fdba31e..24fc93a 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/IntroduceParameterPlugin.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.IOException; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -92,7 +92,7 @@ public class IntroduceParameterPlugin extends JavaRefactoringPlugin { String name = paramTable[index].getName(); int originalIndex = paramTable[index].getOriginalIndex(); final VariableElement parameterElement = originalIndex == -1 ? null : method.getParameters().get(originalIndex); - TreeScanner<Boolean, String> scanner = new TreeScanner<Boolean, String>() { + ErrorAwareTreeScanner<Boolean, String> scanner = new ErrorAwareTreeScanner<Boolean, String>() { @Override public Boolean visitVariable(VariableTree vt, String p) { @@ -330,7 +330,7 @@ public class IntroduceParameterPlugin extends JavaRefactoringPlugin { private Set<TreePath> computeDuplicates(final WorkingCopy workingCopy, TreePath resolved, TreePath meth) { Set<TreePath> ret = SourceUtils.computeDuplicates(workingCopy, resolved, meth, new AtomicBoolean()); // final Set<TreePath> ret = new HashSet<TreePath>(); -// TreePathScanner<Void, Element> scanner = new TreePathScanner<Void, Element>() { +// ErrorAwareTreePathScanner<Void, Element> scanner = new ErrorAwareTreePathScanner<Void, Element>() { // // @Override // public Void visitIdentifier(IdentifierTree node, Element p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java index 4dd18c2..e9cbf5f 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/InvertBooleanRefactoringPlugin.java @@ -22,7 +22,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.tree.Tree.Kind; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -259,7 +259,7 @@ public class InvertBooleanRefactoringPlugin implements RefactoringPlugin { //ext format.setRightBrace("}$"); final String mthFormat = format.format(MTH_INIT); - new TreePathScanner<Void, Void>() { + new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitReturn(ReturnTree node, Void p) { TransformationSupport.create(mthFormat).setCancel(cancel).transformTreePath(parameter, getCurrentPath()); return super.visitReturn(node, p); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java index a58afff..9f7c98b 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/LocalVarScanner.java @@ -32,7 +32,7 @@ import com.sun.source.tree.SwitchTree; import com.sun.source.tree.TryTree; import com.sun.source.tree.VariableTree; import com.sun.source.tree.WhileLoopTree; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import org.netbeans.api.java.source.CompilationInfo; @@ -41,7 +41,7 @@ import org.netbeans.api.java.source.CompilationInfo; * * @author Jan Becicka */ -public class LocalVarScanner extends TreePathScanner<Boolean, Element> { +public class LocalVarScanner extends ErrorAwareTreePathScanner<Boolean, Element> { private CompilationInfo info; private String newName; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java index 26c7a74..e7e1fdd 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveClassTransformer.java @@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; @@ -170,7 +170,7 @@ public class MoveClassTransformer extends RefactoringVisitor { ClassTree classTree = (ClassTree) workingCopy.getTrees().getTree(resolved); ClassTree origTree = get.importComments(classTree, workingCopy.getTrees().getPath(resolved).getCompilationUnit()); final Map<Tree, Tree> org2trans = new HashMap<Tree, Tree>(); - TreeScanner<Object, Element> scanner= new TreeScanner<Object, Element>() { + ErrorAwareTreeScanner<Object, Element> scanner= new ErrorAwareTreeScanner<Object, Element>() { @Override public Object visitIdentifier(IdentifierTree node, Element p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java index 37c9c8e..ccc162f 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/MoveMembersTransformer.java @@ -23,7 +23,7 @@ import com.sun.javadoc.Tag; import com.sun.source.tree.*; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.util.*; import java.util.logging.Level; @@ -377,7 +377,7 @@ public class MoveMembersTransformer extends RefactoringVisitor { arguments.remove(removedIndex); } TypeMirror sourceType = workingCopy.getTrees().getTypeMirror(enclosingClassPath); - TreeScanner<Boolean, TypeMirror> needsArgumentScanner = new TreeScanner<Boolean, TypeMirror>() { + ErrorAwareTreeScanner<Boolean, TypeMirror> needsArgumentScanner = new ErrorAwareTreeScanner<Boolean, TypeMirror>() { // Logic is a copy from #insertIfMatch @Override @@ -549,7 +549,7 @@ public class MoveMembersTransformer extends RefactoringVisitor { final TreePath bodyPath = new TreePath(resolvedPath, body); final Trees trees = workingCopy.getTrees(); final Map<ExpressionTree, ExpressionTree> fqns = new HashMap<ExpressionTree, ExpressionTree>(); - TreeScanner<Void, Void> fqnScan = new TreeScanner<Void, Void>() { + ErrorAwareTreeScanner<Void, Void> fqnScan = new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitIdentifier(IdentifierTree node, Void p) { @@ -573,7 +573,7 @@ public class MoveMembersTransformer extends RefactoringVisitor { TreePath sourceClass = JavaRefactoringUtils.findEnclosingClass(workingCopy, resolvedPath, true, true, true, true, true); TypeMirror sourceType = workingCopy.getTrees().getTypeMirror(sourceClass); final String parameterName = getParameterName(sourceType, workingCopy.getTrees().getScope(bodyPath), workingCopy); - TreeScanner<Boolean, TypeMirror> idScan = new TreeScanner<Boolean, TypeMirror>() { + ErrorAwareTreeScanner<Boolean, TypeMirror> idScan = new ErrorAwareTreeScanner<Boolean, TypeMirror>() { @Override public Boolean visitMemberSelect(MemberSelectTree node, TypeMirror source) { @@ -646,7 +646,7 @@ public class MoveMembersTransformer extends RefactoringVisitor { boolean addParameter = idScan.scan(body, sourceType) == Boolean.TRUE; if (removedParameter != null) { - TreeScanner<Void, Pair<Element, ExpressionTree>> idScan2 = new TreeScanner<Void, Pair<Element, ExpressionTree>>() { + ErrorAwareTreeScanner<Void, Pair<Element, ExpressionTree>> idScan2 = new ErrorAwareTreeScanner<Void, Pair<Element, ExpressionTree>>() { @Override public Void visitIdentifier(IdentifierTree node, Pair<Element, ExpressionTree> p) { @@ -950,7 +950,7 @@ public class MoveMembersTransformer extends RefactoringVisitor { final Map<Tree, Tree> original2Translated = new HashMap<Tree, Tree>(); // TODO Change this to something like that is used for method body; importFqns - TreeScanner<Void, Void> idScan = new TreeScanner<Void, Void>() { + ErrorAwareTreeScanner<Void, Void> idScan = new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitIdentifier(IdentifierTree node, Void p) { TreePath currentPath = new TreePath(resolvedPath, node); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java index 1e991a7..7648fa8 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PullUpTransformer.java @@ -20,7 +20,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.util.EnumSet; import java.util.HashMap; @@ -318,7 +318,7 @@ public class PullUpTransformer extends RefactoringVisitor { final Types types = workingCopy.getTypes(); final Map<IdentifierTree, Tree> original2Translated = new HashMap<IdentifierTree, Tree>(); - TreeScanner<Void, Void> scanner = new TreeScanner<Void, Void>() { + ErrorAwareTreeScanner<Void, Void> scanner = new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitIdentifier(IdentifierTree node, Void p) { @@ -359,7 +359,7 @@ public class PullUpTransformer extends RefactoringVisitor { private BlockTree updateSuperThisReferences(BlockTree body, final TreePath mpath) { final Map<ExpressionTree, ExpressionTree> original2Translated = new HashMap<ExpressionTree, ExpressionTree>(); final Trees trees = workingCopy.getTrees(); - TreeScanner<Boolean, Void> idScan = new TreeScanner<Boolean, Void>() { + ErrorAwareTreeScanner<Boolean, Void> idScan = new ErrorAwareTreeScanner<Boolean, Void>() { @Override public Boolean visitMemberSelect(MemberSelectTree node, Void nothing) { String isThis = node.getExpression().toString(); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java index be45fb4..8188d2e 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/PushDownTransformer.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.plugins; import com.sun.source.tree.*; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import com.sun.source.util.Trees; import java.util.ArrayList; import java.util.Deque; @@ -376,7 +376,7 @@ public class PushDownTransformer extends RefactoringVisitor { return; } - new TreePathScanner() { + new ErrorAwareTreePathScanner() { @Override public Object visitIdentifier(IdentifierTree node, Object p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java index 26fa10f..b783668 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameRefactoringPlugin.java @@ -23,7 +23,7 @@ import com.sun.source.tree.LabeledStatementTree; import com.sun.source.tree.Tree; import com.sun.source.util.DocTrees; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.IOException; import java.text.MessageFormat; import java.util.*; @@ -187,7 +187,7 @@ public class RenameRefactoringPlugin extends JavaRefactoringPlugin { parent = parent.getParentPath(); } final String[] result = new String[1]; - new TreeScanner<Void, Void>() { + new ErrorAwareTreeScanner<Void, Void>() { @Override public Void visitLabeledStatement(LabeledStatementTree tree, Void p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java index 7c23169..55c5975 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/RenameTransformer.java @@ -26,7 +26,7 @@ import com.sun.source.tree.*; import com.sun.source.util.DocTreePath; import com.sun.source.util.DocTrees; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import java.util.HashMap; import java.util.Iterator; @@ -606,7 +606,7 @@ public class RenameTransformer extends RefactoringVisitor { } private boolean duplicateDeclaration() { - TreeScanner<Boolean, String> duplicateIds = new TreeScanner<Boolean, String>() { + ErrorAwareTreeScanner<Boolean, String> duplicateIds = new ErrorAwareTreeScanner<Boolean, String>() { @Override public Boolean visitClass(ClassTree node, String p) { if(node.getSimpleName().contentEquals(p)) { return Boolean.TRUE; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java index 4b77368..39031ab 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java @@ -57,7 +57,7 @@ import com.sun.source.tree.Tree; import com.sun.source.util.DocTreePath; import com.sun.source.util.DocTreePathScanner; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import javax.lang.model.element.Element; import org.netbeans.api.annotations.common.CheckForNull; @@ -73,7 +73,7 @@ import org.openide.ErrorManager; * * @author Jan Becicka */ -public class RefactoringVisitor extends TreePathScanner<Tree, Element> implements DocTreeVisitor<DocTree, Element> { +public class RefactoringVisitor extends ErrorAwareTreePathScanner<Tree, Element> implements DocTreeVisitor<DocTree, Element> { /** * */ http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java index 1216081..958141d 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/InstantRefactoringUIImpl.java @@ -30,7 +30,7 @@ import com.sun.source.util.DocSourcePositions; import com.sun.source.util.DocTreePath; import com.sun.source.util.DocTrees; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -430,7 +430,7 @@ public final class InstantRefactoringUIImpl implements InstantRefactoringUI { } } final Name label = ((LabeledStatementTree)labeledStatement.getLeaf()).getLabel(); - new TreePathScanner <Void, Void>() { + new ErrorAwareTreePathScanner <Void, Void>() { @Override public Void visitBreak(BreakTree node, Void p) { if (node.getLabel() != null && label.contentEquals(node.getLabel())) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java index 697242d..e6152a5 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/MoveMembersPanel.java @@ -21,7 +21,7 @@ package org.netbeans.modules.refactoring.java.ui; import com.sun.source.tree.*; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import com.sun.source.util.Trees; import java.awt.*; import java.awt.event.*; @@ -1088,7 +1088,7 @@ public class MoveMembersPanel extends javax.swing.JPanel implements CustomRefact } } - private static class PositionVisitor extends TreePathScanner<Void, Map<Element, Long>> { + private static class PositionVisitor extends ErrorAwareTreePathScanner<Void, Map<Element, Long>> { private final Trees trees; private final SourcePositions sourcePositions; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java ---------------------------------------------------------------------- diff --git a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java index 120f8d5..50dd12f 100644 --- a/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java +++ b/refactoring.java/src/org/netbeans/modules/refactoring/java/ui/RenamePanel.java @@ -19,7 +19,7 @@ package org.netbeans.modules.refactoring.java.ui; import com.sun.source.tree.ClassTree; import com.sun.source.tree.Tree; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import java.awt.Component; import java.awt.event.ItemEvent; import java.io.IOException; @@ -190,7 +190,7 @@ public class RenamePanel extends JPanel implements CustomRefactoringPanel { initialized = true; } - private class TestClassMethodsVisitor extends TreePathScanner<Void, Void> { + private class TestClassMethodsVisitor extends ErrorAwareTreePathScanner<Void, Void> { private CompilationInfo info; private List<ExecutableElement> testClassMethods; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java ---------------------------------------------------------------------- diff --git a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java b/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java index db31258..cae3ee7 100644 --- a/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java +++ b/refactoring.java/test/unit/src/org/netbeans/modules/refactoring/java/test/RefactoringTestBase.java @@ -321,7 +321,7 @@ public class RefactoringTestBase extends NbTestCase { Main.initializeURLFactory(); org.netbeans.api.project.ui.OpenProjects.getDefault().getOpenProjects(); - org.netbeans.modules.java.source.TreeLoader.DISABLE_CONFINEMENT_TEST = true; +// org.netbeans.modules.java.source.TreeLoader.DISABLE_CONFINEMENT_TEST = true; prepareTest(); org.netbeans.api.project.ui.OpenProjects.getDefault().open(new Project[] {prj = ProjectManager.getDefault().findProject(src.getParent())}, false); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spellchecker.bindings.java/nbproject/project.properties ---------------------------------------------------------------------- diff --git a/spellchecker.bindings.java/nbproject/project.properties b/spellchecker.bindings.java/nbproject/project.properties index c306880..e13a23a 100644 --- a/spellchecker.bindings.java/nbproject/project.properties +++ b/spellchecker.bindings.java/nbproject/project.properties @@ -38,3 +38,4 @@ test.unit.run.cp.extra=\ ${netbeans.dest.dir}/ide8/modules/ext/jmi.jar:\ test.config.stableBTD.includes=**/*Test.class +requires.nb.javac=true http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java ---------------------------------------------------------------------- diff --git a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java b/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java index effe969..f277d09 100644 --- a/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java +++ b/spellchecker.bindings.java/src/org/netbeans/modules/spellchecker/bindings/java/JavaSemanticTokenList.java @@ -21,7 +21,7 @@ package org.netbeans.modules.spellchecker.bindings.java; import com.sun.source.tree.ClassTree; import com.sun.source.tree.MethodTree; import com.sun.source.tree.VariableTree; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -159,7 +159,7 @@ public class JavaSemanticTokenList implements TokenList { l.set(pos, parameter.getDocument()); } - private static final class ScannerImpl extends TreeScanner<Void, List<Position[]>> { + private static final class ScannerImpl extends ErrorAwareTreeScanner<Void, List<Position[]>> { private Document doc; private CompilationInfo info; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java index 88b5b23..c9adef9 100644 --- a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java +++ b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Hacks.java @@ -25,7 +25,7 @@ import com.sun.source.tree.MethodTree; import com.sun.source.tree.Scope; import com.sun.source.tree.Tree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; import com.sun.tools.javac.api.JavacTaskImpl; import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.comp.AttrContext; @@ -36,13 +36,18 @@ import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCErroneous; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Log; + import java.io.File; import java.io.IOException; +import java.util.Collections; + import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; import javax.tools.JavaFileObject; + +import com.sun.tools.javac.parser.ParserFactory; import org.netbeans.api.annotations.common.CheckForNull; import org.netbeans.api.annotations.common.NonNull; import org.netbeans.api.java.source.CompilationInfo; @@ -83,26 +88,21 @@ public class Hacks { Log.instance(context).nerrors = 0; JavaFileObject jfo = FileObjects.memoryFileObject("$$", "$", new File("/tmp/t.java").toURI(), System.currentTimeMillis(), clazz.toString()); - boolean oldSkipAPs = jc.skipAnnotationProcessing; try { - jc.skipAnnotationProcessing = true; - - Iterable<? extends CompilationUnitTree> parsed = jti.parse(jfo); - CompilationUnitTree cut = parsed.iterator().next(); + CompilationUnitTree cut = ParserFactory.instance(context).newParser(jfo.getCharContent(true), true, true, true).parseCompilationUnit(); - jti.analyze(jti.enter(parsed)); + jti.analyze(jti.enter(Collections.singletonList(cut))); return new ScannerImpl().scan(cut, info); } catch (IOException ex) { Exceptions.printStackTrace(ex); return null; } finally { - jc.skipAnnotationProcessing = oldSkipAPs; } } - private static final class ScannerImpl extends TreePathScanner<Scope, CompilationInfo> { + private static final class ScannerImpl extends ErrorAwareTreePathScanner<Scope, CompilationInfo> { @Override public Scope visitBlock(BlockTree node, CompilationInfo p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java index 3051cd7..5962f8c 100644 --- a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java +++ b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java @@ -44,8 +44,8 @@ import com.sun.source.tree.TypeParameterTree; import com.sun.source.tree.VariableTree; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.source.util.Trees; import com.sun.tools.javac.api.JavacScope; import com.sun.tools.javac.api.JavacTaskImpl; @@ -59,6 +59,7 @@ import com.sun.tools.javac.comp.Attr; import com.sun.tools.javac.comp.AttrContext; import com.sun.tools.javac.comp.Enter; import com.sun.tools.javac.comp.Env; +import com.sun.tools.javac.comp.Modules; import com.sun.tools.javac.comp.Todo; import com.sun.tools.javac.main.JavaCompiler; import com.sun.tools.javac.parser.JavacParser; @@ -93,6 +94,7 @@ import java.io.File; import java.io.IOException; import java.lang.ref.Reference; import java.lang.ref.WeakReference; +import java.lang.reflect.Field; import java.net.URI; import java.nio.CharBuffer; import java.util.Arrays; @@ -109,6 +111,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.AnnotationValue; import javax.lang.model.element.AnnotationValueVisitor; @@ -441,7 +445,7 @@ public class Utilities { CompilationUnitTree cut = ((JavacScope) scope).getEnv().toplevel; final boolean[] found = new boolean[1]; - new TreePathScanner<Void, Void>() { + new ErrorAwareTreePathScanner<Void, Void>() { @Override public Void visitMemberSelect(MemberSelectTree node, Void p) { Element currentElement = trees.getElement(getCurrentPath()); @@ -546,7 +550,7 @@ public class Utilities { } private static boolean containsError(Tree t) { - return new TreeScanner<Boolean, Void>() { + return new ErrorAwareTreeScanner<Boolean, Void>() { @Override public Boolean scan(Tree node, Void p) { if (node != null && isErrorTree(node)) { @@ -635,10 +639,10 @@ public class Utilities { }; NBResolve resolve = NBResolve.instance(jti.getContext()); resolve.disableAccessibilityChecks(); - Enter enter = Enter.instance(jti.getContext()); - enter.shadowTypeEnvs(true); - ArgumentAttr argumentAttr = ArgumentAttr.instance(jti.getContext()); - ArgumentAttr.LocalCacheContext cacheContext = argumentAttr.withLocalCacheContext(); +// Enter enter = Enter.instance(jti.getContext()); +// enter.shadowTypeEnvs(true); +// ArgumentAttr argumentAttr = ArgumentAttr.instance(jti.getContext()); +// ArgumentAttr.LocalCacheContext cacheContext = argumentAttr.withLocalCacheContext(); try { Attr attr = Attr.instance(jti.getContext()); Env<AttrContext> env = ((JavacScope) scope).getEnv(); @@ -646,11 +650,11 @@ public class Utilities { return attr.attribExpr((JCTree) tree,env, Type.noType); return attr.attribStat((JCTree) tree,env); } finally { - cacheContext.leave(); +// cacheContext.leave(); log.useSource(prev); log.popDiagnosticHandler(discardHandler); resolve.restoreAccessbilityChecks(); - enter.shadowTypeEnvs(false); +// enter.shadowTypeEnvs(false); } } @@ -732,6 +736,7 @@ public class Utilities { JavacTaskImpl jti = JavaSourceAccessor.getINSTANCE().getJavacTask(info); Context context = jti.getContext(); JavaCompiler compiler = JavaCompiler.instance(context); + Modules modules = Modules.instance(context); Log log = Log.instance(context); NBResolve resolve = NBResolve.instance(context); Annotate annotate = Annotate.instance(context); @@ -739,18 +744,24 @@ public class Utilities { JavaFileObject jfo = FileObjects.memoryFileObject("$", "$", new File("/tmp/$" + count + ".java").toURI(), System.currentTimeMillis(), clazz.toString()); - boolean oldSkipAPs = compiler.skipAnnotationProcessing; - try { - compiler.skipAnnotationProcessing = true; resolve.disableAccessibilityChecks(); if (compiler.isEnterDone()) { annotate.blockAnnotations(); - compiler.resetEnterDone(); +// try { +// Field f = compiler.getClass().getDeclaredField("enterDone"); +// f.setAccessible(true); +// f.set(compiler, false); +// } catch (Throwable t) { +// Logger.getLogger(Utilities.class.getName()).log(Level.FINE, null, t); +// } + //was: +// compiler.resetEnterDone(); } JCCompilationUnit cut = compiler.parse(jfo); - compiler.enterTrees(compiler.initModules(com.sun.tools.javac.util.List.of(cut))); + modules.enter(com.sun.tools.javac.util.List.of(cut), null); + compiler.enterTrees(com.sun.tools.javac.util.List.of(cut)); Todo todo = compiler.todo; ListBuffer<Env<AttrContext>> defer = new ListBuffer<Env<AttrContext>>(); @@ -774,11 +785,10 @@ public class Utilities { } finally { resolve.restoreAccessbilityChecks(); log.popDiagnosticHandler(discardHandler); - compiler.skipAnnotationProcessing = oldSkipAPs; } } - private static final class ScannerImpl extends TreePathScanner<Scope, CompilationInfo> { + private static final class ScannerImpl extends ErrorAwareTreePathScanner<Scope, CompilationInfo> { @Override public Scope visitBlock(BlockTree node, CompilationInfo p) { @@ -1075,7 +1085,7 @@ public class Utilities { } } - private static final class GeneralizePattern extends TreePathScanner<Void, Void> { + private static final class GeneralizePattern extends ErrorAwareTreePathScanner<Void, Void> { public final Map<Tree, Tree> tree2Variable = new HashMap<Tree, Tree>(); private final Map<Element, String> element2Variable = new HashMap<Element, String>(); @@ -1214,7 +1224,7 @@ public class Utilities { } public static long patternValue(Tree pattern) { - class VisitorImpl extends TreeScanner<Void, Void> { + class VisitorImpl extends ErrorAwareTreeScanner<Void, Void> { private int value; @Override public Void scan(Tree node, Void p) { http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java index 4211d95..6ed8348 100644 --- a/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java +++ b/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/pm/NFABasedBulkSearch.java @@ -32,7 +32,7 @@ import com.sun.source.tree.Tree; import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java b/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java index 45539b5..642541d 100644 --- a/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java +++ b/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFixUtilities.java @@ -57,8 +57,8 @@ import com.sun.source.tree.VariableTree; import com.sun.source.tree.WhileLoopTree; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreePathScanner; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreePathScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -522,7 +522,7 @@ public class JavaFixUtilities { final Set<Tree> originalTrees = Collections.newSetFromMap(new IdentityHashMap<Tree, Boolean>()); - new TreeScanner<Void, Void>() { + new ErrorAwareTreeScanner<Void, Void>() { @Override public Void scan(Tree tree, Void p) { originalTrees.add(tree); return super.scan(tree, p); @@ -580,7 +580,7 @@ public class JavaFixUtilities { private static final Set<Kind> NUMBER_LITERAL_KINDS = EnumSet.of(Kind.FLOAT_LITERAL, Kind.DOUBLE_LITERAL, Kind.INT_LITERAL, Kind.LONG_LITERAL); - private static class ReplaceParameters extends TreePathScanner<Number, Void> { + private static class ReplaceParameters extends ErrorAwareTreePathScanner<Number, Void> { private final CompilationInfo info; private final TreeMaker make; http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java index 1ec2c70..7eadb97 100644 --- a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java +++ b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/TestBase.java @@ -31,7 +31,7 @@ import org.netbeans.api.java.source.SourceUtilsTestUtil; import org.netbeans.api.java.source.TestUtilities; import org.netbeans.api.lexer.Language; import org.netbeans.junit.NbTestCase; -import org.netbeans.modules.java.source.TreeLoader; +//import org.netbeans.modules.java.source.TreeLoader; import org.openide.cookies.EditorCookie; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; @@ -51,7 +51,8 @@ public class TestBase extends NbTestCase { protected void setUp() throws Exception { super.setUp(); SourceUtilsTestUtil.prepareTest(new String[0], new Object[0]); - TreeLoader.DISABLE_CONFINEMENT_TEST = true; + //XXX: +// TreeLoader.DISABLE_CONFINEMENT_TEST = true; clearWorkDir(); FileUtil.refreshFor(File.listRoots()); http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/ffc0de5a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java ---------------------------------------------------------------------- diff --git a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java index 5a47794..01edc45 100644 --- a/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java +++ b/spi.java.hints/test/unit/src/org/netbeans/modules/java/hints/spiimpl/UtilitiesTest.java @@ -30,7 +30,7 @@ import com.sun.source.tree.Tree.Kind; import com.sun.source.tree.VariableTree; import com.sun.source.util.SourcePositions; import com.sun.source.util.TreePath; -import com.sun.source.util.TreeScanner; +import org.netbeans.api.java.source.support.ErrorAwareTreeScanner; import com.sun.tools.javac.tree.JCTree; import java.util.ArrayList; import java.util.Arrays; @@ -623,7 +623,7 @@ public class UtilitiesTest extends TestBase { private void assertPositions(Tree t, final SourcePositions sp, final String code, String... golden) { final List<String> actual = new ArrayList<String>(golden.length); - new TreeScanner<Void, Void>() { + new ErrorAwareTreeScanner<Void, Void>() { @Override public Void scan(Tree node, Void p) { if (node != null) {
