Community
Participate
Working Groups
Build 20020607 If adding a local class to a method, then it results into a structural change from the builder viewpoint. This should be optimized as modification of a synthetic or <clinit>.
Should defer
Change was addind a local type on JavaCore, got the following build trace: Type has structural changes org/eclipse/jdt/core/JavaCore$1 adding dependents of JavaCore in org/eclipse/jdt/core Writing class file JavaCore$1.class Writing class file JavaCore.class Deleting class file of removed type org/eclipse/jdt/core/JavaCore$2 found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/NameEnvi ronment.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/codeassist/org/eclipse /jdt/internal/codeassist/Compl etionEngine.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/CorrectionEngine.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing /IndexAllProject.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/antadapter/org/eclipse /jdt/core/JDTCompilerAdapter.j ava found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnitV isitor.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JarPackageFragme ntRoot.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/JavaWork spaceScope.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Util.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/co re/dom/AST.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/ClasspathEntry.j ava found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/TypeHi erarchy.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/Hierar chyBuilder.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/IndexB asedHierarchyBuilder.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/Abstract ImageBuilder.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModel.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModelStatus. java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/DeltaProcessor.j ava found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/jdom/DOMBuilder. java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/SourceFi le.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing /SourceIndexer.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/PackageFragmentR oot.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/HandleFactory.ja va found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/BinaryType.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/matching /MatchLocator.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/jdom/SimpleDOMBu ilder.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/JavaConventions.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/JavaBuil der.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaProject.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnitP roblemFinder.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModelManager .java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/ClassFile.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/eval/EvaluationC ontextWrapper.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /core/search/SearchEngine.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Openable.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/SourceMapper.jav a found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Buffer.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/IJavaModelMarker.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CopyResourceElem entsOperation.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/SourceType.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing /IndexManager.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/co re/dom/CompilationUnitResolver .java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CreateCompilatio nUnitOperation.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnit. java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/ToolFactory.java found match in org.eclipse.jdt.core to JavaCore adding affected source file D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/NameLookup.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/NameEnvironment.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/codeassist/org/eclipse /jdt/internal/codeassist/CompletionEngine.j ava About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/CorrectionEngine.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing/IndexAllProj ect.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/antadapter/org/eclipse /jdt/core/JDTCompilerAdapter.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnitVisitor.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JarPackageFragmentRoot.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/JavaWorkspaceScope.ja va About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Util.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/co re/dom/AST.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/ClasspathEntry.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/TypeHierarchy.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/HierarchyBuilder.ja va About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/hierarchy/IndexBasedHierarchy Builder.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/AbstractImageBuilder. java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModel.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModelStatus.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/DeltaProcessor.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/jdom/DOMBuilder.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/SourceFile.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing/SourceIndexe r.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/PackageFragmentRoot.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/HandleFactory.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/BinaryType.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/matching/MatchLocator .java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/jdom/SimpleDOMBuilder.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/JavaConventions.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/builder/JavaBuilder.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaProject.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnitProblemFinder. java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/JavaModelManager.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/ClassFile.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/eval/EvaluationContextWrapper .java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /core/search/SearchEngine.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Openable.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/SourceMapper.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/Buffer.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/IJavaModelMarker.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CopyResourceElementsOperation .java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/SourceType.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/search/org/eclipse/jdt /internal/core/search/indexing/IndexManager .java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/co re/dom/CompilationUnitResolver.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CreateCompilationUnitOperatio n.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/CompilationUnit.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ core/ToolFactory.java About to compile D:/eclipse/workspaces/dev2.0/plugins/org.eclipse.jdt.core/model/org/eclipse/jdt/ internal/core/NameLookup.java Skipped over unchanged class file NameEnvironment.class Skipped over unchanged class file CompletionEngine$1.class Skipped over unchanged class file CompletionEngine.class Skipped over unchanged class file CompletionEngine$2.class Skipped over unchanged class file CorrectionEngine$1.class Skipped over unchanged class file CorrectionEngine.class Skipped over unchanged class file IndexAllProject.class Skipped over unchanged class file JDTCompilerAdapter.class Skipped over unchanged class file CompilationUnitVisitor.class Skipped over unchanged class file CompilationUnitVisitor$2.class Skipped over unchanged class file CompilationUnitVisitor$3.class Skipped over unchanged class file CompilationUnitVisitor$1.class Skipped over unchanged class file JarPackageFragmentRoot.class Skipped over unchanged class file JavaWorkspaceScope.class Skipped over unchanged class file Util$Comparer.class Skipped over unchanged class file Util.class Skipped over unchanged class file Util$Comparable.class Skipped over unchanged class file AST.class Skipped over unchanged class file ClasspathEntry.class Skipped over unchanged class file TypeHierarchy.class Skipped over unchanged class file TypeHierarchy$1.class Skipped over unchanged class file HierarchyBuilder.class Skipped over unchanged class file IndexBasedHierarchyBuilder$1.class Skipped over unchanged class file IndexBasedHierarchyBuilder$Queue.class Skipped over unchanged class file IndexBasedHierarchyBuilder.class Skipped over unchanged class file IndexBasedHierarchyBuilder$1 $PathCollector.class Skipped over unchanged class file AbstractImageBuilder.class Skipped over unchanged class file JavaModel.class Skipped over unchanged class file JavaModelStatus.class Skipped over unchanged class file DeltaProcessor.class Skipped over unchanged class file DOMBuilder.class Skipped over unchanged class file SourceFile.class Skipped over unchanged class file SourceIndexer.class Skipped over unchanged class file PackageFragmentRoot.class Skipped over unchanged class file HandleFactory.class Skipped over unchanged class file BinaryType.class Skipped over unchanged class file MatchLocator$1.class Skipped over unchanged class file MatchLocator.class Skipped over unchanged class file MatchLocator$2.class Skipped over unchanged class file SimpleDOMBuilder.class Skipped over unchanged class file JavaConventions.class Skipped over unchanged class file JavaBuilder.class Skipped over unchanged class file JavaProject.class Skipped over unchanged class file CompilationUnitProblemFinder$1.class Skipped over unchanged class file CompilationUnitProblemFinder$2.class Skipped over unchanged class file CompilationUnitProblemFinder.class Skipped over unchanged class file JavaModelManager.class Skipped over unchanged class file JavaModelManager$3.class Skipped over unchanged class file JavaModelManager$1.class Skipped over unchanged class file JavaModelManager$PluginPreferencesListener.class Skipped over unchanged class file JavaModelManager$PerProjectInfo.class Skipped over unchanged class file JavaModelManager$2.class Skipped over unchanged class file ClassFile$1.class Skipped over unchanged class file ClassFile.class Skipped over unchanged class file EvaluationContextWrapper.class Skipped over unchanged class file EvaluationContextWrapper$1.class Skipped over unchanged class file SearchEngine.class Skipped over unchanged class file SearchEngine$1.class
The reason is that the type JavaCore$1 isn't new/deleted, but it looks has changed with structural differences, given it is taking the slot of another one preexisting.
Actually, this is quite annoying. Should investigate for F3
This is a problem with the method ClassFileReader.isLocal().
isLocal() works fine for local class, not for anonymous class. In fact to be consistent, isLocal should be: public boolean isLocal() { return this.innerInfo != null && this.innerInfo.getEnclosingTypeName() == null && this.innerInfo.getSourceName() != null && this.innerInfo.getSourceName().length != 0; } instead of: public boolean isLocal() { return this.innerInfo != null && this.innerInfo.getEnclosingTypeName() == null && this.innerInfo.getSourceName() != null; } because of some .class files compiled by Sun. Look at the check in isAnynomous() to see the meaning of this extra check. The right test seems to be: !isMember(). This is true for anonymous AND local classes.
Changed to test for both isLocal() and isAnonymous().
Verified.