Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 874afa7

Browse files
tamasvajkigfoo
authored andcommitted
Fix missing extension receiver extraction
1 parent 23c5caa commit 874afa7

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,9 +687,17 @@ open class KotlinFileExtractor(
687687
}
688688

689689
val dr = c.dispatchReceiver
690-
if(dr != null) {
690+
val er = c.extensionReceiver
691+
if (dr != null) {
691692
extractExpressionExpr(dr, callable, id, -1, enclosingStmt)
693+
694+
if (er != null && er != dr) {
695+
logger.warnElement(Severity.ErrorSevere, "Expected to only find extension receiver or dispatch receiver. Found both. Extracting dispatch receiver only", c)
696+
}
697+
} else if (er != null) {
698+
extractExpressionExpr(er, callable, id, -1, enclosingStmt)
692699
}
700+
693701
for(i in 0 until c.valueArgumentsCount) {
694702
val arg = c.getValueArgument(i)
695703
if(arg != null) {

java/ql/test/kotlin/library-tests/exprs/exprs.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,11 +539,14 @@
539539
| exprs.kt:199:19:199:20 | ...!! | exprs.kt:198:1:200:1 | notNullAssertion | NotNullExpr |
540540
| exprs.kt:202:1:215:1 | <obinit>(...) | exprs.kt:202:1:215:1 | Class2 | MethodAccess |
541541
| exprs.kt:205:9:205:29 | a | exprs.kt:203:5:214:5 | x | LocalVariableDeclExpr |
542+
| exprs.kt:205:17:205:18 | aa | exprs.kt:203:5:214:5 | x | VarAccess |
542543
| exprs.kt:205:20:205:29 | toString(...) | exprs.kt:203:5:214:5 | x | MethodAccess |
543544
| exprs.kt:206:9:206:27 | b0 | exprs.kt:203:5:214:5 | x | LocalVariableDeclExpr |
545+
| exprs.kt:206:19:206:19 | s | exprs.kt:203:5:214:5 | x | VarAccess |
544546
| exprs.kt:206:21:206:27 | plus(...) | exprs.kt:203:5:214:5 | x | MethodAccess |
545547
| exprs.kt:206:26:206:26 | 5 | exprs.kt:203:5:214:5 | x | IntegerLiteral |
546548
| exprs.kt:207:9:207:23 | b1 | exprs.kt:203:5:214:5 | x | LocalVariableDeclExpr |
549+
| exprs.kt:207:19:207:19 | s | exprs.kt:203:5:214:5 | x | VarAccess |
547550
| exprs.kt:207:19:207:23 | plus(...) | exprs.kt:203:5:214:5 | x | MethodAccess |
548551
| exprs.kt:207:23:207:23 | 5 | exprs.kt:203:5:214:5 | x | IntegerLiteral |
549552
| exprs.kt:208:9:208:29 | b2 | exprs.kt:203:5:214:5 | x | LocalVariableDeclExpr |

0 commit comments

Comments
 (0)