Drop ID property which would be unsupported
This commit is contained in:
+3
-4
@@ -51,9 +51,8 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils.*
|
|||||||
import org.jetbrains.kotlin.types.JetType
|
import org.jetbrains.kotlin.types.JetType
|
||||||
import org.jetbrains.kotlin.types.TypeConstructor
|
import org.jetbrains.kotlin.types.TypeConstructor
|
||||||
import org.jetbrains.kotlin.types.TypeUtils.topologicallySortSuperclassesAndRecordAllInstances
|
import org.jetbrains.kotlin.types.TypeUtils.topologicallySortSuperclassesAndRecordAllInstances
|
||||||
import java.util.ArrayList
|
import org.jetbrains.kotlin.utils.identity
|
||||||
import java.util.HashMap
|
import java.util.*
|
||||||
import java.util.HashSet
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a definition of a single class.
|
* Generates a definition of a single class.
|
||||||
@@ -243,7 +242,7 @@ public class ClassTranslator private constructor(
|
|||||||
private fun generateOtherBridges(properties: MutableList<JsPropertyInitializer>) {
|
private fun generateOtherBridges(properties: MutableList<JsPropertyInitializer>) {
|
||||||
for (memberDescriptor in descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
for (memberDescriptor in descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
||||||
if (memberDescriptor is FunctionDescriptor) {
|
if (memberDescriptor is FunctionDescriptor) {
|
||||||
val bridgesToGenerate = generateBridgesForFunctionDescriptor<FunctionDescriptor>(memberDescriptor, ID)
|
val bridgesToGenerate = generateBridgesForFunctionDescriptor(memberDescriptor, identity())
|
||||||
|
|
||||||
for (bridge in bridgesToGenerate) {
|
for (bridge in bridgesToGenerate) {
|
||||||
generateBridge(bridge, properties)
|
generateBridge(bridge, properties)
|
||||||
|
|||||||
+8
-8
@@ -16,14 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.translate.intrinsic.functions.factories
|
package org.jetbrains.kotlin.js.translate.intrinsic.functions.factories
|
||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.*
|
import com.google.dart.compiler.backend.js.ast.JsExpression
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
||||||
import org.jetbrains.kotlin.js.translate.context.Namer
|
import org.jetbrains.kotlin.js.translate.context.Namer
|
||||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
||||||
import org.jetbrains.kotlin.js.translate.utils.ID
|
|
||||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.*
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.*
|
||||||
|
import org.jetbrains.kotlin.utils.identity as ID
|
||||||
|
|
||||||
// TODO Move to FunctionCallCases
|
// TODO Move to FunctionCallCases
|
||||||
public object LongOperationFIF : FunctionIntrinsicFactory {
|
public object LongOperationFIF : FunctionIntrinsicFactory {
|
||||||
@@ -88,17 +88,17 @@ public object LongOperationFIF : FunctionIntrinsicFactory {
|
|||||||
LONG_EQUALS_ANY.apply(descriptor) || LONG_BINARY_OPERATION_LONG.apply(descriptor) || LONG_BIT_SHIFTS.apply(descriptor) ->
|
LONG_EQUALS_ANY.apply(descriptor) || LONG_BINARY_OPERATION_LONG.apply(descriptor) || LONG_BIT_SHIFTS.apply(descriptor) ->
|
||||||
longBinaryIntrinsics[operationName]
|
longBinaryIntrinsics[operationName]
|
||||||
INTEGER_BINARY_OPERATION_LONG.apply(descriptor) ->
|
INTEGER_BINARY_OPERATION_LONG.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], { longFromInt(it) }, ID)
|
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], { longFromInt(it) }, ID())
|
||||||
LONG_BINARY_OPERATION_INTEGER.apply(descriptor) ->
|
LONG_BINARY_OPERATION_INTEGER.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], ID, { longFromInt(it) })
|
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], ID(), { longFromInt(it) })
|
||||||
CHAR_BINARY_OPERATION_LONG.apply(descriptor) ->
|
CHAR_BINARY_OPERATION_LONG.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], { longFromInt(charToInt(it)) }, ID)
|
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], { longFromInt(charToInt(it)) }, ID())
|
||||||
LONG_BINARY_OPERATION_CHAR.apply(descriptor) ->
|
LONG_BINARY_OPERATION_CHAR.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], ID, { longFromInt(charToInt(it)) })
|
wrapIntrinsicIfPresent(longBinaryIntrinsics[operationName], ID(), { longFromInt(charToInt(it)) })
|
||||||
FLOATING_POINT_BINARY_OPERATION_LONG.apply(descriptor) ->
|
FLOATING_POINT_BINARY_OPERATION_LONG.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(floatBinaryIntrinsics[operationName], ID, { invokeMethod(it, Namer.LONG_TO_NUMBER) })
|
wrapIntrinsicIfPresent(floatBinaryIntrinsics[operationName], ID(), { invokeMethod(it, Namer.LONG_TO_NUMBER) })
|
||||||
LONG_BINARY_OPERATION_FLOATING_POINT.apply(descriptor) ->
|
LONG_BINARY_OPERATION_FLOATING_POINT.apply(descriptor) ->
|
||||||
wrapIntrinsicIfPresent(floatBinaryIntrinsics[operationName], { invokeMethod(it, Namer.LONG_TO_NUMBER) }, ID)
|
wrapIntrinsicIfPresent(floatBinaryIntrinsics[operationName], { invokeMethod(it, Namer.LONG_TO_NUMBER) }, ID())
|
||||||
else ->
|
else ->
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -21,8 +21,8 @@ import com.google.dart.compiler.backend.js.ast.JsExpression
|
|||||||
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
||||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
||||||
import org.jetbrains.kotlin.js.translate.utils.ID
|
|
||||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.*
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.*
|
||||||
|
import org.jetbrains.kotlin.utils.identity
|
||||||
|
|
||||||
public object NumberAndCharConversionFIF : CompositeFIF() {
|
public object NumberAndCharConversionFIF : CompositeFIF() {
|
||||||
val USE_AS_IS = Predicates.or(
|
val USE_AS_IS = Predicates.or(
|
||||||
@@ -71,7 +71,7 @@ public object NumberAndCharConversionFIF : CompositeFIF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
add(USE_AS_IS!!, ConversionUnaryIntrinsic(ID))
|
add(USE_AS_IS!!, ConversionUnaryIntrinsic(identity()))
|
||||||
for((stringPattern, intrinsic) in convertOperations) {
|
for((stringPattern, intrinsic) in convertOperations) {
|
||||||
add(pattern(stringPattern), intrinsic)
|
add(pattern(stringPattern), intrinsic)
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-12
@@ -16,20 +16,23 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.translate.intrinsic.operation
|
package org.jetbrains.kotlin.js.translate.intrinsic.operation
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet
|
import com.google.dart.compiler.backend.js.ast.JsBinaryOperation
|
||||||
import com.google.dart.compiler.backend.js.ast.*
|
import com.google.dart.compiler.backend.js.ast.JsExpression
|
||||||
|
import com.google.dart.compiler.backend.js.ast.JsNumberLiteral
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.psi.JetBinaryExpression
|
|
||||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
|
||||||
import org.jetbrains.kotlin.lexer.JetToken
|
|
||||||
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
||||||
import org.jetbrains.kotlin.js.translate.context.Namer
|
import org.jetbrains.kotlin.js.translate.context.Namer
|
||||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||||
import org.jetbrains.kotlin.js.translate.operation.OperatorTable
|
import org.jetbrains.kotlin.js.translate.operation.OperatorTable
|
||||||
import org.jetbrains.kotlin.js.translate.utils.ID
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.charToInt
|
||||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.*
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.compareForObject
|
||||||
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.invokeMethod
|
||||||
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils.longFromInt
|
||||||
import org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils
|
import org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils
|
||||||
import org.jetbrains.kotlin.js.translate.utils.PsiUtils.getOperationToken
|
import org.jetbrains.kotlin.js.translate.utils.PsiUtils.getOperationToken
|
||||||
|
import org.jetbrains.kotlin.psi.JetBinaryExpression
|
||||||
|
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
||||||
|
import org.jetbrains.kotlin.utils.identity as ID
|
||||||
|
|
||||||
public object LongCompareToBOIF : BinaryOperationIntrinsicFactory {
|
public object LongCompareToBOIF : BinaryOperationIntrinsicFactory {
|
||||||
|
|
||||||
@@ -63,11 +66,11 @@ public object LongCompareToBOIF : BinaryOperationIntrinsicFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val INTEGER_COMPARE_TO_LONG = CompareToBinaryIntrinsic( { longFromInt(it) }, ID)
|
private val INTEGER_COMPARE_TO_LONG = CompareToBinaryIntrinsic( { longFromInt(it) }, ID())
|
||||||
private val CHAR_COMPARE_TO_LONG = CompareToBinaryIntrinsic( { longFromInt(charToInt(it)) }, ID)
|
private val CHAR_COMPARE_TO_LONG = CompareToBinaryIntrinsic( { longFromInt(charToInt(it)) }, ID())
|
||||||
private val LONG_COMPARE_TO_INTEGER = CompareToBinaryIntrinsic( ID, { longFromInt(it) })
|
private val LONG_COMPARE_TO_INTEGER = CompareToBinaryIntrinsic( ID(), { longFromInt(it) })
|
||||||
private val LONG_COMPARE_TO_CHAR = CompareToBinaryIntrinsic( ID, { longFromInt(charToInt(it)) })
|
private val LONG_COMPARE_TO_CHAR = CompareToBinaryIntrinsic( ID(), { longFromInt(charToInt(it)) })
|
||||||
private val LONG_COMPARE_TO_LONG = CompareToBinaryIntrinsic( ID, ID )
|
private val LONG_COMPARE_TO_LONG = CompareToBinaryIntrinsic( ID(), ID() )
|
||||||
|
|
||||||
override public fun getSupportTokens() = OperatorConventions.COMPARISON_OPERATIONS
|
override public fun getSupportTokens() = OperatorConventions.COMPARISON_OPERATIONS
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.translate.utils
|
package org.jetbrains.kotlin.js.translate.utils
|
||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsExpression
|
import com.google.dart.compiler.backend.js.ast.*
|
||||||
import com.google.dart.compiler.backend.js.ast.JsInvocation
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsNameRef
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsParameter
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsPropertyInitializer
|
|
||||||
import com.intellij.util.SmartList
|
import com.intellij.util.SmartList
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.js.translate.context.Namer
|
import org.jetbrains.kotlin.js.translate.context.Namer
|
||||||
@@ -28,8 +24,6 @@ import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
|||||||
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils.simpleReturnFunction
|
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils.simpleReturnFunction
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
|
|
||||||
public val <T> ID: (T) -> T = { it }
|
|
||||||
|
|
||||||
public fun generateDelegateCall(
|
public fun generateDelegateCall(
|
||||||
fromDescriptor: FunctionDescriptor,
|
fromDescriptor: FunctionDescriptor,
|
||||||
toDescriptor: FunctionDescriptor,
|
toDescriptor: FunctionDescriptor,
|
||||||
|
|||||||
Reference in New Issue
Block a user