Fix recursion in contract declaration analysis. KT-26386 Fixed

Issue fixed only in old inference
This commit is contained in:
Dmitriy Novozhilov
2019-03-07 14:13:28 +03:00
parent d0462859bf
commit 77c98bef4d
13 changed files with 137 additions and 14 deletions
@@ -315,6 +315,16 @@ fun KtQualifiedExpression.isContractDescriptionCallPsiCheck(): Boolean {
return receiverExpression.text == "kotlin.contracts" && expression.isContractDescriptionCallPsiCheck()
}
fun KtElement.isFirstStatement(): Boolean {
var parent = parent
var element = this
if (parent is KtDotQualifiedExpression) {
element = parent
parent = parent.parent
}
return parent is KtBlockExpression && parent.children.first { it is KtElement } == element
}
// ----------- Other -----------------------------------------------------------------------------------------------------------------------