From 7816893fda82f4b6ccc2b5a5fd38155c2f712c06 Mon Sep 17 00:00:00 2001 From: aktsay6 Date: Tue, 19 Jan 2021 17:21:10 +0300 Subject: [PATCH] feature/inline-classes(#698) ### What's done: * Fixed bugs --- .../ruleset/rules/classes/InlineClassesRule.kt | 4 +++- .../diktat/ruleset/chapter6/InlineClassesWarnTest.kt | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/classes/InlineClassesRule.kt b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/classes/InlineClassesRule.kt index 9fb0952cbe..c06e6b2d50 100644 --- a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/classes/InlineClassesRule.kt +++ b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/classes/InlineClassesRule.kt @@ -54,7 +54,9 @@ class InlineClassesRule(private val configRule: List) : Rule("inlin if (classPsi.getProperties().size == 1 && !classPsi.hasExplicitPrimaryConstructor()) { return !classPsi.getProperties().first().isVar } else if (classPsi.getProperties().isEmpty() && classPsi.hasExplicitPrimaryConstructor()) { - return classPsi.primaryConstructorParameters.size == 1 && !classPsi.primaryConstructorParameters.first().node.hasChildOfType(VAR_KEYWORD) + return classPsi.primaryConstructorParameters.size == 1 + && !classPsi.primaryConstructorParameters.first().node.hasChildOfType(VAR_KEYWORD) + && classPsi.primaryConstructorModifierList == null } return false } diff --git a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/InlineClassesWarnTest.kt b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/InlineClassesWarnTest.kt index 31935be55b..311782ad07 100644 --- a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/InlineClassesWarnTest.kt +++ b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/InlineClassesWarnTest.kt @@ -112,4 +112,16 @@ class InlineClassesWarnTest : LintTestBase(::InlineClassesRule) { """.trimMargin() ) } + + @Test + @Tag(WarningNames.INLINE_CLASS_CAN_BE_USED) + fun `should not trigger on class with internal constructor`() { + lintMethod( + """ + |class LocalCommandExecutor internal constructor(private val command: String) { + | val some = 3 + |} + """.trimMargin() + ) + } }