lateinit modifier on property
This commit is contained in:
@@ -166,6 +166,8 @@ public interface JetTokens {
|
||||
JetKeywordToken FINALLY_KEYWORD = JetKeywordToken.softKeyword("finally");
|
||||
JetModifierKeywordToken FINAL_KEYWORD = JetModifierKeywordToken.softKeywordModifier("final");
|
||||
|
||||
JetModifierKeywordToken LATE_INIT_KEYWORD = JetModifierKeywordToken.softKeywordModifier("lateinit");
|
||||
|
||||
TokenSet KEYWORDS = TokenSet.create(PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD,
|
||||
THIS_KEYWORD, SUPER_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
|
||||
NULL_KEYWORD,
|
||||
@@ -180,7 +182,8 @@ public interface JetTokens {
|
||||
OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD,
|
||||
CATCH_KEYWORD, FINALLY_KEYWORD, OUT_KEYWORD, FINAL_KEYWORD, VARARG_KEYWORD, REIFIED_KEYWORD,
|
||||
DYNAMIC_KEYWORD, COMPANION_KEYWORD, CONSTRUCTOR_KEYWORD, INIT_KEYWORD, SEALED_KEYWORD,
|
||||
FIELD_KEYWORD, PROPERTY_KEYWORD, RECEIVER_KEYWORD, PARAM_KEYWORD, SPARAM_KEYWORD
|
||||
FIELD_KEYWORD, PROPERTY_KEYWORD, RECEIVER_KEYWORD, PARAM_KEYWORD, SPARAM_KEYWORD,
|
||||
LATE_INIT_KEYWORD
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -192,7 +195,7 @@ public interface JetTokens {
|
||||
new JetModifierKeywordToken[] {
|
||||
ABSTRACT_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, INNER_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD,
|
||||
PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OUT_KEYWORD, IN_KEYWORD, FINAL_KEYWORD, VARARG_KEYWORD,
|
||||
REIFIED_KEYWORD, COMPANION_KEYWORD, SEALED_KEYWORD
|
||||
REIFIED_KEYWORD, COMPANION_KEYWORD, SEALED_KEYWORD, LATE_INIT_KEYWORD
|
||||
};
|
||||
|
||||
TokenSet MODIFIER_KEYWORDS = TokenSet.create(MODIFIER_KEYWORDS_ARRAY);
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl;
|
||||
import java.io.IOException;
|
||||
|
||||
public class JetFileElementType extends IStubFileElementType<KotlinFileStub> {
|
||||
public static final int STUB_VERSION = 52;
|
||||
public static final int STUB_VERSION = 53;
|
||||
|
||||
private static final String NAME = "kotlin.FILE";
|
||||
|
||||
|
||||
@@ -641,7 +641,8 @@ public class DescriptorResolver {
|
||||
variable.isVar(),
|
||||
JetPsiUtil.safeName(variable.getName()),
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
toSourceElement(variable)
|
||||
toSourceElement(variable),
|
||||
false
|
||||
);
|
||||
// For a local variable the type must not be deferred
|
||||
type = getVariableType(propertyDescriptor, scope, variable, dataFlowInfo, false, trace);
|
||||
@@ -738,7 +739,8 @@ public class DescriptorResolver {
|
||||
isVar,
|
||||
JetPsiUtil.safeName(property.getName()),
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
toSourceElement(property)
|
||||
toSourceElement(property),
|
||||
modifierList != null && modifierList.hasModifier(JetTokens.LATE_INIT_KEYWORD)
|
||||
);
|
||||
wrapper.setProperty(propertyDescriptor);
|
||||
|
||||
@@ -1112,7 +1114,8 @@ public class DescriptorResolver {
|
||||
isMutable,
|
||||
name,
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
toSourceElement(parameter)
|
||||
toSourceElement(parameter),
|
||||
false
|
||||
);
|
||||
propertyWrapper.setProperty(propertyDescriptor);
|
||||
propertyDescriptor.setType(type, Collections.<TypeParameterDescriptor>emptyList(),
|
||||
|
||||
@@ -56,7 +56,8 @@ public object ModifierCheckerCore {
|
||||
OUT_KEYWORD to EnumSet.of(TYPE_PARAMETER, TYPE_PROJECTION),
|
||||
REIFIED_KEYWORD to EnumSet.of(TYPE_PARAMETER),
|
||||
VARARG_KEYWORD to EnumSet.of(VALUE_PARAMETER, PROPERTY_PARAMETER),
|
||||
COMPANION_KEYWORD to EnumSet.of(OBJECT)
|
||||
COMPANION_KEYWORD to EnumSet.of(OBJECT),
|
||||
LATE_INIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY)
|
||||
)
|
||||
|
||||
// NOTE: redundant targets must be possible!
|
||||
|
||||
@@ -94,7 +94,8 @@ object DynamicCallableDescriptors {
|
||||
true,
|
||||
name,
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
SourceElement.NO_SOURCE
|
||||
SourceElement.NO_SOURCE,
|
||||
false
|
||||
)
|
||||
propertyDescriptor.setType(
|
||||
DynamicType,
|
||||
|
||||
+4
-2
@@ -92,7 +92,8 @@ public class LazyScriptClassMemberScope protected constructor(
|
||||
false,
|
||||
Name.identifier(ScriptDescriptor.LAST_EXPRESSION_VALUE_FIELD_NAME),
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
SourceElement.NO_SOURCE
|
||||
SourceElement.NO_SOURCE,
|
||||
false
|
||||
)
|
||||
|
||||
val returnType = scriptDescriptor.getScriptCodeDescriptor().getReturnType()
|
||||
@@ -132,7 +133,8 @@ public class LazyScriptClassMemberScope protected constructor(
|
||||
false,
|
||||
parameter.getName(),
|
||||
CallableMemberDescriptor.Kind.DECLARATION,
|
||||
SourceElement.NO_SOURCE
|
||||
SourceElement.NO_SOURCE,
|
||||
false
|
||||
)
|
||||
propertyDescriptor.setType(
|
||||
parameter.getType(),
|
||||
|
||||
Reference in New Issue
Block a user