Use stable order when generating stubs for scope members

This commit is contained in:
Dmitry Petrov
2017-05-02 15:40:55 +03:00
parent 40939da9fb
commit 0203ba4dff
9 changed files with 143 additions and 82 deletions
@@ -82,4 +82,6 @@ fun KotlinBuiltIns.findSingleFunction(name: Name): FunctionDescriptor =
builtInsPackageScope.findSingleFunction(name) builtInsPackageScope.findSingleFunction(name)
val PsiElement?.startOffsetOrUndefined get() = this?.startOffset ?: UNDEFINED_OFFSET val PsiElement?.startOffsetOrUndefined get() = this?.startOffset ?: UNDEFINED_OFFSET
val PsiElement?.endOffsetOrUndefined get() = this?.endOffset ?: UNDEFINED_OFFSET val PsiElement?.endOffsetOrUndefined get() = this?.endOffset ?: UNDEFINED_OFFSET
@@ -0,0 +1,45 @@
/*
* Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.psi2ir
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import java.util.*
object StableDescriptorsComparator : Comparator<DeclarationDescriptor> {
override fun compare(member1: DeclarationDescriptor?, member2: DeclarationDescriptor?): Int {
if (member1 == member2) return 0
if (member1 == null) return -1
if (member2 == null) return 1
val image1 = DESCRIPTOR_RENDERER.render(member1)
val image2 = DESCRIPTOR_RENDERER.render(member2)
return image1.compareTo(image2)
}
private val DESCRIPTOR_RENDERER = DescriptorRenderer.withOptions {
withDefinedIn = false
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE
includePropertyConstant = true
classifierNamePolicy = ClassifierNamePolicy.FULLY_QUALIFIED
verbose = true
modifiers = DescriptorRendererModifier.ALL
}
}
@@ -28,16 +28,12 @@ import org.jetbrains.kotlin.psi.KtDelegatedSuperTypeEntry
import org.jetbrains.kotlin.psi.KtEnumEntry import org.jetbrains.kotlin.psi.KtEnumEntry
import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.endOffset
import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy import org.jetbrains.kotlin.psi2ir.StableDescriptorsComparator
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.utils.addToStdlib.safeAs import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import java.lang.AssertionError import java.lang.AssertionError
import java.util.*
class ClassGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { class ClassGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) {
fun generateClass(ktClassOrObject: KtClassOrObject): IrClass { fun generateClass(ktClassOrObject: KtClassOrObject): IrClass {
@@ -84,40 +80,19 @@ class ClassGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGe
it?.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE it?.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE
} }
} }
.sortedWith(StableCallableMembersComparator) .sortedWith(StableDescriptorsComparator)
.forEach { fakeOverride -> .forEach { fakeOverride ->
irClass.addMember(declarationGenerator.generateFakeOverrideDeclaration(fakeOverride, ktClassOrObject)) irClass.addMember(declarationGenerator.generateFakeOverrideDeclaration(fakeOverride, ktClassOrObject))
} }
} }
private object StableCallableMembersComparator : Comparator<CallableMemberDescriptor> {
override fun compare(member1: CallableMemberDescriptor?, member2: CallableMemberDescriptor?): Int {
if (member1 == member2) return 0
if (member1 == null) return -1
if (member2 == null) return 1
val image1 = DESCRIPTOR_RENDERER.render(member1)
val image2 = DESCRIPTOR_RENDERER.render(member2)
return image1.compareTo(image2)
}
private val DESCRIPTOR_RENDERER = DescriptorRenderer.withOptions {
withDefinedIn = false
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE
includePropertyConstant = true
classifierNamePolicy = ClassifierNamePolicy.FULLY_QUALIFIED
verbose = true
modifiers = DescriptorRendererModifier.ALL
}
}
private fun generateMembersDeclaredInSupertypeList(irClass: IrClass, ktClassOrObject: KtClassOrObject) { private fun generateMembersDeclaredInSupertypeList(irClass: IrClass, ktClassOrObject: KtClassOrObject) {
ktClassOrObject.getSuperTypeList()?.let { ktSuperTypeList -> ktClassOrObject.getSuperTypeList()?.let { ktSuperTypeList ->
val delegatedMembers = irClass.descriptor.unsubstitutedMemberScope val delegatedMembers = irClass.descriptor.unsubstitutedMemberScope
.getContributedDescriptors(DescriptorKindFilter.CALLABLES) .getContributedDescriptors(DescriptorKindFilter.CALLABLES)
.filterIsInstance<CallableMemberDescriptor>() .filterIsInstance<CallableMemberDescriptor>()
.filter { it.kind == CallableMemberDescriptor.Kind.DELEGATION } .filter { it.kind == CallableMemberDescriptor.Kind.DELEGATION }
.sortedWith(StableCallableMembersComparator) .sortedWith(StableDescriptorsComparator)
if (delegatedMembers.isEmpty()) return if (delegatedMembers.isEmpty()) return
for (ktEntry in ktSuperTypeList.entries) { for (ktEntry in ktSuperTypeList.entries) {
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrPropertyImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl import org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.psi2ir.StableDescriptorsComparator
import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.resolve.scopes.MemberScope
@@ -124,7 +125,7 @@ class ModuleDependenciesGenerator(override val context: GeneratorContext) : Gene
} }
private fun MemberScope.generateChildStubs(irParent: IrDeclarationContainer) { private fun MemberScope.generateChildStubs(irParent: IrDeclarationContainer) {
getContributedDescriptors().generateChildStubs(irParent) getContributedDescriptors().sortedWith(StableDescriptorsComparator).generateChildStubs (irParent)
} }
private fun Collection<DeclarationDescriptor>.generateChildStubs(irParent: IrDeclarationContainer) { private fun Collection<DeclarationDescriptor>.generateChildStubs(irParent: IrDeclarationContainer) {
@@ -0,0 +1,4 @@
// !DUMP_DEPENDENCIES
fun with1(receiver: Any?, block: Any?.() -> Unit) = block(receiver)
fun with2(receiver: Any?, block: Any?.() -> Unit) = receiver.block()
@@ -0,0 +1,17 @@
FILE /extFunInvokeAsFun.kt
FUN public fun with1(receiver: kotlin.Any?, block: kotlin.Any?.() -> kotlin.Unit): kotlin.Unit
VALUE_PARAMETER value-parameter receiver: kotlin.Any?
VALUE_PARAMETER value-parameter block: kotlin.Any?.() -> kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='with1(Any?, Any?.() -> Unit): Unit'
CALL 'invoke(Any?): Unit' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'value-parameter block: Any?.() -> Unit' type=kotlin.Any?.() -> kotlin.Unit origin=VARIABLE_AS_FUNCTION
p1: GET_VAR 'value-parameter receiver: Any?' type=kotlin.Any? origin=null
FUN public fun with2(receiver: kotlin.Any?, block: kotlin.Any?.() -> kotlin.Unit): kotlin.Unit
VALUE_PARAMETER value-parameter receiver: kotlin.Any?
VALUE_PARAMETER value-parameter block: kotlin.Any?.() -> kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='with2(Any?, Any?.() -> Unit): Unit'
CALL 'invoke() on Any?: Unit' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'value-parameter block: Any?.() -> Unit' type=kotlin.Any?.() -> kotlin.Unit origin=VARIABLE_AS_FUNCTION
$receiver: GET_VAR 'value-parameter receiver: Any?' type=kotlin.Any? origin=null
@@ -0,0 +1,11 @@
MODULE_FRAGMENT <built-ins module>
EXTERNAL_PACKAGE_FRAGMENT kotlin
CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE Function1
TYPE_PARAMETER <in P1>
TYPE_PARAMETER <out R>
FUN IR_EXTERNAL_DECLARATION_STUB public abstract operator fun invoke(p1: P1): R
VALUE_PARAMETER value-parameter p1: P1
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun equals(other: kotlin.Any?): kotlin.Boolean
VALUE_PARAMETER value-parameter other: kotlin.Any?
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun hashCode(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toString(): kotlin.String
@@ -2,16 +2,59 @@ MODULE_FRAGMENT <built-ins module>
EXTERNAL_PACKAGE_FRAGMENT kotlin EXTERNAL_PACKAGE_FRAGMENT kotlin
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS Int CLASS IR_EXTERNAL_DECLARATION_STUB CLASS Int
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB private constructor Int() CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB private constructor Int()
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Double): kotlin.Double
VALUE_PARAMETER value-parameter other: kotlin.Double
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Float): kotlin.Float
VALUE_PARAMETER value-parameter other: kotlin.Float
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Long): kotlin.Long
VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Double): kotlin.Double
VALUE_PARAMETER value-parameter other: kotlin.Double
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Float): kotlin.Float
VALUE_PARAMETER value-parameter other: kotlin.Float
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Long): kotlin.Long
VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short
CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT companion object of Int
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB private constructor Companion()
PROPERTY IR_EXTERNAL_DECLARATION_STUB public const final val MAX_VALUE: kotlin.Int = 2147483647
FUN IR_EXTERNAL_DECLARATION_STUB public final fun <get-MAX_VALUE>(): kotlin.Int
PROPERTY IR_EXTERNAL_DECLARATION_STUB public const final val MIN_VALUE: kotlin.Int = -2147483648
FUN IR_EXTERNAL_DECLARATION_STUB public final fun <get-MIN_VALUE>(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun equals(other: kotlin.Any?): kotlin.Boolean
VALUE_PARAMETER value-parameter other: kotlin.Any?
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun hashCode(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toString(): kotlin.String
FUN IR_EXTERNAL_DECLARATION_STUB public final fun inv(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun and(other: kotlin.Int): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun and(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun or(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun shl(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun shr(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun ushr(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun xor(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Byte): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Double): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Double): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Double VALUE_PARAMETER value-parameter other: kotlin.Double
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Float): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Float): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Float VALUE_PARAMETER value-parameter other: kotlin.Float
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun compareTo(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Long): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Long): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Long VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Short): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun compareTo(other: kotlin.Short): kotlin.Int
@@ -29,11 +72,7 @@ MODULE_FRAGMENT <built-ins module>
VALUE_PARAMETER value-parameter other: kotlin.Long VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun div(other: kotlin.Short): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun div(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun equals(other: kotlin.Any?): kotlin.Boolean
VALUE_PARAMETER value-parameter other: kotlin.Any?
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun hashCode(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun inc(): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun inc(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final fun inv(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Byte): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Double): kotlin.Double FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Double): kotlin.Double
@@ -46,20 +85,6 @@ MODULE_FRAGMENT <built-ins module>
VALUE_PARAMETER value-parameter other: kotlin.Long VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Short): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun minus(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Double): kotlin.Double
VALUE_PARAMETER value-parameter other: kotlin.Double
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Float): kotlin.Float
VALUE_PARAMETER value-parameter other: kotlin.Float
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Long): kotlin.Long
VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.Deprecated public final operator fun mod(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun or(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun plus(other: kotlin.Byte): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun plus(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun plus(other: kotlin.Double): kotlin.Double FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun plus(other: kotlin.Double): kotlin.Double
@@ -80,22 +105,6 @@ MODULE_FRAGMENT <built-ins module>
VALUE_PARAMETER value-parameter other: kotlin.Long VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun rangeTo(other: kotlin.Short): kotlin.ranges.IntRange FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun rangeTo(other: kotlin.Short): kotlin.ranges.IntRange
VALUE_PARAMETER value-parameter other: kotlin.Short VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Double): kotlin.Double
VALUE_PARAMETER value-parameter other: kotlin.Double
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Float): kotlin.Float
VALUE_PARAMETER value-parameter other: kotlin.Float
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Long): kotlin.Long
VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB @kotlin.SinceKotlin public final operator fun rem(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun shl(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun shr(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Byte): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Byte): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Byte VALUE_PARAMETER value-parameter other: kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Double): kotlin.Double FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Double): kotlin.Double
@@ -108,6 +117,10 @@ MODULE_FRAGMENT <built-ins module>
VALUE_PARAMETER value-parameter other: kotlin.Long VALUE_PARAMETER value-parameter other: kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Short): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun times(other: kotlin.Short): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Short VALUE_PARAMETER value-parameter other: kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun unaryMinus(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun unaryPlus(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun compareTo(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toByte(): kotlin.Byte FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toByte(): kotlin.Byte
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toChar(): kotlin.Char FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toChar(): kotlin.Char
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toDouble(): kotlin.Double FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toDouble(): kotlin.Double
@@ -115,20 +128,7 @@ MODULE_FRAGMENT <built-ins module>
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toInt(): kotlin.Int FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toInt(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toLong(): kotlin.Long FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toLong(): kotlin.Long
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toShort(): kotlin.Short FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toShort(): kotlin.Short
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun equals(other: kotlin.Any?): kotlin.Boolean
VALUE_PARAMETER value-parameter other: kotlin.Any?
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun hashCode(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toString(): kotlin.String FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toString(): kotlin.String
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun unaryMinus(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final operator fun unaryPlus(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun ushr(bitCount: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter bitCount: kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public final infix fun xor(other: kotlin.Int): kotlin.Int
VALUE_PARAMETER value-parameter other: kotlin.Int
CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT companion object of Int
CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB private constructor Companion()
PROPERTY IR_EXTERNAL_DECLARATION_STUB public const final val MAX_VALUE: kotlin.Int = 2147483647
FUN IR_EXTERNAL_DECLARATION_STUB public final fun <get-MAX_VALUE>(): kotlin.Int
PROPERTY IR_EXTERNAL_DECLARATION_STUB public const final val MIN_VALUE: kotlin.Int = -2147483648
FUN IR_EXTERNAL_DECLARATION_STUB public final fun <get-MIN_VALUE>(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun equals(other: kotlin.Any?): kotlin.Boolean
VALUE_PARAMETER value-parameter other: kotlin.Any?
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun hashCode(): kotlin.Int
FUN IR_EXTERNAL_DECLARATION_STUB public open override fun toString(): kotlin.String
@@ -629,6 +629,12 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase {
doTest(fileName); doTest(fileName);
} }
@TestMetadata("extFunInvokeAsFun.kt")
public void testExtFunInvokeAsFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/ir/irText/expressions/extFunInvokeAsFun.kt");
doTest(fileName);
}
@TestMetadata("extensionPropertyGetterCall.kt") @TestMetadata("extensionPropertyGetterCall.kt")
public void testExtensionPropertyGetterCall() throws Exception { public void testExtensionPropertyGetterCall() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/ir/irText/expressions/extensionPropertyGetterCall.kt"); String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/ir/irText/expressions/extensionPropertyGetterCall.kt");