Skip to content

Commit 14e9789

Browse files
authored
Update KotlinPoet (#5147)
* update KotlinPoet * hide new class
1 parent d58aebd commit 14e9789

File tree

636 files changed

+5800
-6034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

636 files changed

+5800
-6034
lines changed

gradle/libraries.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ moshi = { group = "com.squareup.moshi", name = "moshi", version = "1.14.0" }
153153
okio = "com.squareup.okio:okio:3.2.0" # okio was pinned to 3.2.0 to stay compatible with Kotlin 1.5. Now that we have 1.6 as a minimum version, we could certainly update
154154
okio-nodefilesystem = "com.squareup.okio:okio-nodefilesystem:3.2.0"
155155
poet-java = { group = "com.squareup", name = "javapoet", version.ref = "javaPoet" }
156-
poet-kotlin = { group = "com.squareup", name = "kotlinpoet", version = "1.12.0" }
156+
poet-kotlin = { group = "com.squareup", name = "kotlinpoet", version = "1.14.2" }
157157
rx-java2 = { group = "io.reactivex.rxjava2", name = "rxjava", version.ref = "rx-java2" }
158158
rx-java3 = { group = "io.reactivex.rxjava3", name = "rxjava", version.ref = "rx-java3" }
159159
sqldelight-android = { group = "app.cash.sqldelight", name = "android-driver", version.ref = "sqldelight" }

libraries/apollo-compiler/src/main/kotlin/com/apollographql/apollo3/compiler/codegen/kotlin/CgFile.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.compiler.codegen.kotlin
22

3+
import com.squareup.kotlinpoet.ClassName
34
import com.squareup.kotlinpoet.FileSpec
45
import com.squareup.kotlinpoet.FunSpec
56
import com.squareup.kotlinpoet.PropertySpec
@@ -14,10 +15,12 @@ internal class CgFile(
1415
val propertySpecs: List<PropertySpec> = emptyList(),
1516
val funSpecs: List<FunSpec> = emptyList(),
1617
val fileName: String,
18+
val imports: List<CgImport> = emptyList()
1719
)
1820

1921
internal interface CgFileBuilder {
2022
fun prepare()
2123
fun build(): CgFile
2224
}
2325

26+
internal class CgImport(val className: ClassName, val alias: String )

libraries/apollo-compiler/src/main/kotlin/com/apollographql/apollo3/compiler/codegen/kotlin/KotlinCodeGen.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import com.apollographql.apollo3.compiler.hooks.ApolloCompilerKotlinHooks
3232
import com.apollographql.apollo3.compiler.ir.DefaultIrOperations
3333
import com.apollographql.apollo3.compiler.ir.DefaultIrSchema
3434
import com.apollographql.apollo3.compiler.operationoutput.findOperationId
35+
import com.squareup.kotlinpoet.ClassName
3536
import com.squareup.kotlinpoet.FileSpec
3637
import com.squareup.kotlinpoet.FunSpec
3738
import com.squareup.kotlinpoet.KModifier
@@ -221,6 +222,9 @@ internal object KotlinCodeGen {
221222
cgFile.propertySpecs.map { propertySpec -> propertySpec.internal(generateAsInternal) }.forEach { propertySpec ->
222223
builder.addProperty(propertySpec)
223224
}
225+
cgFile.imports.forEach {
226+
builder.addAliasedImport(it.className, it.alias)
227+
}
224228
ApolloCompilerKotlinHooks.FileInfo(fileSpec = builder.build())
225229
}
226230
.let { hooks.postProcessFiles(it) }

libraries/apollo-compiler/src/main/kotlin/com/apollographql/apollo3/compiler/codegen/kotlin/file/OperationBuilder.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.apollographql.apollo3.compiler.codegen.kotlin.file
22

33
import com.apollographql.apollo3.ast.QueryDocumentMinifier
44
import com.apollographql.apollo3.compiler.applyIf
5+
import com.apollographql.apollo3.compiler.capitalizeFirstLetter
56
import com.apollographql.apollo3.compiler.codegen.Identifier.OPERATION_DOCUMENT
67
import com.apollographql.apollo3.compiler.codegen.Identifier.OPERATION_ID
78
import com.apollographql.apollo3.compiler.codegen.Identifier.OPERATION_NAME
@@ -10,6 +11,7 @@ import com.apollographql.apollo3.compiler.codegen.Identifier.id
1011
import com.apollographql.apollo3.compiler.codegen.Identifier.name
1112
import com.apollographql.apollo3.compiler.codegen.kotlin.CgFile
1213
import com.apollographql.apollo3.compiler.codegen.kotlin.CgFileBuilder
14+
import com.apollographql.apollo3.compiler.codegen.kotlin.CgImport
1315
import com.apollographql.apollo3.compiler.codegen.kotlin.KotlinContext
1416
import com.apollographql.apollo3.compiler.codegen.kotlin.KotlinSymbols
1517
import com.apollographql.apollo3.compiler.codegen.kotlin.helpers.makeDataClass
@@ -72,10 +74,18 @@ internal class OperationBuilder(
7274
}
7375

7476
override fun build(): CgFile {
77+
val className = context.resolver.resolveSchemaType(operation.typeCondition)
7578
return CgFile(
7679
packageName = packageName,
7780
fileName = simpleName,
78-
typeSpecs = listOf(typeSpec())
81+
typeSpecs = listOf(typeSpec()),
82+
imports = listOf(
83+
CgImport(
84+
className,
85+
"Compiled${className.simpleName.capitalizeFirstLetter()}"
86+
)
87+
88+
)
7989
)
8090
}
8191

libraries/apollo-compiler/src/main/kotlin/com/apollographql/apollo3/compiler/codegen/kotlin/model/ModelBuilder.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,15 @@ internal class ModelBuilder(
116116
private fun buildAccessorFunSpecs(model: IrModel): List<FunSpec> {
117117
return model.accessors.map { accessor ->
118118

119+
val returnedClassName = context.resolver.resolveModel(accessor.returnedModelId)
119120
FunSpec.builder(accessor.funName())
120121
.applyIf(!context.jsExport) {
121122
receiver(context.resolver.resolveModel(model.id))
122123
}
123-
.addCode("return·this as? %T\n", context.resolver.resolveModel(accessor.returnedModelId))
124+
.returns(returnedClassName.copy(nullable = true))
125+
.addAnnotation(AnnotationSpec.builder(KotlinSymbols.Suppress).addMember("%S", "USELESS_CAST").build())
126+
// https://github.com/square/kotlinpoet/pull/1559
127+
.addCode("return this as? %T\n", returnedClassName)
124128
.build()
125129
}
126130
}

libraries/apollo-compiler/src/test/graphql/com/example/antlr_tokens/kotlin/responseBased/antlr_tokens/TestQuery.kt.expected

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libraries/apollo-compiler/src/test/graphql/com/example/antlr_tokens/kotlin/responseBased/antlr_tokens/adapter/TestQuery_ResponseAdapter.kt.expected

Lines changed: 6 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libraries/apollo-compiler/src/test/graphql/com/example/antlr_tokens/kotlin/responseBased/antlr_tokens/adapter/TestQuery_VariablesAdapter.kt.expected

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libraries/apollo-compiler/src/test/graphql/com/example/arguments_hardcoded/kotlin/responseBased/arguments_hardcoded/TestQuery.kt.expected

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libraries/apollo-compiler/src/test/graphql/com/example/arguments_hardcoded/kotlin/responseBased/arguments_hardcoded/adapter/TestQuery_ResponseAdapter.kt.expected

Lines changed: 6 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)