Handle large arity lambdas, and add missing type access for some constructor calls (needed for anonymous classes)

This commit is contained in:
Tamas Vajk
2021-12-06 14:09:29 +01:00
committed by Ian Lynagh
parent f4c87cb79d
commit 3cd2583ec8
4 changed files with 410 additions and 122 deletions

View File

@@ -605,37 +605,53 @@
| file://:0:0:0:0 | Integer | localFunctionCalls.kt:3:1:11:1 | x | TypeAccess |
| file://:0:0:0:0 | Integer | localFunctionCalls.kt:3:1:11:1 | x | TypeAccess |
| file://:0:0:0:0 | Interface1 | exprs.kt:187:13:192:5 | getObject | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Lambda | funcExprs.kt:25:28:25:51 | invoke | TypeAccess |
| file://:0:0:0:0 | MyLambda | funcExprs.kt:13:1:29:1 | call | TypeAccess |
| file://:0:0:0:0 | Object | localFunctionCalls.kt:3:1:11:1 | x | TypeAccess |
| file://:0:0:0:0 | Object | localFunctionCalls.kt:3:1:11:1 | x | TypeAccess |
| file://:0:0:0:0 | String | localFunctionCalls.kt:3:1:11:1 | x | TypeAccess |
| file://:0:0:0:0 | Unit | exprs.kt:168:6:170:1 | Direction | TypeAccess |
| file://:0:0:0:0 | Unit | exprs.kt:172:6:176:1 | Color | TypeAccess |
| file://:0:0:0:0 | tmp0 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| funcExprs.kt:14:5:14:33 | functionExpression0a(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:14:26:14:33 | 0 | funcExprs.kt:14:26:14:33 | | IntegerLiteral |
| funcExprs.kt:14:26:14:33 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:14:26:14:33 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:14:31:14:31 | 5 | funcExprs.kt:14:26:14:33 | invoke | IntegerLiteral |
| funcExprs.kt:15:5:15:33 | functionExpression0b(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:15:26:15:33 | 0 | funcExprs.kt:15:26:15:33 | | IntegerLiteral |
| funcExprs.kt:15:26:15:33 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:15:26:15:33 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:15:31:15:31 | 5 | funcExprs.kt:15:26:15:33 | invoke | IntegerLiteral |
| funcExprs.kt:16:5:16:33 | functionExpression0c(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:16:26:16:33 | 0 | funcExprs.kt:16:26:16:33 | | IntegerLiteral |
| funcExprs.kt:16:26:16:33 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:16:26:16:33 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:16:31:16:31 | 5 | funcExprs.kt:16:26:16:33 | invoke | IntegerLiteral |
| funcExprs.kt:17:5:17:38 | functionExpression1a(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:17:26:17:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:17:29:17:38 | 1 | funcExprs.kt:17:29:17:38 | | IntegerLiteral |
| funcExprs.kt:17:29:17:38 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:17:29:17:38 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:17:36:17:36 | 5 | funcExprs.kt:17:29:17:38 | invoke | IntegerLiteral |
| funcExprs.kt:18:5:18:34 | functionExpression1a(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:18:26:18:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:18:29:18:34 | 1 | funcExprs.kt:18:29:18:34 | | IntegerLiteral |
| funcExprs.kt:18:29:18:34 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:18:29:18:34 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:18:31:18:32 | it | funcExprs.kt:18:29:18:34 | invoke | VarAccess |
| funcExprs.kt:19:5:19:43 | functionExpression1a(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:19:26:19:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:19:29:19:42 | 1 | funcExprs.kt:19:29:19:42 | | IntegerLiteral |
| funcExprs.kt:19:29:19:42 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:19:29:19:42 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:19:42:19:42 | 5 | funcExprs.kt:19:29:19:42 | invoke | IntegerLiteral |
| funcExprs.kt:20:5:20:39 | functionExpression1a(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:20:26:20:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
@@ -643,43 +659,160 @@
| funcExprs.kt:21:5:21:37 | functionExpression1b(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:21:26:21:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:21:29:21:37 | 1 | funcExprs.kt:21:29:21:37 | | IntegerLiteral |
| funcExprs.kt:21:29:21:37 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:21:29:21:37 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:21:36:21:36 | a | funcExprs.kt:21:29:21:37 | invoke | VarAccess |
| funcExprs.kt:22:5:22:51 | functionExpression2(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:22:25:22:25 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:22:28:22:50 | 2 | funcExprs.kt:22:28:22:50 | | IntegerLiteral |
| funcExprs.kt:22:28:22:50 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:22:28:22:50 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:22:50:22:50 | 5 | funcExprs.kt:22:28:22:50 | invoke | IntegerLiteral |
| funcExprs.kt:23:5:23:40 | functionExpression2(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:23:25:23:25 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:23:28:23:40 | 2 | funcExprs.kt:23:28:23:40 | | IntegerLiteral |
| funcExprs.kt:23:28:23:40 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:23:28:23:40 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:23:38:23:38 | 5 | funcExprs.kt:23:28:23:40 | invoke | IntegerLiteral |
| funcExprs.kt:24:5:24:44 | functionExpression3(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:24:25:24:25 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:24:28:24:44 | 1 | funcExprs.kt:24:28:24:44 | | IntegerLiteral |
| funcExprs.kt:24:28:24:44 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:24:28:24:44 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:24:35:24:38 | this | funcExprs.kt:24:28:24:44 | invoke | ThisAccess |
| funcExprs.kt:24:35:24:42 | ... + ... | funcExprs.kt:24:28:24:44 | invoke | AddExpr |
| funcExprs.kt:24:42:24:42 | a | funcExprs.kt:24:28:24:44 | invoke | VarAccess |
| funcExprs.kt:25:5:25:51 | functionExpression4(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:25:25:25:25 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:25:28:25:51 | 1 | funcExprs.kt:25:28:25:51 | | IntegerLiteral |
| funcExprs.kt:25:28:25:51 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:25:28:25:51 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:25:37:25:47 | 1 | funcExprs.kt:25:37:25:47 | | IntegerLiteral |
| funcExprs.kt:25:37:25:47 | new (...) | funcExprs.kt:25:28:25:51 | invoke | ClassInstanceExpr |
| funcExprs.kt:25:37:25:47 | ...->... | funcExprs.kt:25:28:25:51 | invoke | LambdaExpr |
| funcExprs.kt:25:44:25:46 | 5.0 | funcExprs.kt:25:37:25:47 | invoke | DoubleLiteral |
| funcExprs.kt:27:5:27:112 | functionExpression22(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:27:26:27:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:27:29:27:112 | 22 | funcExprs.kt:27:29:27:112 | | IntegerLiteral |
| funcExprs.kt:27:29:27:112 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:27:29:27:112 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:27:111:27:111 | 5 | funcExprs.kt:27:29:27:112 | invoke | IntegerLiteral |
| funcExprs.kt:27:111:27:111 | (...)... | funcExprs.kt:27:29:27:112 | invoke | CastExpr |
| funcExprs.kt:27:111:27:111 | Unit | funcExprs.kt:27:29:27:112 | invoke | TypeAccess |
| funcExprs.kt:28:5:28:117 | functionExpression23(...) | funcExprs.kt:13:1:29:1 | call | MethodAccess |
| funcExprs.kt:28:26:28:26 | 5 | funcExprs.kt:13:1:29:1 | call | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 0 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 1 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 2 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 3 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 4 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 5 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 6 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 7 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 8 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 9 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 10 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 11 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 12 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 13 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 14 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 15 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 16 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 17 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 18 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 19 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 20 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 21 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 22 | funcExprs.kt:28:29:28:117 | invoke | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | 23 | funcExprs.kt:28:29:28:117 | | IntegerLiteral |
| funcExprs.kt:28:29:28:117 | new (...) | funcExprs.kt:13:1:29:1 | call | ClassInstanceExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | (...)... | funcExprs.kt:28:29:28:117 | invoke | CastExpr |
| funcExprs.kt:28:29:28:117 | ...->... | funcExprs.kt:13:1:29:1 | call | LambdaExpr |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | args | funcExprs.kt:28:29:28:117 | invoke | VarAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | get(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | int | funcExprs.kt:28:29:28:117 | invoke | TypeAccess |
| funcExprs.kt:28:29:28:117 | invoke(...) | funcExprs.kt:28:29:28:117 | invoke | MethodAccess |
| funcExprs.kt:28:29:28:117 | this | funcExprs.kt:28:29:28:117 | invoke | ThisAccess |
| funcExprs.kt:28:115:28:116 | | funcExprs.kt:28:29:28:117 | invoke | StringLiteral |
| funcExprs.kt:31:1:33:1 | <obinit>(...) | funcExprs.kt:31:1:33:1 | MyLambda | MethodAccess |
| funcExprs.kt:32:49:32:49 | 5 | funcExprs.kt:32:23:32:49 | invoke | IntegerLiteral |

View File

@@ -1,55 +1,61 @@
lambdaClassMembers
| funcExprs.kt:14:26:14:33 | | funcExprs.kt:14:26:14:33 | | Constructor | |
| funcExprs.kt:14:26:14:33 | | funcExprs.kt:14:26:14:33 | invoke | Method | invoke() |
| funcExprs.kt:14:26:14:33 | | funcExprs.kt:14:26:14:33 | invoke | Method | invoke() |
| funcExprs.kt:15:26:15:33 | | funcExprs.kt:15:26:15:33 | | Constructor | |
| funcExprs.kt:15:26:15:33 | | funcExprs.kt:15:26:15:33 | invoke | Method | invoke() |
| funcExprs.kt:16:26:16:33 | | funcExprs.kt:16:26:16:33 | | Constructor | |
| funcExprs.kt:16:26:16:33 | | funcExprs.kt:16:26:16:33 | invoke | Method | invoke() |
| funcExprs.kt:17:29:17:38 | | funcExprs.kt:17:29:17:38 | | Constructor | |
| funcExprs.kt:17:29:17:38 | | funcExprs.kt:17:29:17:38 | invoke | Method | invoke(int) |
| funcExprs.kt:17:29:17:38 | | funcExprs.kt:17:29:17:38 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:18:29:18:34 | | funcExprs.kt:18:29:18:34 | | Constructor | |
| funcExprs.kt:18:29:18:34 | | funcExprs.kt:18:29:18:34 | invoke | Method | invoke(int) |
| funcExprs.kt:18:29:18:34 | | funcExprs.kt:18:29:18:34 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:19:29:19:42 | | funcExprs.kt:19:29:19:42 | | Constructor | |
| funcExprs.kt:19:29:19:42 | | funcExprs.kt:19:29:19:42 | invoke | Method | invoke(int) |
| funcExprs.kt:19:29:19:42 | | funcExprs.kt:19:29:19:42 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:21:29:21:37 | | funcExprs.kt:21:29:21:37 | | Constructor | |
| funcExprs.kt:21:29:21:37 | | funcExprs.kt:21:29:21:37 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:22:28:22:50 | | funcExprs.kt:22:28:22:50 | | Constructor | |
| funcExprs.kt:22:28:22:50 | | funcExprs.kt:22:28:22:50 | invoke | Method | invoke(int,int) |
| funcExprs.kt:22:28:22:50 | | funcExprs.kt:22:28:22:50 | invoke | Method | invoke(java.lang.Object,java.lang.Object) |
| funcExprs.kt:23:28:23:40 | | funcExprs.kt:23:28:23:40 | | Constructor | |
| funcExprs.kt:23:28:23:40 | | funcExprs.kt:23:28:23:40 | invoke | Method | invoke(int,int) |
| funcExprs.kt:23:28:23:40 | | funcExprs.kt:23:28:23:40 | invoke | Method | invoke(java.lang.Object,java.lang.Object) |
| funcExprs.kt:24:28:24:44 | | funcExprs.kt:24:28:24:44 | | Constructor | |
| funcExprs.kt:24:28:24:44 | | funcExprs.kt:24:28:24:44 | invoke | ExtensionMethod | invoke(int,int) |
| funcExprs.kt:24:28:24:44 | | funcExprs.kt:24:28:24:44 | invoke | Method | invoke(java.lang.Object,java.lang.Object) |
| funcExprs.kt:25:28:25:51 | | funcExprs.kt:25:28:25:51 | | Constructor | |
| funcExprs.kt:25:28:25:51 | | funcExprs.kt:25:28:25:51 | invoke | Method | invoke(int) |
| funcExprs.kt:25:28:25:51 | | funcExprs.kt:25:28:25:51 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:25:37:25:47 | | funcExprs.kt:25:37:25:47 | | Constructor | |
| funcExprs.kt:25:37:25:47 | | funcExprs.kt:25:37:25:47 | invoke | Method | invoke(int) |
| funcExprs.kt:25:37:25:47 | | funcExprs.kt:25:37:25:47 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:27:29:27:112 | | funcExprs.kt:27:29:27:112 | | Constructor | |
| funcExprs.kt:27:29:27:112 | | funcExprs.kt:27:29:27:112 | invoke | Method | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) |
| funcExprs.kt:27:29:27:112 | | funcExprs.kt:27:29:27:112 | invoke | Method | invoke(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object) |
| funcExprs.kt:28:29:28:117 | | funcExprs.kt:28:29:28:117 | | Constructor | |
| funcExprs.kt:28:29:28:117 | | funcExprs.kt:28:29:28:117 | invoke | Method | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) |
| funcExprs.kt:28:29:28:117 | | funcExprs.kt:28:29:28:117 | invoke | Method | invoke(java.lang.Object[]) |
| funcExprs.kt:14:26:14:33 | new Lambda(...) { ... } | funcExprs.kt:14:26:14:33 | | Constructor | |
| funcExprs.kt:14:26:14:33 | new Lambda(...) { ... } | funcExprs.kt:14:26:14:33 | invoke | Method | invoke() |
| funcExprs.kt:15:26:15:33 | new Lambda(...) { ... } | funcExprs.kt:15:26:15:33 | | Constructor | |
| funcExprs.kt:15:26:15:33 | new Lambda(...) { ... } | funcExprs.kt:15:26:15:33 | invoke | Method | invoke() |
| funcExprs.kt:16:26:16:33 | new Lambda(...) { ... } | funcExprs.kt:16:26:16:33 | | Constructor | |
| funcExprs.kt:16:26:16:33 | new Lambda(...) { ... } | funcExprs.kt:16:26:16:33 | invoke | Method | invoke() |
| funcExprs.kt:17:29:17:38 | new Lambda(...) { ... } | funcExprs.kt:17:29:17:38 | | Constructor | |
| funcExprs.kt:17:29:17:38 | new Lambda(...) { ... } | funcExprs.kt:17:29:17:38 | invoke | Method | invoke(int) |
| funcExprs.kt:18:29:18:34 | new Lambda(...) { ... } | funcExprs.kt:18:29:18:34 | | Constructor | |
| funcExprs.kt:18:29:18:34 | new Lambda(...) { ... } | funcExprs.kt:18:29:18:34 | invoke | Method | invoke(int) |
| funcExprs.kt:19:29:19:42 | new Lambda(...) { ... } | funcExprs.kt:19:29:19:42 | | Constructor | |
| funcExprs.kt:19:29:19:42 | new Lambda(...) { ... } | funcExprs.kt:19:29:19:42 | invoke | Method | invoke(int) |
| funcExprs.kt:21:29:21:37 | new Lambda(...) { ... } | funcExprs.kt:21:29:21:37 | | Constructor | |
| funcExprs.kt:21:29:21:37 | new Lambda(...) { ... } | funcExprs.kt:21:29:21:37 | invoke | Method | invoke(java.lang.Object) |
| funcExprs.kt:22:28:22:50 | new Lambda(...) { ... } | funcExprs.kt:22:28:22:50 | | Constructor | |
| funcExprs.kt:22:28:22:50 | new Lambda(...) { ... } | funcExprs.kt:22:28:22:50 | invoke | Method | invoke(int,int) |
| funcExprs.kt:23:28:23:40 | new Lambda(...) { ... } | funcExprs.kt:23:28:23:40 | | Constructor | |
| funcExprs.kt:23:28:23:40 | new Lambda(...) { ... } | funcExprs.kt:23:28:23:40 | invoke | Method | invoke(int,int) |
| funcExprs.kt:24:28:24:44 | new Lambda(...) { ... } | funcExprs.kt:24:28:24:44 | | Constructor | |
| funcExprs.kt:24:28:24:44 | new Lambda(...) { ... } | funcExprs.kt:24:28:24:44 | invoke | ExtensionMethod | invoke(int,int) |
| funcExprs.kt:25:28:25:51 | new Lambda(...) { ... } | funcExprs.kt:25:28:25:51 | | Constructor | |
| funcExprs.kt:25:28:25:51 | new Lambda(...) { ... } | funcExprs.kt:25:28:25:51 | invoke | Method | invoke(int) |
| funcExprs.kt:25:37:25:47 | new Lambda(...) { ... } | funcExprs.kt:25:37:25:47 | | Constructor | |
| funcExprs.kt:25:37:25:47 | new Lambda(...) { ... } | funcExprs.kt:25:37:25:47 | invoke | Method | invoke(int) |
| funcExprs.kt:27:29:27:112 | new Lambda(...) { ... } | funcExprs.kt:27:29:27:112 | | Constructor | |
| funcExprs.kt:27:29:27:112 | new Lambda(...) { ... } | funcExprs.kt:27:29:27:112 | invoke | Method | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) |
| funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } | funcExprs.kt:28:29:28:117 | | Constructor | |
| funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } | funcExprs.kt:28:29:28:117 | invoke | Method | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) |
| funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } | funcExprs.kt:28:29:28:117 | invoke | Method | invoke(java.lang.Object[]) |
lambdaClassInterfaces
| funcExprs.kt:14:26:14:33 | | Function0<Integer> |
| funcExprs.kt:15:26:15:33 | | Function0<Object> |
| funcExprs.kt:16:26:16:33 | | Function0<Object> |
| funcExprs.kt:17:29:17:38 | | Function1<Integer,Integer> |
| funcExprs.kt:18:29:18:34 | | Function1<Integer,Integer> |
| funcExprs.kt:19:29:19:42 | | Function1<Integer,Integer> |
| funcExprs.kt:21:29:21:37 | | Function1<Object,Object> |
| funcExprs.kt:22:28:22:50 | | Function2<Integer,Integer,Integer> |
| funcExprs.kt:23:28:23:40 | | Function2<Integer,Integer,Integer> |
| funcExprs.kt:24:28:24:44 | | Function2<Integer,Integer,Integer> |
| funcExprs.kt:25:28:25:51 | | Function1<Integer,Function1<Integer,Double>> |
| funcExprs.kt:25:37:25:47 | | Function1<Integer,Double> |
| funcExprs.kt:27:29:27:112 | | Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit> |
| funcExprs.kt:28:29:28:117 | | FunctionN<String> |
| funcExprs.kt:14:26:14:33 | new Lambda(...) { ... } | Function0<Integer> |
| funcExprs.kt:15:26:15:33 | new Lambda(...) { ... } | Function0<Object> |
| funcExprs.kt:16:26:16:33 | new Lambda(...) { ... } | Function0<Object> |
| funcExprs.kt:17:29:17:38 | new Lambda(...) { ... } | Function1<Integer,Integer> |
| funcExprs.kt:18:29:18:34 | new Lambda(...) { ... } | Function1<Integer,Integer> |
| funcExprs.kt:19:29:19:42 | new Lambda(...) { ... } | Function1<Integer,Integer> |
| funcExprs.kt:21:29:21:37 | new Lambda(...) { ... } | Function1<Object,Object> |
| funcExprs.kt:22:28:22:50 | new Lambda(...) { ... } | Function2<Integer,Integer,Integer> |
| funcExprs.kt:23:28:23:40 | new Lambda(...) { ... } | Function2<Integer,Integer,Integer> |
| funcExprs.kt:24:28:24:44 | new Lambda(...) { ... } | Function2<Integer,Integer,Integer> |
| funcExprs.kt:25:28:25:51 | new Lambda(...) { ... } | Function1<Integer,Function1<Integer,Double>> |
| funcExprs.kt:25:37:25:47 | new Lambda(...) { ... } | Function1<Integer,Double> |
| funcExprs.kt:27:29:27:112 | new Lambda(...) { ... } | Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit> |
| funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } | FunctionN<String> |
lambdaExpr
| funcExprs.kt:14:26:14:33 | ...->... | stmt body | funcExprs.kt:14:26:14:33 | invoke | funcExprs.kt:14:26:14:33 | new Lambda(...) { ... } |
| funcExprs.kt:15:26:15:33 | ...->... | stmt body | funcExprs.kt:15:26:15:33 | invoke | funcExprs.kt:15:26:15:33 | new Lambda(...) { ... } |
| funcExprs.kt:16:26:16:33 | ...->... | stmt body | funcExprs.kt:16:26:16:33 | invoke | funcExprs.kt:16:26:16:33 | new Lambda(...) { ... } |
| funcExprs.kt:17:29:17:38 | ...->... | stmt body | funcExprs.kt:17:29:17:38 | invoke | funcExprs.kt:17:29:17:38 | new Lambda(...) { ... } |
| funcExprs.kt:18:29:18:34 | ...->... | stmt body | funcExprs.kt:18:29:18:34 | invoke | funcExprs.kt:18:29:18:34 | new Lambda(...) { ... } |
| funcExprs.kt:19:29:19:42 | ...->... | stmt body | funcExprs.kt:19:29:19:42 | invoke | funcExprs.kt:19:29:19:42 | new Lambda(...) { ... } |
| funcExprs.kt:21:29:21:37 | ...->... | stmt body | funcExprs.kt:21:29:21:37 | invoke | funcExprs.kt:21:29:21:37 | new Lambda(...) { ... } |
| funcExprs.kt:22:28:22:50 | ...->... | stmt body | funcExprs.kt:22:28:22:50 | invoke | funcExprs.kt:22:28:22:50 | new Lambda(...) { ... } |
| funcExprs.kt:23:28:23:40 | ...->... | stmt body | funcExprs.kt:23:28:23:40 | invoke | funcExprs.kt:23:28:23:40 | new Lambda(...) { ... } |
| funcExprs.kt:24:28:24:44 | ...->... | stmt body | funcExprs.kt:24:28:24:44 | invoke | funcExprs.kt:24:28:24:44 | new Lambda(...) { ... } |
| funcExprs.kt:25:28:25:51 | ...->... | stmt body | funcExprs.kt:25:28:25:51 | invoke | funcExprs.kt:25:28:25:51 | new Lambda(...) { ... } |
| funcExprs.kt:25:37:25:47 | ...->... | stmt body | funcExprs.kt:25:37:25:47 | invoke | funcExprs.kt:25:37:25:47 | new Lambda(...) { ... } |
| funcExprs.kt:27:29:27:112 | ...->... | stmt body | funcExprs.kt:27:29:27:112 | invoke | funcExprs.kt:27:29:27:112 | new Lambda(...) { ... } |
| funcExprs.kt:28:29:28:117 | ...->... | stmt body | funcExprs.kt:28:29:28:117 | invoke | funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } |
| funcExprs.kt:28:29:28:117 | ...->... | stmt body | funcExprs.kt:28:29:28:117 | invoke | funcExprs.kt:28:29:28:117 | new Lambda(...) { ... } |

View File

@@ -10,4 +10,16 @@ query predicate lambdaClassMembers(Class c, Callable m, string n, string signatu
query predicate lambdaClassInterfaces(Class c, string iName) {
c.getASupertype().hasQualifiedName("kotlin.jvm.internal", "Lambda") and
exists(Interface i | c.extendsOrImplements(i) and i.getName() = iName)
}
}
private string getLambdaBody(LambdaExpr le) {
le.hasExprBody() and result = "expr body"
or
le.hasStmtBody() and result = "stmt body"
}
query predicate lambdaExpr(LambdaExpr le, string body, Method m, AnonymousClass an) {
getLambdaBody(le) = body and
le.asMethod() = m and
le.getAnonymousClass() = an
}