[FIR] Add diagnostic INAPPLICABLE_LATEINIT_MODIFIER + some builtin types

This commit is contained in:
Nick
2020-08-14 11:36:14 +03:00
parent 091e12c093
commit 7e1c2cfd36
21 changed files with 399 additions and 45 deletions
@@ -54,8 +54,14 @@ class BuiltinTypes {
val enumType: FirImplicitBuiltinTypeRef = FirImplicitEnumTypeRef(null)
val annotationType: FirImplicitBuiltinTypeRef = FirImplicitAnnotationTypeRef(null)
val booleanType: FirImplicitBuiltinTypeRef = FirImplicitBooleanTypeRef(null)
val byteType: FirImplicitBuiltinTypeRef = FirImplicitByteTypeRef(null)
val shortType: FirImplicitBuiltinTypeRef = FirImplicitShortTypeRef(null)
val intType: FirImplicitBuiltinTypeRef = FirImplicitIntTypeRef(null)
val longType: FirImplicitBuiltinTypeRef = FirImplicitLongTypeRef(null)
val doubleType: FirImplicitBuiltinTypeRef = FirImplicitDoubleTypeRef(null)
val floatType: FirImplicitBuiltinTypeRef = FirImplicitFloatTypeRef(null)
val nothingType: FirImplicitBuiltinTypeRef = FirImplicitNothingTypeRef(null)
val nullableNothingType: FirImplicitBuiltinTypeRef = FirImplicitNullableNothingTypeRef(null)
val charType: FirImplicitBuiltinTypeRef = FirImplicitCharTypeRef(null)
val stringType: FirImplicitBuiltinTypeRef = FirImplicitStringTypeRef(null)
}
@@ -72,10 +72,30 @@ class FirImplicitBooleanTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Boolean)
class FirImplicitByteTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Byte)
class FirImplicitShortTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Short)
class FirImplicitIntTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Int)
class FirImplicitLongTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Long)
class FirImplicitDoubleTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Double)
class FirImplicitFloatTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Float)
class FirImplicitNothingTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Nothing)
@@ -84,6 +104,10 @@ class FirImplicitNullableNothingTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Nothing, isNullable = true)
class FirImplicitCharTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.Char)
class FirImplicitStringTypeRef(
source: FirSourceElement?
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.String)
@@ -146,9 +170,15 @@ fun FirImplicitBuiltinTypeRef.withFakeSource(kind: FirFakeSourceElementKind): Fi
is FirImplicitEnumTypeRef -> FirImplicitEnumTypeRef(newSource)
is FirImplicitAnnotationTypeRef -> FirImplicitAnnotationTypeRef(newSource)
is FirImplicitBooleanTypeRef -> FirImplicitBooleanTypeRef(newSource)
is FirImplicitByteTypeRef -> FirImplicitByteTypeRef(newSource)
is FirImplicitShortTypeRef -> FirImplicitShortTypeRef(newSource)
is FirImplicitIntTypeRef -> FirImplicitIntTypeRef(newSource)
is FirImplicitLongTypeRef -> FirImplicitLongTypeRef(newSource)
is FirImplicitDoubleTypeRef -> FirImplicitDoubleTypeRef(newSource)
is FirImplicitFloatTypeRef -> FirImplicitFloatTypeRef(newSource)
is FirImplicitNothingTypeRef -> FirImplicitNothingTypeRef(newSource)
is FirImplicitNullableNothingTypeRef -> FirImplicitNullableNothingTypeRef(newSource)
is FirImplicitCharTypeRef -> FirImplicitCharTypeRef(newSource)
is FirImplicitStringTypeRef -> FirImplicitStringTypeRef(newSource)
is FirImplicitKPropertyTypeRef -> FirImplicitKPropertyTypeRef(
newSource,