Light class test: avoid checking method visibility when NoLaziness is not specified

Allows to avoid putting NoLaziness flag on every test that mentions 'override' modifier
This commit is contained in:
Pavel V. Talanov
2017-04-05 16:59:13 +03:00
parent 32d3a1b4c9
commit 69c250a1b7
4 changed files with 25 additions and 22 deletions
@@ -110,7 +110,7 @@ class KtLightModifierList(
name == PsiModifier.DEFAULT && isImplementationInInterface() -> true
dummyDelegate != null -> {
when {
name in visibilityModifiers && isOverride() ->
name in visibilityModifiers && isMethodOverride() ->
clsDelegate.hasModifierProperty(name)
else -> dummyDelegate.hasModifierProperty(name)
}
@@ -118,7 +118,7 @@ class KtLightModifierList(
else -> clsDelegate.hasModifierProperty(name)
}
private fun isOverride() = owner.kotlinOrigin?.hasModifier(KtTokens.OVERRIDE_KEYWORD) ?: false
private fun isMethodOverride() = owner is KtLightMethod && owner.kotlinOrigin?.hasModifier(KtTokens.OVERRIDE_KEYWORD) ?: false
private fun isImplementationInInterface()
= owner.containingClass.isInterface && owner is KtLightMethod && owner.kotlinOrigin?.hasBody() ?: false