FIR: use Java 8 rules in not implemented checker

This commit is contained in:
Mikhail Glukhikh
2021-04-06 09:47:02 +03:00
parent 5de8401494
commit 84ccf7bbb1
19 changed files with 171 additions and 53 deletions
@@ -0,0 +1,46 @@
FILE: symbolsAndDescriptors.kt
public final class IrClassSymbolImpl : R|IrBindableSymbolBase<kotlin/String>|, R|IrClassSymbol| {
public constructor(descriptor: R|kotlin/String?| = Null(null)): R|IrClassSymbolImpl| {
super<R|IrBindableSymbolBase<kotlin/String>|>(R|<local>/descriptor|)
}
}
public abstract interface IrClassSymbol : R|IrClassifierSymbol|, R|IrBindableSymbol<kotlin/String>| {
}
public abstract interface IrClassifierSymbol : R|IrSymbol|, R|TypeConstructorMarker| {
public abstract override val descriptor: R|kotlin/CharSequence|
public get(): R|kotlin/CharSequence|
}
public abstract interface IrSymbol : R|kotlin/Any| {
public abstract val descriptor: R|kotlin/Any|
public get(): R|kotlin/Any|
}
public abstract interface TypeConstructorMarker : R|kotlin/Any| {
}
public abstract interface IrBindableSymbol<out D : R|kotlin/Any|> : R|IrSymbol| {
public abstract override val descriptor: R|D|
public get(): R|D|
}
public abstract class IrBindableSymbolBase<out D : R|kotlin/Any|> : R|IrBindableSymbol<D>|, R|IrSymbolBase<D>| {
public constructor<out D : R|kotlin/Any|>(descriptor: R|D?|): R|IrBindableSymbolBase<D>| {
super<R|IrSymbolBase<D>|>(R|<local>/descriptor|)
}
}
public abstract class IrSymbolBase<out D : R|kotlin/Any|> : R|IrSymbol| {
public constructor<out D : R|kotlin/Any|>(_descriptor: R|D?|): R|IrSymbolBase<D>| {
super<R|kotlin/Any|>()
}
private final val _descriptor: R|D?| = R|<local>/_descriptor|
private get(): R|D?|
public open override val descriptor: R|D|
public get(): R|D| {
^ this@R|/IrSymbolBase|.R|/IrSymbolBase._descriptor|!!
}
}
@@ -0,0 +1,33 @@
class IrClassSymbolImpl(descriptor: String? = null) :
IrBindableSymbolBase<String>(descriptor),
IrClassSymbol
interface IrClassSymbol : IrClassifierSymbol, IrBindableSymbol<String>
interface IrClassifierSymbol : IrSymbol, TypeConstructorMarker {
override val descriptor: CharSequence
}
interface IrSymbol {
val descriptor: Any
}
interface TypeConstructorMarker
interface IrBindableSymbol<out D : Any> : IrSymbol {
override val descriptor: D
}
abstract class IrBindableSymbolBase<out D : Any>(descriptor: D?) :
IrBindableSymbol<D>, IrSymbolBase<D>(descriptor)
abstract class IrSymbolBase<out D : Any>(
private val _descriptor: D?
) : IrSymbol {
override val descriptor: D
get() = _descriptor!!
}