Value classes: Add isValue property to class descriptors

Reuse isInline flag in proto and IR.
Check metadata version on deserialization.
This commit is contained in:
Ilmir Usmanov
2020-11-17 03:25:04 +01:00
parent 8eff3a6bb3
commit 361ed117bb
16 changed files with 63 additions and 1 deletions
@@ -81,6 +81,7 @@ class FunctionClassDescriptor(
override fun isData() = false
override fun isInline() = false
override fun isFun() = false
override fun isValue() = false
override fun isExpect() = false
override fun isActual() = false
override fun isExternal() = false
@@ -72,6 +72,8 @@ public interface ClassDescriptor extends ClassifierDescriptorWithTypeParameters,
boolean isFun();
boolean isValue();
@NotNull
ReceiverParameterDescriptor getThisAsReceiverParameter();
@@ -71,6 +71,7 @@ class NotFoundClasses(private val storageManager: StorageManager, private val mo
override fun isData() = false
override fun isInline() = false
override fun isFun() = false
override fun isValue() = false
override fun isExpect() = false
override fun isActual() = false
override fun isExternal() = false
@@ -148,6 +148,11 @@ public class ClassDescriptorImpl extends ClassDescriptorBase {
return false;
}
@Override
public boolean isValue() {
return false;
}
@Override
public boolean isInner() {
return false;
@@ -138,6 +138,11 @@ public class EnumEntrySyntheticClassDescriptor extends ClassDescriptorBase {
return false;
}
@Override
public boolean isValue() {
return false;
}
@Override
public boolean isFun() {
return false;
@@ -248,6 +248,11 @@ public class LazySubstitutingClassDescriptor extends ModuleAwareClassDescriptor
return original.isFun();
}
@Override
public boolean isValue() {
return original.isValue();
}
@Override
public boolean isExternal() {
return original.isExternal();
@@ -104,6 +104,11 @@ public class MutableClassDescriptor extends ClassDescriptorBase {
return false;
}
@Override
public boolean isValue() {
return false;
}
@Override
public boolean isCompanionObject() {
return false;