Annotate additional files through bytecode toolwindow analysis
This commit is contained in:
@@ -302,7 +302,7 @@ public class PackageCodegen {
|
||||
}
|
||||
else if (declaration instanceof JetClassOrObject) {
|
||||
JetClassOrObject classOrObject = (JetClassOrObject) declaration;
|
||||
if (state.getGenerateDeclaredClassFilter().shouldProcessClass(classOrObject)) {
|
||||
if (state.getGenerateDeclaredClassFilter().shouldGenerateClass(classOrObject)) {
|
||||
generateClassOrObject(classOrObject);
|
||||
}
|
||||
}
|
||||
@@ -310,13 +310,13 @@ public class PackageCodegen {
|
||||
JetScript script = (JetScript) declaration;
|
||||
|
||||
// SCRIPT: generate script code, should be separate execution branch
|
||||
if (state.getGenerateDeclaredClassFilter().shouldProcessScript(script)) {
|
||||
if (state.getGenerateDeclaredClassFilter().shouldGenerateScript(script)) {
|
||||
ScriptCodegen.createScriptCodegen(script, state, packagePartContext).generate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!generatePackagePart) return null;
|
||||
if (!generatePackagePart || !state.getGenerateDeclaredClassFilter().shouldGeneratePackagePart(file)) return null;
|
||||
|
||||
ClassBuilder builder = state.getFactory().newVisitor(PackagePart(file, packageFragment), packagePartType, file);
|
||||
|
||||
|
||||
+2
-2
@@ -207,7 +207,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
|
||||
@Override
|
||||
public void visitObjectDeclaration(@NotNull JetObjectDeclaration declaration) {
|
||||
if (!filter.shouldProcessClass(declaration)) return;
|
||||
if (!filter.shouldAnnotateClass(declaration)) return;
|
||||
|
||||
ClassDescriptor classDescriptor = bindingContext.get(CLASS, declaration);
|
||||
// working around a problem with shallow analysis
|
||||
@@ -225,7 +225,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
|
||||
@Override
|
||||
public void visitClass(@NotNull JetClass klass) {
|
||||
if (!filter.shouldProcessClass(klass)) return;
|
||||
if (!filter.shouldAnnotateClass(klass)) return;
|
||||
|
||||
ClassDescriptor classDescriptor = bindingContext.get(CLASS, klass);
|
||||
// working around a problem with shallow analysis
|
||||
|
||||
@@ -43,17 +43,29 @@ import java.util.List;
|
||||
|
||||
public class GenerationState {
|
||||
public interface GenerateClassFilter {
|
||||
boolean shouldProcessClass(JetClassOrObject classOrObject);
|
||||
boolean shouldProcessScript(JetScript script);
|
||||
boolean shouldAnnotateClass(JetClassOrObject classOrObject);
|
||||
boolean shouldGenerateClass(JetClassOrObject classOrObject);
|
||||
boolean shouldGeneratePackagePart(JetFile jetFile);
|
||||
boolean shouldGenerateScript(JetScript script);
|
||||
|
||||
GenerateClassFilter GENERATE_ALL = new GenerateClassFilter() {
|
||||
@Override
|
||||
public boolean shouldProcessClass(JetClassOrObject classOrObject) {
|
||||
public boolean shouldAnnotateClass(JetClassOrObject classOrObject) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldProcessScript(JetScript script) {
|
||||
public boolean shouldGenerateClass(JetClassOrObject classOrObject) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGenerateScript(JetScript script) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGeneratePackagePart(JetFile jetFile) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user