40 lines
1.4 KiB
Kotlin
40 lines
1.4 KiB
Kotlin
/*
|
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
*/
|
|
|
|
package org.jetbrains.kotlin.generators.builtins.numbers.primitives
|
|
|
|
import org.jetbrains.kotlin.generators.builtins.PrimitiveType
|
|
import java.io.PrintWriter
|
|
|
|
class JsPrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(writer) {
|
|
override fun PrimitiveType.shouldGenerate(): Boolean {
|
|
return this != PrimitiveType.LONG
|
|
}
|
|
|
|
override fun FileBuilder.modifyGeneratedFile() {
|
|
suppress("NON_ABSTRACT_FUNCTION_WITH_NO_BODY")
|
|
suppress("UNUSED_PARAMETER")
|
|
}
|
|
|
|
override fun PropertyBuilder.modifyGeneratedCompanionObjectProperty(thisKind: PrimitiveType) {
|
|
if (this.name in setOf("POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NaN")) {
|
|
annotations += "Suppress(\"DIVISION_BY_ZERO\")"
|
|
}
|
|
}
|
|
|
|
override fun ClassBuilder.generateAdditionalMethods(thisKind: PrimitiveType) {
|
|
method {
|
|
signature {
|
|
isOverride = true
|
|
methodName = "hashCode"
|
|
returnType = PrimitiveType.INT.capitalized
|
|
}
|
|
}
|
|
}
|
|
|
|
override fun MethodBuilder.modifyGeneratedRangeUntil(thisKind: PrimitiveType) {
|
|
"this until $parameterName".addAsSingleLineBody(bodyOnNewLine = false)
|
|
}
|
|
} |