Allow 'lateinit' modifier on local variables
This commit is contained in:
@@ -74,7 +74,7 @@ object ModifierCheckerCore {
|
|||||||
REIFIED_KEYWORD to EnumSet.of(TYPE_PARAMETER),
|
REIFIED_KEYWORD to EnumSet.of(TYPE_PARAMETER),
|
||||||
VARARG_KEYWORD to EnumSet.of(VALUE_PARAMETER, PROPERTY_PARAMETER),
|
VARARG_KEYWORD to EnumSet.of(VALUE_PARAMETER, PROPERTY_PARAMETER),
|
||||||
COMPANION_KEYWORD to EnumSet.of(OBJECT),
|
COMPANION_KEYWORD to EnumSet.of(OBJECT),
|
||||||
LATEINIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY),
|
LATEINIT_KEYWORD to EnumSet.of(MEMBER_PROPERTY, LOCAL_VARIABLE),
|
||||||
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, LOCAL_CLASS),
|
DATA_KEYWORD to EnumSet.of(CLASS_ONLY, LOCAL_CLASS),
|
||||||
INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER),
|
INLINE_KEYWORD to EnumSet.of(FUNCTION, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER),
|
||||||
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
NOINLINE_KEYWORD to EnumSet.of(VALUE_PARAMETER),
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER!>la
|
|||||||
private set
|
private set
|
||||||
|
|
||||||
fun a() {
|
fun a() {
|
||||||
<!WRONG_MODIFIER_TARGET!>lateinit<!> var <!UNUSED_VARIABLE!>a<!>: String
|
lateinit var <!UNUSED_VARIABLE!>a<!>: String
|
||||||
}
|
}
|
||||||
|
|
||||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e1: V
|
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e1: V
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
fun test() {
|
||||||
|
lateinit var s: String
|
||||||
|
s = ""
|
||||||
|
s.length
|
||||||
|
}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public fun test(): kotlin.Unit
|
||||||
@@ -16254,6 +16254,21 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/testData/diagnostics/tests/properties/localLateinit")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class LocalLateinit extends AbstractDiagnosticsTest {
|
||||||
|
public void testAllFilesPresentInLocalLateinit() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/properties/localLateinit"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("localLateinit.kt")
|
||||||
|
public void testLocalLateinit() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/properties/localLateinit/localLateinit.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/diagnostics/tests/qualifiedExpression")
|
@TestMetadata("compiler/testData/diagnostics/tests/qualifiedExpression")
|
||||||
|
|||||||
Reference in New Issue
Block a user