Can be parameter inspection: usage in secondary constructor is now handled as property use

This commit is contained in:
Mikhail Glukhikh
2016-05-13 15:41:34 +03:00
parent bc7fbdc0a2
commit 3930184f1f
3 changed files with 2 additions and 11 deletions
@@ -55,14 +55,13 @@ class CanBeParameterInspection : AbstractKotlinInspection() {
var parameterUser: PsiElement = nameExpression
do {
parameterUser = PsiTreeUtil.getParentOfType(parameterUser, KtProperty::class.java, KtPropertyAccessor::class.java,
KtClassInitializer::class.java, KtSecondaryConstructor::class.java,
KtClassInitializer::class.java,
KtFunction::class.java, KtObjectDeclaration::class.java,
KtSuperTypeCallEntry::class.java) ?: return true
} while (parameterUser is KtProperty && parameterUser.isLocal)
return when (parameterUser) {
is KtProperty -> parameterUser.containingClassOrObject !== klass
is KtClassInitializer -> parameterUser.containingDeclaration !== klass
is KtSecondaryConstructor -> parameterUser.getContainingClassOrObject() !== klass
is KtFunction, is KtObjectDeclaration, is KtPropertyAccessor -> true
is KtSuperTypeCallEntry -> parameterUser.getStrictParentOfType<KtClassOrObject>() !== klass
else -> true
@@ -15,14 +15,6 @@
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Constructor parameter is never used as a property</problem_class>
<description>Constructor parameter is never used as a property</description>
</problem>
<problem>
<file>test.kt</file>
<line>16</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/test.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Constructor parameter is never used as a property</problem_class>
<description>Constructor parameter is never used as a property</description>
</problem>
<problem>
<file>test.kt</file>
<line>52</line>
+1 -1
View File
@@ -12,7 +12,7 @@ class UsedInInitializer(val x: Int) {
y = x
}
}
// YES
// NO!
class UsedInConstructor(val x: Int) {
fun foo(arg: Int) = arg