Change parsing of statements starting with annotations

If a block statement starts with annotations treat them as they
belong to node of the statement rather than to the closest prefix expression

 #KT-10210 Fixed
This commit is contained in:
Denis Zharkov
2016-10-04 12:00:52 +03:00
parent 001a058529
commit 7353b08f09
12 changed files with 579 additions and 92 deletions
@@ -19751,6 +19751,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/suppress/oneWarning"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("onBlockStatement.kt")
public void testOnBlockStatement() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/suppress/oneWarning/onBlockStatement.kt");
doTest(fileName);
}
@TestMetadata("onClass.kt")
public void testOnClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/suppress/oneWarning/onClass.kt");
@@ -899,6 +899,18 @@ public class ParsingTestGenerated extends AbstractParsingTest {
doParsingTest(fileName);
}
@TestMetadata("blockLevelExpressions.kt")
public void testBlockLevelExpressions() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/annotation/at/blockLevelExpressions.kt");
doParsingTest(fileName);
}
@TestMetadata("danglingBlockLevelAnnotations.kt")
public void testDanglingBlockLevelAnnotations() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/annotation/at/danglingBlockLevelAnnotations.kt");
doParsingTest(fileName);
}
@TestMetadata("declarationsJustAtTyped.kt")
public void testDeclarationsJustAtTyped() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/annotation/at/declarationsJustAtTyped.kt");