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
|
||||
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
@@ -12,7 +12,7 @@ class UsedInInitializer(val x: Int) {
|
||||
y = x
|
||||
}
|
||||
}
|
||||
// YES
|
||||
// NO!
|
||||
class UsedInConstructor(val x: Int) {
|
||||
fun foo(arg: Int) = arg
|
||||
|
||||
|
||||
Reference in New Issue
Block a user