[IR] Implement new IrSymbol API
- Add predicate whether symbol is PublicAPI - Split symbols into 2 types (Public/Private) - Fix special implementations
This commit is contained in:
+7
-4
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
|||||||
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||||
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
private val BODILESS_BUILTIN_CLASSES = listOf(
|
private val BODILESS_BUILTIN_CLASSES = listOf(
|
||||||
@@ -55,11 +56,13 @@ private class DescriptorlessIrFileSymbol : IrFileSymbol {
|
|||||||
private var _owner: IrFile? = null
|
private var _owner: IrFile? = null
|
||||||
override val owner get() = _owner!!
|
override val owner get() = _owner!!
|
||||||
|
|
||||||
override var uniqId: UniqId
|
|
||||||
get() = error("Operation is unsupported")
|
|
||||||
set(value) { error("Operation is unsupported") }
|
|
||||||
|
|
||||||
override val isBound get() = _owner != null
|
override val isBound get() = _owner != null
|
||||||
|
|
||||||
|
override val isPublicApi: Boolean
|
||||||
|
get() = error("Operation is unsupported")
|
||||||
|
|
||||||
|
override val signature: IdSignature
|
||||||
|
get() = error("Operation is unsupported")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isBuiltInClass(declaration: IrDeclaration): Boolean =
|
private fun isBuiltInClass(declaration: IrDeclaration): Boolean =
|
||||||
|
|||||||
+7
-5
@@ -24,8 +24,8 @@ import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol
|
|||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl
|
||||||
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||||
import org.jetbrains.kotlin.ir.util.UniqId
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
class WasmBackendContext(
|
class WasmBackendContext(
|
||||||
@@ -90,15 +90,17 @@ class DescriptorlessExternalPackageFragmentSymbol : IrExternalPackageFragmentSym
|
|||||||
private var _owner: IrExternalPackageFragment? = null
|
private var _owner: IrExternalPackageFragment? = null
|
||||||
override val owner get() = _owner!!
|
override val owner get() = _owner!!
|
||||||
|
|
||||||
override var uniqId: UniqId
|
|
||||||
get() = error("Operation is unsupported")
|
|
||||||
set(value) { error("Operation is unsupported") }
|
|
||||||
|
|
||||||
override val isBound get() = _owner != null
|
override val isBound get() = _owner != null
|
||||||
|
|
||||||
override fun bind(owner: IrExternalPackageFragment) {
|
override fun bind(owner: IrExternalPackageFragment) {
|
||||||
_owner = owner
|
_owner = owner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val isPublicApi: Boolean
|
||||||
|
get() = error("Operation is unsupported")
|
||||||
|
|
||||||
|
override val signature: IdSignature
|
||||||
|
get() = error("Operation is unsupported")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,22 +2,24 @@ package org.jetbrains.kotlin.ir.symbols
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.util.UniqId
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
|
|
||||||
abstract class IrDelegatingSymbol<S: IrBindableSymbol<D, B>, B: IrSymbolOwner, D: DeclarationDescriptor>(var delegate: S)
|
abstract class IrDelegatingSymbol<S : IrBindableSymbol<D, B>, B : IrSymbolOwner, D : DeclarationDescriptor>(var delegate: S) :
|
||||||
: IrBindableSymbol<D, B> {
|
IrBindableSymbol<D, B> {
|
||||||
override val owner: B get() = delegate.owner
|
override val owner: B get() = delegate.owner
|
||||||
override val descriptor: D get() = delegate.descriptor
|
override val descriptor: D get() = delegate.descriptor
|
||||||
override val isBound: Boolean get() = delegate.isBound
|
override val isBound: Boolean get() = delegate.isBound
|
||||||
override var uniqId: UniqId
|
override val isPublicApi: Boolean
|
||||||
get() = delegate.uniqId
|
get() = delegate.isPublicApi
|
||||||
set(value: UniqId) { delegate.uniqId = value }
|
|
||||||
|
override val signature: IdSignature
|
||||||
|
get() = delegate.signature
|
||||||
|
|
||||||
override fun bind(owner: B) = delegate.bind(owner)
|
override fun bind(owner: B) = delegate.bind(owner)
|
||||||
override fun hashCode() = delegate.hashCode()
|
override fun hashCode() = delegate.hashCode()
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (this === delegate) return true
|
if (delegate === other) return true
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import org.jetbrains.kotlin.descriptors.*
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrScript
|
import org.jetbrains.kotlin.ir.declarations.IrScript
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
||||||
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
import org.jetbrains.kotlin.ir.util.IrSymbolVisitor
|
import org.jetbrains.kotlin.ir.util.IrSymbolVisitor
|
||||||
import org.jetbrains.kotlin.ir.util.UniqId
|
|
||||||
import org.jetbrains.kotlin.types.model.TypeConstructorMarker
|
import org.jetbrains.kotlin.types.model.TypeConstructorMarker
|
||||||
import org.jetbrains.kotlin.types.model.TypeParameterMarker
|
import org.jetbrains.kotlin.types.model.TypeParameterMarker
|
||||||
|
|
||||||
@@ -30,7 +30,9 @@ interface IrSymbol {
|
|||||||
val descriptor: DeclarationDescriptor
|
val descriptor: DeclarationDescriptor
|
||||||
val isBound: Boolean
|
val isBound: Boolean
|
||||||
|
|
||||||
var uniqId: UniqId
|
val signature: IdSignature
|
||||||
|
|
||||||
|
val isPublicApi: Boolean
|
||||||
|
|
||||||
fun <D, R> accept(visitor: IrSymbolVisitor<R, D>, data: D): R
|
fun <D, R> accept(visitor: IrSymbolVisitor<R, D>, data: D): R
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-35
@@ -21,12 +21,12 @@ import org.jetbrains.kotlin.ir.declarations.*
|
|||||||
import org.jetbrains.kotlin.ir.descriptors.*
|
import org.jetbrains.kotlin.ir.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
||||||
import org.jetbrains.kotlin.ir.symbols.*
|
import org.jetbrains.kotlin.ir.symbols.*
|
||||||
import org.jetbrains.kotlin.ir.util.UniqId
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
|
|
||||||
abstract class IrSymbolBase<out D : DeclarationDescriptor>(override val descriptor: D, override var uniqId: UniqId = UniqId.NONE) : IrSymbol
|
abstract class IrSymbolBase<out D : DeclarationDescriptor>(override val descriptor: D) : IrSymbol
|
||||||
|
|
||||||
abstract class IrBindableSymbolBase<out D : DeclarationDescriptor, B : IrSymbolOwner>(descriptor: D, uniqId: UniqId = UniqId.NONE) :
|
abstract class IrBindableSymbolBase<out D : DeclarationDescriptor, B : IrSymbolOwner>(descriptor: D) :
|
||||||
IrBindableSymbol<D, B>, IrSymbolBase<D>(descriptor, uniqId) {
|
IrBindableSymbol<D, B>, IrSymbolBase<D>(descriptor) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
assert(isOriginalDescriptor(descriptor)) {
|
assert(isOriginalDescriptor(descriptor)) {
|
||||||
@@ -58,6 +58,11 @@ abstract class IrBindableSymbolBase<out D : DeclarationDescriptor, B : IrSymbolO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val isPublicApi: Boolean = false
|
||||||
|
|
||||||
|
override val signature: IdSignature
|
||||||
|
get() = error("IdSignature is allowed only for PublicApi symbols")
|
||||||
|
|
||||||
override val isBound: Boolean
|
override val isBound: Boolean
|
||||||
get() = _owner != null
|
get() = _owner != null
|
||||||
}
|
}
|
||||||
@@ -76,70 +81,63 @@ class IrAnonymousInitializerSymbolImpl(descriptor: ClassDescriptor) :
|
|||||||
constructor(irClassSymbol: IrClassSymbol) : this(irClassSymbol.descriptor) {}
|
constructor(irClassSymbol: IrClassSymbol) : this(irClassSymbol.descriptor) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrClassSymbolImpl(descriptor: ClassDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrClassSymbolImpl(descriptor: ClassDescriptor) :
|
||||||
IrBindableSymbolBase<ClassDescriptor, IrClass>(descriptor, uniqId),
|
IrBindableSymbolBase<ClassDescriptor, IrClass>(descriptor),
|
||||||
IrClassSymbol {
|
IrClassSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedClassDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrEnumEntrySymbolImpl(descriptor: ClassDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrEnumEntrySymbolImpl(descriptor: ClassDescriptor) :
|
||||||
IrBindableSymbolBase<ClassDescriptor, IrEnumEntry>(descriptor, uniqId),
|
IrBindableSymbolBase<ClassDescriptor, IrEnumEntry>(descriptor),
|
||||||
IrEnumEntrySymbol {
|
IrEnumEntrySymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedEnumEntryDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrFieldSymbolImpl(descriptor: PropertyDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrFieldSymbolImpl(descriptor: PropertyDescriptor) :
|
||||||
IrBindableSymbolBase<PropertyDescriptor, IrField>(descriptor, uniqId),
|
IrBindableSymbolBase<PropertyDescriptor, IrField>(descriptor),
|
||||||
IrFieldSymbol {
|
IrFieldSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedFieldDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrTypeParameterSymbolImpl(descriptor: TypeParameterDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrTypeParameterSymbolImpl(descriptor: TypeParameterDescriptor) :
|
||||||
IrBindableSymbolBase<TypeParameterDescriptor, IrTypeParameter>(descriptor, uniqId),
|
IrBindableSymbolBase<TypeParameterDescriptor, IrTypeParameter>(descriptor),
|
||||||
IrTypeParameterSymbol {
|
IrTypeParameterSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedTypeParameterDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrValueParameterSymbolImpl(descriptor: ParameterDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrValueParameterSymbolImpl(descriptor: ParameterDescriptor) :
|
||||||
IrBindableSymbolBase<ParameterDescriptor, IrValueParameter>(descriptor, uniqId),
|
IrBindableSymbolBase<ParameterDescriptor, IrValueParameter>(descriptor),
|
||||||
IrValueParameterSymbol {
|
IrValueParameterSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedValueParameterDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrVariableSymbolImpl(descriptor: VariableDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrVariableSymbolImpl(descriptor: VariableDescriptor) :
|
||||||
IrBindableSymbolBase<VariableDescriptor, IrVariable>(descriptor, uniqId),
|
IrBindableSymbolBase<VariableDescriptor, IrVariable>(descriptor),
|
||||||
IrVariableSymbol {
|
IrVariableSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedVariableDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrSimpleFunctionSymbolImpl(descriptor: FunctionDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrSimpleFunctionSymbolImpl(descriptor: FunctionDescriptor) :
|
||||||
IrBindableSymbolBase<FunctionDescriptor, IrSimpleFunction>(descriptor, uniqId),
|
IrBindableSymbolBase<FunctionDescriptor, IrSimpleFunction>(descriptor),
|
||||||
IrSimpleFunctionSymbol {
|
IrSimpleFunctionSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedSimpleFunctionDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrConstructorSymbolImpl(descriptor: ClassConstructorDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrConstructorSymbolImpl(descriptor: ClassConstructorDescriptor) :
|
||||||
IrBindableSymbolBase<ClassConstructorDescriptor, IrConstructor>(descriptor, uniqId),
|
IrBindableSymbolBase<ClassConstructorDescriptor, IrConstructor>(descriptor),
|
||||||
IrConstructorSymbol {
|
IrConstructorSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedClassConstructorDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrReturnableBlockSymbolImpl(descriptor: FunctionDescriptor) :
|
class IrReturnableBlockSymbolImpl(descriptor: FunctionDescriptor) :
|
||||||
IrBindableSymbolBase<FunctionDescriptor, IrReturnableBlock>(descriptor),
|
IrBindableSymbolBase<FunctionDescriptor, IrReturnableBlock>(descriptor),
|
||||||
IrReturnableBlockSymbol
|
IrReturnableBlockSymbol
|
||||||
|
|
||||||
class IrPropertySymbolImpl(descriptor: PropertyDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrPropertySymbolImpl(descriptor: PropertyDescriptor) :
|
||||||
IrBindableSymbolBase<PropertyDescriptor, IrProperty>(descriptor, uniqId),
|
IrBindableSymbolBase<PropertyDescriptor, IrProperty>(descriptor),
|
||||||
IrPropertySymbol {
|
IrPropertySymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedPropertyDescriptor(), uniqId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IrLocalDelegatedPropertySymbolImpl(descriptor: VariableDescriptorWithAccessors) :
|
class IrLocalDelegatedPropertySymbolImpl(descriptor: VariableDescriptorWithAccessors) :
|
||||||
IrBindableSymbolBase<VariableDescriptorWithAccessors, IrLocalDelegatedProperty>(descriptor),
|
IrBindableSymbolBase<VariableDescriptorWithAccessors, IrLocalDelegatedProperty>(descriptor),
|
||||||
IrLocalDelegatedPropertySymbol
|
IrLocalDelegatedPropertySymbol
|
||||||
|
|
||||||
class IrTypeAliasSymbolImpl(descriptor: TypeAliasDescriptor, uniqId: UniqId = UniqId.NONE) :
|
class IrTypeAliasSymbolImpl(descriptor: TypeAliasDescriptor) :
|
||||||
IrBindableSymbolBase<TypeAliasDescriptor, IrTypeAlias>(descriptor, uniqId),
|
IrBindableSymbolBase<TypeAliasDescriptor, IrTypeAlias>(descriptor),
|
||||||
IrTypeAliasSymbol {
|
IrTypeAliasSymbol {
|
||||||
constructor(uniqId: UniqId) : this(WrappedTypeAliasDescriptor(), uniqId)
|
}
|
||||||
}
|
|
||||||
|
class IrScriptSymbolImpl(descriptor: ScriptDescriptor) :
|
||||||
|
IrScriptSymbol, IrBindableSymbolBase<ScriptDescriptor, IrScript>(descriptor)
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 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.ir.symbols.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.descriptors.WrappedDeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.*
|
||||||
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
|
|
||||||
|
abstract class IrPublicSymbolBase<out D : DeclarationDescriptor>(override val descriptor: D, override val signature: IdSignature) : IrSymbol
|
||||||
|
|
||||||
|
abstract class IrBindablePublicSymbolBase<out D : DeclarationDescriptor, B : IrSymbolOwner>(descriptor: D, sig: IdSignature) :
|
||||||
|
IrBindableSymbol<D, B>, IrPublicSymbolBase<D>(descriptor, sig) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
assert(isOriginalDescriptor(descriptor)) {
|
||||||
|
"Substituted descriptor $descriptor for ${descriptor.original}"
|
||||||
|
}
|
||||||
|
assert(sig.isPublic)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isOriginalDescriptor(descriptor: DeclarationDescriptor): Boolean =
|
||||||
|
descriptor is WrappedDeclarationDescriptor<*> ||
|
||||||
|
// TODO fix declaring/referencing value parameters: compute proper original descriptor
|
||||||
|
descriptor is ValueParameterDescriptor && isOriginalDescriptor(descriptor.containingDeclaration) ||
|
||||||
|
descriptor == descriptor.original
|
||||||
|
|
||||||
|
private var _owner: B? = null
|
||||||
|
override val owner: B
|
||||||
|
get() = _owner ?: throw IllegalStateException("Symbol for $signature is unbound")
|
||||||
|
|
||||||
|
override fun bind(owner: B) {
|
||||||
|
if (_owner == null) {
|
||||||
|
_owner = owner
|
||||||
|
} else {
|
||||||
|
throw IllegalStateException("${javaClass.simpleName} for $signature is already bound")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override val isPublicApi: Boolean = true
|
||||||
|
|
||||||
|
override val isBound: Boolean
|
||||||
|
get() = _owner != null
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrClassPublicSymbolImpl(descriptor: ClassDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<ClassDescriptor, IrClass>(descriptor, sig),
|
||||||
|
IrClassSymbol {
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrEnumEntryPublicSymbolImpl(descriptor: ClassDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<ClassDescriptor, IrEnumEntry>(descriptor, sig),
|
||||||
|
IrEnumEntrySymbol {
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrSimpleFunctionPublicSymbolImpl(descriptor: FunctionDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<FunctionDescriptor, IrSimpleFunction>(descriptor, sig),
|
||||||
|
IrSimpleFunctionSymbol {
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrConstructorPublicSymbolImpl(descriptor: ClassConstructorDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<ClassConstructorDescriptor, IrConstructor>(descriptor, sig),
|
||||||
|
IrConstructorSymbol {
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrPropertyPublicSymbolImpl(descriptor: PropertyDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<PropertyDescriptor, IrProperty>(descriptor, sig),
|
||||||
|
IrPropertySymbol {
|
||||||
|
}
|
||||||
|
|
||||||
|
class IrTypeAliasPublicSymbolImpl(descriptor: TypeAliasDescriptor, sig: IdSignature) :
|
||||||
|
IrBindablePublicSymbolBase<TypeAliasDescriptor, IrTypeAlias>(descriptor, sig),
|
||||||
|
IrTypeAliasSymbol {
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2019 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.ir.symbols.impl
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrScript
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol
|
|
||||||
|
|
||||||
class IrScriptSymbolImpl(descriptor: ScriptDescriptor) :
|
|
||||||
IrScriptSymbol, IrBindableSymbolBase<ScriptDescriptor, IrScript>(descriptor)
|
|
||||||
Reference in New Issue
Block a user