Skip to content

Commit 6716c63

Browse files
authored
Merge pull request github#115 from github/smowotn/admin/array-function-modifiers
Add modifiers to array built-in functions
2 parents c71b317 + f35cbd4 commit 6716c63

1 file changed

Lines changed: 8 additions & 12 deletions

File tree

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

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -502,9 +502,7 @@ open class KotlinUsesExtractor(
502502
val length = tw.getLabelFor<DbField>("@\"field;{$it};length\"")
503503
val intTypeIds = useType(pluginContext.irBuiltIns.intType)
504504
tw.writeFields(length, "length", intTypeIds.javaResult.id, intTypeIds.kotlinResult.id, it, length)
505-
// TODO: modifiers
506-
// tw.writeHasModifier(length, getModifierKey("public"))
507-
// tw.writeHasModifier(length, getModifierKey("final"))
505+
addModifiers(length, "public", "final")
508506

509507
// Note we will only emit one `clone()` method per Java array type, so we choose `Array<C?>` as its Kotlin
510508
// return type, where C is the component type with any nested arrays themselves invariant and nullable.
@@ -513,8 +511,7 @@ open class KotlinUsesExtractor(
513511

514512
val clone = tw.getLabelFor<DbMethod>("@\"callable;{$it}.clone(){$it}\"")
515513
tw.writeMethods(clone, "clone", "clone()", it, kotlinCloneReturnTypeLabel, it, clone)
516-
// TODO: modifiers
517-
// tw.writeHasModifier(clone, getModifierKey("public"))
514+
addModifiers(clone, "public")
518515
}
519516

520517
val javaResult = TypeResult(
@@ -815,9 +812,12 @@ class X {
815812
return id
816813
}
817814

815+
fun addModifiers(modifiable: Label<out DbModifiable>, vararg modifiers: String) =
816+
modifiers.forEach { tw.writeHasModifier(modifiable, extractModifier(it)) }
817+
818818
fun extractClassModifiers(c: IrClass, id: Label<out DbClassorinterface>) {
819819
if (c.modality == Modality.ABSTRACT) {
820-
tw.writeHasModifier(id, extractModifier("abstract"))
820+
addModifiers(id, "abstract")
821821
}
822822
}
823823

@@ -1074,9 +1074,7 @@ open class KotlinFileExtractor(
10741074
val type = useSimpleTypeClass(c, emptyList(), false)
10751075
tw.writeFields(instance.id, instance.name, type.javaResult.id, type.kotlinResult.id, id, instance.id)
10761076
tw.writeHasLocation(instance.id, locId)
1077-
tw.writeHasModifier(instance.id, extractModifier("public"))
1078-
tw.writeHasModifier(instance.id, extractModifier("static"))
1079-
tw.writeHasModifier(instance.id, extractModifier("final"))
1077+
addModifiers(instance.id, "public", "static", "final")
10801078
@Suppress("UNCHECKED_CAST")
10811079
tw.writeClass_companion_object(parentId as Label<DbClass>, instance.id, id as Label<DbClass>)
10821080
}
@@ -1096,9 +1094,7 @@ open class KotlinFileExtractor(
10961094
val type = useSimpleTypeClass(c, emptyList(), false)
10971095
tw.writeFields(instance.id, instance.name, type.javaResult.id, type.kotlinResult.id, id, instance.id)
10981096
tw.writeHasLocation(instance.id, locId)
1099-
tw.writeHasModifier(instance.id, extractModifier("public"))
1100-
tw.writeHasModifier(instance.id, extractModifier("static"))
1101-
tw.writeHasModifier(instance.id, extractModifier("final"))
1097+
addModifiers(instance.id, "public", "static", "final")
11021098
@Suppress("UNCHECKED_CAST")
11031099
tw.writeClass_object(id as Label<DbClass>, instance.id)
11041100
}

0 commit comments

Comments
 (0)