Skip to content

Commit

Permalink
Add warning to suggest to use inline classes when a class has single …
Browse files Browse the repository at this point in the history
…property (#716)

* feature/inline-classes(#698)

### What's done:
  * Logic made
  * Added warn tests
  • Loading branch information
aktsay6 authored Jan 27, 2021
1 parent 00a00ae commit 05c3ebb
Show file tree
Hide file tree
Showing 12 changed files with 277 additions and 5 deletions.
3 changes: 3 additions & 0 deletions diktat-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -430,4 +430,7 @@
enabled: true
# If there exists negated version of function you should prefer it instead of !functionCall
- name: INVERSE_FUNCTION_PREFERRED
enabled: true
# Checks if class can be converted to inline class
- name: INLINE_CLASS_CAN_BE_USED
enabled: true
2 changes: 2 additions & 0 deletions diktat-rules/src/main/kotlin/generated/WarningNames.kt
Original file line number Diff line number Diff line change
Expand Up @@ -239,4 +239,6 @@ public object WarningNames {
public const val OBJECT_IS_PREFERRED: String = "OBJECT_IS_PREFERRED"

public const val INVERSE_FUNCTION_PREFERRED: String = "INVERSE_FUNCTION_PREFERRED"

public const val INLINE_CLASS_CAN_BE_USED: String = "INLINE_CLASS_CAN_BE_USED"
}
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ enum class Warnings(
AVOID_USING_UTILITY_CLASS(false, "6.4.1", "avoid using utility classes/objects, use extensions functions"),
OBJECT_IS_PREFERRED(true, "6.4.2", "it is better to use object for stateless classes"),
INVERSE_FUNCTION_PREFERRED(true, "5.1.4", "it is better to use inverse function"),
INLINE_CLASS_CAN_BE_USED(true, "6.1.12", "inline class can be used"),
;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import org.cqfn.diktat.ruleset.rules.chapter6.UselessSupertype
import org.cqfn.diktat.ruleset.rules.chapter6.classes.AbstractClassesRule
import org.cqfn.diktat.ruleset.rules.chapter6.classes.CompactInitialization
import org.cqfn.diktat.ruleset.rules.chapter6.classes.DataClassesRule
import org.cqfn.diktat.ruleset.rules.chapter6.classes.InlineClassesRule
import org.cqfn.diktat.ruleset.rules.chapter6.classes.SingleConstructorRule
import org.cqfn.diktat.ruleset.rules.chapter6.classes.SingleInitRule
import org.cqfn.diktat.ruleset.rules.chapter6.classes.StatelessClassesRule
Expand Down Expand Up @@ -153,6 +154,7 @@ class DiktatRuleSetProvider(private var diktatConfigFile: String = DIKTAT_ANALYS
::CustomGetterSetterRule,
::CompactInitialization,
// other rules
::InlineClassesRule,
::CheckInverseMethodRule,
::StatelessClassesRule,
::ImplicitBackingPropertyRule,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package org.cqfn.diktat.ruleset.rules.chapter6.classes

import org.cqfn.diktat.common.config.rules.RulesConfig
import org.cqfn.diktat.ruleset.constants.EmitType
import org.cqfn.diktat.ruleset.constants.Warnings.INLINE_CLASS_CAN_BE_USED
import org.cqfn.diktat.ruleset.utils.getFirstChildWithType
import org.cqfn.diktat.ruleset.utils.hasChildOfType

import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.ast.ElementType.CLASS
import com.pinterest.ktlint.core.ast.ElementType.CONSTRUCTOR_CALLEE
import com.pinterest.ktlint.core.ast.ElementType.FINAL_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.INTERNAL_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.MODIFIER_LIST
import com.pinterest.ktlint.core.ast.ElementType.PRIVATE_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.PROTECTED_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.PUBLIC_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.SUPER_TYPE_LIST
import com.pinterest.ktlint.core.ast.ElementType.VAR_KEYWORD
import com.pinterest.ktlint.core.ast.children
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType

/**
* This rule checks if inline class can be used.
*/
class InlineClassesRule(private val configRule: List<RulesConfig>) : Rule("inline-classes") {
private var isFixMode: Boolean = false
private lateinit var emitWarn: EmitType

override fun visit(
node: ASTNode,
autoCorrect: Boolean,
emit: EmitType
) {
emitWarn = emit
isFixMode = autoCorrect

if (node.elementType == CLASS) {
handleClasses(node.psi as KtClass)
}
}

private fun handleClasses(classPsi: KtClass) {
// Fixme: In Kotlin 1.4.30 inline classes may be used with internal constructors. When it will be released need to check it
if (hasValidProperties(classPsi) &&
!isExtendingClass(classPsi.node) &&
classPsi.node.getFirstChildWithType(MODIFIER_LIST)?.getChildren(null)?.all { it.elementType in goodModifiers } != false) {
INLINE_CLASS_CAN_BE_USED.warnAndFix(configRule, emitWarn, isFixMode, "class ${classPsi.name}", classPsi.node.startOffset, classPsi.node) {
// Fixme: since it's an experimental feature we shouldn't do fixer
}
}
}

private fun hasValidProperties(classPsi: KtClass): Boolean {
if (classPsi.getProperties().size == 1 && !classPsi.hasExplicitPrimaryConstructor()) {
return !classPsi.getProperties().single().isVar
} else if (classPsi.getProperties().isEmpty() && classPsi.hasExplicitPrimaryConstructor()) {
return classPsi.primaryConstructorParameters.size == 1 &&
!classPsi.primaryConstructorParameters.first().node.hasChildOfType(VAR_KEYWORD) &&
classPsi.primaryConstructor?.visibilityModifierType()?.value?.let { it == "public" } ?: true
}
return false
}

private fun isExtendingClass(node: ASTNode): Boolean =
node
.getFirstChildWithType(SUPER_TYPE_LIST)
?.children()
?.any { it.hasChildOfType(CONSTRUCTOR_CALLEE) }
?: false

companion object {
val goodModifiers = listOf(PUBLIC_KEYWORD, PRIVATE_KEYWORD, FINAL_KEYWORD, PROTECTED_KEYWORD, INTERNAL_KEYWORD)
}
}
3 changes: 3 additions & 0 deletions diktat-rules/src/main/resources/diktat-analysis-huawei.yml
Original file line number Diff line number Diff line change
Expand Up @@ -430,4 +430,7 @@
enabled: true
# If there exists negated version of function you should prefer it instead of !functionCall
- name: INVERSE_FUNCTION_PREFERRED
enabled: true
# Checks if class can be converted to inline class
- name: INLINE_CLASS_CAN_BE_USED
enabled: true
3 changes: 3 additions & 0 deletions diktat-rules/src/main/resources/diktat-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -427,4 +427,7 @@
enabled: true
# If there exists negated version of function you should prefer it instead of !functionCall
- name: INVERSE_FUNCTION_PREFERRED
enabled: true
# Checks if class can be converted to inline class
- name: INLINE_CLASS_CAN_BE_USED
enabled: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
package org.cqfn.diktat.ruleset.chapter6

import org.cqfn.diktat.ruleset.constants.Warnings.INLINE_CLASS_CAN_BE_USED
import org.cqfn.diktat.ruleset.rules.DIKTAT_RULE_SET_ID
import org.cqfn.diktat.ruleset.rules.chapter6.classes.InlineClassesRule
import org.cqfn.diktat.util.LintTestBase

import com.pinterest.ktlint.core.LintError
import generated.WarningNames
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test

class InlineClassesWarnTest : LintTestBase(::InlineClassesRule) {
private val ruleId = "$DIKTAT_RULE_SET_ID:inline-classes"

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should not trigger on inline class`() {
lintMethod(
"""
|inline class Name(val s: String) {}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on regular class`() {
lintMethod(
"""
|class Some {
| val config = Config()
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class Some", true)
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on class with appropriate modifiers`() {
lintMethod(
"""
|final class Some {
| val config = Config()
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class Some", true)
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should not trigger on class with inappropriate modifiers`() {
lintMethod(
"""
|abstract class Some {
| val config = Config()
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on class with val prop in constructor`() {
lintMethod(
"""
|class Some(val anything: Int) {
|
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class Some", true)
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should not trigger on class with var prop #1`() {
lintMethod(
"""
|class Some(var anything: Int) {
|
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should not trigger on class with var prop #2`() {
lintMethod(
"""
|class Some {
| var some = 3
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should not trigger on class that extends class`() {
lintMethod(
"""
|class Some : Any() {
| val some = 3
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on class that extends interface`() {
lintMethod(
"""
|class Some : Any {
| val some = 3
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class Some", true)
)
}

@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) {
|
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on class with public constructor`() {
lintMethod(
"""
|class LocalCommandExecutor public constructor(private val command: String) {
|
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class LocalCommandExecutor", true)
)
}

@Test
@Tag(WarningNames.INLINE_CLASS_CAN_BE_USED)
fun `should trigger on class with annotation before the constructor`() {
lintMethod(
"""
|class LocalCommandExecutor @Inject constructor(private val command: String) {
|
|}
""".trimMargin(),
LintError(1, 1, ruleId, "${INLINE_CLASS_CAN_BE_USED.warnText()} class LocalCommandExecutor", true)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ import kotlinx.serialization.encodeToString
* Special test that checks that developer has not forgotten to add his warning to a diktat-analysis.yml
* This file is needed to be in tact with latest changes in Warnings.kt
*/
class RulesConfigYamlTest {
private val pathMap = mapOf("diktat-analysis.yml" to "diKTat/diktat-rules/src/main/resources/diktat-analysis.yml",
"diktat-analysis-huawei.yml" to "diKTat/diktat-rules/src/main/resources/diktat-analysis-huawei.yml",
"parent/diktat-analysis.yml" to "diKTat/diktat-analysis.yml")

inline class RulesConfigYamlTest(private val pathMap: Map<String, String> =
mapOf("diktat-analysis.yml" to "diKTat/diktat-rules/src/main/resources/diktat-analysis.yml",
"diktat-analysis-huawei.yml" to "diKTat/diktat-rules/src/main/resources/diktat-analysis-huawei.yml",
"parent/diktat-analysis.yml" to "diKTat/diktat-analysis.yml")) {
@Test
fun `read rules config yml`() {
compareRulesAndConfig("diktat-analysis.yml")
Expand Down
1 change: 1 addition & 0 deletions info/available-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
| 6 | 6.1.10 | TRIVIAL_ACCESSORS_ARE_NOT_RECOMMENDED | Check: if there are any trivial getters or setters <br> Fix: Delete trivial getter or setter | yes | no | - |
| 6 | 6.1.8 | CUSTOM_GETTERS_SETTERS | Check: Inspection that checks that no custom getters and setters are used for properties | no | no | - |
| 6 | 6.1.11 | COMPACT_OBJECT_INITIALIZATION | Checks if class instantiation can be wrapped in `apply` for better readability | | no | |
| 6 | 6.1.12 | INLINE_CLASS_CAN_BE_USED | Check: warns if class can be transferred to the inline class. | no | no | yes |
| 6 | 6.2.2 | EXTENSION_FUNCTION_SAME_SIGNATURE | Checks if extension function has the same signature as another extension function and their classes are related | no | no | + |
| 6 | 6.4.1 | AVOID_USING_UTILITY_CLASS | Checks if there is class/object that can be replace with extension function | no | no | - |
| 6 | 6.4.2 | OBJECT_IS_PREFERRED | Checks: if class is stateless it is preferred to use `object` | yes | no | + |
1 change: 1 addition & 0 deletions info/guide/guide-TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ I [Preface](#c0)
* [6.1.9 Never use the name of a variable in the custom getter or setter (possible_bug)](#r6.1.9)
* [6.1.10 No trivial getters and setters are allowed in the code](#r6.1.10)
* [6.1.11 Use 'apply' for grouping object initialization](#r6.1.11)
* [6.1.12 Prefer Inline classes when a class has a single property](#r6.1.12)
* [6.2 Classes](#c6.2)
* [6.2.1 Use extension functions for making logic of classes less coupled](#r6.2.1)
* [6.2.2 No extension functions with the same name and signature if they extend base and inheritor classes (possible_bug)](#r6.2.2)
Expand Down
17 changes: 17 additions & 0 deletions info/guide/guide-chapter-6.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,23 @@ fun main() {
}
```

### <a name="r6.1.12"></a> 6.1.12 Prefer Inline classes when a class has a single property
If a class has only one immutable property, then it can be converted to the inline class.

Sometimes it is necessary for business logic to create a wrapper around some type. However, it introduces runtime overhead due to additional heap allocations. Moreover, if the wrapped type is primitive, the performance hit is terrible, because primitive types are usually heavily optimized by the runtime, while their wrappers don't get any special treatment.

**Invalid example**:
```kotlin
class Password {
val value: String
}
```

**Valid example**:
```kotlin
inline class Password(val value: String)
```

<!-- =============================================================================== -->
### <a name="c6.2"></a>6.2 Extension functions
This section describes the rules of using extension functions in your code.
Expand Down

1 comment on commit 05c3ebb

@0pdd
Copy link

@0pdd 0pdd commented on 05c3ebb Jan 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to GitHub. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

set -x && set -e && set -o pipefail && cd /tmp/0pdd20201201-12-in0cd3/cqfn/diKTat && pdd -v -f /tmp/20210127-17549-16ic4hj [1]: + set -e + set -o pipefail + cd /tmp/0pdd20201201-12-in0cd3/cqfn/diKTat + pdd -v -f /tmp/20210127-17549-16ic4hj My version is 0.20.6 Ruby version is 2.6.0 at...

Please, copy and paste this stack trace to GitHub:

UserError
set -x && set -e && set -o pipefail && cd /tmp/0pdd20201201-12-in0cd3/cqfn/diKTat && pdd -v -f /tmp/20210127-17549-16ic4hj [1]:
+ set -e
+ set -o pipefail
+ cd /tmp/0pdd20201201-12-in0cd3/cqfn/diKTat
+ pdd -v -f /tmp/20210127-17549-16ic4hj

My version is 0.20.6
Ruby version is 2.6.0 at x86_64-linux
Reading /tmp/0pdd20201201-12-in0cd3/cqfn/diKTat
669 file(s) found, 2561 excluded
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/diktat-rules/src/test/resources/test/paragraph3/src/main/A/FileSize2000.kt is a binary file (0 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/logo-1024.png is a binary file (210617 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/wp.pdf is a binary file (1587863 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/ktfmt.png is a binary file (22394 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/detekt.png is a binary file (20812 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/data_flow.PNG is a binary file (30951 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/package.png is a binary file (31056 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/diktat.png is a binary file (15618 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/useCase.png is a binary file (42924 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/sequence.PNG is a binary file (58624 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/web-example.png is a binary file (94361 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/ktlint.png is a binary file (20001 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/logo.png is a binary file (210617 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/class.PNG is a binary file (61130 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/wp/pictures/kotlinRating.png is a binary file (109403 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/diktat-gradle-plugin/gradle/wrapper/gradle-wrapper.jar is a binary file (59203 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/diktat-test-framework/src/main/resources/config.properties is a binary file (0 bytes)
/tmp/0pdd20201201-12-in0cd3/cqfn/diKTat/examples/README.md is a binary file (0 bytes)
Reading diktat-common/pom.xml...
Reading diktat-common/src/main/resources/log4j.properties...
Reading diktat-common/src/main/kotlin/org/cqfn/diktat/common/config/rules/RulesConfigReader.kt...
Reading diktat-common/src/main/kotlin/org/cqfn/diktat/common/config/reader/ApplicationProperties.kt...
Reading diktat-common/src/main/kotlin/org/cqfn/diktat/common/config/reader/JsonResourceConfigReader.kt...
Reading diktat-common/src/main/kotlin/org/cqfn/diktat/common/cli/CliArgument.kt...
Reading diktat-common/src/test/resources/test-rules-config.yml...
Reading diktat-common/src/test/kotlin/org/cqfn/diktat/test/ConfigReaderTest.kt...
Reading diktat-analysis.yml...
Reading .git-hooks/pre-commit.sh...
Reading .git-hooks/commit-msg.sh...
Reading LICENSE...
Reading diktat-ruleset/pom.xml...
Reading .gitignore...
Reading README.md...
Reading RELEASING.md...
Reading .gitattributes...
Reading diktat-rules/pom.xml...
Reading diktat-rules/src/main/resources/diktat-analysis.yml...
Reading diktat-rules/src/main/resources/diktat-analysis-huawei.yml...
Reading diktat-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.core.RuleSetProvider...
Reading diktat-rules/src/main/resources/log4j.properties...
Reading diktat-rules/src/main/kotlin/generated/WarningNames.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/SortRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/WhenMustHaveElseRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/SingleLineStatementsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/StringTemplateFormatRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/AnnotationNewLineRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/StringConcatenationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/BracesInConditionalsAndLoopsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/ConsecutiveSpacesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/EmptyBlock.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/identifiers/LocalVariablesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/LongNumericalValuesSeparatedRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/ClassLikeStructuresOrderRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/NullableTypeRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/LineLength.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/BlockStructureBraces.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/MultipleModifiersSequence.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/EnumsSeparated.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/IndentationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/FileStructureRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/FileSize.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/WhiteSpaceRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/BlankLinesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter3/files/NewlinesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/comments/HeaderCommentRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/comments/CommentsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/kdoc/KdocFormatting.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/kdoc/CommentsFormatting.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/kdoc/KdocMethods.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter2/kdoc/KdocComments.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/DiktatRuleSetProvider.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/SmartCastRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/NullChecksRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/TypeAliasRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/calculations/AccurateCalculationsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/VariableGenericTypeDeclarationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter4/ImmutableValNoVarRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/FunctionLength.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/LambdaParameterOrder.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/AvoidNestedFunctionsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/LambdaLengthRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/CustomLabel.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/FunctionArgumentsSize.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/NestedFunctionBlock.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/OverloadingArgumentsFunction.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/AsyncAndSyncRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter5/CheckInverseMethodRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter1/PackageNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter1/FileNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter1/IdentifierNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/ExtensionFunctionsSameNameRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/ImplicitBackingPropertyRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/UselessSupertype.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/TrivialPropertyAccessors.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/PropertyAccessorFields.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/AbstractClassesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/SingleConstructorRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/DataClassesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/InlineClassesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/SingleInitRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/StatelessClassesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/classes/CompactInitialization.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/CustomGetterSetterRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/AvoidUtilityClass.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/chapter6/AvoidEmptyPrimaryConstructor.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/FunctionAstNodeUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/KdocUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/SequenceUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/AstNodeUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/StringCaseUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/indentation/Checkers.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/indentation/CustomIndentationChecker.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/indentation/IndentationConfig.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/search/VariablesSearch.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/search/VariablesWithAssignmentSearch.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/search/VariablesWithUsagesSearch.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/StringUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/KotlinParser.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/PositionInTextLocator.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/PsiUtils.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/KotlinParseException.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/utils/AstConstants.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/constants/Warnings.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/generation/Generation.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/CopyrightShouldNotTriggerNPEExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MultilineCopyrightNotTriggerTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocNoCopyrightExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/AutoCopyrightExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/CopyrightShouldNotTriggerNPETest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/NewlineAfterHeaderKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocAppendedCopyrightExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MultilineCopyrightNotTriggerExample.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MultilineCopyrightExample.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/AutoCopyrightTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocNoCopyrightTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/CopyrightDifferentYearExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MultilineCopyrightTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/NewlineAfterHeaderKdocTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/CopyrightDifferentYearTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/MisplacedHeaderKdocAppendedCopyrightTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocFormattingFullTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/ConstructorCommentNoKDocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/ConstructorCommentNoKDocTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/ConstructorCommentExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/SpecialTagsInKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/BasicTagsEmptyLinesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/ConstructorCommentTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/BasicTagsEmptyLineBeforeTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocFormattingFullExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/OrderedTagsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/NoPackageNoImportExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/BasicTagsEmptyLinesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocCodeBlockFormattingExampleExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocCodeBlocksFormattingExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/BasicTagsEmptyLineBeforeExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/OrderedTagsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/NoPackageNoImportTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocCodeBlockFormattingExampleTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/DeprecatedTagTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/SpecialTagsInKdocTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/SpacesAfterTagExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocEmptyLineExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocCodeBlocksFormattingTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/MissingKdocWithModifiersTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ParamTagInsertionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ParamTagInsertionTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/MissingKdocTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/EmptyKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/KdocMethodsFullTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/EmptyKdocTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/MissingKdocWithModifiersExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ThrowsTagInsertionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/MissingKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/KdocMethodsFullExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ReturnTagInsertionTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ReturnTagInsertionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/package/src/main/kotlin/org/cqfn/diktat/kdoc/methods/ThrowsTagInsertionTested.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/SpacesAfterTagTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/DeprecatedTagExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/KdocEmptyLineTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/enum_/EnumValuePascalCaseExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/enum_/EnumValueSnakeCaseExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/enum_/EnumValuePascalCaseTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/enum_/EnumValueSnakeCaseTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/PrefixInNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/ConstantValNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/VariableNamingExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/ConstantValNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/LambdaArgTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/VariableNamingTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/PrefixInNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/identifiers/LambdaArgExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/object_/IncorrectObjectNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/object_/IncorrectObjectNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/class_/IncorrectClassNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/class_/IncorrectClassNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/function/FunctionNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/function/FunctionNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/generic/GenericFunctionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/generic/GenericFunctionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/FixUnderscoreTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/FixUnderscoreExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/MissingDomainNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/FixUpperExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/MissingDomainNameExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/some/FixMissingExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/some/FixIncorrectTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/some/FixMissingTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/some/FixIncorrectExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixMissingExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixPackageRegressionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixPackageRegressionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixIncorrectTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixMissingTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/src/main/kotlin/org/cqfn/diktat/some/name/FixIncorrectExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/package/FixUpperTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/file/fileNameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/file/file_nameTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph6/useless-override/UselessOverrideExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph6/useless-override/SeveralSuperTypesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph6/useless-override/SeveralSuperTypesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph6/useless-override/UselessOverrideTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/smart_cast/SmartCastExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/smart_cast/SmartCastTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/generics/VariableGenericTypeDeclarationExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/generics/VariableGenericTypeDeclarationTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/null_checks/IfConditionNullCheckTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/null_checks/IfConditionNullCheckExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/null_checks/RequireFunctionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph4/null_checks/RequireFunctionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/enum_separated/EnumSeparatedTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/enum_separated/EnumSeparatedExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/OneLineFunctionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/OneLineFunctionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/SemicolonsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/SemicolonsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/LParTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/FunctionalStyleTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/ParameterListTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/ParameterListExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/CommaTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/LambdaExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/LambdaTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/CommaExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/ExpressionBodyExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/ExpressionBodyTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/OperatorsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/FunctionalStyleExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/LParExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/newlines/OperatorsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/string_template/StringTemplateExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/string_template/StringTemplateTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/multiple_modifiers/AnnotationTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/multiple_modifiers/ModifierTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/multiple_modifiers/ModifierExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/multiple_modifiers/AnnotationExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/else_expected/ElseInWhenExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/else_expected/ElseInWhenTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/empty_block/EmptyBlockExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/empty_block/EmptyBlockTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/nullable/CollectionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/nullable/CollectionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/nullable/NullPrimitiveTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/nullable/NullPrimitiveExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationConstructorSingleLineExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationSingleLineTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationCommentExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationCommentTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationConstructorSingleLineTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/annotations/AnnotationSingleLineExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/IfElseBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/IfElseBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/TryBraceTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/WhenBranchesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/LoopsBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/ClassBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/DoWhileBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/TryBraceExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/DoWhileBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/LoopsBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/WhenBranchesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/block_brace/ClassBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/sort_error/ConstantsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/sort_error/EnumSortTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/sort_error/ConstantsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/sort_error/EnumSortExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/statement/StatementTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/statement/StatementExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/WhenBranchesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/IfElseBraces1Test.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/LoopsBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/IfElseBraces1Expected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/DoWhileBracesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/DoWhileBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/LoopsBracesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/braces/WhenBranchesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentFullExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/ConstructorTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentationFull1Test.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentationParametersExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentationParametersTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/ConstructorExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentFullTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/indentation/IndentationFull1Expected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/ReorderingImportsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/CopyrightCommentPositionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/MissingBlankLinesBetweenBlocksTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/RedundantBlankLinesBetweenBlocksTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/ReorderingImportsRecommendedTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/OrderWithCommentTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/FileAnnotationTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/ReorderingImportsRecommendedExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/DefaultPackageWithImportsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/DefaultPackageWithImportsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/OrderWithCommentExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/OtherCommentsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/FileAnnotationExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/BlankLinesBetweenBlocksExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/CopyrightCommentPositionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/DeclarationsInClassOrderExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/OtherCommentsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/NoImportNoPackageTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/NoImportNoPackageExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/ReorderingImportsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/file_structure/DeclarationsInClassOrderTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_numbers/LongNumericalValuesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_numbers/LongNumericalValuesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LBraceAfterKeywordExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/TooManySpacesEnumExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LambdaAsArgumentExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/EolSpacesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LambdaAsArgumentTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/EqualsExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/WhiteSpaceBeforeLParTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LBraceAfterKeywordTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/TooManySpacesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/TooManySpacesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LbraceExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/AnnotationTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/LbraceTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/BracesLambdaSpacesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/TooManySpacesEnumTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/WhiteSpaceBeforeLBraceTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/BracesLambdaSpacesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/BinaryOpTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/EolSpacesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/BinaryOpExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/WhiteSpaceBeforeLBraceExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/WhiteSpaceBeforeLParExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/EqualsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/AnnotationExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineExpressionExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongExpressionNoFixTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineFunTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineCommentExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineExpressionTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongShortRValueTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineCommentTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongShortRValueExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineRValueTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineRValueExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongLineFunExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/long_line/LongExpressionNoFixExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/src/main/A/FileSizeA.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/src/main/C/FileSizeC.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/src/main/B/FileSizeB.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/src/main/FileSizeLarger.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/blank_lines/RedundantBlankLinesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/blank_lines/CodeBlockWithBlankLinesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/blank_lines/RedundantBlankLinesExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/blank_lines/CodeBlockWithBlankLinesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsNoTriggerTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsSeveralTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsSeveralExample.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsExample.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/nested_functions/AvoidNestedFunctionsNoTriggerExample.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/method_call_names/ReplaceMethodCallNamesTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph5/method_call_names/ReplaceMethodCallNamesExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/stateless_classes/StatelessClassExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/stateless_classes/StatelessClassTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/primary_constructor/EmptyPCTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/primary_constructor/EmptyPCExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/abstract_classes/ShouldRemoveAbstractKeywordExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/abstract_classes/ShouldRemoveAbstractKeywordTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/properties/TrivialPropertyAccessorsTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/properties/TrivialPropertyAccessorsExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/ExampleWithCommentsExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/ApplyWithValueArgumentExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/SimpleExampleExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/ExampleWithCommentsTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/ApplyWithValueArgumentTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/compact_initialization/SimpleExampleTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/SimpleConstructorExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/AssignmentWithLocalPropertyTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/AssignmentWithLocalPropertyExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithModifiersExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithInitTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithCustomAssignmentsExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithCustomAssignmentsTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithInitExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/SimpleConstructorTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/classes/ConstructorWithModifiersTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlocksTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlockWithAssignmentsTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlocksWithAssignmentsExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlockWithAssignmentsExpected.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlocksWithAssignmentsTest.kt...
Reading diktat-rules/src/test/resources/test/chapter6/init_blocks/InitBlocksExpected.kt...
Reading diktat-rules/src/test/resources/test/smoke/build.gradle_.kts...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example3Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example2Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example7Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example2Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example4Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example7Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example5Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example6Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example4Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Bug1Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/DefaultPackageExpected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Bug1Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example5Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example3Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example6Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example1Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/DefaultPackageTest.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example1Test.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/jsMain/kotlin/org/cqfn/diktat/scripts/ScriptExpected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/jsMain/kotlin/org/cqfn/diktat/scripts/ScriptTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/util/TestUtils.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/util/DiktatRuleSetProvider4Test.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/util/LintTestBase.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/util/FixTestBase.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/FunctionAstNodeUtilsTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/WarningsGenerationTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/AstNodeUtilsTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/VariablesSearchTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/VariablesWithAssignmentsSearchTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/SuppressTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/AvailableRulesDocTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/StringCaseUtilsTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/RulesConfigYamlTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/KotlinParserTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/utils/VariablesWithUsagesSearchTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/EmptyBlockWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/StringTemplateRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/BracesRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/WhenMustHaveElseWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/FileStructureRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/ConsecutiveSpacesRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/LineLengthFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/NullableTypeRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/NullableTypeRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/SingleLineStatementsRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/WhenMustHaveElseFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/ClassLikeStructuresOrderRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/LongNumericalValuesSeparatedFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/BracesRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/AnnotationNewLineRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/LongNumericalValuesSeparatedWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/StringConcatenationWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/MultipleModifiersSequenceWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/ConsecutiveSpacesRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/SingleLineStatementsRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/EmptyBlockFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/EnumsSeparatedFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/spaces/WhiteSpaceRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/spaces/IndentationRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/spaces/WhiteSpaceRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/spaces/IndentationRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/LineLengthWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/FileSizeWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/AnnotationNewLineRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/ClassLikeStructuresOrderFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/BlockStructureBracesFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/SortRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/LocalVariablesWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/EnumsSeparatedWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/SortRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/StringTemplateRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/files/BlankLinesWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/files/NewlinesRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/files/NewlinesRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/files/BlankLinesFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/BlockStructureBracesWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/MultipleModifiersSequenceFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter3/FileStructureRuleTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/comments/CommentedCodeTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocCommentsFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/HeaderCommentRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/HeaderCommentRuleTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocFormattingFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocFormattingTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocParamPresentWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/CommentsFormattingFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocCommentsWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/CommentsFormattingTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/NullChecksRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/NoVarRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/SmartCastRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/TypeAliasRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/VariableGenericTypeDeclarationRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/NullChecksRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/AccurateCalculationsWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/SmartCastRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter4/VariableGenericTypeDeclarationRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/AsyncAndSyncRuleTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/OverloadingArgumentsFunctionWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/FunctionLengthWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/NestedFunctionBlockWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/AvoidNestedFunctionsWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/FunctionArgumentsSizeWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/CustomLabelsTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/CheckInverseMethodRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/CheckInverseMethodRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/AvoidNestedFunctionsFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/LambdaLengthWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter5/LambdaParameterOrderWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/EnumValueCaseTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/PackageNamingWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/MethodNamingWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/IdentifierNamingFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/PackagePathFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/PackageNamingFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter1/IdentifierNamingWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/SingleConstructorRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/SingleInitRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/ExtensionFunctionsSameNameWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/DataClassesRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/PropertyAccessorFieldsWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/InlineClassesWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/SingleInitRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/UselessSupertypeFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/UselessSupertypeWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/CompactInitializationFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/CompactInitializationWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/StatelessClassesRuleFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/AbstractClassesWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/AbstractClassesFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/StatelessClassesRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/EmptyPrimaryConstructorWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/ImplicitBackingPropertyWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/EmptyPrimaryConstructorFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/TrivialPropertyAccessorsWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/TrivialPropertyAccessorsFixTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/AvoidUtilityClassWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/CustomGetterSetterWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter6/SingleConstructorRuleWarnTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/smoke/RulesConfigValidationTest.kt...
Reading diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/smoke/DiktatSmokeTest.kt...
Reading pom.xml...
Reading wp/references.bib...
Reading wp/README.md...
Reading wp/sections/diKTat.tex...
Reading wp/sections/definition.tex...
Reading wp/sections/work.tex...
Reading wp/sections/conclusion.tex...
Reading wp/sections/appendix.tex...
ERROR: wp/sections/appendix.tex; puzzle at line #193; TODO found, but puzzle can't be parsed, most probably because TODO is not followed by a puzzle marker, as this page explains: https://github.com/yegor256/pdd#how-to-format
If you can't understand the cause of this issue or you don't know how to fix it, please submit a GitHub issue, we will try to help you: https://github.com/yegor256/pdd/issues. This tool is still in its beta version and we will appreciate your feedback. Here is where you can find more documentation: https://github.com/yegor256/pdd/blob/master/README.md.
Exit code is 1

/app/objects/git_repo.rb:66:in `rescue in block in xml'
/app/objects/git_repo.rb:63:in `block in xml'
/app/vendor/ruby-2.6.0/lib/ruby/2.6.0/tempfile.rb:295:in `open'
/app/objects/git_repo.rb:62:in `xml'
/app/objects/puzzles.rb:36:in `deploy'
/app/objects/job.rb:38:in `proceed'
/app/objects/job_starred.rb:33:in `proceed'
/app/objects/job_recorded.rb:32:in `proceed'
/app/objects/job_emailed.rb:35:in `proceed'
/app/objects/job_commiterrors.rb:36:in `proceed'
/app/objects/job_detached.rb:48:in `exclusive'
/app/objects/job_detached.rb:36:in `block in proceed'
/app/objects/job_detached.rb:36:in `fork'
/app/objects/job_detached.rb:36:in `proceed'
/app/0pdd.rb:357:in `block in <top (required)>'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1675:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1675:in `block in compile!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1013:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1032:in `route_eval'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1013:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1061:in `block in process_route'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1059:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1059:in `process_route'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1011:in `block in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1008:in `each'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1008:in `route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1129:in `block in dispatch!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `block in invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1124:in `dispatch!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:939:in `block in call!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `block in invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:939:in `call!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:929:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/xss_header.rb:18:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/path_traversal.rb:16:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/json_csrf.rb:26:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.1.0/lib/rack/protection/frame_options.rb:31:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/logger.rb:17:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/common_logger.rb:38:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:253:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:246:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:216:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1991:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1542:in `block in call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1769:in `synchronize'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1542:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/handler/webrick.rb:95:in `service'
/app/vendor/ruby-2.6.0/lib/ruby/2.6.0/webrick/httpserver.rb:140:in `service'
/app/vendor/ruby-2.6.0/lib/ruby/2.6.0/webrick/httpserver.rb:96:in `run'
/app/vendor/ruby-2.6.0/lib/ruby/2.6.0/webrick/server.rb:307:in `block in start_thread'

Please sign in to comment.