From 3f9f1faf172fd543687360f43d4445c1dd8c1e41 Mon Sep 17 00:00:00 2001 From: Brian Norman Date: Fri, 7 Feb 2020 17:22:09 -0600 Subject: [PATCH] Support for conditional access calls --- .../main/kotlin/com/bnorm/power/AssertTree.kt | 4 +++- .../src/test/kotlin/com/bnorm/power/test.kt | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/kotlin-power-assert/src/main/kotlin/com/bnorm/power/AssertTree.kt b/kotlin-power-assert/src/main/kotlin/com/bnorm/power/AssertTree.kt index 0abf59e27f7..d69698f93b1 100644 --- a/kotlin-power-assert/src/main/kotlin/com/bnorm/power/AssertTree.kt +++ b/kotlin-power-assert/src/main/kotlin/com/bnorm/power/AssertTree.kt @@ -149,7 +149,9 @@ fun buildAssertTree(expression: IrExpression): RootNode { } } else -> { - super.visitWhen(expression, data) + // Add as basic expression and terminate + // TODO this has to be broken and not work in all cases... + ExpressionNode(data) } } } diff --git a/kotlin-power-assert/src/test/kotlin/com/bnorm/power/test.kt b/kotlin-power-assert/src/test/kotlin/com/bnorm/power/test.kt index 103ada9af69..d515bf10384 100644 --- a/kotlin-power-assert/src/test/kotlin/com/bnorm/power/test.kt +++ b/kotlin-power-assert/src/test/kotlin/com/bnorm/power/test.kt @@ -196,6 +196,26 @@ assert(text == null || (text.length == 5 && text.toLowerCase() == text)) | | Hello | false Hello +""".trimIndent() + ) + } + + @Test + fun conditionalAccess() { + assertMessage( + """ +fun main() { + val text: String? = "Hello" + assert(text?.length?.minus(2) == 1) +}""", + """ +Assertion failed +assert(text?.length?.minus(2) == 1) + | | | | + | | | false + | | 3 + | 5 + Hello """.trimIndent() ) }