[Generator] Set up body for rangeTo and rangeUntil by default
Also use expression body formatting for `rangeTo`.
This commit is contained in:
committed by
Space Team
parent
097535aeea
commit
3f3cd2e87a
@@ -447,7 +447,10 @@ abstract class BasePrimitivesGenerator(private val writer: PrintWriter) : BuiltI
|
||||
}
|
||||
returnType = "${opReturnType.capitalized}Range"
|
||||
}
|
||||
}.modifyGeneratedRangeTo(thisKind)
|
||||
val thisCasted = "this${thisKind.castToIfNecessary(opReturnType)}"
|
||||
val otherCasted = "other${otherKind.castToIfNecessary(opReturnType)}"
|
||||
"${returnType}($thisCasted, $otherCasted)".addAsSingleLineBody(bodyOnNewLine = true)
|
||||
}.modifyGeneratedRangeTo(thisKind, otherKind, opReturnType)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -477,7 +480,8 @@ abstract class BasePrimitivesGenerator(private val writer: PrintWriter) : BuiltI
|
||||
}
|
||||
returnType = "${opReturnType.capitalized}Range"
|
||||
}
|
||||
}.modifyGeneratedRangeUntil(thisKind)
|
||||
"this until $parameterName".addAsSingleLineBody(bodyOnNewLine = false)
|
||||
}.modifyGeneratedRangeUntil(thisKind, otherKind, opReturnType)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -620,8 +624,8 @@ abstract class BasePrimitivesGenerator(private val writer: PrintWriter) : BuiltI
|
||||
internal open fun MethodBuilder.modifyGeneratedCompareTo(thisKind: PrimitiveType, otherKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedBinaryOperation(thisKind: PrimitiveType, otherKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedUnaryOperation(thisKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType, otherKind: PrimitiveType, opReturnType: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType, otherKind: PrimitiveType, opReturnType: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedBitShiftOperators(thisKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedBitwiseOperators(thisKind: PrimitiveType) {}
|
||||
internal open fun MethodBuilder.modifyGeneratedConversions(thisKind: PrimitiveType) {}
|
||||
|
||||
@@ -24,6 +24,10 @@ class JsPrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(write
|
||||
}
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType, otherKind: PrimitiveType, opReturnType: PrimitiveType) {
|
||||
noBody()
|
||||
}
|
||||
|
||||
override fun ClassBuilder.generateAdditionalMethods(thisKind: PrimitiveType) {
|
||||
method {
|
||||
signature {
|
||||
@@ -33,8 +37,4 @@ class JsPrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(write
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType) {
|
||||
"this until $parameterName".addAsSingleLineBody(bodyOnNewLine = false)
|
||||
}
|
||||
}
|
||||
@@ -12,4 +12,12 @@ class JvmPrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(writ
|
||||
override fun ClassBuilder.modifyGeneratedClass(thisKind: PrimitiveType) {
|
||||
appendDoc("On the JVM, non-nullable values of this type are represented as values of the primitive type `${thisKind.name.lowercase()}`.")
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType, otherKind: PrimitiveType, opReturnType: PrimitiveType) {
|
||||
noBody()
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType, otherKind: PrimitiveType, opReturnType: PrimitiveType) {
|
||||
noBody()
|
||||
}
|
||||
}
|
||||
@@ -101,17 +101,6 @@ class NativePrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(w
|
||||
"$sign$thisCasted".addAsSingleLineBody(bodyOnNewLine = true)
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType) {
|
||||
val rangeType = PrimitiveType.valueOf(returnType.replace("Range", "").uppercase())
|
||||
val thisCasted = "this" + thisKind.castToIfNecessary(rangeType)
|
||||
val otherCasted = parameterName + parameterType.toPrimitiveType().castToIfNecessary(rangeType)
|
||||
"return ${returnType}($thisCasted, $otherCasted)".addAsMultiLineBody()
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType) {
|
||||
"this until $parameterName".addAsSingleLineBody(bodyOnNewLine = false)
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedBitShiftOperators(thisKind: PrimitiveType) {
|
||||
setAsExternal()
|
||||
}
|
||||
|
||||
@@ -153,17 +153,6 @@ class WasmPrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(wri
|
||||
}
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeTo(thisKind: PrimitiveType) {
|
||||
val rangeType = PrimitiveType.valueOf(returnType.replace("Range", "").uppercase())
|
||||
val thisCasted = "this" + thisKind.castToIfNecessary(rangeType)
|
||||
val otherCasted = parameterName + parameterType.toPrimitiveType().castToIfNecessary(rangeType)
|
||||
"return ${returnType}($thisCasted, $otherCasted)".addAsMultiLineBody()
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType) {
|
||||
"this until $parameterName".addAsSingleLineBody(bodyOnNewLine = false)
|
||||
}
|
||||
|
||||
override fun MethodBuilder.modifyGeneratedBitShiftOperators(thisKind: PrimitiveType) {
|
||||
if (thisKind == PrimitiveType.INT) {
|
||||
implementAsIntrinsic(thisKind, methodName)
|
||||
|
||||
@@ -273,6 +273,8 @@ internal class MethodBuilder : AnnotatedAndDocumented(), PrimitiveBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
fun noBody() { body = null }
|
||||
|
||||
fun String.addAsSingleLineBody(bodyOnNewLine: Boolean = false) {
|
||||
val skip = if (bodyOnNewLine) "$END_LINE " else " "
|
||||
body = " =$skip$this"
|
||||
|
||||
Reference in New Issue
Block a user