Skip to content

Commit

Permalink
Wrong newlines in functional style (#346)
Browse files Browse the repository at this point in the history
### What's done: 
  * Fixed bugs
  * Call chains logic remade
  • Loading branch information
aktsay6 authored Oct 7, 2020
1 parent bbbe011 commit d185e2b
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.pinterest.ktlint.core.ast.ElementType.ANDAND
import com.pinterest.ktlint.core.ast.ElementType.ARROW
import com.pinterest.ktlint.core.ast.ElementType.BINARY_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.BLOCK
import com.pinterest.ktlint.core.ast.ElementType.BLOCK_COMMENT
import com.pinterest.ktlint.core.ast.ElementType.CALLABLE_REFERENCE_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.CALL_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.COLON
Expand All @@ -16,12 +17,14 @@ import com.pinterest.ktlint.core.ast.ElementType.DOT
import com.pinterest.ktlint.core.ast.ElementType.DOT_QUALIFIED_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.ELVIS
import com.pinterest.ktlint.core.ast.ElementType.ENUM_ENTRY
import com.pinterest.ktlint.core.ast.ElementType.EOL_COMMENT
import com.pinterest.ktlint.core.ast.ElementType.EQ
import com.pinterest.ktlint.core.ast.ElementType.FUN
import com.pinterest.ktlint.core.ast.ElementType.FUNCTION_LITERAL
import com.pinterest.ktlint.core.ast.ElementType.IDENTIFIER
import com.pinterest.ktlint.core.ast.ElementType.IF
import com.pinterest.ktlint.core.ast.ElementType.IMPORT_DIRECTIVE
import com.pinterest.ktlint.core.ast.ElementType.KDOC
import com.pinterest.ktlint.core.ast.ElementType.LAMBDA_ARGUMENT
import com.pinterest.ktlint.core.ast.ElementType.LPAR
import com.pinterest.ktlint.core.ast.ElementType.MINUS
Expand All @@ -34,15 +37,18 @@ import com.pinterest.ktlint.core.ast.ElementType.PACKAGE_DIRECTIVE
import com.pinterest.ktlint.core.ast.ElementType.PLUS
import com.pinterest.ktlint.core.ast.ElementType.PLUSEQ
import com.pinterest.ktlint.core.ast.ElementType.PRIMARY_CONSTRUCTOR
import com.pinterest.ktlint.core.ast.ElementType.REFERENCE_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.RETURN
import com.pinterest.ktlint.core.ast.ElementType.RETURN_KEYWORD
import com.pinterest.ktlint.core.ast.ElementType.SAFE_ACCESS
import com.pinterest.ktlint.core.ast.ElementType.SAFE_ACCESS_EXPRESSION
import com.pinterest.ktlint.core.ast.ElementType.SECONDARY_CONSTRUCTOR
import com.pinterest.ktlint.core.ast.ElementType.SEMICOLON
import com.pinterest.ktlint.core.ast.ElementType.VALUE_ARGUMENT
import com.pinterest.ktlint.core.ast.ElementType.VALUE_ARGUMENT_LIST
import com.pinterest.ktlint.core.ast.ElementType.VALUE_PARAMETER_LIST
import com.pinterest.ktlint.core.ast.ElementType.WHITE_SPACE
import com.pinterest.ktlint.core.ast.isLeaf
import com.pinterest.ktlint.core.ast.nextCodeSibling
import com.pinterest.ktlint.core.ast.parent
import com.pinterest.ktlint.core.ast.prevCodeSibling
Expand All @@ -52,16 +58,25 @@ import org.cqfn.diktat.ruleset.constants.Warnings.WRONG_NEWLINES
import org.cqfn.diktat.ruleset.utils.appendNewlineMergingWhiteSpace
import org.cqfn.diktat.ruleset.utils.emptyBlockList
import org.cqfn.diktat.ruleset.utils.extractLineOfText
import org.cqfn.diktat.ruleset.utils.getAllLeafsWithSpecificType
import org.cqfn.diktat.ruleset.utils.findAllNodesWithSpecificType
import org.cqfn.diktat.ruleset.utils.isBeginByNewline
import org.cqfn.diktat.ruleset.utils.isEol
import org.cqfn.diktat.ruleset.utils.isFollowedByNewline
import org.cqfn.diktat.ruleset.utils.isSingleLineIfElse
import org.cqfn.diktat.ruleset.utils.leaveOnlyOneNewLine
import org.jetbrains.kotlin.com.intellij.lang.ASTNode
import org.jetbrains.kotlin.com.intellij.psi.PsiElement
import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafPsiElement
import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl
import org.jetbrains.kotlin.com.intellij.psi.tree.IElementType
import org.jetbrains.kotlin.com.intellij.psi.tree.TokenSet
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtExpressionImpl
import org.jetbrains.kotlin.psi.KtPostfixExpression
import org.jetbrains.kotlin.psi.KtQualifiedExpression
import org.jetbrains.kotlin.psi.KtSafeQualifiedExpression
import org.jetbrains.kotlin.psi.psiUtil.children
import org.jetbrains.kotlin.psi.psiUtil.parents
import org.jetbrains.kotlin.psi.psiUtil.siblings
Expand Down Expand Up @@ -89,6 +104,7 @@ class NewlinesRule(private val configRules: List<RulesConfig>) : Rule("newlines"

private val expressionTypes = TokenSet.create(DOT_QUALIFIED_EXPRESSION, SAFE_ACCESS_EXPRESSION, CALLABLE_REFERENCE_EXPRESSION, BINARY_EXPRESSION)
private val chainExpressionTypes = TokenSet.create(DOT_QUALIFIED_EXPRESSION, SAFE_ACCESS_EXPRESSION)
private val dropChainValues = TokenSet.create(EOL_COMMENT, WHITE_SPACE, BLOCK_COMMENT, KDOC)
}

private lateinit var emitWarn: ((offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit)
Expand Down Expand Up @@ -141,6 +157,7 @@ class NewlinesRule(private val configRules: List<RulesConfig>) : Rule("newlines"
}
}

@Suppress("ComplexMethod")
private fun handleOperatorWithLineBreakBefore(node: ASTNode) {
if (node.isDotFromPackageOrImport()) {
return
Expand All @@ -150,6 +167,7 @@ class NewlinesRule(private val configRules: List<RulesConfig>) : Rule("newlines"
val isSingleLineIfElse = parent({ it.elementType == IF }, true)?.isSingleLineIfElse() ?: false
// to follow functional style these operators should be started by newline
(isFollowedByNewline() || !isBeginByNewline()) && !isSingleLineIfElse
&& (!isFirstCall() || !isMultilineLambda(treeParent))
} else {
// unless statement is simple and on single line, these operators cannot have newline after
isFollowedByNewline() && !isSingleDotStatementOnSingleLine()
Expand Down Expand Up @@ -278,6 +296,24 @@ class NewlinesRule(private val configRules: List<RulesConfig>) : Rule("newlines"
}
}


private fun ASTNode.getOrderedCallExpressions(psi: PsiElement, result: MutableList<ASTNode>) {
// if statements here have the only right order - don't change it

if (psi.children.isNotEmpty() && (psi.children[0].node.elementType != DOT_QUALIFIED_EXPRESSION
&& psi.children[0].node.elementType != SAFE_ACCESS_EXPRESSION )) {
result.add(psi.children[0].node.siblings(true)
.dropWhile { it.elementType in dropChainValues }
.first()) // node treeNext is ".", "?.", "!!", "::"
} else if (psi.children.isNotEmpty()) {
getOrderedCallExpressions(psi.children[0], result)

result.add(psi.children[0].node.siblings(true)
.dropWhile { it.elementType in dropChainValues }
.first()) // node treeNext is ".", "?.", "!!", "::"
}
}

/**
* This function is needed because many operators are represented as a single child of [OPERATION_REFERENCE] node
* e.g. [ANDAND] is a single child of [OPERATION_REFERENCE]
Expand All @@ -294,25 +330,42 @@ class NewlinesRule(private val configRules: List<RulesConfig>) : Rule("newlines"
private fun ASTNode.isDotFromPackageOrImport() = elementType == DOT &&
parent({ it.elementType == IMPORT_DIRECTIVE || it.elementType == PACKAGE_DIRECTIVE }, true) != null

/**
* taking all expressions inside complex expression until we reach lambda arguments
*/
private fun ASTNode.isCallsChain() = getParentExpressions()
.lastOrNull()
?.run {
mutableListOf<ASTNode>().also {
getAllLeafsWithSpecificType(DOT, it)
getAllLeafsWithSpecificType(SAFE_ACCESS, it)
getOrderedCallExpressions(psi, it)
}
}
?.dropWhile { !it.treeParent.textContains('(') && !it.treeParent.textContains('{') }
// fixme: we can't distinguish fully qualified names (like java.lang) from chain of property accesses (like list.size) for now
?.filter { it.getParentExpressions().count() > 1 }
?.count()
?.let { it > 1 }
?: false

/**
* taking all expressions inside complex expression until we reach lambda arguments
*/
private fun ASTNode.getParentExpressions() =
parents().takeWhile { it.elementType in chainExpressionTypes && it.elementType != LAMBDA_ARGUMENT }

private fun isMultilineLambda(node: ASTNode): Boolean =
node.findAllNodesWithSpecificType(LAMBDA_ARGUMENT).firstOrNull()?.text?.count { it == '\n' } ?: -1 > 0

/**
* Getting the first call expression in call chain
*/
private fun ASTNode.isFirstCall() = getParentExpressions()
.lastOrNull()
?.run {
val firstCallee = mutableListOf<ASTNode>().also {
getOrderedCallExpressions(psi, it)
}.first()
findAllNodesWithSpecificType(firstCallee.elementType, false).first() === this@isFirstCall
} ?: false


/**
* This method should be called on OPERATION_REFERENCE in the middle of BINARY_EXPRESSION
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,4 +502,81 @@ class NewlinesRuleWarnTest : LintTestBase(::NewlinesRule) {
LintError(2, 5, ruleId, singleReturnWarn, true)
)
}

@Test
@Tag(WarningNames.WRONG_NEWLINES)
fun `should not trigger`() {
lintMethod(
"""
|fun foo(): String {
|
| val a = java.lang.Boolean.getBoolean(properties.getProperty("parallel.mode"))
|
| allProperties?.filter {
| predicate(it)
| val x = listOf(1,2,3).filter { it < 3 }
| x == 0
| }
| .foo()
| .bar()
|
| allProperties?.filter {
| predicate(it)
| }
| .foo()
| .bar()
| .let {
| it.some()
| }
|
| allProperties
| ?.filter {
| predicate(it)
| }
| .foo()
| .bar()
| .let {
| mutableListOf().also {
|
| }
| }
|}
""".trimMargin()
)
}

@Test
@Tag(WarningNames.WRONG_NEWLINES)
fun `should trigger on non-multiline lambdas`() {
lintMethod(
"""
|fun foo(): String {
| allProperties.filter { predicate(it) }
| .foo()
| .bar()
|
| allProperties?.filter { predicate(it) }
| .foo()
| .bar()
|
| list.foo()
| .bar()
| .filter {
| baz()
| }
|
| list.filter {
|
| }
| .map(::foo).filter {
| bar()
| }
|}
""".trimMargin(),
LintError(2, 22, ruleId,"${WRONG_NEWLINES.warnText()} should follow functional style at .", true),
LintError(6, 22, ruleId,"${WRONG_NEWLINES.warnText()} should follow functional style at ?.", true),
LintError(10, 13, ruleId,"${WRONG_NEWLINES.warnText()} should follow functional style at .", true),
LintError(19, 20, ruleId,"${WRONG_NEWLINES.warnText()} should follow functional style at .", true)
)
}
}

1 comment on commit d185e2b

@0pdd
Copy link

@0pdd 0pdd commented on d185e2b Oct 7, 2020

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/0pdd20200927-12-1vn5scd/cqfn/diKTat && pdd -v -f /tmp/20201007-6093-1qigtjz [1]: + set -e + set -o pipefail + cd /tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat + pdd -v -f /tmp/20201007-6093-1qigtjz My version is 0.20.5 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/0pdd20200927-12-1vn5scd/cqfn/diKTat && pdd -v -f /tmp/20201007-6093-1qigtjz [1]:
+ set -e
+ set -o pipefail
+ cd /tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat
+ pdd -v -f /tmp/20201007-6093-1qigtjz

My version is 0.20.5
Ruby version is 2.6.0 at x86_64-linux
Reading /tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat
422 file(s) found, 1147 excluded
/tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat/diktat-rules/src/test/resources/test/paragraph3/src/main/A/FileSize2000.kt is a binary file (0 bytes)
/tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat/logo-1024.png is a binary file (210617 bytes)
/tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat/diktat-test-framework/src/main/resources/config.properties is a binary file (0 bytes)
/tmp/0pdd20200927-12-1vn5scd/cqfn/diKTat/info/diktat.jpg is a binary file (98328 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/FunctionLength.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/LambdaParameterOrder.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/SortRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/comments/HeaderCommentRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/comments/CommentsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/WhenMustHaveElseRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/PackageNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/SingleLineStatementsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/StringTemplateFormatRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/AnnotationNewLineRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/StringConcatenationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/BracesInConditionalsAndLoopsRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/FunctionArgumentsSize.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/WhiteSpaceRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/TypeAliasRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/ConsecutiveSpacesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/EmptyBlock.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/identifiers/LocalVariablesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/FileNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/LongNumericalValuesSeparatedRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/calculations/AccurateCalculationsRule.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/VariableGenericTypeDeclarationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/ClassLikeStructuresOrderRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/IdentifierNaming.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/NullableTypeRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/LineLength.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/BlockStructureBraces.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocFormatting.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/CommentsFormatting.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/ImmutableValNoVarRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/MultipleModifiersSequence.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/EnumsSeparated.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/files/IndentationRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/files/FileStructureRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/files/FileSize.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/files/BlankLinesRule.kt...
Reading diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/files/NewlinesRule.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/ASTConstants.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/KDocUtils.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/VariableSearchASTUtils.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/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/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/FunctonASTNodeUtils.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/MisplacedHeaderKdocNoCopyrightExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/header/AutoCopyrightExpected.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/MisplacedHeaderKdocTest.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/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/SpecialTagsInKdocExpected.kt...
Reading diktat-rules/src/test/resources/test/paragraph2/kdoc/BasicTagsEmptyLinesTest.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/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/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_/EnumValueCaseTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph1/naming/enum_/EnumValueCaseExpected.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/funcTest/FunctionalTestFile.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/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/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/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/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/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/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/FileAnnotationTest.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/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/TooManySpacesEnumTest.kt...
Reading diktat-rules/src/test/resources/test/paragraph3/spaces/WhiteSpaceBeforeLBraceTest.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/smoke/src/main/kotlin/Example2Expected.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/Example1Expected.kt...
Reading diktat-rules/src/test/resources/test/smoke/src/main/kotlin/Example1Test.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/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/ASTNodeUtilsTest.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/VariableSearchASTUtilsTest.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/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/chapter3/FileStructureRuleTestFix.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/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/KdocWarnTest.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/CommentsFormattingTest.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/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/AccurateCalculationsWarnTest.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/FunctionLengthWarnTest.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/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/smoke/DiktatSmokeTest.kt...
Reading pom.xml...
Reading .github/pull_request_template.md...
Reading .github/dependabot.yml...
Reading .github/codecov.yml...
Reading .github/workflows/diktat.yml...
Reading .github/workflows/functional_tests.yml...
Reading .github/workflows/diktat_snapshot.yml...
Reading .github/workflows/build_and_test.yml...
Reading .github/workflows/codeql-analysis.yml...
Reading .github/workflows/detekt.yml...
Reading .github/workflows/release.yml...
Reading .github/workflows/metrics_for_master.yml...
Reading .github/ISSUE_TEMPLATE/config.yml...
Reading CODE_OF_CONDUCT.md...
Reading diktat-test-framework/pom.xml...
Reading diktat-test-framework/src/main/resources/options.json...
Reading diktat-test-framework/src/main/resources/log4j.properties...
Reading diktat-test-framework/src/main/resources/org/cqfn/diktat/test/framework/test_arguments.json...
Reading diktat-test-framework/src/main/resources/org/cqfn/diktat/test/framework/test_configs/functional/1_9_a_special_space_cases.json...
Reading diktat-test-framework/src/main/resources/org/cqfn/diktat/test/framework/test_configs/functional/1_3_a_package_naming.json...
Reading diktat-test-framework/src/main/resources/org/cqfn/diktat/test/framework/test_configs/functional/1_3_b_package_naming.json...
Reading diktat-test-framework/src/main/resources/org/cqfn/diktat/test/framework/test_framework.properties...
Reading diktat-test-framework/src/main/java/org/cqfn/diktat/test/framework/common/StreamGobbler.java...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/TestEntry.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/TestComparatorUnit.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/TestCheckWarn.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/FileComparator.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/TestCompare.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/TestProcessingFactory.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/processing/TestMixed.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/config/TestConfig.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/config/TestArgumentsReader.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/config/TestFrameworkProperties.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/config/TestConfigReader.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/common/ExecutionResult.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/common/LocalCommandExecutor.kt...
Reading diktat-test-framework/src/main/kotlin/org/cqfn/diktat/test/framework/common/TestBase.kt...
Reading logo.svg...
Reading build.gradle.kts...
Reading info/available-rules.md...
Reading info/diktat-kotlin-coding-style-guide-en.md...
ERROR: info/diktat-kotlin-coding-style-guide-en.md; puzzle at line #353; 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:358:in `block in <top (required)>'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1635:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1635:in `block in compile!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:992:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1011:in `route_eval'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:992:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1040:in `block in process_route'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1038:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1038:in `process_route'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:990:in `block in route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:989:in `each'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:989:in `route!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1097:in `block in dispatch!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `block in invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1094:in `dispatch!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:924:in `block in call!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `block in invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `catch'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1076:in `invoke'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:924:in `call!'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:913:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/xss_header.rb:18:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/path_traversal.rb:16:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/json_csrf.rb:26:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.4/lib/rack/protection/frame_options.rb:31:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.6/lib/rack/logger.rb:15:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.6/lib/rack/common_logger.rb:33:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:231:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:224:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.6/lib/rack/head.rb:12:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.6/lib/rack/method_override.rb:22:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:194:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1957:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1502:in `block in call'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1729:in `synchronize'
/app/vendor/bundle/ruby/2.6.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1502:in `call'
/app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.6/lib/rack/handler/webrick.rb:86: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.