[FIR] Mark value classes as inline in raw fir building

This commit is contained in:
Dmitriy Novozhilov
2021-07-08 16:24:51 +03:00
committed by teamcityserver
parent 8df56af068
commit 4deb935f76
11 changed files with 17 additions and 37 deletions
@@ -1,5 +1,5 @@
FILE: inlineClassConstructor.kt
public final class WithoutConstructor : R|kotlin/Any| {
public final inline class WithoutConstructor : R|kotlin/Any| {
public constructor(): R|WithoutConstructor| {
super<R|kotlin/Any|>()
}
@@ -27,7 +27,7 @@ FILE: inlineClassDeclaration.kt
}
public final inner class D : R|kotlin/Any| {
public final inner inline class D : R|kotlin/Any| {
public constructor(x: R|kotlin/Int|): R|A.D| {
super<R|kotlin/Any|>()
}
@@ -65,7 +65,7 @@ FILE: inlineClassDeclaration.kt
public get(): R|kotlin/Int|
}
public final class CloneableClass1 : R|kotlin/Cloneable| {
public final inline class CloneableClass1 : R|kotlin/Cloneable| {
public constructor(x: R|kotlin/Int|): R|CloneableClass1| {
super<R|kotlin/Any|>()
}
@@ -1,5 +1,5 @@
FILE: inlineClassMembers.kt
public final class BackingFields : R|kotlin/Any| {
public final inline class BackingFields : R|kotlin/Any| {
public constructor(x: R|kotlin/Int|): R|BackingFields| {
super<R|kotlin/Any|>()
}
@@ -82,7 +82,7 @@ FILE: inlineClassMembers.kt
}
}
public final class WithInner : R|kotlin/Any| {
public final inline class WithInner : R|kotlin/Any| {
public constructor(x: R|kotlin/String|): R|WithInner| {
super<R|kotlin/Any|>()
}
@@ -23,7 +23,7 @@ open class Modifier(var modifiers: Long = ModifierFlag.NONE.value) {
setFlag(ModifierFlag.PROPERTY_CONST)
setFlag(ModifierFlag.PARAMETER_CONST)
}
KtTokens.INLINE_KEYWORD -> {
KtTokens.INLINE_KEYWORD, KtTokens.VALUE_KEYWORD -> {
setFlag(if (isInClass) ModifierFlag.CLASS_INLINE else ModifierFlag.FUNCTION_INLINE)
}
else -> {
@@ -866,7 +866,7 @@ open class RawFirBuilder(
isInner = classOrObject.hasModifier(INNER_KEYWORD)
isCompanion = (classOrObject as? KtObjectDeclaration)?.isCompanion() == true
isData = classOrObject.hasModifier(DATA_KEYWORD)
isInline = classOrObject.hasModifier(INLINE_KEYWORD)
isInline = classOrObject.hasModifier(INLINE_KEYWORD) || classOrObject.hasModifier(VALUE_KEYWORD)
isFun = classOrObject.hasModifier(FUN_KEYWORD)
isExternal = classOrObject.hasModifier(EXTERNAL_KEYWORD)
}