[PowerAssert] Improve the accuracy of locating infix operator tokens

Use KotlinLexer to determine the correct offset of an infix operator
token instead of skipping whitespaces after the operator's LHS.

This fixes cases like this:

```
assert("Name"/*in*/in/*in*/listOf("Hello", "World"))
              |            |
              |            [Hello, World]
              false
```
This commit is contained in:
Sergej Jaskiewicz
2024-02-29 18:51:53 +01:00
committed by Space Team
parent 54c58671fb
commit 0008e832d8
8 changed files with 27 additions and 21 deletions
@@ -24,8 +24,8 @@ assert(!(
Assertion failed
assert(null/*is*/is/*is*/String)
|
false
|
false
Assertion failed
assert(!((null is String) is Boolean))
@@ -21,8 +21,8 @@ assert(
Assertion failed
assert("Hello, world!"/*!is*/!is/*!is*/String)
|
false
|
false
Assertion failed
assert(("Hello, world!" !is String) !is Boolean)
@@ -25,9 +25,9 @@ assert(
Assertion failed
assert("Name"/*in*/in/*in*/listOf("Hello", "World"))
| |
| [Hello, World]
false
| |
| [Hello, World]
false
Assertion failed
assert(("Name" in listOf("Hello", "World")) in listOf(true))
@@ -21,8 +21,8 @@ assert(
Assertion failed
assert(1/*!=*/!=/*!=*/1)
|
false
|
false
Assertion failed
assert((1 != 1) != false)
@@ -21,8 +21,8 @@ assert(
Assertion failed
assert(1/*!==*/!==/*!==*/1)
|
false
|
false
Assertion failed
assert((1 !== 1) !== false)
@@ -25,9 +25,9 @@ assert(
Assertion failed
assert("Hello"/*!in*/!in/*!in*/listOf("Hello", "World"))
| |
| [Hello, World]
false
| |
| [Hello, World]
false
Assertion failed
assert(("Hello" !in listOf("Hello", "World")) !in listOf(false))