Can be parameter inspection: usage in secondary constructor is now handled as property use
This commit is contained in:
@@ -55,14 +55,13 @@ class CanBeParameterInspection : AbstractKotlinInspection() {
|
|||||||
var parameterUser: PsiElement = nameExpression
|
var parameterUser: PsiElement = nameExpression
|
||||||
do {
|
do {
|
||||||
parameterUser = PsiTreeUtil.getParentOfType(parameterUser, KtProperty::class.java, KtPropertyAccessor::class.java,
|
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,
|
KtFunction::class.java, KtObjectDeclaration::class.java,
|
||||||
KtSuperTypeCallEntry::class.java) ?: return true
|
KtSuperTypeCallEntry::class.java) ?: return true
|
||||||
} while (parameterUser is KtProperty && parameterUser.isLocal)
|
} while (parameterUser is KtProperty && parameterUser.isLocal)
|
||||||
return when (parameterUser) {
|
return when (parameterUser) {
|
||||||
is KtProperty -> parameterUser.containingClassOrObject !== klass
|
is KtProperty -> parameterUser.containingClassOrObject !== klass
|
||||||
is KtClassInitializer -> parameterUser.containingDeclaration !== klass
|
is KtClassInitializer -> parameterUser.containingDeclaration !== klass
|
||||||
is KtSecondaryConstructor -> parameterUser.getContainingClassOrObject() !== klass
|
|
||||||
is KtFunction, is KtObjectDeclaration, is KtPropertyAccessor -> true
|
is KtFunction, is KtObjectDeclaration, is KtPropertyAccessor -> true
|
||||||
is KtSuperTypeCallEntry -> parameterUser.getStrictParentOfType<KtClassOrObject>() !== klass
|
is KtSuperTypeCallEntry -> parameterUser.getStrictParentOfType<KtClassOrObject>() !== klass
|
||||||
else -> true
|
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>
|
<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>
|
<description>Constructor parameter is never used as a property</description>
|
||||||
</problem>
|
</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>
|
<problem>
|
||||||
<file>test.kt</file>
|
<file>test.kt</file>
|
||||||
<line>52</line>
|
<line>52</line>
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ class UsedInInitializer(val x: Int) {
|
|||||||
y = x
|
y = x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// YES
|
// NO!
|
||||||
class UsedInConstructor(val x: Int) {
|
class UsedInConstructor(val x: Int) {
|
||||||
fun foo(arg: Int) = arg
|
fun foo(arg: Int) = arg
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user