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

Skip to content

Commit 2d0bb43

Browse files
tamasvajkigfoo
authored andcommitted
Do not extract local function containers as anonymous classes
1 parent 9597932 commit 2d0bb43

11 files changed

Lines changed: 14 additions & 22 deletions

File tree

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,9 +1038,6 @@ open class KotlinFileExtractor(
10381038

10391039
val idNewexpr = extractNewExpr(ids.constructor, ids.type, locId, id, -1, enclosingCallable, enclosingStmt)
10401040

1041-
@Suppress("UNCHECKED_CAST")
1042-
tw.writeIsAnonymClass(ids.type.javaResult.id as Label<DbClass>, idNewexpr)
1043-
10441041
extractTypeAccessRecursive(pluginContext.irBuiltIns.anyType, locId, idNewexpr, -3, enclosingCallable, enclosingStmt)
10451042
} else {
10461043
// Returns true if type is C<T1, T2, ...> where C is declared `class C<T1, T2, ...> { ... }`

java/ql/test/kotlin/library-tests/classes/PrintAst.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ local_anonymous.kt:
412412
# 10| 3: [Method] fn2
413413
# 10| 5: [BlockStmt] { ... }
414414
# 11| 0: [LocalTypeDeclStmt] class ...
415-
# 11| 0: [AnonymousClass,LocalClass] new Object(...) { ... }
415+
# 11| 0: [LocalClass]
416416
# 11| 1: [Constructor]
417417
# 11| 5: [BlockStmt] { ... }
418418
# 11| 0: [SuperConstructorInvocationStmt] super(...)

java/ql/test/kotlin/library-tests/classes/anonymousClasses.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@
77
| classes.kt:89:16:89:44 | new Interface3<Integer>(...) { ... } | classes.kt:89:16:89:44 | new (...) | | classes.kt:89:16:89:44 | Interface3<Integer> | classes.kt:89:16:89:44 | class ... |
88
| classes.kt:127:16:134:9 | new Object(...) { ... } | classes.kt:127:16:134:9 | new (...) | | classes.kt:127:16:134:9 | Object | classes.kt:127:16:134:9 | class ... |
99
| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | local_anonymous.kt:5:16:7:9 | new (...) | | local_anonymous.kt:5:16:7:9 | Object | local_anonymous.kt:5:16:7:9 | class ... |
10-
| local_anonymous.kt:11:9:11:24 | new Object(...) { ... } | local_anonymous.kt:12:9:12:17 | new (...) | | local_anonymous.kt:12:9:12:17 | Object | local_anonymous.kt:11:9:11:24 | class ... |

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
| classes.kt:129:17:131:17 | Local3 | C1$$Local3 | final, private |
3737
| local_anonymous.kt:3:1:28:1 | Class1 | LocalAnonymous.Class1 | final, public |
3838
| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | <anonymous class> | final, private |
39-
| local_anonymous.kt:11:9:11:24 | new Object(...) { ... } | <anonymous class> | final, private |
39+
| local_anonymous.kt:11:9:11:24 | | Class1$ | final, private |
4040
| local_anonymous.kt:16:23:16:49 | new Function2<Integer,Integer,Integer>(...) { ... } | <anonymous class> | final, private |
4141
| local_anonymous.kt:17:23:17:49 | new Function2<Integer,Integer,Integer>(...) { ... } | <anonymous class> | final, private |
4242
| local_anonymous.kt:21:21:21:31 | new Function1<Class1,Unit>(...) { ... } | <anonymous class> | final, private |

java/ql/test/kotlin/library-tests/classes/localClass.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
| classes.kt:118:9:123:9 | class ... | classes.kt:118:9:123:9 | | classes.kt:117:5:124:5 | fn2 | classes.kt:109:1:136:1 | C1 |
33
| classes.kt:119:13:121:13 | class ... | classes.kt:119:13:121:13 | Local2 | classes.kt:118:9:123:9 | localFn | classes.kt:109:1:136:1 | C1 |
44
| classes.kt:129:17:131:17 | class ... | classes.kt:129:17:131:17 | Local3 | classes.kt:128:13:133:13 | fn | classes.kt:127:16:134:9 | new Object(...) { ... } |
5+
| local_anonymous.kt:11:9:11:24 | class ... | local_anonymous.kt:11:9:11:24 | | local_anonymous.kt:10:5:13:5 | fn2 | local_anonymous.kt:3:1:28:1 | Class1 |
56
| local_anonymous.kt:25:9:25:27 | class ... | local_anonymous.kt:25:9:25:27 | LocalClass | local_anonymous.kt:24:5:27:5 | fn5 | local_anonymous.kt:3:1:28:1 | Class1 |
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
anonymousObjects
22
| local_anonymous.kt:5:16:7:9 | new (...) | local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | anonymous | local |
33
localFunctions
4-
| local_anonymous.kt:11:9:11:24 | fnLocal | local_anonymous.kt:11:9:11:24 | new Object(...) { ... } | anonymous | local |
4+
| local_anonymous.kt:11:9:11:24 | fnLocal | local_anonymous.kt:11:9:11:24 | | not anonymous | local |
55
lambdas
66
| local_anonymous.kt:16:23:16:49 | ...->... | local_anonymous.kt:16:23:16:49 | new Function2<Integer,Integer,Integer>(...) { ... } | anonymous | not local |
77
| local_anonymous.kt:17:23:17:49 | ...->... | local_anonymous.kt:17:23:17:49 | new Function2<Integer,Integer,Integer>(...) { ... } | anonymous | not local |
88
memberRefs
99
| local_anonymous.kt:21:21:21:31 | ...::... | local_anonymous.kt:21:21:21:31 | new Function1<Class1,Unit>(...) { ... } | anonymous | not local |
1010
localClasses
11+
| local_anonymous.kt:11:9:11:24 | | not anonymous | local |
1112
| local_anonymous.kt:25:9:25:27 | LocalClass | not anonymous | local |

java/ql/test/kotlin/library-tests/classes/superTypes.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
| classes.kt:129:17:131:17 | Local3<Integer> | file://<external>/Object.class:0:0:0:0 | Object |
4545
| local_anonymous.kt:3:1:28:1 | Class1 | file://<external>/Object.class:0:0:0:0 | Object |
4646
| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
47-
| local_anonymous.kt:11:9:11:24 | new Object(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
47+
| local_anonymous.kt:11:9:11:24 | | file://<external>/Object.class:0:0:0:0 | Object |
4848
| local_anonymous.kt:16:23:16:49 | new Function2<Integer,Integer,Integer>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<Integer,Integer,Integer> |
4949
| local_anonymous.kt:16:23:16:49 | new Function2<Integer,Integer,Integer>(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
5050
| local_anonymous.kt:17:23:17:49 | new Function2<Integer,Integer,Integer>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<Integer,Integer,Integer> |

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

Lines changed: 0 additions & 4 deletions
This file was deleted.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2282,7 +2282,7 @@ localFunctionCalls.kt:
22822282
# 4| 1: [LocalVariableDeclExpr] x
22832283
# 4| 0: [IntegerLiteral] 5
22842284
# 5| 1: [LocalTypeDeclStmt] class ...
2285-
# 5| 0: [AnonymousClass,LocalClass] new Object(...) { ... }
2285+
# 5| 0: [LocalClass]
22862286
# 5| 1: [Constructor]
22872287
# 5| 5: [BlockStmt] { ... }
22882288
# 5| 0: [SuperConstructorInvocationStmt] super(...)
@@ -2313,7 +2313,7 @@ localFunctionCalls.kt:
23132313
# 8| 0: [VarAccess] x
23142314
# 8| 1: [IntegerLiteral] 7
23152315
# 9| 5: [LocalTypeDeclStmt] class ...
2316-
# 9| 0: [AnonymousClass,LocalClass] new Object(...) { ... }
2316+
# 9| 0: [LocalClass]
23172317
# 9| 1: [Constructor]
23182318
# 9| 5: [BlockStmt] { ... }
23192319
# 9| 0: [SuperConstructorInvocationStmt] super(...)

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ methods
55
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public |
66
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:7:5:7:34 | m | m(foo.bar.NestedTest.InsideNestedTest) | public |
77
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | public |
8-
| methods5.kt:5:3:5:27 | new Object(...) { ... } | methods5.kt:5:3:5:27 | a | a(int) | public |
9-
| methods5.kt:9:3:9:32 | new Object(...) { ... } | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public |
8+
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public |
9+
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public |
1010
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public |
1111
| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public |
1212
| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public |
@@ -20,8 +20,8 @@ constructors
2020
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | Class3 | Class3() |
2121
| methods4.kt:3:1:11:1 | NestedTest | methods4.kt:3:1:11:1 | NestedTest | NestedTest() |
2222
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:5:3:9:3 | InsideNestedTest | InsideNestedTest() |
23-
| methods5.kt:5:3:5:27 | new Object(...) { ... } | methods5.kt:5:3:5:27 | | |
24-
| methods5.kt:9:3:9:32 | new Object(...) { ... } | methods5.kt:9:3:9:32 | | |
23+
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | | |
24+
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | | |
2525
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | C1() |
2626
| methods5.kt:13:1:13:14 | C1<Integer> | methods5.kt:13:1:13:14 | C1<Integer> | C1<Integer>() |
2727
| methods.kt:5:1:19:1 | Class | methods.kt:5:1:19:1 | Class | Class() |

0 commit comments

Comments
 (0)