Fixed filtering error
This commit is contained in:
@@ -69,16 +69,16 @@ public class GenerationState @JvmOverloads constructor(
|
|||||||
public val progress: Progress = Progress.DEAF
|
public val progress: Progress = Progress.DEAF
|
||||||
) {
|
) {
|
||||||
public abstract class GenerateClassFilter {
|
public abstract class GenerateClassFilter {
|
||||||
public abstract fun shouldAnnotateClass(classOrObject: KtClassOrObject): Boolean
|
public abstract fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject): Boolean
|
||||||
public abstract fun shouldGenerateClass(classOrObject: KtClassOrObject): Boolean
|
public abstract fun shouldGenerateClass(processingClassOrObject: KtClassOrObject): Boolean
|
||||||
public abstract fun shouldGeneratePackagePart(jetFile: KtFile): Boolean
|
public abstract fun shouldGeneratePackagePart(jetFile: KtFile): Boolean
|
||||||
public abstract fun shouldGenerateScript(script: KtScript): Boolean
|
public abstract fun shouldGenerateScript(script: KtScript): Boolean
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
public val GENERATE_ALL: GenerateClassFilter = object : GenerateClassFilter() {
|
public val GENERATE_ALL: GenerateClassFilter = object : GenerateClassFilter() {
|
||||||
override fun shouldAnnotateClass(classOrObject: KtClassOrObject): Boolean = true
|
override fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject): Boolean = true
|
||||||
|
|
||||||
override fun shouldGenerateClass(classOrObject: KtClassOrObject): Boolean = true
|
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject): Boolean = true
|
||||||
|
|
||||||
override fun shouldGenerateScript(script: KtScript): Boolean = true
|
override fun shouldGenerateScript(script: KtScript): Boolean = true
|
||||||
|
|
||||||
|
|||||||
@@ -240,18 +240,19 @@ class LightClassDataProviderForClassOrObject(private val classOrObject: KtClassO
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldAnnotateClass(classOrObject: KtClassOrObject): Boolean {
|
override fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject): Boolean {
|
||||||
return shouldGenerateClass(classOrObject)
|
return shouldGenerateClass(processingClassOrObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGenerateClass(classOrObject: KtClassOrObject): Boolean {
|
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject): Boolean {
|
||||||
// Trivial: generate and analyze class we are interested in.
|
// Trivial: generate and analyze class we are interested in.
|
||||||
if (classOrObject === classOrObject) return true
|
if (classOrObject === processingClassOrObject) return true
|
||||||
|
|
||||||
// Process all parent classes as they are context for current class
|
// Process all parent classes as they are context for current class
|
||||||
// Process child classes because they probably affect members (heuristic)
|
// Process child classes because they probably affect members (heuristic)
|
||||||
|
|
||||||
if (PsiTreeUtil.isAncestor(classOrObject, classOrObject, true) || PsiTreeUtil.isAncestor(classOrObject, classOrObject, true)) {
|
if (PsiTreeUtil.isAncestor(classOrObject, processingClassOrObject, true) ||
|
||||||
|
PsiTreeUtil.isAncestor(processingClassOrObject, classOrObject, true)) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,8 +270,8 @@ class LightClassDataProviderForClassOrObject(private val classOrObject: KtClassO
|
|||||||
// TODO: current method will process local classes in irrelevant declarations, it should be fixed.
|
// TODO: current method will process local classes in irrelevant declarations, it should be fixed.
|
||||||
// We generate all enclosing classes
|
// We generate all enclosing classes
|
||||||
|
|
||||||
if (classOrObject.isLocal() && classOrObject.isLocal()) {
|
if (classOrObject.isLocal() && processingClassOrObject.isLocal()) {
|
||||||
val commonParent = PsiTreeUtil.findCommonParent(classOrObject, classOrObject)
|
val commonParent = PsiTreeUtil.findCommonParent(classOrObject, processingClassOrObject)
|
||||||
return commonParent != null && commonParent !is PsiFile
|
return commonParent != null && commonParent !is PsiFile
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,12 +321,12 @@ class LightClassDataProviderForFileFacade(
|
|||||||
|
|
||||||
override val generateClassFilter: GenerationState.GenerateClassFilter
|
override val generateClassFilter: GenerationState.GenerateClassFilter
|
||||||
get() = object : GenerationState.GenerateClassFilter() {
|
get() = object : GenerationState.GenerateClassFilter() {
|
||||||
override fun shouldAnnotateClass(classOrObject: KtClassOrObject): Boolean {
|
override fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject): Boolean {
|
||||||
return shouldGenerateClass(classOrObject)
|
return shouldGenerateClass(processingClassOrObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGenerateClass(classOrObject: KtClassOrObject): Boolean {
|
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject): Boolean {
|
||||||
return KtPsiUtil.isLocal(classOrObject)
|
return KtPsiUtil.isLocal(processingClassOrObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldGeneratePackagePart(jetFile: KtFile): Boolean {
|
override fun shouldGeneratePackagePart(jetFile: KtFile): Boolean {
|
||||||
|
|||||||
@@ -364,8 +364,8 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
|
|
||||||
val generateClassFilter = object : GenerationState.GenerateClassFilter() {
|
val generateClassFilter = object : GenerationState.GenerateClassFilter() {
|
||||||
override fun shouldGeneratePackagePart(jetFile: KtFile) = jetFile == jetFile
|
override fun shouldGeneratePackagePart(jetFile: KtFile) = jetFile == jetFile
|
||||||
override fun shouldAnnotateClass(classOrObject: KtClassOrObject) = true
|
override fun shouldAnnotateClass(processingClassOrObject: KtClassOrObject) = true
|
||||||
override fun shouldGenerateClass(classOrObject: KtClassOrObject) = classOrObject.getContainingKtFile() == jetFile
|
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject) = processingClassOrObject.getContainingKtFile() == jetFile
|
||||||
override fun shouldGenerateScript(script: KtScript) = false
|
override fun shouldGenerateScript(script: KtScript) = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -212,13 +212,13 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldAnnotateClass(@NotNull KtClassOrObject classOrObject) {
|
public boolean shouldAnnotateClass(@NotNull KtClassOrObject processingClassOrObject) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldGenerateClass(@NotNull KtClassOrObject classOrObject) {
|
public boolean shouldGenerateClass(@NotNull KtClassOrObject processingClassOrObject) {
|
||||||
return classOrObject.getContainingKtFile() == jetFile;
|
return processingClassOrObject.getContainingKtFile() == jetFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user