Skip to content

Commit 7de1182

Browse files
authored
Merge pull request #17599 from igfoo/igfoo/constrs
Kotlin: Fix the return type for lambda constructors
2 parents 97ead6f + 2a5b489 commit 7de1182

File tree

5 files changed

+47
-1
lines changed

5 files changed

+47
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9017,7 +9017,7 @@ open class KotlinFileExtractor(
90179017
tw.writeHasLocation(id, locId)
90189018

90199019
// Extract constructor
9020-
val unitType = useType(pluginContext.irBuiltIns.unitType)
9020+
val unitType = useType(pluginContext.irBuiltIns.unitType, TypeContext.RETURN)
90219021
tw.writeConstrs(ids.constructor, "", "", unitType.javaResult.id, id, ids.constructor)
90229022
tw.writeConstrsKotlinType(ids.constructor, unitType.kotlinResult.id)
90239023
tw.writeHasLocation(ids.constructor, locId)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
| dataClass.kt:1:21:1:47 | DataClass | dataClass.kt:1:1:1:47 | DataClass | file://:0:0:0:0 | void |
2+
| delegates.kt:3:1:12:1 | MyClass | delegates.kt:3:1:12:1 | MyClass | file://:0:0:0:0 | void |
3+
| delegates.kt:4:18:6:5 | | delegates.kt:4:18:6:5 | new KProperty1<MyClass,Integer>(...) { ... } | file://:0:0:0:0 | void |
4+
| delegates.kt:4:26:6:5 | | delegates.kt:4:26:6:5 | new Function0<Integer>(...) { ... } | file://:0:0:0:0 | void |
5+
| delegates.kt:8:32:11:5 | | delegates.kt:8:32:11:5 | new KMutableProperty1<MyClass,String>(...) { ... } | file://:0:0:0:0 | void |
6+
| delegates.kt:8:32:11:5 | | delegates.kt:8:32:11:5 | new KMutableProperty1<MyClass,String>(...) { ... } | file://:0:0:0:0 | void |
7+
| delegates.kt:8:66:11:5 | | delegates.kt:8:66:11:5 | new Function3<KProperty<?>,String,String,Unit>(...) { ... } | file://:0:0:0:0 | void |
8+
| enumClass.kt:1:21:1:32 | EnumClass | enumClass.kt:1:1:4:1 | EnumClass | file://:0:0:0:0 | void |
9+
| enumClass.kt:6:6:16:1 | EnumWithFunctions | enumClass.kt:6:1:16:1 | EnumWithFunctions | file://:0:0:0:0 | void |
10+
| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:8:3:11:4 | VAL | file://:0:0:0:0 | void |
11+
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:7:1:10:1 | Class2 | file://:0:0:0:0 | void |
12+
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | Class3 | file://:0:0:0:0 | void |
13+
| methods4.kt:3:1:11:1 | NestedTest | methods4.kt:3:1:11:1 | NestedTest | file://:0:0:0:0 | void |
14+
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:5:3:9:3 | InsideNestedTest | file://:0:0:0:0 | void |
15+
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | | file://:0:0:0:0 | void |
16+
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | | file://:0:0:0:0 | void |
17+
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | file://:0:0:0:0 | void |
18+
| methods.kt:5:1:20:1 | Class | methods.kt:5:1:20:1 | Class | file://:0:0:0:0 | void |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import java
2+
3+
from Constructor c
4+
where c.fromSource()
5+
select c, c.getDeclaringType(), c.getReturnType()
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
| dataClass.kt:1:21:1:47 | DataClass | dataClass.kt:1:1:1:47 | DataClass | file://:0:0:0:0 | void |
2+
| delegates.kt:3:1:12:1 | MyClass | delegates.kt:3:1:12:1 | MyClass | file://:0:0:0:0 | void |
3+
| delegates.kt:4:21:6:5 | | delegates.kt:4:21:6:5 | new KProperty1<MyClass,Integer>(...) { ... } | file://:0:0:0:0 | void |
4+
| delegates.kt:4:26:6:5 | | delegates.kt:4:26:6:5 | new Function0<Integer>(...) { ... } | file://:0:0:0:0 | void |
5+
| delegates.kt:8:35:11:5 | | delegates.kt:8:35:11:5 | new KMutableProperty1<MyClass,String>(...) { ... } | file://:0:0:0:0 | void |
6+
| delegates.kt:8:35:11:5 | | delegates.kt:8:35:11:5 | new KMutableProperty1<MyClass,String>(...) { ... } | file://:0:0:0:0 | void |
7+
| delegates.kt:8:66:11:5 | | delegates.kt:8:66:11:5 | new Function3<KProperty<?>,String,String,Unit>(...) { ... } | file://:0:0:0:0 | void |
8+
| enumClass.kt:1:21:1:32 | EnumClass | enumClass.kt:1:1:4:1 | EnumClass | file://:0:0:0:0 | void |
9+
| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:6:1:16:1 | EnumWithFunctions | file://:0:0:0:0 | void |
10+
| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:8:3:11:4 | VAL | file://:0:0:0:0 | void |
11+
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:7:1:10:1 | Class2 | file://:0:0:0:0 | void |
12+
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | Class3 | file://:0:0:0:0 | void |
13+
| methods4.kt:3:1:11:1 | NestedTest | methods4.kt:3:1:11:1 | NestedTest | file://:0:0:0:0 | void |
14+
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:5:3:9:3 | InsideNestedTest | file://:0:0:0:0 | void |
15+
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | | file://:0:0:0:0 | void |
16+
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | | file://:0:0:0:0 | void |
17+
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | file://:0:0:0:0 | void |
18+
| methods.kt:5:1:20:1 | Class | methods.kt:5:1:20:1 | Class | file://:0:0:0:0 | void |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import java
2+
3+
from Constructor c
4+
where c.fromSource()
5+
select c, c.getDeclaringType(), c.getReturnType()

0 commit comments

Comments
 (0)