mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
javac ast indices: carefully update data about compiled modules
This commit is contained in:
+24
-4
@@ -15,21 +15,25 @@
|
||||
*/
|
||||
package org.jetbrains.jps.backwardRefs;
|
||||
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.ModuleChunk;
|
||||
import org.jetbrains.jps.builders.BuildTarget;
|
||||
import org.jetbrains.jps.builders.DirtyFilesHolder;
|
||||
import org.jetbrains.jps.builders.ModuleBasedTarget;
|
||||
import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor;
|
||||
import org.jetbrains.jps.incremental.*;
|
||||
import org.jetbrains.jps.incremental.messages.CustomBuilderMessage;
|
||||
import org.jetbrains.jps.model.module.JpsModule;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class BackwardReferenceIndexBuilder extends ModuleLevelBuilder {
|
||||
public static final String BUILDER_ID = "compiler.ref.index";
|
||||
private static final String MESSAGE_TYPE = "processed module";
|
||||
|
||||
public BackwardReferenceIndexBuilder() {
|
||||
super(BuilderCategory.CLASS_POST_PROCESSOR);
|
||||
@@ -48,6 +52,23 @@ public class BackwardReferenceIndexBuilder extends ModuleLevelBuilder {
|
||||
|
||||
@Override
|
||||
public void buildFinished(CompileContext context) {
|
||||
|
||||
final List<BuildTarget<?>> targets = context.getProjectDescriptor().getBuildTargetIndex().getAllTargets();
|
||||
Set<String> classFilesTargets = new THashSet<String>();
|
||||
for (BuildTarget<?> target : targets) {
|
||||
if (target instanceof ModuleBuildTarget) {
|
||||
classFilesTargets.add(((ModuleBuildTarget)target).getModule().getName());
|
||||
}
|
||||
}
|
||||
|
||||
for (BuildTarget<?> target : targets) {
|
||||
if (target instanceof ModuleBasedTarget && !(target instanceof ModuleBuildTarget)) {
|
||||
final String moduleName = ((ModuleBasedTarget)target).getModule().getName();
|
||||
if (!classFilesTargets.contains(moduleName)) {
|
||||
context.processMessage(new CustomBuilderMessage(BUILDER_ID, MESSAGE_TYPE, moduleName));
|
||||
}
|
||||
}
|
||||
}
|
||||
BackwardReferenceIndexWriter.closeIfNeed();
|
||||
}
|
||||
|
||||
@@ -73,9 +94,8 @@ public class BackwardReferenceIndexBuilder extends ModuleLevelBuilder {
|
||||
|
||||
for (ModuleBuildTarget target : chunk.getTargets()) {
|
||||
if (context.getScope().isWholeTargetAffected(target)) {
|
||||
final JpsModule module = target.getModule();
|
||||
final String moduleName = module.getName();
|
||||
context.processMessage(new CustomBuilderMessage(BUILDER_ID, "processed module", moduleName));
|
||||
final String moduleName = target.getModule().getName();
|
||||
context.processMessage(new CustomBuilderMessage(BUILDER_ID, MESSAGE_TYPE, moduleName));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user