diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeParameterInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeParameterInspection.kt index 06741daa233..3703a673a96 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeParameterInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeParameterInspection.kt @@ -55,14 +55,13 @@ class CanBeParameterInspection : AbstractKotlinInspection() { do { parameterUser = PsiTreeUtil.getParentOfType(parameterUser, KtProperty::class.java, KtPropertyAccessor::class.java, KtClassInitializer::class.java, KtSecondaryConstructor::class.java, - KtFunctionLiteral::class.java) ?: return true + KtFunctionLiteral::class.java, KtObjectDeclaration::class.java) ?: return true } while (parameterUser is KtProperty && parameterUser.isLocal) return when (parameterUser) { is KtProperty -> parameterUser.containingClassOrObject !== klass - is KtPropertyAccessor -> true is KtClassInitializer -> parameterUser.containingDeclaration !== klass is KtSecondaryConstructor -> parameterUser.getContainingClassOrObject() !== klass - is KtFunctionLiteral -> true + is KtFunctionLiteral, is KtObjectDeclaration, is KtPropertyAccessor -> true else -> true } } diff --git a/idea/testData/inspections/canBeParameter/test.kt b/idea/testData/inspections/canBeParameter/test.kt index 5818c1d46bf..cfb99ab0fe3 100644 --- a/idea/testData/inspections/canBeParameter/test.kt +++ b/idea/testData/inspections/canBeParameter/test.kt @@ -120,4 +120,10 @@ class UsedInDelegate(val x: Int) { // NO class UsedInParent(val x: UsedInParent?) { val y = x?.x +} +// NO +class UsedInObjectLiteral(val x: Int) { + val y = object: Any() { + fun bar() = x + } } \ No newline at end of file