Kotlin: Add a Kotlin 2 copy of the testsuite

This commit is contained in:
Ian Lynagh
2023-10-26 13:13:28 +01:00
parent e6f31c965e
commit 905583e00a
625 changed files with 32808 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
semmle/code/java/PrintAst.ql

View File

@@ -0,0 +1,138 @@
| exprs.kt:12:14:12:18 | ... + ... | exprs.kt:12:14:12:14 | x | exprs.kt:12:18:12:18 | y |
| exprs.kt:13:14:13:18 | ... - ... | exprs.kt:13:14:13:14 | x | exprs.kt:13:18:13:18 | y |
| exprs.kt:14:14:14:18 | ... / ... | exprs.kt:14:14:14:14 | x | exprs.kt:14:18:14:18 | y |
| exprs.kt:15:14:15:18 | ... % ... | exprs.kt:15:14:15:14 | x | exprs.kt:15:18:15:18 | y |
| exprs.kt:16:14:16:20 | ... << ... | exprs.kt:16:14:16:14 | x | exprs.kt:16:20:16:20 | y |
| exprs.kt:17:14:17:20 | ... >> ... | exprs.kt:17:14:17:14 | x | exprs.kt:17:20:17:20 | y |
| exprs.kt:18:14:18:21 | ... >>> ... | exprs.kt:18:14:18:14 | x | exprs.kt:18:21:18:21 | y |
| exprs.kt:19:14:19:20 | ... & ... | exprs.kt:19:14:19:14 | x | exprs.kt:19:20:19:20 | y |
| exprs.kt:20:15:20:20 | ... \| ... | exprs.kt:20:15:20:15 | x | exprs.kt:20:20:20:20 | y |
| exprs.kt:21:15:21:21 | ... ^ ... | exprs.kt:21:15:21:15 | x | exprs.kt:21:21:21:21 | y |
| exprs.kt:23:15:23:20 | ... (value equals) ... | exprs.kt:23:15:23:15 | x | exprs.kt:23:20:23:20 | y |
| exprs.kt:24:15:24:20 | ... (value not-equals) ... | exprs.kt:24:15:24:15 | x | exprs.kt:24:20:24:20 | y |
| exprs.kt:25:15:25:19 | ... < ... | exprs.kt:25:15:25:15 | x | exprs.kt:25:19:25:19 | y |
| exprs.kt:26:15:26:20 | ... <= ... | exprs.kt:26:15:26:15 | x | exprs.kt:26:20:26:20 | y |
| exprs.kt:27:15:27:19 | ... > ... | exprs.kt:27:15:27:15 | x | exprs.kt:27:19:27:19 | y |
| exprs.kt:28:15:28:20 | ... >= ... | exprs.kt:28:15:28:15 | x | exprs.kt:28:20:28:20 | y |
| exprs.kt:29:15:29:21 | ... == ... | exprs.kt:29:15:29:15 | x | exprs.kt:29:21:29:21 | y |
| exprs.kt:30:15:30:21 | ... != ... | exprs.kt:30:15:30:15 | x | exprs.kt:30:21:30:21 | y |
| exprs.kt:35:15:35:23 | ... + ... | exprs.kt:35:15:35:17 | byx | exprs.kt:35:21:35:23 | byy |
| exprs.kt:36:15:36:23 | ... - ... | exprs.kt:36:15:36:17 | byx | exprs.kt:36:21:36:23 | byy |
| exprs.kt:37:15:37:23 | ... / ... | exprs.kt:37:15:37:17 | byx | exprs.kt:37:21:37:23 | byy |
| exprs.kt:38:15:38:23 | ... % ... | exprs.kt:38:15:38:17 | byx | exprs.kt:38:21:38:23 | byy |
| exprs.kt:39:15:39:24 | ... (value equals) ... | exprs.kt:39:15:39:17 | intValue(...) | exprs.kt:39:22:39:24 | intValue(...) |
| exprs.kt:40:15:40:24 | ... (value not-equals) ... | exprs.kt:40:15:40:17 | intValue(...) | exprs.kt:40:22:40:24 | intValue(...) |
| exprs.kt:41:15:41:23 | ... < ... | exprs.kt:41:15:41:17 | intValue(...) | exprs.kt:41:21:41:23 | intValue(...) |
| exprs.kt:42:15:42:24 | ... <= ... | exprs.kt:42:15:42:17 | intValue(...) | exprs.kt:42:22:42:24 | intValue(...) |
| exprs.kt:43:16:43:24 | ... > ... | exprs.kt:43:16:43:18 | intValue(...) | exprs.kt:43:22:43:24 | intValue(...) |
| exprs.kt:44:16:44:25 | ... >= ... | exprs.kt:44:16:44:18 | intValue(...) | exprs.kt:44:23:44:25 | intValue(...) |
| exprs.kt:45:16:45:26 | ... == ... | exprs.kt:45:16:45:18 | byx | exprs.kt:45:24:45:26 | byy |
| exprs.kt:46:16:46:26 | ... != ... | exprs.kt:46:16:46:18 | byx | exprs.kt:46:24:46:26 | byy |
| exprs.kt:47:16:47:25 | ... \| ... | exprs.kt:47:16:47:18 | byx | exprs.kt:47:23:47:25 | byy |
| exprs.kt:48:16:48:26 | ... & ... | exprs.kt:48:16:48:18 | byx | exprs.kt:48:24:48:26 | byy |
| exprs.kt:49:16:49:26 | ... ^ ... | exprs.kt:49:16:49:18 | byx | exprs.kt:49:24:49:26 | byy |
| exprs.kt:52:14:52:20 | ... + ... | exprs.kt:52:14:52:15 | sx | exprs.kt:52:19:52:20 | sy |
| exprs.kt:53:14:53:20 | ... - ... | exprs.kt:53:14:53:15 | sx | exprs.kt:53:19:53:20 | sy |
| exprs.kt:54:14:54:20 | ... / ... | exprs.kt:54:14:54:15 | sx | exprs.kt:54:19:54:20 | sy |
| exprs.kt:55:14:55:20 | ... % ... | exprs.kt:55:14:55:15 | sx | exprs.kt:55:19:55:20 | sy |
| exprs.kt:56:14:56:21 | ... (value equals) ... | exprs.kt:56:14:56:15 | intValue(...) | exprs.kt:56:20:56:21 | intValue(...) |
| exprs.kt:57:14:57:21 | ... (value not-equals) ... | exprs.kt:57:14:57:15 | intValue(...) | exprs.kt:57:20:57:21 | intValue(...) |
| exprs.kt:58:14:58:20 | ... < ... | exprs.kt:58:14:58:15 | intValue(...) | exprs.kt:58:19:58:20 | intValue(...) |
| exprs.kt:59:14:59:21 | ... <= ... | exprs.kt:59:14:59:15 | intValue(...) | exprs.kt:59:20:59:21 | intValue(...) |
| exprs.kt:60:15:60:21 | ... > ... | exprs.kt:60:15:60:16 | intValue(...) | exprs.kt:60:20:60:21 | intValue(...) |
| exprs.kt:61:15:61:22 | ... >= ... | exprs.kt:61:15:61:16 | intValue(...) | exprs.kt:61:21:61:22 | intValue(...) |
| exprs.kt:62:15:62:23 | ... == ... | exprs.kt:62:15:62:16 | sx | exprs.kt:62:22:62:23 | sy |
| exprs.kt:63:15:63:23 | ... != ... | exprs.kt:63:15:63:16 | sx | exprs.kt:63:22:63:23 | sy |
| exprs.kt:64:15:64:22 | ... \| ... | exprs.kt:64:15:64:16 | sx | exprs.kt:64:21:64:22 | sy |
| exprs.kt:65:15:65:23 | ... & ... | exprs.kt:65:15:65:16 | sx | exprs.kt:65:22:65:23 | sy |
| exprs.kt:66:15:66:23 | ... ^ ... | exprs.kt:66:15:66:16 | sx | exprs.kt:66:22:66:23 | sy |
| exprs.kt:69:14:69:20 | ... + ... | exprs.kt:69:14:69:15 | lx | exprs.kt:69:19:69:20 | ly |
| exprs.kt:70:14:70:20 | ... - ... | exprs.kt:70:14:70:15 | lx | exprs.kt:70:19:70:20 | ly |
| exprs.kt:71:14:71:20 | ... / ... | exprs.kt:71:14:71:15 | lx | exprs.kt:71:19:71:20 | ly |
| exprs.kt:72:14:72:20 | ... % ... | exprs.kt:72:14:72:15 | lx | exprs.kt:72:19:72:20 | ly |
| exprs.kt:73:14:73:21 | ... << ... | exprs.kt:73:14:73:15 | lx | exprs.kt:73:21:73:21 | y |
| exprs.kt:74:14:74:21 | ... >> ... | exprs.kt:74:14:74:15 | lx | exprs.kt:74:21:74:21 | y |
| exprs.kt:75:14:75:22 | ... >>> ... | exprs.kt:75:14:75:15 | lx | exprs.kt:75:22:75:22 | y |
| exprs.kt:76:14:76:22 | ... & ... | exprs.kt:76:14:76:15 | lx | exprs.kt:76:21:76:22 | ly |
| exprs.kt:77:15:77:22 | ... \| ... | exprs.kt:77:15:77:16 | lx | exprs.kt:77:21:77:22 | ly |
| exprs.kt:78:15:78:23 | ... ^ ... | exprs.kt:78:15:78:16 | lx | exprs.kt:78:22:78:23 | ly |
| exprs.kt:80:15:80:22 | ... (value equals) ... | exprs.kt:80:15:80:16 | lx | exprs.kt:80:21:80:22 | ly |
| exprs.kt:81:15:81:22 | ... (value not-equals) ... | exprs.kt:81:15:81:16 | lx | exprs.kt:81:21:81:22 | ly |
| exprs.kt:82:15:82:21 | ... < ... | exprs.kt:82:15:82:16 | lx | exprs.kt:82:20:82:21 | ly |
| exprs.kt:83:15:83:22 | ... <= ... | exprs.kt:83:15:83:16 | lx | exprs.kt:83:21:83:22 | ly |
| exprs.kt:84:15:84:21 | ... > ... | exprs.kt:84:15:84:16 | lx | exprs.kt:84:20:84:21 | ly |
| exprs.kt:85:15:85:22 | ... >= ... | exprs.kt:85:15:85:16 | lx | exprs.kt:85:21:85:22 | ly |
| exprs.kt:86:15:86:23 | ... == ... | exprs.kt:86:15:86:16 | lx | exprs.kt:86:22:86:23 | ly |
| exprs.kt:87:15:87:23 | ... != ... | exprs.kt:87:15:87:16 | lx | exprs.kt:87:22:87:23 | ly |
| exprs.kt:90:14:90:20 | ... + ... | exprs.kt:90:14:90:15 | dx | exprs.kt:90:19:90:20 | dy |
| exprs.kt:91:14:91:20 | ... - ... | exprs.kt:91:14:91:15 | dx | exprs.kt:91:19:91:20 | dy |
| exprs.kt:92:14:92:20 | ... / ... | exprs.kt:92:14:92:15 | dx | exprs.kt:92:19:92:20 | dy |
| exprs.kt:93:14:93:20 | ... % ... | exprs.kt:93:14:93:15 | dx | exprs.kt:93:19:93:20 | dy |
| exprs.kt:94:14:94:21 | ... == ... | exprs.kt:94:14:94:15 | dx | exprs.kt:94:20:94:21 | dy |
| exprs.kt:95:14:95:21 | ... != ... | exprs.kt:95:14:95:15 | dx | exprs.kt:95:20:95:21 | dy |
| exprs.kt:96:14:96:20 | ... < ... | exprs.kt:96:14:96:15 | dx | exprs.kt:96:19:96:20 | dy |
| exprs.kt:97:14:97:21 | ... <= ... | exprs.kt:97:14:97:15 | dx | exprs.kt:97:20:97:21 | dy |
| exprs.kt:98:15:98:21 | ... > ... | exprs.kt:98:15:98:16 | dx | exprs.kt:98:20:98:21 | dy |
| exprs.kt:99:15:99:22 | ... >= ... | exprs.kt:99:15:99:16 | dx | exprs.kt:99:21:99:22 | dy |
| exprs.kt:100:15:100:23 | ... == ... | exprs.kt:100:15:100:16 | dx | exprs.kt:100:22:100:23 | dy |
| exprs.kt:101:15:101:23 | ... != ... | exprs.kt:101:15:101:16 | dx | exprs.kt:101:22:101:23 | dy |
| exprs.kt:104:14:104:20 | ... + ... | exprs.kt:104:14:104:15 | fx | exprs.kt:104:19:104:20 | fy |
| exprs.kt:105:14:105:20 | ... - ... | exprs.kt:105:14:105:15 | fx | exprs.kt:105:19:105:20 | fy |
| exprs.kt:106:14:106:20 | ... / ... | exprs.kt:106:14:106:15 | fx | exprs.kt:106:19:106:20 | fy |
| exprs.kt:107:14:107:20 | ... % ... | exprs.kt:107:14:107:15 | fx | exprs.kt:107:19:107:20 | fy |
| exprs.kt:108:14:108:21 | ... == ... | exprs.kt:108:14:108:15 | fx | exprs.kt:108:20:108:21 | fy |
| exprs.kt:109:14:109:21 | ... != ... | exprs.kt:109:14:109:15 | fx | exprs.kt:109:20:109:21 | fy |
| exprs.kt:110:14:110:20 | ... < ... | exprs.kt:110:14:110:15 | fx | exprs.kt:110:19:110:20 | fy |
| exprs.kt:111:14:111:21 | ... <= ... | exprs.kt:111:14:111:15 | fx | exprs.kt:111:20:111:21 | fy |
| exprs.kt:112:15:112:21 | ... > ... | exprs.kt:112:15:112:16 | fx | exprs.kt:112:20:112:21 | fy |
| exprs.kt:113:15:113:22 | ... >= ... | exprs.kt:113:15:113:16 | fx | exprs.kt:113:21:113:22 | fy |
| exprs.kt:114:15:114:23 | ... == ... | exprs.kt:114:15:114:16 | fx | exprs.kt:114:22:114:23 | fy |
| exprs.kt:115:15:115:23 | ... != ... | exprs.kt:115:15:115:16 | fx | exprs.kt:115:22:115:23 | fy |
| exprs.kt:119:14:119:21 | ... && ... | exprs.kt:119:14:119:15 | b1 | exprs.kt:119:20:119:21 | b2 |
| exprs.kt:120:14:120:21 | ... \|\| ... | exprs.kt:120:14:120:15 | b1 | exprs.kt:120:20:120:21 | b2 |
| exprs.kt:133:31:133:41 | ... + ... | exprs.kt:133:31:133:34 | str1 | exprs.kt:133:38:133:41 | str2 |
| exprs.kt:134:16:134:26 | ... + ... | exprs.kt:134:16:134:19 | str1 | exprs.kt:134:23:134:26 | str2 |
| exprs.kt:137:12:137:23 | ... > ... | exprs.kt:137:12:137:19 | variable | exprs.kt:137:23:137:23 | 0 |
| exprs.kt:141:12:141:20 | ... + ... | exprs.kt:141:12:141:14 | 123 | exprs.kt:141:18:141:20 | 456 |
| exprs.kt:167:8:167:16 | ... (value not-equals) ... | exprs.kt:167:8:167:8 | r | exprs.kt:167:13:167:16 | null |
| exprs.kt:196:31:196:37 | ... + ... | exprs.kt:196:31:196:32 | getA1(...) | exprs.kt:196:36:196:37 | a2 |
| exprs.kt:211:20:211:29 | ... + ... | exprs.kt:211:20:211:21 | ...!! | exprs.kt:211:28:211:28 | 5 |
| exprs.kt:212:19:212:25 | ... + ... | exprs.kt:212:20:212:21 | ...!! | exprs.kt:212:25:212:25 | 5 |
| exprs.kt:230:12:230:47 | ... (value equals) ... | exprs.kt:230:12:230:27 | notNullPrimitive | exprs.kt:230:32:230:47 | notNullPrimitive |
| exprs.kt:231:12:231:48 | ... (value equals) ... | exprs.kt:231:12:231:27 | notNullPrimitive | exprs.kt:231:32:231:48 | nullablePrimitive |
| exprs.kt:232:12:232:49 | ... (value equals) ... | exprs.kt:232:12:232:28 | nullablePrimitive | exprs.kt:232:33:232:49 | nullablePrimitive |
| exprs.kt:233:12:233:43 | ... (value equals) ... | exprs.kt:233:12:233:25 | notNullReftype | exprs.kt:233:30:233:43 | notNullReftype |
| exprs.kt:234:12:234:44 | ... (value equals) ... | exprs.kt:234:12:234:25 | notNullReftype | exprs.kt:234:30:234:44 | nullableReftype |
| exprs.kt:235:12:235:45 | ... (value equals) ... | exprs.kt:235:12:235:26 | nullableReftype | exprs.kt:235:31:235:45 | nullableReftype |
| exprs.kt:236:12:236:47 | ... (value not-equals) ... | exprs.kt:236:12:236:27 | notNullPrimitive | exprs.kt:236:32:236:47 | notNullPrimitive |
| exprs.kt:237:12:237:48 | ... (value not-equals) ... | exprs.kt:237:12:237:27 | notNullPrimitive | exprs.kt:237:32:237:48 | nullablePrimitive |
| exprs.kt:238:12:238:49 | ... (value not-equals) ... | exprs.kt:238:12:238:28 | nullablePrimitive | exprs.kt:238:33:238:49 | nullablePrimitive |
| exprs.kt:239:13:239:44 | ... (value not-equals) ... | exprs.kt:239:13:239:26 | notNullReftype | exprs.kt:239:31:239:44 | notNullReftype |
| exprs.kt:240:13:240:45 | ... (value not-equals) ... | exprs.kt:240:13:240:26 | notNullReftype | exprs.kt:240:31:240:45 | nullableReftype |
| exprs.kt:241:13:241:46 | ... (value not-equals) ... | exprs.kt:241:13:241:27 | nullableReftype | exprs.kt:241:32:241:46 | nullableReftype |
| exprs.kt:242:13:242:36 | ... (value equals) ... | exprs.kt:242:13:242:28 | notNullPrimitive | exprs.kt:242:33:242:36 | null |
| exprs.kt:243:13:243:37 | ... (value equals) ... | exprs.kt:243:13:243:29 | nullablePrimitive | exprs.kt:243:34:243:37 | null |
| exprs.kt:244:13:244:34 | ... (value equals) ... | exprs.kt:244:13:244:26 | notNullReftype | exprs.kt:244:31:244:34 | null |
| exprs.kt:245:13:245:35 | ... (value equals) ... | exprs.kt:245:13:245:27 | nullableReftype | exprs.kt:245:32:245:35 | null |
| exprs.kt:246:13:246:36 | ... (value not-equals) ... | exprs.kt:246:13:246:28 | notNullPrimitive | exprs.kt:246:33:246:36 | null |
| exprs.kt:247:13:247:37 | ... (value not-equals) ... | exprs.kt:247:13:247:29 | nullablePrimitive | exprs.kt:247:34:247:37 | null |
| exprs.kt:248:13:248:34 | ... (value not-equals) ... | exprs.kt:248:13:248:26 | notNullReftype | exprs.kt:248:31:248:34 | null |
| exprs.kt:249:13:249:35 | ... (value not-equals) ... | exprs.kt:249:13:249:27 | nullableReftype | exprs.kt:249:32:249:35 | null |
| exprs.kt:259:11:259:15 | ... * ... | exprs.kt:259:11:259:11 | x | exprs.kt:259:15:259:15 | y |
| exprs.kt:260:11:260:19 | ... * ... | exprs.kt:260:11:260:13 | byx | exprs.kt:260:17:260:19 | byy |
| exprs.kt:261:11:261:17 | ... * ... | exprs.kt:261:11:261:12 | lx | exprs.kt:261:16:261:17 | ly |
| exprs.kt:262:11:262:17 | ... * ... | exprs.kt:262:11:262:12 | dx | exprs.kt:262:16:262:17 | dy |
| exprs.kt:263:11:263:17 | ... * ... | exprs.kt:263:11:263:12 | fx | exprs.kt:263:16:263:17 | fy |
| funcExprs.kt:32:35:32:42 | ... + ... | funcExprs.kt:32:35:32:38 | this | funcExprs.kt:32:42:32:42 | a |
| localFunctionCalls.kt:5:25:5:29 | ... + ... | localFunctionCalls.kt:5:25:5:25 | i | localFunctionCalls.kt:5:29:5:29 | x |
| samConversion.kt:2:33:2:38 | ... % ... | samConversion.kt:2:33:2:34 | it | samConversion.kt:2:38:2:38 | 2 |
| samConversion.kt:2:33:2:43 | ... (value equals) ... | samConversion.kt:2:33:2:38 | ... % ... | samConversion.kt:2:43:2:43 | 0 |
| samConversion.kt:7:36:7:45 | ... (value equals) ... | samConversion.kt:7:36:7:39 | this | samConversion.kt:7:44:7:45 | "" |
| samConversion.kt:10:18:10:22 | ... % ... | samConversion.kt:10:18:10:18 | j | samConversion.kt:10:22:10:22 | 2 |
| samConversion.kt:10:18:10:27 | ... (value equals) ... | samConversion.kt:10:18:10:22 | ... % ... | samConversion.kt:10:27:10:27 | 0 |
| samConversion.kt:12:18:12:22 | ... % ... | samConversion.kt:12:18:12:18 | j | samConversion.kt:12:22:12:22 | 2 |
| samConversion.kt:12:18:12:27 | ... (value equals) ... | samConversion.kt:12:18:12:22 | ... % ... | samConversion.kt:12:27:12:27 | 1 |
| whenExpr.kt:3:5:3:5 | ... (value equals) ... | whenExpr.kt:3:5:3:5 | tmp0_subject | whenExpr.kt:3:5:3:5 | 0 |
| whenExpr.kt:4:5:4:5 | ... (value equals) ... | whenExpr.kt:4:5:4:5 | tmp0_subject | whenExpr.kt:4:5:4:5 | 1 |
| whenExpr.kt:5:5:5:5 | ... (value equals) ... | whenExpr.kt:5:5:5:5 | tmp0_subject | whenExpr.kt:5:5:5:5 | 2 |
| whenExpr.kt:6:5:6:5 | ... (value equals) ... | whenExpr.kt:6:5:6:5 | tmp0_subject | whenExpr.kt:6:5:6:5 | 3 |

View File

@@ -0,0 +1,44 @@
import java
newtype TMaybeElement =
TElement(Element e) or
TNoElement()
class MaybeElement extends TMaybeElement {
abstract string toString();
abstract Location getLocation();
}
class YesMaybeElement extends MaybeElement {
Element e;
YesMaybeElement() { this = TElement(e) }
override string toString() { result = e.toString() }
override Location getLocation() { result = e.getLocation() }
}
class NoMaybeElement extends MaybeElement {
NoMaybeElement() { this = TNoElement() }
override string toString() { result = "<none>" }
override Location getLocation() { none() }
}
MaybeElement lhs(BinaryExpr e) {
if exists(e.getLeftOperand())
then result = TElement(e.getLeftOperand())
else result = TNoElement()
}
MaybeElement rhs(BinaryExpr e) {
if exists(e.getRightOperand())
then result = TElement(e.getRightOperand())
else result = TNoElement()
}
from Expr e
select e, lhs(e), rhs(e)

View File

@@ -0,0 +1,68 @@
delegatedProperties
| delegatedProperties.kt:6:9:9:9 | prop1 | prop1 | local | delegatedProperties.kt:6:24:9:9 | Lazy<Integer> prop1$delegate | delegatedProperties.kt:6:27:9:9 | lazy(...) |
| delegatedProperties.kt:19:9:19:51 | varResource1 | varResource1 | local | delegatedProperties.kt:19:31:19:51 | ResourceDelegate varResource1$delegate | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) |
| delegatedProperties.kt:23:9:23:31 | name | name | local | delegatedProperties.kt:23:26:23:31 | Map<String,Object> name$delegate | delegatedProperties.kt:23:29:23:31 | map |
| delegatedProperties.kt:33:9:33:76 | readOnly | readOnly | local | delegatedProperties.kt:33:27:33:47 | ReadWriteProperty<Object,Integer> readOnly$delegate | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) |
| delegatedProperties.kt:34:9:34:48 | readWrite | readWrite | local | delegatedProperties.kt:34:28:34:48 | ReadWriteProperty<Object,Integer> readWrite$delegate | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) |
| delegatedProperties.kt:39:9:39:51 | varResource2 | varResource2 | local | delegatedProperties.kt:39:31:39:51 | ResourceDelegate varResource2$delegate | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) |
| delegatedProperties.kt:42:5:42:47 | varResource0 | varResource0 | non-local | delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) |
| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedToMember1 | non-local | delegatedProperties.kt:66:33:66:50 | delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | ...::... |
| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedToMember2 | non-local | delegatedProperties.kt:67:33:67:53 | delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | ...::... |
| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedToExtMember1 | non-local | delegatedProperties.kt:69:36:69:56 | delegatedToExtMember1$delegate | delegatedProperties.kt:69:39:69:56 | ...::... |
| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedToExtMember2 | non-local | delegatedProperties.kt:70:36:70:59 | delegatedToExtMember2$delegate | delegatedProperties.kt:70:39:70:59 | ...::... |
| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedToBaseClass1 | non-local | delegatedProperties.kt:72:36:72:56 | delegatedToBaseClass1$delegate | delegatedProperties.kt:72:39:72:56 | ...::... |
| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedToBaseClass2 | non-local | delegatedProperties.kt:73:36:73:56 | delegatedToBaseClass2$delegate | delegatedProperties.kt:73:39:73:56 | ...::... |
| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedToAnotherClass1 | non-local | delegatedProperties.kt:75:39:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:42:75:78 | ...::... |
| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedToTopLevel | non-local | delegatedProperties.kt:77:34:77:49 | delegatedToTopLevel$delegate | delegatedProperties.kt:77:37:77:49 | ...::... |
| delegatedProperties.kt:79:5:79:38 | max | max | non-local | delegatedProperties.kt:79:18:79:38 | max$delegate | delegatedProperties.kt:79:21:79:38 | ...::... |
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedToMember3 | local | delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> delegatedToMember3$delegate | delegatedProperties.kt:82:40:82:54 | ...::... |
| delegatedProperties.kt:87:1:87:46 | extDelegated | extDelegated | non-local | delegatedProperties.kt:87:31:87:46 | extDelegated$delegateMyClass | delegatedProperties.kt:87:34:87:46 | ...::... |
delegatedPropertyTypes
| delegatedProperties.kt:6:9:9:9 | prop1 | file://:0:0:0:0 | int | file://<external>/Lazy.class:0:0:0:0 | Lazy<Integer> |
| delegatedProperties.kt:19:9:19:51 | varResource1 | file://:0:0:0:0 | int | delegatedProperties.kt:45:1:51:1 | ResourceDelegate |
| delegatedProperties.kt:23:9:23:31 | name | file://<external>/String.class:0:0:0:0 | String | file://<external>/Map.class:0:0:0:0 | Map<String,Object> |
| delegatedProperties.kt:33:9:33:76 | readOnly | file://:0:0:0:0 | int | file://<external>/ReadWriteProperty.class:0:0:0:0 | ReadWriteProperty<Object,Integer> |
| delegatedProperties.kt:34:9:34:48 | readWrite | file://:0:0:0:0 | int | file://<external>/ReadWriteProperty.class:0:0:0:0 | ReadWriteProperty<Object,Integer> |
| delegatedProperties.kt:39:9:39:51 | varResource2 | file://:0:0:0:0 | int | delegatedProperties.kt:45:1:51:1 | ResourceDelegate |
| delegatedProperties.kt:42:5:42:47 | varResource0 | file://:0:0:0:0 | int | delegatedProperties.kt:45:1:51:1 | ResourceDelegate |
| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | file://:0:0:0:0 | int | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> |
| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | file://:0:0:0:0 | int | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<MyClass,Integer> |
| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | file://:0:0:0:0 | int | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> |
| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | file://:0:0:0:0 | int | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<MyClass,Integer> |
| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | file://:0:0:0:0 | int | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> |
| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | file://:0:0:0:0 | int | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<Base,Integer> |
| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | file://:0:0:0:0 | int | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> |
| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | file://:0:0:0:0 | int | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> |
| delegatedProperties.kt:79:5:79:38 | max | file://:0:0:0:0 | int | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> |
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | file://:0:0:0:0 | int | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> |
| delegatedProperties.kt:87:1:87:46 | extDelegated | file://:0:0:0:0 | int | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> |
delegatedPropertyGetters
| delegatedProperties.kt:6:9:9:9 | prop1 | delegatedProperties.kt:6:24:9:9 | <get-prop1> |
| delegatedProperties.kt:19:9:19:51 | varResource1 | delegatedProperties.kt:19:31:19:51 | <get-varResource1> |
| delegatedProperties.kt:23:9:23:31 | name | delegatedProperties.kt:23:26:23:31 | <get-name> |
| delegatedProperties.kt:33:9:33:76 | readOnly | delegatedProperties.kt:33:27:33:47 | <get-readOnly> |
| delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:28:34:48 | <get-readWrite> |
| delegatedProperties.kt:39:9:39:51 | varResource2 | delegatedProperties.kt:39:31:39:51 | <get-varResource2> |
| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:27:42:47 | getVarResource0 |
| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 |
| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 |
| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 |
| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 |
| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 |
| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 |
| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 |
| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel |
| delegatedProperties.kt:79:5:79:38 | max | delegatedProperties.kt:79:18:79:38 | getMax |
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> |
| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:31:87:46 | getExtDelegated |
delegatedPropertySetters
| delegatedProperties.kt:19:9:19:51 | varResource1 | delegatedProperties.kt:19:31:19:51 | <set-varResource1> |
| delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:28:34:48 | <set-readWrite> |
| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:27:42:47 | setVarResource0 |
| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 |
| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 |
| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 |
| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 |
| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel |
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> |
| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:31:87:46 | setExtDelegated |

View File

@@ -0,0 +1,87 @@
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
class ClassProp1 {
fun fn() {
val prop1: Int by lazy {
println("init")
5
}
println(prop1)
println(prop1)
}
}
class Resource
class Owner {
fun fn(map: Map<String, Any?>) {
var varResource1: Int by ResourceDelegate()
println(varResource1)
varResource1 = 2
val name: String by map
fun resourceDelegate(): ReadWriteProperty<Any?, Int> = object : ReadWriteProperty<Any?, Int> {
var curValue = 0
override fun getValue(thisRef: Any?, property: KProperty<*>): Int = curValue
override fun setValue(thisRef: Any?, property: KProperty<*>, value: Int) {
curValue = value
}
}
val readOnly: Int by resourceDelegate() // ReadWriteProperty as val
var readWrite: Int by resourceDelegate()
println(varResource0)
varResource0 = 3
val varResource2: Int by DelegateProvider()
}
var varResource0: Int by ResourceDelegate()
}
class ResourceDelegate {
operator fun getValue(thisRef: Owner?, property: KProperty<*>): Int {
return 1
}
operator fun setValue(thisRef: Owner?, property: KProperty<*>, value: Int?) {
}
}
class DelegateProvider {
operator fun provideDelegate(thisRef: Owner?, prop: KProperty<*>): ResourceDelegate {
// ... some logic
return ResourceDelegate()
}
}
var topLevelInt: Int = 0
class ClassWithDelegate(val anotherClassInt: Int)
open class Base(val baseClassInt: Int)
class MyClass(var memberInt: Int, val anotherClassInstance: ClassWithDelegate) : Base(memberInt) {
var delegatedToMember1: Int by this::memberInt
var delegatedToMember2: Int by MyClass::memberInt
var delegatedToExtMember1: Int by this::extDelegated
var delegatedToExtMember2: Int by MyClass::extDelegated
val delegatedToBaseClass1: Int by this::baseClassInt
val delegatedToBaseClass2: Int by Base::baseClassInt
val delegatedToAnotherClass1: Int by anotherClassInstance::anotherClassInt
var delegatedToTopLevel: Int by ::topLevelInt
val max: Int by Integer::MAX_VALUE
fun fn(){
var delegatedToMember3: Int by this::memberInt
fn()
}
}
var MyClass.extDelegated: Int by ::topLevelInt

View File

@@ -0,0 +1,38 @@
import java
// Stop external filepaths from appearing in the results
class ClassOrInterfaceLocation extends ClassOrInterface {
override predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) {
exists(string fullPath | super.hasLocationInfo(fullPath, sl, sc, el, ec) |
if exists(this.getFile().getRelativePath())
then path = fullPath
else path = fullPath.regexpReplaceAll(".*/", "<external>/")
)
}
}
query predicate delegatedProperties(
DelegatedProperty dp, string name, string isLocal, Variable underlying, Expr initializer
) {
(
dp.isLocal() and isLocal = "local"
or
not dp.isLocal() and isLocal = "non-local"
) and
underlying = dp.getDelegatee() and
name = dp.getName() and
underlying.getInitializer() = initializer
}
query predicate delegatedPropertyTypes(DelegatedProperty dp, Type type, Type underlyingType) {
dp.getGetter().getReturnType() = type and
dp.getDelegatee().getType() = underlyingType
}
query predicate delegatedPropertyGetters(DelegatedProperty dp, Method getter) {
dp.getGetter() = getter
}
query predicate delegatedPropertySetters(DelegatedProperty dp, Method setter) {
dp.getSetter() = setter
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,358 @@
import java.awt.Polygon
import java.awt.Rectangle
import kotlin.experimental.*
fun topLevelMethod(x: Int, y: Int,
byx: Byte, byy: Byte,
sx: Short, sy: Short,
lx: Long, ly: Long,
dx: Double, dy: Double,
fx: Float, fy: Float,
): Int {
val i1 = 1
val i2 = x + y
val i3 = x - y
val i4 = x / y
val i5 = x % y
val i6 = x shl y
val i7 = x shr y
val i8 = x ushr y
val i9 = x and y
val i10 = x or y
val i11 = x xor y
val i12 = x.inv()
val i13 = x == y
val i14 = x != y
val i15 = x < y
val i16 = x <= y
val i17 = x > y
val i18 = x >= y
val i19 = x === y
val i20 = x !== y
val i21 = x in x .. y
val i22 = x !in x .. y
val by1 = 1.0
val by2 = byx + byy
val by3 = byx - byy
val by4 = byx / byy
val by5 = byx % byy
val by6 = byx == byy
val by7 = byx != byy
val by8 = byx < byy
val by9 = byx <= byy
val by10 = byx > byy
val by11 = byx >= byy
val by12 = byx === byy
val by13 = byx !== byy
val by14 = byx or byy
val by15 = byx and byy
val by16 = byx xor byy
val s1 = 1.0
val s2 = sx + sy
val s3 = sx - sy
val s4 = sx / sy
val s5 = sx % sy
val s6 = sx == sy
val s7 = sx != sy
val s8 = sx < sy
val s9 = sx <= sy
val s10 = sx > sy
val s11 = sx >= sy
val s12 = sx === sy
val s13 = sx !== sy
val s14 = sx or sy
val s15 = sx and sy
val s16 = sx xor sy
val l1 = 1.0
val l2 = lx + ly
val l3 = lx - ly
val l4 = lx / ly
val l5 = lx % ly
val l6 = lx shl y
val l7 = lx shr y
val l8 = lx ushr y
val l9 = lx and ly
val l10 = lx or ly
val l11 = lx xor ly
val l12 = lx.inv()
val l13 = lx == ly
val l14 = lx != ly
val l15 = lx < ly
val l16 = lx <= ly
val l17 = lx > ly
val l18 = lx >= ly
val l19 = lx === ly
val l20 = lx !== ly
val d1 = 1.0
val d2 = dx + dy
val d3 = dx - dy
val d4 = dx / dy
val d5 = dx % dy
val d6 = dx == dy
val d7 = dx != dy
val d8 = dx < dy
val d9 = dx <= dy
val d10 = dx > dy
val d11 = dx >= dy
val d12 = dx === dy
val d13 = dx !== dy
val f1 = 1.0
val f2 = fx + fy
val f3 = fx - fy
val f4 = fx / fy
val f5 = fx % fy
val f6 = fx == fy
val f7 = fx != fy
val f8 = fx < fy
val f9 = fx <= fy
val f10 = fx > fy
val f11 = fx >= fy
val f12 = fx === fy
val f13 = fx !== fy
val b1 = true
val b2 = false
val b3 = b1 && b2
val b4 = b1 || b2
val b5 = !b1
val c = 'x'
val str = "string lit"
val strWithQuote = "string \" lit"
val b6 = i1 is Int
val b7 = i1 !is Int
val b8 = b7 as Boolean
val str1: String = "string lit"
val str2: String? = "string lit"
val str3: String? = null
val str4: String = "foo $str1 bar $str2 baz"
val str5: String = "foo ${str1 + str2} bar ${str2 + str1} baz"
val str6 = str1 + str2
var variable = 10
while (variable > 0) {
variable--
}
return 123 + 456
}
fun getClass() {
val d = true::class
}
class C(val n: Int) {
fun foo(): C { return C(42) }
}
open class Root {}
class Subclass1: Root() {}
class Subclass2: Root() {}
fun typeTests(x: Root, y: Subclass1) {
if(x is Subclass1) {
val x1: Subclass1 = x
}
val y1: Subclass1 = if (x is Subclass1) { x } else { y }
var q = 1
if (x is Subclass1) { q = 2 } else { q = 3 }
}
fun foo(p: Polygon) {
val r = p.getBounds()
if(r != null) {
val r2: Rectangle = r
val height = r2.height
r2.height = 3
}
}
enum class Direction {
NORTH, SOUTH, WEST, EAST
}
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
fun enums() {
val south = Direction.SOUTH
val green = Color.GREEN
}
interface Interface1 {}
class Class1 {
val a1 = 1
private fun getObject() : Any {
val a2 = 2
return object : Interface1 {
val a3: String = (a1 + a2).toString()
}
}
}
fun notNullAssertion(x: Any?) {
val y: Any = x!!
}
class Class2 {
fun x(aa: Any?, s: String?) {
val a = aa.toString()
val b0 = s.plus(5)
val b1 = s + 5
val b2 = s!!.plus(5)
val b3 = s!! + 5
val c0 = enumValues<Color>()
val c1 = Color.values()
val d0 = enumValueOf<Color>("GREEN")
val d1 = Color.valueOf("GREEN")
}
}
fun todo() {
TODO()
}
class SomeClass1 {}
fun fnClassRef() {
val x = SomeClass1::class
}
fun equalityTests(notNullPrimitive: Int, nullablePrimitive: Int?, notNullReftype: String, nullableReftype: String?) {
val b1 = notNullPrimitive == notNullPrimitive
val b2 = notNullPrimitive == nullablePrimitive
val b3 = nullablePrimitive == nullablePrimitive
val b4 = notNullReftype == notNullReftype
val b5 = notNullReftype == nullableReftype
val b6 = nullableReftype == nullableReftype
val b7 = notNullPrimitive != notNullPrimitive
val b8 = notNullPrimitive != nullablePrimitive
val b9 = nullablePrimitive != nullablePrimitive
val b10 = notNullReftype != notNullReftype
val b11 = notNullReftype != nullableReftype
val b12 = nullableReftype != nullableReftype
val b13 = notNullPrimitive == null
val b14 = nullablePrimitive == null
val b15 = notNullReftype == null
val b16 = nullableReftype == null
val b17 = notNullPrimitive != null
val b18 = nullablePrimitive != null
val b19 = notNullReftype != null
val b20 = nullableReftype != null
}
fun mulOperators(x: Int, y: Int,
byx: Byte, byy: Byte,
sx: Short, sy: Short,
lx: Long, ly: Long,
dx: Double, dy: Double,
fx: Float, fy: Float) {
val i = x * y
val b = byx * byy
val l = lx * ly
val d = dx * dy
val f = fx * fy
}
fun inPlaceOperators() {
var updated = 0
updated += 1
updated -= 1
updated *= 1
updated /= 1
updated %= 1
}
inline fun <reified T : Enum<T>> getEnumValues() = enumValues<T>()
fun callToEnumValues() {
enumValues<Color>()
getEnumValues<Color>()
}
fun unaryExprs(i: Int, d: Double, b: Byte, s: Short, l: Long, f: Float) {
-i
+i
-d
+d
var i0 = 1
val i1 = 1
i0++
++i0
i0--
--i0
i0.inc()
i0.dec()
i1.inc()
i1.dec()
i.inv()
-b
+b
var b0: Byte = 1
val b1: Byte = 1
b0++
++b0
b0--
--b0
b0.inc()
b0.dec()
b1.inc()
b1.dec()
b.inv()
-s
+s
var s0: Short = 1
val s1: Short = 1
s0++
++s0
s0--
--s0
s0.inc()
s0.dec()
s1.inc()
s1.dec()
s.inv()
-l
+l
var l0: Long = 1
val l1: Long = 1
l0++
++l0
l0--
--l0
l0.inc()
l0.dec()
l1.inc()
l1.dec()
l.inv()
+f
-f
}
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Byte.dec in java.lang.Byte %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Byte.inc in java.lang.Byte %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Byte.toInt in java.lang.Byte %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Int.dec in java.lang.Integer %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Int.inc in java.lang.Integer %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Int.rangeTo in java.lang.Integer %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Short.inc in java.lang.Short %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Short.dec in java.lang.Short %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Short.toInt in java.lang.Short %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Long.dec in java.lang.Long %
// Diagnostic Matches: % Couldn't find a Java equivalent function to kotlin.Long.inc in java.lang.Long %

View File

@@ -0,0 +1,39 @@
import java
newtype TMaybeElement =
TElement(Element e) or
TNoElement()
class MaybeElement extends TMaybeElement {
abstract string toString();
abstract Location getLocation();
}
class YesMaybeElement extends MaybeElement {
Element e;
YesMaybeElement() { this = TElement(e) }
override string toString() { result = e.toString() }
override Location getLocation() { result = e.getLocation() }
}
class NoMaybeElement extends MaybeElement {
NoMaybeElement() { this = TNoElement() }
override string toString() { result = "<none>" }
override Location getLocation() { none() }
}
MaybeElement enclosingCallable(Expr e) {
if exists(e.getEnclosingCallable())
then result = TElement(e.getEnclosingCallable())
else result = TNoElement()
}
from Expr e
where e.getFile().isSourceFile()
select e, enclosingCallable(e), e.getPrimaryQlClasses()

View File

@@ -0,0 +1,253 @@
lambdaExpr
| delegatedProperties.kt:6:32:9:9 | ...->... | stmt body | delegatedProperties.kt:6:32:9:9 | invoke | invoke() | delegatedProperties.kt:6:32:9:9 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:22:26:22:33 | ...->... | stmt body | funcExprs.kt:22:26:22:33 | invoke | invoke() | funcExprs.kt:22:26:22:33 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:23:26:23:33 | ...->... | stmt body | funcExprs.kt:23:26:23:33 | invoke | invoke() | funcExprs.kt:23:26:23:33 | new Function0<Object>(...) { ... } |
| funcExprs.kt:24:26:24:33 | ...->... | stmt body | funcExprs.kt:24:26:24:33 | invoke | invoke() | funcExprs.kt:24:26:24:33 | new Function0<Object>(...) { ... } |
| funcExprs.kt:25:29:25:38 | ...->... | stmt body | funcExprs.kt:25:29:25:38 | invoke | invoke(int) | funcExprs.kt:25:29:25:38 | new Function1<Integer,Integer>(...) { ... } |
| funcExprs.kt:26:29:26:34 | ...->... | stmt body | funcExprs.kt:26:29:26:34 | invoke | invoke(int) | funcExprs.kt:26:29:26:34 | new Function1<Integer,Integer>(...) { ... } |
| funcExprs.kt:27:29:27:42 | ...->... | stmt body | funcExprs.kt:27:29:27:42 | invoke | invoke(int) | funcExprs.kt:27:29:27:42 | new Function1<Integer,Integer>(...) { ... } |
| funcExprs.kt:29:29:29:37 | ...->... | stmt body | funcExprs.kt:29:29:29:37 | invoke | invoke(java.lang.Object) | funcExprs.kt:29:29:29:37 | new Function1<Object,Object>(...) { ... } |
| funcExprs.kt:30:28:30:50 | ...->... | stmt body | funcExprs.kt:30:28:30:50 | invoke | invoke(int,int) | funcExprs.kt:30:28:30:50 | new Function2<Integer,Integer,Integer>(...) { ... } |
| funcExprs.kt:31:28:31:40 | ...->... | stmt body | funcExprs.kt:31:28:31:40 | invoke | invoke(int,int) | funcExprs.kt:31:28:31:40 | new Function2<Integer,Integer,Integer>(...) { ... } |
| funcExprs.kt:32:28:32:44 | ...->... | stmt body | funcExprs.kt:32:28:32:44 | invoke | invoke(int,int) | funcExprs.kt:32:28:32:44 | new Function2<Integer,Integer,Integer>(...) { ... } |
| funcExprs.kt:33:28:33:51 | ...->... | stmt body | funcExprs.kt:33:28:33:51 | invoke | invoke(int) | funcExprs.kt:33:28:33:51 | new Function1<Integer,Function1<Integer,Double>>(...) { ... } |
| funcExprs.kt:33:37:33:47 | ...->... | stmt body | funcExprs.kt:33:37:33:47 | invoke | invoke(int) | funcExprs.kt:33:37:33:47 | new Function1<Integer,Double>(...) { ... } |
| funcExprs.kt:35:29:35:112 | ...->... | stmt body | funcExprs.kt:35:29:35:112 | invoke | 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:35:29:35:112 | new 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:36:29:36:117 | ...->... | stmt body | funcExprs.kt:36:29:36:117 | invoke | 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:36:29:36:117 | new FunctionN<String>(...) { ... } |
| funcExprs.kt:75:12:75:22 | ...->... | stmt body | funcExprs.kt:75:12:75:22 | invoke | invoke(Class3.Generic) | funcExprs.kt:75:12:75:22 | new Function1<Generic<Generic<Integer>>,String>(...) { ... } |
| funcExprs.kt:83:31:83:51 | ...->... | stmt body | funcExprs.kt:83:31:83:51 | invoke | invoke(int) | funcExprs.kt:83:31:83:51 | new Function1<Integer,String>(...) { ... } |
| funcExprs.kt:86:39:86:59 | ...->... | stmt body | funcExprs.kt:86:39:86:59 | invoke | invoke(int) | funcExprs.kt:86:39:86:59 | new Function1<Integer,String>(...) { ... } |
| funcExprs.kt:90:15:90:69 | ...->... | stmt body | funcExprs.kt:90:15:90:69 | invoke | 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:90:15:90:69 | new FunctionN<String>(...) { ... } |
| funcExprs.kt:94:15:94:67 | ...->... | stmt body | funcExprs.kt:94:15:94:67 | invoke | 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:94:15:94:67 | new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String>(...) { ... } |
| samConversion.kt:2:31:2:45 | ...->... | stmt body | samConversion.kt:2:31:2:45 | invoke | invoke(int) | samConversion.kt:2:31:2:45 | new Function1<Integer,Boolean>(...) { ... } |
| samConversion.kt:4:27:4:42 | ...->... | stmt body | samConversion.kt:4:27:4:42 | invoke | invoke(int,int) | samConversion.kt:4:27:4:42 | new Function2<Integer,Integer,Unit>(...) { ... } |
| samConversion.kt:7:29:7:46 | ...->... | stmt body | samConversion.kt:7:29:7:46 | invoke | invoke(java.lang.String,int) | samConversion.kt:7:29:7:46 | new Function2<String,Integer,Boolean>(...) { ... } |
| samConversion.kt:9:33:11:5 | ...->... | stmt body | samConversion.kt:9:33:11:5 | invoke | invoke(int) | samConversion.kt:9:33:11:5 | new Function1<Integer,Boolean>(...) { ... } |
| samConversion.kt:11:12:13:5 | ...->... | stmt body | samConversion.kt:11:12:13:5 | invoke | invoke(int) | samConversion.kt:11:12:13:5 | new Function1<Integer,Boolean>(...) { ... } |
| samConversion.kt:43:31:45:68 | ...->... | stmt body | samConversion.kt:43:31:45:68 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | samConversion.kt:43:31:45:68 | new FunctionN<Boolean>(...) { ... } |
| samConversion.kt:46:32:46:44 | ...->... | stmt body | samConversion.kt:46:32:46:44 | invoke | invoke(int) | samConversion.kt:46:32:46:44 | new Function1<Integer,Boolean>(...) { ... } |
| samConversion.kt:58:30:58:45 | ...->... | stmt body | samConversion.kt:58:30:58:45 | invoke | invoke(int,int) | samConversion.kt:58:30:58:45 | new Function2<Integer,Integer,Unit>(...) { ... } |
memberRefExprs
| funcExprs.kt:38:26:38:38 | ...::... | funcExprs.kt:38:26:38:38 | invoke | invoke() | funcExprs.kt:38:26:38:38 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:39:26:39:36 | ...::... | funcExprs.kt:39:26:39:36 | invoke | invoke() | funcExprs.kt:39:26:39:36 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:40:29:40:41 | ...::... | funcExprs.kt:40:29:40:41 | invoke | invoke(int) | funcExprs.kt:40:29:40:41 | new Function1<Integer,Integer>(...) { ... } |
| funcExprs.kt:41:29:41:39 | ...::... | funcExprs.kt:41:29:41:39 | invoke | invoke(FuncRef,int) | funcExprs.kt:41:29:41:39 | new Function2<FuncRef,Integer,Integer>(...) { ... } |
| funcExprs.kt:42:29:42:33 | ...::... | funcExprs.kt:42:29:42:33 | invoke | invoke(int) | funcExprs.kt:42:29:42:33 | new Function1<Integer,Integer>(...) { ... } |
| funcExprs.kt:43:28:43:34 | ...::... | funcExprs.kt:43:28:43:34 | invoke | invoke(int,int) | funcExprs.kt:43:28:43:34 | new Function2<Integer,Integer,Integer>(...) { ... } |
| funcExprs.kt:44:29:44:42 | ...::... | funcExprs.kt:44:29:44:42 | invoke | 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:44:29:44:42 | new 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:45:29:45:42 | ...::... | funcExprs.kt:45:29:45:42 | invoke | invoke(java.lang.Object[]) | funcExprs.kt:45:29:45:42 | new FunctionN<String>(...) { ... } |
| funcExprs.kt:46:30:46:41 | ...::... | funcExprs.kt:46:30:46:41 | invoke | invoke(java.lang.Object[]) | funcExprs.kt:46:30:46:41 | new FunctionN<String>(...) { ... } |
| funcExprs.kt:49:26:49:32 | ...::... | funcExprs.kt:49:26:49:32 | invoke | invoke() | funcExprs.kt:49:26:49:32 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:51:8:51:16 | ...::... | funcExprs.kt:51:8:51:16 | invoke | invoke() | funcExprs.kt:51:8:51:16 | new Function0<FuncRef>(...) { ... } |
| kFunctionInvoke.kt:8:44:8:47 | ...::... | kFunctionInvoke.kt:8:44:8:47 | invoke | invoke(java.lang.String) | kFunctionInvoke.kt:8:44:8:47 | new Function1<String,Unit>(...) { ... } |
| samConversion.kt:5:27:5:31 | ...::... | samConversion.kt:5:27:5:31 | invoke | invoke(int,int) | samConversion.kt:5:27:5:31 | new Function2<Integer,Integer,Unit>(...) { ... } |
| samConversion.kt:41:13:41:16 | ...::... | samConversion.kt:41:13:41:16 | invoke | invoke(java.lang.Object[]) | samConversion.kt:41:13:41:16 | new FunctionN<Boolean>(...) { ... } |
lambda_modifiers
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:6:32:9:9 | invoke | final, override, public |
| funcExprs.kt:22:26:22:33 | ...->... | funcExprs.kt:22:26:22:33 | invoke | final, override, public |
| funcExprs.kt:23:26:23:33 | ...->... | funcExprs.kt:23:26:23:33 | invoke | final, override, public |
| funcExprs.kt:24:26:24:33 | ...->... | funcExprs.kt:24:26:24:33 | invoke | final, override, public |
| funcExprs.kt:25:29:25:38 | ...->... | funcExprs.kt:25:29:25:38 | invoke | final, override, public |
| funcExprs.kt:26:29:26:34 | ...->... | funcExprs.kt:26:29:26:34 | invoke | final, override, public |
| funcExprs.kt:27:29:27:42 | ...->... | funcExprs.kt:27:29:27:42 | invoke | final, override, public |
| funcExprs.kt:29:29:29:37 | ...->... | funcExprs.kt:29:29:29:37 | invoke | final, override, public |
| funcExprs.kt:30:28:30:50 | ...->... | funcExprs.kt:30:28:30:50 | invoke | final, override, public |
| funcExprs.kt:31:28:31:40 | ...->... | funcExprs.kt:31:28:31:40 | invoke | final, override, public |
| funcExprs.kt:32:28:32:44 | ...->... | funcExprs.kt:32:28:32:44 | invoke | final, override, public |
| funcExprs.kt:33:28:33:51 | ...->... | funcExprs.kt:33:28:33:51 | invoke | final, override, public |
| funcExprs.kt:33:37:33:47 | ...->... | funcExprs.kt:33:37:33:47 | invoke | final, override, public |
| funcExprs.kt:35:29:35:112 | ...->... | funcExprs.kt:35:29:35:112 | invoke | final, override, public |
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | final, public |
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | override, public |
| funcExprs.kt:75:12:75:22 | ...->... | funcExprs.kt:75:12:75:22 | invoke | final, override, public |
| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:83:31:83:51 | invoke | final, override, public |
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:86:39:86:59 | invoke | final, override, public, suspend |
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | final, public |
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | override, public |
| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:94:15:94:67 | invoke | final, override, public, suspend |
| samConversion.kt:2:31:2:45 | ...->... | samConversion.kt:2:31:2:45 | invoke | final, override, public |
| samConversion.kt:4:27:4:42 | ...->... | samConversion.kt:4:27:4:42 | invoke | final, override, public |
| samConversion.kt:7:29:7:46 | ...->... | samConversion.kt:7:29:7:46 | invoke | final, override, public |
| samConversion.kt:9:33:11:5 | ...->... | samConversion.kt:9:33:11:5 | invoke | final, override, public |
| samConversion.kt:11:12:13:5 | ...->... | samConversion.kt:11:12:13:5 | invoke | final, override, public |
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | final, public |
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | override, public |
| samConversion.kt:46:32:46:44 | ...->... | samConversion.kt:46:32:46:44 | invoke | final, override, public |
| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:58:30:58:45 | invoke | final, override, public, suspend |
anon_class_member_modifiers
| delegatedProperties.kt:6:24:9:9 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:6:24:9:9 | get | override, public |
| delegatedProperties.kt:6:24:9:9 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:6:24:9:9 | invoke | override, public |
| delegatedProperties.kt:6:32:9:9 | new Function0<Integer>(...) { ... } | delegatedProperties.kt:6:32:9:9 | invoke | final, override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | get | override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | get | override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | invoke | override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | invoke | override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | set | override, public |
| delegatedProperties.kt:19:31:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:31:19:51 | set | override, public |
| delegatedProperties.kt:23:26:23:31 | new KProperty0<String>(...) { ... } | delegatedProperties.kt:23:26:23:31 | get | override, public |
| delegatedProperties.kt:23:26:23:31 | new KProperty0<String>(...) { ... } | delegatedProperties.kt:23:26:23:31 | invoke | override, public |
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:28 | getCurValue | final, public |
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:28 | setCurValue | final, public |
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:27:22:27:88 | getValue | override, public |
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:28:22:30:13 | setValue | override, public |
| delegatedProperties.kt:33:27:33:47 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:33:27:33:47 | get | override, public |
| delegatedProperties.kt:33:27:33:47 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:33:27:33:47 | invoke | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | get | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | get | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | invoke | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | invoke | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | set | override, public |
| delegatedProperties.kt:34:28:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:28:34:48 | set | override, public |
| delegatedProperties.kt:39:31:39:51 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:39:31:39:51 | get | override, public |
| delegatedProperties.kt:39:31:39:51 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:39:31:39:51 | get | override, public |
| delegatedProperties.kt:39:31:39:51 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:39:31:39:51 | invoke | override, public |
| delegatedProperties.kt:39:31:39:51 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:39:31:39:51 | invoke | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | get | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | get | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | invoke | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | invoke | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | set | override, public |
| delegatedProperties.kt:42:27:42:47 | new KMutableProperty1<Owner,Integer>(...) { ... } | delegatedProperties.kt:42:27:42:47 | set | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | get | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | get | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | invoke | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | invoke | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | set | override, public |
| delegatedProperties.kt:66:33:66:50 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:66:33:66:50 | set | override, public |
| delegatedProperties.kt:66:36:66:50 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:66:36:66:50 | get | override, public |
| delegatedProperties.kt:66:36:66:50 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:66:36:66:50 | invoke | override, public |
| delegatedProperties.kt:66:36:66:50 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:66:36:66:50 | set | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | get | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | get | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | invoke | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | invoke | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | set | override, public |
| delegatedProperties.kt:67:33:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:33:67:53 | set | override, public |
| delegatedProperties.kt:67:36:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:36:67:53 | get | override, public |
| delegatedProperties.kt:67:36:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:36:67:53 | invoke | override, public |
| delegatedProperties.kt:67:36:67:53 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:67:36:67:53 | set | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | get | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | get | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | invoke | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | invoke | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | set | override, public |
| delegatedProperties.kt:69:36:69:56 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:69:36:69:56 | set | override, public |
| delegatedProperties.kt:69:39:69:56 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:69:39:69:56 | get | override, public |
| delegatedProperties.kt:69:39:69:56 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:69:39:69:56 | invoke | override, public |
| delegatedProperties.kt:69:39:69:56 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:69:39:69:56 | set | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | get | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | get | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | invoke | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | invoke | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | set | override, public |
| delegatedProperties.kt:70:36:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:36:70:59 | set | override, public |
| delegatedProperties.kt:70:39:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:39:70:59 | get | override, public |
| delegatedProperties.kt:70:39:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:39:70:59 | invoke | override, public |
| delegatedProperties.kt:70:39:70:59 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:70:39:70:59 | set | override, public |
| delegatedProperties.kt:72:36:72:56 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:72:36:72:56 | get | override, public |
| delegatedProperties.kt:72:36:72:56 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:72:36:72:56 | invoke | override, public |
| delegatedProperties.kt:72:39:72:56 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:72:39:72:56 | get | override, public |
| delegatedProperties.kt:72:39:72:56 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:72:39:72:56 | invoke | override, public |
| delegatedProperties.kt:73:36:73:56 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:73:36:73:56 | get | override, public |
| delegatedProperties.kt:73:36:73:56 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:73:36:73:56 | invoke | override, public |
| delegatedProperties.kt:73:39:73:56 | new KProperty1<Base,Integer>(...) { ... } | delegatedProperties.kt:73:39:73:56 | get | override, public |
| delegatedProperties.kt:73:39:73:56 | new KProperty1<Base,Integer>(...) { ... } | delegatedProperties.kt:73:39:73:56 | invoke | override, public |
| delegatedProperties.kt:75:39:75:78 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:75:39:75:78 | get | override, public |
| delegatedProperties.kt:75:39:75:78 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:75:39:75:78 | invoke | override, public |
| delegatedProperties.kt:75:42:75:78 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:75:42:75:78 | get | override, public |
| delegatedProperties.kt:75:42:75:78 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:75:42:75:78 | invoke | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | get | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | get | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | invoke | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | invoke | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | set | override, public |
| delegatedProperties.kt:77:34:77:49 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:77:34:77:49 | set | override, public |
| delegatedProperties.kt:77:37:77:49 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:77:37:77:49 | get | override, public |
| delegatedProperties.kt:77:37:77:49 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:77:37:77:49 | invoke | override, public |
| delegatedProperties.kt:77:37:77:49 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:77:37:77:49 | set | override, public |
| delegatedProperties.kt:79:18:79:38 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:79:18:79:38 | get | override, public |
| delegatedProperties.kt:79:18:79:38 | new KProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:79:18:79:38 | invoke | override, public |
| delegatedProperties.kt:79:21:79:38 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:79:21:79:38 | get | override, public |
| delegatedProperties.kt:79:21:79:38 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:79:21:79:38 | invoke | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | get | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | get | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | invoke | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | invoke | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | set | override, public |
| delegatedProperties.kt:82:37:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:37:82:54 | set | override, public |
| delegatedProperties.kt:82:40:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:40:82:54 | get | override, public |
| delegatedProperties.kt:82:40:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:40:82:54 | invoke | override, public |
| delegatedProperties.kt:82:40:82:54 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:82:40:82:54 | set | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | get | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | get | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | invoke | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | invoke | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | set | override, public |
| delegatedProperties.kt:87:31:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:31:87:46 | set | override, public |
| delegatedProperties.kt:87:34:87:46 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | get | override, public |
| delegatedProperties.kt:87:34:87:46 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public |
| delegatedProperties.kt:87:34:87:46 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public |
| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:49 | getA3 | final, public |
| funcExprs.kt:22:26:22:33 | new Function0<Integer>(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public |
| funcExprs.kt:23:26:23:33 | new Function0<Object>(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public |
| funcExprs.kt:24:26:24:33 | new Function0<Object>(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public |
| funcExprs.kt:25:29:25:38 | new Function1<Integer,Integer>(...) { ... } | funcExprs.kt:25:29:25:38 | invoke | final, override, public |
| funcExprs.kt:26:29:26:34 | new Function1<Integer,Integer>(...) { ... } | funcExprs.kt:26:29:26:34 | invoke | final, override, public |
| funcExprs.kt:27:29:27:42 | new Function1<Integer,Integer>(...) { ... } | funcExprs.kt:27:29:27:42 | invoke | final, override, public |
| funcExprs.kt:29:29:29:37 | new Function1<Object,Object>(...) { ... } | funcExprs.kt:29:29:29:37 | invoke | final, override, public |
| funcExprs.kt:30:28:30:50 | new Function2<Integer,Integer,Integer>(...) { ... } | funcExprs.kt:30:28:30:50 | invoke | final, override, public |
| funcExprs.kt:31:28:31:40 | new Function2<Integer,Integer,Integer>(...) { ... } | funcExprs.kt:31:28:31:40 | invoke | final, override, public |
| funcExprs.kt:32:28:32:44 | new Function2<Integer,Integer,Integer>(...) { ... } | funcExprs.kt:32:28:32:44 | invoke | final, override, public |
| funcExprs.kt:33:28:33:51 | new Function1<Integer,Function1<Integer,Double>>(...) { ... } | funcExprs.kt:33:28:33:51 | invoke | final, override, public |
| funcExprs.kt:33:37:33:47 | new Function1<Integer,Double>(...) { ... } | funcExprs.kt:33:37:33:47 | invoke | final, override, public |
| funcExprs.kt:35:29:35:112 | new 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:35:29:35:112 | invoke | final, override, public |
| funcExprs.kt:36:29:36:117 | new FunctionN<String>(...) { ... } | funcExprs.kt:36:29:36:117 | invoke | final, public |
| funcExprs.kt:36:29:36:117 | new FunctionN<String>(...) { ... } | funcExprs.kt:36:29:36:117 | invoke | override, public |
| funcExprs.kt:38:26:38:38 | new Function0<Integer>(...) { ... } | funcExprs.kt:38:26:38:38 | invoke | override, public |
| funcExprs.kt:39:26:39:36 | new Function0<Integer>(...) { ... } | funcExprs.kt:39:26:39:36 | invoke | override, public |
| funcExprs.kt:40:29:40:41 | new Function1<Integer,Integer>(...) { ... } | funcExprs.kt:40:29:40:41 | invoke | override, public |
| funcExprs.kt:41:29:41:39 | new Function2<FuncRef,Integer,Integer>(...) { ... } | funcExprs.kt:41:29:41:39 | invoke | override, public |
| funcExprs.kt:42:29:42:33 | new Function1<Integer,Integer>(...) { ... } | funcExprs.kt:42:29:42:33 | invoke | override, public |
| funcExprs.kt:43:28:43:34 | new Function2<Integer,Integer,Integer>(...) { ... } | funcExprs.kt:43:28:43:34 | invoke | override, public |
| funcExprs.kt:44:29:44:42 | new 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:44:29:44:42 | invoke | override, public |
| funcExprs.kt:45:29:45:42 | new FunctionN<String>(...) { ... } | funcExprs.kt:45:29:45:42 | invoke | override, public |
| funcExprs.kt:46:30:46:41 | new FunctionN<String>(...) { ... } | funcExprs.kt:46:30:46:41 | invoke | override, public |
| funcExprs.kt:49:26:49:32 | new Function0<Integer>(...) { ... } | funcExprs.kt:49:26:49:32 | invoke | override, public |
| funcExprs.kt:51:8:51:16 | new Function0<FuncRef>(...) { ... } | funcExprs.kt:51:8:51:16 | invoke | override, public |
| funcExprs.kt:75:12:75:22 | new Function1<Generic<Generic<Integer>>,String>(...) { ... } | funcExprs.kt:75:12:75:22 | invoke | final, override, public |
| funcExprs.kt:83:31:83:51 | new Function1<Integer,String>(...) { ... } | funcExprs.kt:83:31:83:51 | invoke | final, override, public |
| funcExprs.kt:86:39:86:59 | new Function1<Integer,String>(...) { ... } | funcExprs.kt:86:39:86:59 | invoke | final, override, public, suspend |
| funcExprs.kt:90:15:90:69 | new FunctionN<String>(...) { ... } | funcExprs.kt:90:15:90:69 | invoke | final, public |
| funcExprs.kt:90:15:90:69 | new FunctionN<String>(...) { ... } | funcExprs.kt:90:15:90:69 | invoke | override, public |
| funcExprs.kt:94:15:94:67 | new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String>(...) { ... } | funcExprs.kt:94:15:94:67 | invoke | final, override, public, suspend |
| kFunctionInvoke.kt:8:44:8:47 | new Function1<String,Unit>(...) { ... } | kFunctionInvoke.kt:8:44:8:47 | invoke | override, public |
| samConversion.kt:2:18:2:45 | new IntPredicate(...) { ... } | samConversion.kt:2:18:2:45 | accept | final, override, public |
| samConversion.kt:2:31:2:45 | new Function1<Integer,Boolean>(...) { ... } | samConversion.kt:2:31:2:45 | invoke | final, override, public |
| samConversion.kt:4:14:4:42 | new InterfaceFn1(...) { ... } | samConversion.kt:4:14:4:42 | fn1 | final, override, public |
| samConversion.kt:4:27:4:42 | new Function2<Integer,Integer,Unit>(...) { ... } | samConversion.kt:4:27:4:42 | invoke | final, override, public |
| samConversion.kt:5:14:5:32 | new InterfaceFn1(...) { ... } | samConversion.kt:5:14:5:32 | fn1 | final, override, public |
| samConversion.kt:5:27:5:31 | new Function2<Integer,Integer,Unit>(...) { ... } | samConversion.kt:5:27:5:31 | invoke | override, public |
| samConversion.kt:7:13:7:46 | new InterfaceFnExt1(...) { ... } | samConversion.kt:7:13:7:46 | ext | final, override, public |
| samConversion.kt:7:29:7:46 | new Function2<String,Integer,Boolean>(...) { ... } | samConversion.kt:7:29:7:46 | invoke | final, override, public |
| samConversion.kt:9:13:13:6 | new IntPredicate(...) { ... } | samConversion.kt:9:13:13:6 | accept | final, override, public |
| samConversion.kt:9:33:11:5 | new Function1<Integer,Boolean>(...) { ... } | samConversion.kt:9:33:11:5 | invoke | final, override, public |
| samConversion.kt:11:12:13:5 | new Function1<Integer,Boolean>(...) { ... } | samConversion.kt:11:12:13:5 | invoke | final, override, public |
| samConversion.kt:41:13:41:16 | new FunctionN<Boolean>(...) { ... } | samConversion.kt:41:13:41:16 | invoke | override, public |
| samConversion.kt:42:13:42:32 | new BigArityPredicate(...) { ... } | samConversion.kt:42:13:42:32 | accept | final, override, public |
| samConversion.kt:43:13:45:68 | new BigArityPredicate(...) { ... } | samConversion.kt:43:13:45:68 | accept | final, override, public |
| samConversion.kt:43:31:45:68 | new FunctionN<Boolean>(...) { ... } | samConversion.kt:43:31:45:68 | invoke | final, public |
| samConversion.kt:43:31:45:68 | new FunctionN<Boolean>(...) { ... } | samConversion.kt:43:31:45:68 | invoke | override, public |
| samConversion.kt:46:13:46:44 | new SomePredicate<Integer>(...) { ... } | samConversion.kt:46:13:46:44 | fn | final, override, public |
| samConversion.kt:46:32:46:44 | new Function1<Integer,Boolean>(...) { ... } | samConversion.kt:46:32:46:44 | invoke | final, override, public |
| samConversion.kt:58:14:58:45 | new InterfaceFn1Sus(...) { ... } | samConversion.kt:58:14:58:45 | fn1 | final, override, public, suspend |
| samConversion.kt:58:30:58:45 | new Function2<Integer,Integer,Unit>(...) { ... } | samConversion.kt:58:30:58:45 | invoke | final, override, public, suspend |
| samConversion.kt:75:17:75:33 | new IntGetter(...) { ... } | samConversion.kt:75:17:75:33 | f | final, override, public |
| samConversion.kt:75:27:75:32 | new KProperty0<Integer>(...) { ... } | samConversion.kt:75:27:75:32 | get | override, public |
| samConversion.kt:75:27:75:32 | new KProperty0<Integer>(...) { ... } | samConversion.kt:75:27:75:32 | invoke | override, public |
| samConversion.kt:76:17:76:55 | new PropertyRefsGetter(...) { ... } | samConversion.kt:76:17:76:55 | f | final, override, public |
| samConversion.kt:76:36:76:54 | new KProperty1<PropertyRefsTest,Integer>(...) { ... } | samConversion.kt:76:36:76:54 | get | override, public |
| samConversion.kt:76:36:76:54 | new KProperty1<PropertyRefsTest,Integer>(...) { ... } | samConversion.kt:76:36:76:54 | invoke | override, public |
nonOverrideInvoke
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | 23 |
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | 23 |
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | 23 |

View File

@@ -0,0 +1,96 @@
fun functionExpression0a(f: () -> Int) { f() }
fun functionExpression0b(f: () -> Any?) { f() }
fun functionExpression0c(f: () -> Any) { f() }
fun functionExpression1a(x: Int, f: (Int) -> Int) { f(x) }
fun functionExpression1b(x: Int, f: (Any?) -> Any?) { f(x) }
fun functionExpression1c(x: Int, f: (FuncRef, Int) -> Int) { f(FuncRef(), x) }
fun functionExpression2(x: Int, f: (Int, Int) -> Int) { f(x, x) }
fun functionExpression3(x: Int, f: Int.(Int) -> Int) { x.f(x) }
fun functionExpression4(x: Int, f: (Int) -> ((Int) -> Double)) { f(x)(x) }
fun functionExpression22(x: Int, f: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int) -> Unit) {
f(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)
}
fun functionExpression23(x: Int, f: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int) -> String) {
f(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)
}
fun functionExpression23c(x: Int, f: (FuncRef, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int) -> String) {
f(FuncRef(),x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)
}
fun call() {
functionExpression0a { -> 5 }
functionExpression0b { -> 5 }
functionExpression0c { -> 5 }
functionExpression1a(5) { a -> 5 }
functionExpression1a(5) { it }
functionExpression1a(5, fun(_:Int) = 5)
functionExpression1a(5, MyLambda())
functionExpression1b(5) { a -> a}
functionExpression2(5, fun(_: Int, _: Int) = 5)
functionExpression2(5) { _, _ -> 5 }
functionExpression3(5) { a -> this + a }
functionExpression4(5) { a -> ( { b -> 5.0} ) }
functionExpression22(5) {a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21 -> 5}
functionExpression23(5) {a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22 -> ""}
functionExpression0a(FuncRef()::f0)
functionExpression0a(FuncRef::f0)
functionExpression1a(5, FuncRef()::f1)
functionExpression1c(5, FuncRef::f1)
functionExpression1a(5, 3::f3)
functionExpression3(5, Int::f3)
functionExpression22(5, FuncRef()::f22)
functionExpression23(5, FuncRef()::f23)
functionExpression23c(5, FuncRef::f23)
fun local(): Int = 5
functionExpression0a(::local)
fn(::FuncRef)
}
class MyLambda: (Int) -> Int {
override operator fun invoke(x: Int): Int = 5
}
fun <T> fn(l: () -> T) {}
fun Int.f3(a: Int) = 5
class FuncRef {
companion object {
fun f0(): Int = 5
}
fun f0(): Int = 5
fun f1(a: Int): Int = 5
fun f22(a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int, a7: Int, a8: Int, a9: Int, a10: Int,
a11: Int, a12: Int, a13: Int, a14: Int, a15: Int, a16:Int, a17: Int, a18: Int, a19: Int, a20: Int, a21: Int) {}
fun f23(a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int, a7: Int, a8: Int, a9: Int, a10: Int,
a11: Int, a12: Int, a13: Int, a14: Int, a15: Int, a16:Int, a17: Int, a18: Int, a19: Int, a20: Int, a21: Int, a22: Int) = ""
}
class Class3 {
fun call() {
fn { a -> "a"}
}
private fun fn(f: (Generic<Generic<Int>>) -> String) { }
class Generic<T> { }
}
suspend fun fn() {
val l1: (Int) -> String = { i -> i.toString() }
l1.invoke(5) // calls kotlin/jvm/functions/Function1.invoke
val l2: suspend (Int) -> String = { i -> i.toString() }
l2.invoke(5) // calls kotlin/jvm/functions/Function2.invoke
val l3: (Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int) -> String
= { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ -> ""}
l3.invoke(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3) // 23 args, calls kotlin/jvm/functions/FunctionN.invoke
val l4: suspend (Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int) -> String
= { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ -> ""}
l4.invoke(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2) // 22 args, calls kotlin/jvm/functions/FunctionN.invoke
}

View File

@@ -0,0 +1,42 @@
import java
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, string signature, AnonymousClass an) {
getLambdaBody(le) = body and
le.asMethod() = m and
signature = m.getSignature() and
le.getAnonymousClass() = an
}
query predicate memberRefExprs(MemberRefExpr e, Method m, string signature, AnonymousClass an) {
e.asMethod() = m and
signature = m.getSignature() and
e.getAnonymousClass() = an
}
query predicate lambda_modifiers(LambdaExpr le, Method m, string modifiers) {
le.getAnonymousClass().getAMethod() = m and
modifiers = concat(string s | m.hasModifier(s) | s, ", ")
}
query predicate anon_class_member_modifiers(AnonymousClass ac, Method m, string modifiers) {
ac.getAMethod() = m and
modifiers = concat(string s | m.hasModifier(s) | s, ", ")
}
query predicate nonOverrideInvoke(LambdaExpr le, Method m, int pCount) {
le.getAnonymousClass().getAMethod() = m and
not m.hasModifier("override") and
m.getName() = "invoke" and
pCount = m.getNumberOfParameters() and
exists(Method mOtherInvoke |
le.getAnonymousClass().getAMethod() = mOtherInvoke and
mOtherInvoke.hasModifier("override") and
mOtherInvoke.getName() = "invoke"
)
}

View File

@@ -0,0 +1,10 @@
import kotlin.reflect.*
class A {
fun f(s: String) { }
}
fun useRef(a: A, s: String) {
val toCall: KFunction1<String, Unit> = a::f
toCall(s)
}

View File

@@ -0,0 +1,14 @@
package foo.bar
fun x() {
var x = 5
fun <T> a(i: Int) = i + x
x = 6
a<String>(42)
x = 7
fun <T1> C1<T1>.f1(i: Int) = 5
C1<Int>().f1(42)
C1<Int>().f1(42)
}
class C1<T> {}

View File

@@ -0,0 +1,77 @@
fun main(b: Boolean) {
val isEven = IntPredicate { it % 2 == 0 }
val i0 = InterfaceFn1 { a, b -> Unit }
val i1 = InterfaceFn1(::fn2)
val i = InterfaceFnExt1 { i -> this == ""}
val x = IntPredicate(if (b) {
j -> j % 2 == 0
} else {
j -> j % 2 == 1
})
}
fun interface IntPredicate {
fun accept(i: Int): Boolean
}
fun fn2(i: Int, j: Int) { }
fun interface InterfaceFn1 {
fun fn1(i: Int, j: Int)
}
fun interface InterfaceFnExt1 {
fun String.ext(i: Int): Boolean
}
fun interface BigArityPredicate {
fun accept(i0: Int, i1: Int, i2: Int, i3: Int, i4: Int, i5: Int, i6: Int, i7: Int, i8: Int, i9: Int,
i10: Int, i11: Int, i12: Int, i13: Int, i14: Int, i15: Int, i16: Int, i17: Int, i18: Int, i19: Int,
i20: Int, i21: Int, i22: Int): Boolean
}
fun ff(i0: Int, i1: Int, i2: Int, i3: Int, i4: Int, i5: Int, i6: Int, i7: Int, i8: Int, i9: Int,
i10: Int, i11: Int, i12: Int, i13: Int, i14: Int, i15: Int, i16: Int, i17: Int, i18: Int, i19: Int,
i20: Int, i21: Int, i22: Int): Boolean = true
fun fn(boo: Boolean) {
val a = ::ff
val b = BigArityPredicate(a)
val c = BigArityPredicate {i0: Int, i1: Int, i2: Int, i3: Int, i4: Int, i5: Int, i6: Int, i7: Int, i8: Int, i9: Int,
i10: Int, i11: Int, i12: Int, i13: Int, i14: Int, i15: Int, i16: Int, i17: Int, i18: Int, i19: Int,
i20: Int, i21: Int, i22: Int -> true}
val d = SomePredicate<Int> { a -> true }
}
fun interface SomePredicate<T> {
fun fn(i: T): Boolean
}
fun interface InterfaceFn1Sus {
suspend fun fn1(i: Int, j: Int)
}
suspend fun test() {
val i0 = InterfaceFn1Sus { a, b -> Unit }
i0.fn1(1,2)
}
class PropertyRefsTest {
val x = 1
}
fun interface PropertyRefsGetter {
fun f(prt: PropertyRefsTest): Int
}
fun interface IntGetter {
fun f(): Int
}
fun propertyRefsTest(prt: PropertyRefsTest) {
val test1 = IntGetter(prt::x)
val test2 = PropertyRefsGetter(PropertyRefsTest::x)
}

View File

@@ -0,0 +1,23 @@
| exprs.kt:22:15:22:21 | ~... | exprs.kt:22:15:22:15 | x |
| exprs.kt:32:15:32:26 | !... | exprs.kt:32:15:32:26 | contains(...) |
| exprs.kt:79:15:79:22 | ~... | exprs.kt:79:15:79:16 | lx |
| exprs.kt:121:14:121:16 | !... | exprs.kt:121:15:121:16 | b1 |
| exprs.kt:202:19:202:20 | ...!! | exprs.kt:202:18:202:18 | x |
| exprs.kt:211:20:211:21 | ...!! | exprs.kt:211:19:211:19 | s |
| exprs.kt:212:20:212:21 | ...!! | exprs.kt:212:19:212:19 | s |
| exprs.kt:286:5:286:6 | -... | exprs.kt:286:6:286:6 | i |
| exprs.kt:287:5:287:6 | +... | exprs.kt:287:6:287:6 | i |
| exprs.kt:288:5:288:6 | -... | exprs.kt:288:6:288:6 | d |
| exprs.kt:289:5:289:6 | +... | exprs.kt:289:6:289:6 | d |
| exprs.kt:300:5:300:11 | ~... | exprs.kt:300:5:300:5 | i |
| exprs.kt:302:5:302:6 | -... | exprs.kt:302:6:302:6 | b |
| exprs.kt:303:5:303:6 | +... | exprs.kt:303:6:303:6 | b |
| exprs.kt:314:5:314:11 | ~... | exprs.kt:314:5:314:5 | b |
| exprs.kt:316:5:316:6 | -... | exprs.kt:316:6:316:6 | s |
| exprs.kt:317:5:317:6 | +... | exprs.kt:317:6:317:6 | s |
| exprs.kt:328:5:328:11 | ~... | exprs.kt:328:5:328:5 | s |
| exprs.kt:330:5:330:6 | -... | exprs.kt:330:6:330:6 | l |
| exprs.kt:331:5:331:6 | +... | exprs.kt:331:6:331:6 | l |
| exprs.kt:342:5:342:11 | ~... | exprs.kt:342:5:342:5 | l |
| exprs.kt:344:5:344:6 | +... | exprs.kt:344:6:344:6 | f |
| exprs.kt:345:5:345:6 | -... | exprs.kt:345:6:345:6 | f |

View File

@@ -0,0 +1,36 @@
import java
newtype TMaybeElement =
TElement(Element e) or
TNoElement()
class MaybeElement extends TMaybeElement {
abstract string toString();
abstract Location getLocation();
}
class YesMaybeElement extends MaybeElement {
Element e;
YesMaybeElement() { this = TElement(e) }
override string toString() { result = e.toString() }
override Location getLocation() { result = e.getLocation() }
}
class NoMaybeElement extends MaybeElement {
NoMaybeElement() { this = TNoElement() }
override string toString() { result = "<none>" }
override Location getLocation() { none() }
}
MaybeElement op(UnaryExpr e) {
if exists(e.getExpr()) then result = TElement(e.getExpr()) else result = TNoElement()
}
from Expr e
select e, op(e)

View File

@@ -0,0 +1,10 @@
fun testWhen(i: Int): Int {
return when(i) {
0 -> 1
1 -> 2
2 -> return 3
3 -> throw Exception("No threes please")
else -> 999
}
}