From 5b34498162103e09af2303e59d84365720cae079 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 16 Jul 2018 12:13:03 +0300 Subject: [PATCH] Do not report code style warnings on overridden declarations (KT-25416) #KT-25416 Fixed --- .../idea/inspections/NamingConventionInspections.kt | 7 +++++++ .../naming/function/inspectionData/expected.xml | 11 +++++------ idea/testData/inspections/naming/function/test.kt | 10 +++++++++- .../naming/property/inspectionData/expected.xml | 7 +++++-- idea/testData/inspections/naming/property/test.kt | 8 ++++++++ 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/NamingConventionInspections.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/NamingConventionInspections.kt index ca9ca4f9899..6b556f77e8f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/NamingConventionInspections.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/NamingConventionInspections.kt @@ -134,6 +134,9 @@ class FunctionNameInspection : NamingConventionInspection( ) { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { return namedFunctionVisitor { function -> + if (function.hasModifier(KtTokens.OVERRIDE_KEYWORD)) { + return@namedFunctionVisitor + } if (!TestUtils.isInTestSourceContent(function)) { verifyName(function, holder) } @@ -170,6 +173,10 @@ abstract class PropertyNameInspectionBase protected constructor( override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { return propertyVisitor { property -> + if (property.hasModifier(KtTokens.OVERRIDE_KEYWORD)) { + return@propertyVisitor + } + if (property.getKind() == kind) { verifyName(property, holder) } diff --git a/idea/testData/inspections/naming/function/inspectionData/expected.xml b/idea/testData/inspections/naming/function/inspectionData/expected.xml index 494e38f73fd..a2a09a2ada9 100644 --- a/idea/testData/inspections/naming/function/inspectionData/expected.xml +++ b/idea/testData/inspections/naming/function/inspectionData/expected.xml @@ -2,23 +2,22 @@ test.kt 1 - light_idea_test_case - Function name <code>Foo</code> should start with a lowercase letter #loc test.kt 3 - light_idea_test_case - Function name <code>FOO_BAR</code> should not contain underscores #loc test.kt 7 - light_idea_test_case - Class naming convention Function name <code>`a b`</code> may contain only letters and digits #loc + + test.kt + 10 + Function name <code>a_b</code> should not contain underscores #loc + diff --git a/idea/testData/inspections/naming/function/test.kt b/idea/testData/inspections/naming/function/test.kt index 81e7dae21af..4af97aae4cb 100644 --- a/idea/testData/inspections/naming/function/test.kt +++ b/idea/testData/inspections/naming/function/test.kt @@ -4,4 +4,12 @@ fun FOO_BAR() {} fun xyzzy() {} -fun `a b`() {} \ No newline at end of file +fun `a b`() {} + +interface I { + fun a_b() +} + +class C : I { + override fun a_b() {} // Shouldn't be reported +} \ No newline at end of file diff --git a/idea/testData/inspections/naming/property/inspectionData/expected.xml b/idea/testData/inspections/naming/property/inspectionData/expected.xml index 4713fb622c7..c4fcee5e78b 100644 --- a/idea/testData/inspections/naming/property/inspectionData/expected.xml +++ b/idea/testData/inspections/naming/property/inspectionData/expected.xml @@ -2,8 +2,11 @@ test.kt 27 - light_idea_test_case - Property name <code>_Foo</code> should not start with an underscore #loc + + test.kt + 37 + Property name <code>Foo</code> should start with a lowercase letter #loc + diff --git a/idea/testData/inspections/naming/property/test.kt b/idea/testData/inspections/naming/property/test.kt index abc1562487e..99c50f2d317 100644 --- a/idea/testData/inspections/naming/property/test.kt +++ b/idea/testData/inspections/naming/property/test.kt @@ -31,4 +31,12 @@ class D { var FOO_BAR: Int = 0 } +} + +interface I { + val Foo: Int +} + +class C : I { + override override val Foo = 1 } \ No newline at end of file