KModifier for TypeSpec and ParameterSpec.
diff --git a/src/main/java/com/squareup/kotlinpoet/CodeWriter.kt b/src/main/java/com/squareup/kotlinpoet/CodeWriter.kt
index b45fca8..66a2937 100644
--- a/src/main/java/com/squareup/kotlinpoet/CodeWriter.kt
+++ b/src/main/java/com/squareup/kotlinpoet/CodeWriter.kt
@@ -147,8 +147,8 @@
*/
@Throws(IOException::class)
@JvmOverloads fun emitJavaModifiers(
- modifiers: Set<Modifier>,
- implicitModifiers: Set<Modifier> = emptySet<Modifier>()) {
+ modifiers: Set<KModifier>,
+ implicitModifiers: Set<KModifier> = emptySet<KModifier>()) {
if (modifiers.isEmpty()) return
for (modifier in EnumSet.copyOf(modifiers)) {
if (implicitModifiers.contains(modifier)) continue
@@ -313,7 +313,7 @@
@Throws(IOException::class)
private fun emitLiteral(o: Any?) {
if (o is TypeSpec) {
- o.emit(this, null, emptySet<Modifier>())
+ o.emit(this, null, emptySet<KModifier>())
} else if (o is AnnotationSpec) {
o.emit(this, true)
} else if (o is CodeBlock) {
diff --git a/src/main/java/com/squareup/kotlinpoet/FunSpec.kt b/src/main/java/com/squareup/kotlinpoet/FunSpec.kt
index ee091d8..5e91ef6 100644
--- a/src/main/java/com/squareup/kotlinpoet/FunSpec.kt
+++ b/src/main/java/com/squareup/kotlinpoet/FunSpec.kt
@@ -245,10 +245,9 @@
Modifier.NATIVE -> this.modifiers += KModifier.EXTERNAL
Modifier.DEFAULT -> {}
Modifier.STATIC -> addAnnotation(JvmStatic::class)
- Modifier.TRANSIENT -> addAnnotation(Transient::class)
- Modifier.VOLATILE -> addAnnotation(Volatile::class)
Modifier.SYNCHRONIZED -> addAnnotation(Synchronized::class)
Modifier.STRICTFP -> addAnnotation(Strictfp::class)
+ else -> throw IllegalArgumentException("unexpected fun modifier $modifier")
}
}
this.modifiers += visibility
@@ -284,13 +283,13 @@
return this
}
- fun addParameter(type: TypeName, name: String, vararg modifiers: Modifier)
+ fun addParameter(type: TypeName, name: String, vararg modifiers: KModifier)
= addParameter(ParameterSpec.builder(type, name, *modifiers).build())
- fun addParameter(type: Type, name: String, vararg modifiers: Modifier)
+ fun addParameter(type: Type, name: String, vararg modifiers: KModifier)
= addParameter(TypeName.get(type), name, *modifiers)
- fun addParameter(type: KClass<*>, name: String, vararg modifiers: Modifier)
+ fun addParameter(type: KClass<*>, name: String, vararg modifiers: KModifier)
= addParameter(TypeName.get(type), name, *modifiers)
@JvmOverloads fun varargs(varargs: Boolean = true): Builder {
diff --git a/src/main/java/com/squareup/kotlinpoet/KModifier.kt b/src/main/java/com/squareup/kotlinpoet/KModifier.kt
index 9d164dc..e12d606 100644
--- a/src/main/java/com/squareup/kotlinpoet/KModifier.kt
+++ b/src/main/java/com/squareup/kotlinpoet/KModifier.kt
@@ -26,6 +26,7 @@
CONST(Target.PROPERTY),
CROSSINLINE(Target.PARAMETER),
DATA(Target.CLASS),
+ INNER(Target.CLASS),
ENUM(Target.CLASS),
EXTERNAL(Target.FUNCTION),
FINAL(Target.CLASS, Target.FUNCTION, Target.PROPERTY),
diff --git a/src/main/java/com/squareup/kotlinpoet/KotlinFile.kt b/src/main/java/com/squareup/kotlinpoet/KotlinFile.kt
index 8258f09..c6ee592 100644
--- a/src/main/java/com/squareup/kotlinpoet/KotlinFile.kt
+++ b/src/main/java/com/squareup/kotlinpoet/KotlinFile.kt
@@ -147,7 +147,7 @@
for ((i, member) in members.withIndex()) {
if (i > 0) codeWriter.emit("\n")
when (member) {
- is TypeSpec -> member.emit(codeWriter, null, emptySet<Modifier>())
+ is TypeSpec -> member.emit(codeWriter, null, emptySet<KModifier>())
else -> throw AssertionError()
}
}
diff --git a/src/main/java/com/squareup/kotlinpoet/ParameterSpec.kt b/src/main/java/com/squareup/kotlinpoet/ParameterSpec.kt
index 7d6f20a..72bb523 100644
--- a/src/main/java/com/squareup/kotlinpoet/ParameterSpec.kt
+++ b/src/main/java/com/squareup/kotlinpoet/ParameterSpec.kt
@@ -28,13 +28,9 @@
class ParameterSpec private constructor(builder: ParameterSpec.Builder) {
val name: String = builder.name
val annotations: List<AnnotationSpec> = Util.immutableList(builder.annotations)
- val modifiers: Set<Modifier> = Util.immutableSet(builder.modifiers)
+ val modifiers: Set<KModifier> = Util.immutableSet(builder.modifiers)
val type: TypeName = builder.type
- fun hasModifier(modifier: Modifier): Boolean {
- return modifiers.contains(modifier)
- }
-
@Throws(IOException::class)
internal fun emit(codeWriter: CodeWriter, varargs: Boolean) {
codeWriter.emitAnnotations(annotations, true)
@@ -78,7 +74,7 @@
internal val type: TypeName,
internal val name: String) {
internal val annotations = mutableListOf<AnnotationSpec>()
- internal val modifiers = mutableListOf<Modifier>()
+ internal val modifiers = mutableListOf<KModifier>()
fun addAnnotations(annotationSpecs: Iterable<AnnotationSpec>): Builder {
annotations += annotationSpecs
@@ -97,16 +93,26 @@
fun addAnnotation(annotation: Class<*>) = addAnnotation(ClassName.get(annotation))
- fun addModifiers(vararg modifiers: Modifier): Builder {
+ fun addModifiers(vararg modifiers: KModifier): Builder {
this.modifiers += modifiers
return this
}
- fun addModifiers(modifiers: Iterable<Modifier>): Builder {
+ fun addModifiers(modifiers: Iterable<KModifier>): Builder {
this.modifiers += modifiers
return this
}
+ fun jvmModifiers(modifiers: Iterable<Modifier>): Builder {
+ for (modifier in modifiers) {
+ when (modifier) {
+ Modifier.FINAL -> this.modifiers += KModifier.FINAL
+ else -> throw IllegalArgumentException("unexpected parameter modifier $modifier")
+ }
+ }
+ return this
+ }
+
fun build() = ParameterSpec(this)
}
@@ -115,22 +121,22 @@
val type = TypeName.get(element.asType())
val name = element.simpleName.toString()
return ParameterSpec.builder(type, name)
- .addModifiers(element.modifiers)
+ .jvmModifiers(element.modifiers)
.build()
}
@JvmStatic fun parametersOf(method: ExecutableElement)
= method.parameters.map { ParameterSpec.get(it) }
- @JvmStatic fun builder(type: TypeName, name: String, vararg modifiers: Modifier): Builder {
+ @JvmStatic fun builder(type: TypeName, name: String, vararg modifiers: KModifier): Builder {
require(SourceVersion.isName(name)) { "not a valid name: $name" }
return Builder(type, name).addModifiers(*modifiers)
}
- @JvmStatic fun builder(type: Type, name: String, vararg modifiers: Modifier)
+ @JvmStatic fun builder(type: Type, name: String, vararg modifiers: KModifier)
= builder(TypeName.get(type), name, *modifiers)
- @JvmStatic fun builder(type: KClass<*>, name: String, vararg modifiers: Modifier)
+ @JvmStatic fun builder(type: KClass<*>, name: String, vararg modifiers: KModifier)
= builder(TypeName.get(type), name, *modifiers)
}
}
diff --git a/src/main/java/com/squareup/kotlinpoet/TypeSpec.kt b/src/main/java/com/squareup/kotlinpoet/TypeSpec.kt
index 681b43b..b465f47 100644
--- a/src/main/java/com/squareup/kotlinpoet/TypeSpec.kt
+++ b/src/main/java/com/squareup/kotlinpoet/TypeSpec.kt
@@ -22,7 +22,6 @@
import java.util.Locale
import javax.lang.model.SourceVersion
import javax.lang.model.element.Element
-import javax.lang.model.element.Modifier
import kotlin.reflect.KClass
/** A generated class, interface, or enum declaration. */
@@ -32,7 +31,7 @@
val anonymousTypeArguments = builder.anonymousTypeArguments
val kdoc = builder.kdoc.build()
val annotations: List<AnnotationSpec> = Util.immutableList(builder.annotations)
- val modifiers: Set<Modifier> = Util.immutableSet(builder.modifiers)
+ val modifiers: Set<KModifier> = Util.immutableSet(builder.modifiers)
val typeVariables: List<TypeVariableName> = Util.immutableList(builder.typeVariables)
val primaryConstructor = builder.primaryConstructor
val superclass = builder.superclass
@@ -53,8 +52,6 @@
this.originatingElements = Util.immutableList(originatingElementsMutable)
}
- fun hasModifier(modifier: Modifier) = modifiers.contains(modifier)
-
fun toBuilder(): Builder {
val builder = Builder(kind, name, anonymousTypeArguments)
builder.kdoc.add(kdoc)
@@ -72,7 +69,7 @@
}
@Throws(IOException::class)
- internal fun emit(codeWriter: CodeWriter, enumName: String?, implicitModifiers: Set<Modifier>) {
+ internal fun emit(codeWriter: CodeWriter, enumName: String?, implicitModifiers: Set<KModifier>) {
// Nested classes interrupt wrapped line indentation. Stash the current wrapping state and put
// it back afterwards when this type is complete.
val previousStatementLine = codeWriter.statementLine
@@ -100,7 +97,7 @@
} else {
codeWriter.emitKdoc(kdoc)
codeWriter.emitAnnotations(annotations, false)
- codeWriter.emitJavaModifiers(modifiers, implicitModifiers + kind.asMemberModifiers)
+ codeWriter.emitJavaModifiers(modifiers, implicitModifiers)
if (kind == Kind.ANNOTATION) {
codeWriter.emit("%L %L", "@interface", name)
} else {
@@ -151,7 +148,7 @@
val enumConstant = i.next()
if (!firstMember) codeWriter.emit("\n")
enumConstant.value
- .emit(codeWriter, enumConstant.key, emptySet<Modifier>())
+ .emit(codeWriter, enumConstant.key, emptySet<KModifier>())
firstMember = false
if (i.hasNext()) {
codeWriter.emit(",\n")
@@ -203,7 +200,7 @@
// Types.
for (typeSpec in typeSpecs) {
if (!firstMember) codeWriter.emit("\n")
- typeSpec.emit(codeWriter, null, kind.implicitTypeModifiers)
+ typeSpec.emit(codeWriter, null, setOf())
firstMember = false
}
@@ -234,7 +231,7 @@
val out = StringWriter()
try {
val codeWriter = CodeWriter(out)
- emit(codeWriter, null, emptySet<Modifier>())
+ emit(codeWriter, null, emptySet<KModifier>())
return out.toString()
} catch (e: IOException) {
throw AssertionError()
@@ -243,32 +240,22 @@
enum class Kind(
internal val implicitPropertyModifiers: Set<KModifier>,
- internal val implicitFunctionModifiers: Set<KModifier>,
- internal val implicitTypeModifiers: Set<Modifier>,
- internal val asMemberModifiers: Set<Modifier>) {
+ internal val implicitFunctionModifiers: Set<KModifier>) {
CLASS(
setOf(KModifier.PUBLIC),
- setOf(KModifier.PUBLIC),
- emptySet<Modifier>(),
- emptySet<Modifier>()),
+ setOf(KModifier.PUBLIC)),
INTERFACE(
setOf(KModifier.PUBLIC),
- setOf(KModifier.PUBLIC, KModifier.ABSTRACT),
- setOf(Modifier.PUBLIC, Modifier.STATIC),
- setOf(Modifier.STATIC)),
+ setOf(KModifier.PUBLIC, KModifier.ABSTRACT)),
ENUM(
setOf(KModifier.PUBLIC),
- setOf(KModifier.PUBLIC),
- emptySet<Modifier>(),
- setOf(Modifier.STATIC)),
+ setOf(KModifier.PUBLIC)),
ANNOTATION(
emptySet(),
- setOf(KModifier.PUBLIC, KModifier.ABSTRACT),
- setOf(Modifier.PUBLIC, Modifier.STATIC),
- setOf(Modifier.STATIC))
+ setOf(KModifier.PUBLIC, KModifier.ABSTRACT))
}
class Builder internal constructor(
@@ -277,7 +264,7 @@
internal val anonymousTypeArguments: CodeBlock?) {
internal val kdoc = CodeBlock.builder()
internal val annotations = mutableListOf<AnnotationSpec>()
- internal val modifiers = mutableListOf<Modifier>()
+ internal val modifiers = mutableListOf<KModifier>()
internal val typeVariables = mutableListOf<TypeVariableName>()
internal var primaryConstructor : FunSpec? = null
internal var superclass: TypeName = ANY
@@ -320,7 +307,7 @@
fun addAnnotation(annotation: KClass<*>) = addAnnotation(ClassName.get(annotation))
- fun addModifiers(vararg modifiers: Modifier): Builder {
+ fun addModifiers(vararg modifiers: KModifier): Builder {
check(anonymousTypeArguments == null) { "forbidden on anonymous types." }
this.modifiers += modifiers
return this
@@ -446,8 +433,6 @@
}
fun addType(typeSpec: TypeSpec): Builder {
- require(typeSpec.modifiers.containsAll(kind.implicitTypeModifiers)) {
- "$kind $name.${typeSpec.name} requires modifiers ${kind.implicitTypeModifiers}" }
typeSpecs += typeSpec
return this
}
@@ -461,7 +446,7 @@
require(kind != Kind.ENUM || !enumConstants.isEmpty()) {
"at least one enum constant is required for $name" }
- val isAbstract = modifiers.contains(Modifier.ABSTRACT) || kind != Kind.CLASS
+ val isAbstract = modifiers.contains(KModifier.ABSTRACT) || kind != Kind.CLASS
for (funSpec in funSpecs) {
require(isAbstract || !funSpec.modifiers.contains(KModifier.ABSTRACT)) {
"non-abstract type $name cannot declare abstract function ${funSpec.name}" }
diff --git a/src/test/java/com/squareup/kotlinpoet/ParameterSpecTest.kt b/src/test/java/com/squareup/kotlinpoet/ParameterSpecTest.kt
index 301ffef..e6d582d 100644
--- a/src/test/java/com/squareup/kotlinpoet/ParameterSpecTest.kt
+++ b/src/test/java/com/squareup/kotlinpoet/ParameterSpecTest.kt
@@ -15,24 +15,22 @@
*/
package com.squareup.kotlinpoet
-import javax.lang.model.element.Modifier
-import org.junit.Test
-
import com.google.common.truth.Truth.assertThat
+import org.junit.Test
class ParameterSpecTest {
@Test fun equalsAndHashCode() {
- var a = ParameterSpec.builder(Int::class.javaPrimitiveType!!, "foo")
+ var a = ParameterSpec.builder(Int::class, "foo")
.build()
- var b = ParameterSpec.builder(Int::class.javaPrimitiveType!!, "foo")
+ var b = ParameterSpec.builder(Int::class, "foo")
.build()
assertThat(a == b).isTrue()
assertThat(a.hashCode()).isEqualTo(b.hashCode())
- a = ParameterSpec.builder(Int::class.javaPrimitiveType!!, "i")
- .addModifiers(Modifier.STATIC)
+ a = ParameterSpec.builder(Int::class, "i")
+ .addModifiers(KModifier.FINAL)
.build()
- b = ParameterSpec.builder(Int::class.javaPrimitiveType!!, "i")
- .addModifiers(Modifier.STATIC)
+ b = ParameterSpec.builder(Int::class, "i")
+ .addModifiers(KModifier.FINAL)
.build()
assertThat(a == b).isTrue()
assertThat(a.hashCode()).isEqualTo(b.hashCode())
diff --git a/src/test/java/com/squareup/kotlinpoet/TypeSpecTest.kt b/src/test/java/com/squareup/kotlinpoet/TypeSpecTest.kt
index a3eee74..3a0dcea 100644
--- a/src/test/java/com/squareup/kotlinpoet/TypeSpecTest.kt
+++ b/src/test/java/com/squareup/kotlinpoet/TypeSpecTest.kt
@@ -35,7 +35,6 @@
import java.util.Random
import java.util.concurrent.Callable
import javax.lang.model.element.Element
-import javax.lang.model.element.Modifier
import javax.lang.model.element.TypeElement
import kotlin.reflect.KClass
@@ -118,7 +117,7 @@
val simpleThungOfBar = ParameterizedTypeName.get(simpleThung, bar)
val thungParameter = ParameterSpec.builder(thungOfSuperFoo, "thung")
- .addModifiers(Modifier.FINAL)
+ .addModifiers(KModifier.FINAL)
.build()
val aSimpleThung = TypeSpec.anonymousClassBuilder("%N", thungParameter)
.superclass(simpleThungOfBar)
@@ -170,7 +169,7 @@
val service = TypeSpec.classBuilder("Foo")
.addFun(FunSpec.constructorBuilder()
.addModifiers(KModifier.PUBLIC)
- .addParameter(Long::class.javaPrimitiveType!!, "id")
+ .addParameter(Long::class, "id")
.addParameter(ParameterSpec.builder(String::class, "one")
.addAnnotation(ClassName.get(tacosPackage, "Ping"))
.build())
@@ -314,7 +313,7 @@
.addMember("hey", "%L", 12)
.addMember("hello", "%S", "goodbye")
.build())
- .addModifiers(Modifier.PUBLIC)
+ .addModifiers(KModifier.PUBLIC)
.build()
assertThat(toString(taco)).isEqualTo("""
|package com.squareup.tacos
@@ -331,7 +330,7 @@
@Test fun enumWithSubclassing() {
val roshambo = TypeSpec.enumBuilder("Roshambo")
- .addModifiers(Modifier.PUBLIC)
+ .addModifiers(KModifier.PUBLIC)
.addEnumConstant("ROCK", TypeSpec.anonymousClassBuilder("")
.addKdoc("Avalanche!\n")
.build())
@@ -391,7 +390,7 @@
/** https://github.com/square/javapoet/issues/193 */
@Test fun enumsMayDefineAbstractFunctions() {
val roshambo = TypeSpec.enumBuilder("Tortilla")
- .addModifiers(Modifier.PUBLIC)
+ .addModifiers(KModifier.PUBLIC)
.addEnumConstant("CORN", TypeSpec.anonymousClassBuilder("")
.addFun(FunSpec.builder("fold")
.addAnnotation(Override::class)
@@ -471,7 +470,7 @@
/** https://github.com/square/javapoet/issues/253 */
@Test fun enumWithAnnotatedValues() {
val roshambo = TypeSpec.enumBuilder("Roshambo")
- .addModifiers(Modifier.PUBLIC)
+ .addModifiers(KModifier.PUBLIC)
.addEnumConstant("ROCK", TypeSpec.anonymousClassBuilder("")
.addAnnotation(java.lang.Deprecated::class)
.build())
@@ -496,7 +495,7 @@
@Test fun funThrows() {
val taco = TypeSpec.classBuilder("Taco")
- .addModifiers(Modifier.ABSTRACT)
+ .addModifiers(KModifier.ABSTRACT)
.addFun(FunSpec.builder("throwOne")
.addException(IOException::class)
.build())
@@ -546,7 +545,7 @@
.addFun(FunSpec.builder("compareTo")
.addAnnotation(Override::class)
.addModifiers(KModifier.PUBLIC)
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.addParameter(p, "p")
.addStatement("return 0")
.build())
@@ -617,7 +616,7 @@
val taco = ClassName.get(tacosPackage, "Taco")
val food = ClassName.get("com.squareup.tacos", "Food")
val typeSpec = TypeSpec.classBuilder("Taco")
- .addModifiers(Modifier.ABSTRACT)
+ .addModifiers(KModifier.ABSTRACT)
.superclass(ParameterizedTypeName.get(ClassName.get(AbstractSet::class), food))
.addSuperinterface(Serializable::class)
.addSuperinterface(ParameterizedTypeName.get(ClassName.get(Comparable::class), taco))
@@ -653,7 +652,7 @@
|""".trimMargin())
}
- @Test fun classImplementsNestedClass() {
+ @Test fun classImplementsInnerClass() {
val outer = ClassName.get(tacosPackage, "Outer")
val inner = outer.nestedClass("Inner")
val callable = ClassName.get(Callable::class)
@@ -661,7 +660,7 @@
.superclass(ParameterizedTypeName.get(callable,
inner))
.addType(TypeSpec.classBuilder("Inner")
- .addModifiers(Modifier.STATIC)
+ .addModifiers(KModifier.INNER)
.build())
.build()
@@ -671,7 +670,7 @@
|import java.util.concurrent.Callable
|
|class Outer extends Callable<Outer.Inner> {
- | static class Inner {
+ | inner class Inner {
| }
|}
|""".trimMargin())
@@ -724,7 +723,6 @@
.addProperty(taco, "taco")
.addProperty(chips, "chips")
.addType(TypeSpec.classBuilder(taco.simpleName())
- .addModifiers(Modifier.STATIC)
.addProperty(ParameterizedTypeName.get(ClassName.get(List::class), topping), "toppings")
.addProperty(sauce, "sauce")
.addType(TypeSpec.enumBuilder(topping.simpleName())
@@ -733,7 +731,6 @@
.build())
.build())
.addType(TypeSpec.classBuilder(chips.simpleName())
- .addModifiers(Modifier.STATIC)
.addProperty(topping, "topping")
.addProperty(sauce, "dippingSauce")
.build())
@@ -756,7 +753,7 @@
|
| val chips: Chips
|
- | static class Taco {
+ | class Taco {
| val toppings: List<Topping>
|
| val sauce: Sauce
@@ -768,7 +765,7 @@
| }
| }
|
- | static class Chips {
+ | class Chips {
| val topping: Taco.Topping
|
| val dippingSauce: Sauce
@@ -791,11 +788,11 @@
@Test fun annotation() {
val annotation = TypeSpec.annotationBuilder("MyAnnotation")
- .addModifiers(Modifier.PUBLIC)
+ .addModifiers(KModifier.PUBLIC)
.addFun(FunSpec.builder("test")
.addModifiers(KModifier.PUBLIC, KModifier.ABSTRACT)
.defaultValue("%L", 0)
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.build())
.build()
@@ -1003,7 +1000,7 @@
.addKdoc("A hard or soft tortilla, loosely folded and filled with whatever\n")
.addKdoc("[random][%T] tex-mex stuff we could find in the pantry\n", Random::class)
.addKdoc(CodeBlock.of("and some [%T] cheese.\n", String::class))
- .addProperty(PropertySpec.builder(Boolean::class.javaPrimitiveType!!, "soft")
+ .addProperty(PropertySpec.builder(Boolean::class, "soft")
.addKdoc("True for a soft flour tortilla; false for a crunchy corn tortilla.\n")
.build())
.addFun(FunSpec.builder("refold")
@@ -1079,7 +1076,7 @@
@Test fun varargs() {
val taqueria = TypeSpec.classBuilder("Taqueria")
.addFun(FunSpec.builder("prepare")
- .addParameter(Int::class.javaPrimitiveType!!, "workers")
+ .addParameter(Int::class, "workers")
.addParameter(Array<Runnable>::class, "jobs")
.varargs()
.build())
@@ -1130,7 +1127,7 @@
val util = TypeSpec.classBuilder("Util")
.addProperty(escapeHtml)
.addFun(FunSpec.builder("commonPrefixLength")
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.addParameter(ParameterizedTypeName.get(List::class, String::class), "listA")
.addParameter(ParameterizedTypeName.get(List::class, String::class), "listB")
.addCode(funBody)
@@ -1247,13 +1244,10 @@
@Test fun defaultModifiersForMemberInterfacesAndEnums() {
val taco = TypeSpec.classBuilder("Taco")
.addType(TypeSpec.classBuilder("Meat")
- .addModifiers(Modifier.STATIC)
.build())
.addType(TypeSpec.interfaceBuilder("Tortilla")
- .addModifiers(Modifier.STATIC)
.build())
.addType(TypeSpec.enumBuilder("Topping")
- .addModifiers(Modifier.STATIC)
.addEnumConstant("SALSA")
.build())
.build()
@@ -1261,7 +1255,7 @@
|package com.squareup.tacos
|
|class Taco {
- | static class Meat {
+ | class Meat {
| }
|
| interface Tortilla {
@@ -1286,10 +1280,10 @@
.addFun(FunSpec.builder("R").build())
.addFun(FunSpec.builder("Q").build())
.addFun(FunSpec.constructorBuilder()
- .addParameter(Int::class.javaPrimitiveType!!, "p")
+ .addParameter(Int::class, "p")
.build())
.addFun(FunSpec.constructorBuilder()
- .addParameter(Long::class.javaPrimitiveType!!, "o")
+ .addParameter(Long::class, "o")
.build())
.build()
// Static properties, instance properties, constructors, functions, classes.
@@ -1417,7 +1411,7 @@
@Test fun parameterToString() {
val parameter = ParameterSpec.builder(ClassName.get(tacosPackage, "Taco"), "taco")
- .addModifiers(Modifier.FINAL)
+ .addModifiers(KModifier.FINAL)
.addAnnotation(ClassName.get("javax.annotation", "Nullable"))
.build()
assertThat(parameter.toString())
@@ -1507,7 +1501,7 @@
.addFun(FunSpec.builder("compare")
.addAnnotation(Override::class)
.addModifiers(KModifier.PUBLIC)
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.addParameter(String::class, "a")
.addParameter(String::class, "b")
.addStatement("return a.substring(0, length)\n" + ".compareTo(b.substring(0, length))")
@@ -1516,12 +1510,12 @@
val taco = TypeSpec.classBuilder("Taco")
.addFun(FunSpec.builder("comparePrefix")
.returns(stringComparator)
- .addParameter(Int::class.javaPrimitiveType!!, "length", Modifier.FINAL)
+ .addParameter(Int::class, "length", KModifier.FINAL)
.addStatement("return %L", prefixComparator)
.build())
.addFun(FunSpec.builder("sortPrefix")
.addParameter(listOfString, "list")
- .addParameter(Int::class.javaPrimitiveType!!, "length", Modifier.FINAL)
+ .addParameter(Int::class, "length", KModifier.FINAL)
.addStatement("%T.sort(\nlist,\n%L)", Collections::class, prefixComparator)
.build())
.build()
@@ -1648,12 +1642,12 @@
.addFunctions(Arrays.asList(
FunSpec.builder("getAnswer")
.addModifiers(KModifier.PUBLIC)
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.addStatement("return %L", 42)
.build(),
FunSpec.builder("getRandomQuantity")
.addModifiers(KModifier.PUBLIC)
- .returns(Int::class.javaPrimitiveType!!)
+ .returns(Int::class)
.addKdoc("chosen by fair dice roll ;)\n")
.addStatement("return %L", 4)
.build()))