Fix testClassObjectCopiedFieldObject test

Fix of the test
PsiCheckerTestGenerated$DuplicateJvmSignature$Fields.testClassObjectCopiedFieldObject
additionally fixed the bug with blinking this test example in IDEA with UL classes enabled.

The story:
Extra diagnostics could be requested for any KtClassOrObject but for _nested_  classes result may depend on outer class members signature collecting. So the the order of outer/nested diagnostic reporting takes matter.
So for nested classes/objects we have to gen members of outer classes.
This commit is contained in:
Igor Yakovlev
2019-09-30 20:36:56 +03:00
parent de5fb347e7
commit 8def1f07aa
@@ -170,7 +170,7 @@ private class ClassFilterForClassOrObject(private val classOrObject: KtClassOrOb
if (classOrObject === processingClassOrObject) return true
// process all children
if (classOrObject.isAncestor(processingClassOrObject, true)) {
if (classOrObject.isAncestor(processingClassOrObject, true) || processingClassOrObject.isAncestor(classOrObject, true)) {
return true
}
@@ -196,9 +196,8 @@ private class ClassFilterForClassOrObject(private val classOrObject: KtClassOrOb
return false
}
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject)
// generate outer classes but not their members
= shouldGenerateClassMembers(processingClassOrObject) || processingClassOrObject.isAncestor(classOrObject, true)
override fun shouldGenerateClass(processingClassOrObject: KtClassOrObject) =
shouldGenerateClassMembers(processingClassOrObject)
override fun shouldGenerateScript(script: KtScript) = PsiTreeUtil.isAncestor(script, classOrObject, false)
override fun shouldGenerateCodeFragment(script: KtCodeFragment) = false