diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate1.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate1.java new file mode 100644 index 000000000000..30cb00e989d2 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate1.java @@ -0,0 +1 @@ +STR."" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate2.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate2.java new file mode 100644 index 000000000000..7b71852a1c49 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate2.java @@ -0,0 +1 @@ +STR."\{}" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate3.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate3.java new file mode 100644 index 000000000000..3c8fc0266353 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate3.java @@ -0,0 +1 @@ +STR."\{ 1 }" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate4.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate4.java new file mode 100644 index 000000000000..8ed85f9cb605 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate4.java @@ -0,0 +1 @@ +STR."\{ (1) } \{ "!" }" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate5.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate5.java new file mode 100644 index 000000000000..95977c8be962 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate5.java @@ -0,0 +1,2 @@ +STR."\{ """ +!""" }" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate6.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate6.java new file mode 100644 index 000000000000..aaa1fe16b3a6 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate6.java @@ -0,0 +1 @@ +"\{}" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate7.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate7.java new file mode 100644 index 000000000000..d6e2eb7dd12c --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate7.java @@ -0,0 +1 @@ +STR."\{}".length() \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate8.java b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate8.java new file mode 100644 index 000000000000..2614b2d5d270 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/StringTemplate8.java @@ -0,0 +1 @@ +STR."\{ \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate1.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate1.java new file mode 100644 index 000000000000..ca37f5db3e1f --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate1.java @@ -0,0 +1,2 @@ +STR.""" +""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate2.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate2.java new file mode 100644 index 000000000000..ca25e337b4eb --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate2.java @@ -0,0 +1,2 @@ +STR.""" +\{}""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate3.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate3.java new file mode 100644 index 000000000000..0d9671f06983 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate3.java @@ -0,0 +1,2 @@ +STR.""" +\{ 1 }""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate4.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate4.java new file mode 100644 index 000000000000..24fdc76fc3fa --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate4.java @@ -0,0 +1,2 @@ +STR.""" +\{ (1) } \{ "!" }""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate5.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate5.java new file mode 100644 index 000000000000..3c41a9f1b1e7 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate5.java @@ -0,0 +1,3 @@ +STR.""" +\{ """ +!""" }""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate6.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate6.java new file mode 100644 index 000000000000..48c24c3d238a --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate6.java @@ -0,0 +1,2 @@ +""" +\{}""" \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate7.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate7.java new file mode 100644 index 000000000000..4ef4f52fbeef --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate7.java @@ -0,0 +1,2 @@ +STR.""" +\{}""".length() \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate8.java b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate8.java new file mode 100644 index 000000000000..1a193d05fe33 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/expressions/TextBlockTemplate8.java @@ -0,0 +1 @@ +STR."""\{ \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/parser/JavaParsingTestCase.java b/java/java-tests/testSrc/com/intellij/java/parser/JavaParsingTestCase.java index 2fb48d113641..43d161d85db9 100644 --- a/java/java-tests/testSrc/com/intellij/java/parser/JavaParsingTestCase.java +++ b/java/java-tests/testSrc/com/intellij/java/parser/JavaParsingTestCase.java @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.parser; import com.intellij.JavaTestUtil; @@ -62,6 +62,16 @@ public abstract class JavaParsingTestCase extends ParsingTestCase { myLanguageLevel = languageLevel; } + protected void doParserTest(Consumer parser) { + String name = getTestName(false); + try { + doParserTest(loadFile(name + "." + myFileExt), parser); + } + catch (IOException e) { + throw new RuntimeException(e); + } + } + protected void doParserTest(String text, Consumer parser) { String name = getTestName(false); myFile = createPsiFile(name, text, parser); diff --git a/java/java-tests/testSrc/com/intellij/java/parser/partial/ExpressionParserTest.java b/java/java-tests/testSrc/com/intellij/java/parser/partial/ExpressionParserTest.java index a198fd50e19d..0a00338bbb58 100644 --- a/java/java-tests/testSrc/com/intellij/java/parser/partial/ExpressionParserTest.java +++ b/java/java-tests/testSrc/com/intellij/java/parser/partial/ExpressionParserTest.java @@ -162,24 +162,28 @@ public class ExpressionParserTest extends JavaParsingTestCase { public void testYieldAsExpr2() { doParserTest("yield += 2"); } public void testYieldAsExpr3() { doParserTest("yield ? 10 : 20"); } - public void testStringTemplate1() { doParserTest("STR.\"\""); } - public void testStringTemplate2() { doParserTest("STR.\"\\{}\""); } - public void testStringTemplate3() { doParserTest("STR.\"\\{ 1 }\""); } - public void testStringTemplate4() { doParserTest("STR.\"\\{ (1) } \\{ \"!\" }\""); } - public void testStringTemplate5() { doParserTest("STR.\"\\{ \"\"\"\n!\"\"\" }\""); } - public void testStringTemplate6() { doParserTest("\"\\{}\""); } - public void testStringTemplate7() { doParserTest("STR.\"\\{}\".length()"); } - public void testStringTemplate8() { doParserTest("STR.\"\\{"); } - public void testTextBlockTemplate1() { doParserTest("STR.\"\"\"\n\"\"\""); } - public void testTextBlockTemplate2() { doParserTest("STR.\"\"\"\n\\{}\"\"\""); } - public void testTextBlockTemplate3() { doParserTest("STR.\"\"\"\n\\{ 1 }\"\"\""); } - public void testTextBlockTemplate4() { doParserTest("STR.\"\"\"\n\\{ (1) } \\{ \"!\" }\"\"\""); } - public void testTextBlockTemplate5() { doParserTest("STR.\"\"\"\n\\{ \"\"\"\n!\"\"\" }\"\"\""); } - public void testTextBlockTemplate6() { doParserTest("\"\"\"\n\\{}\"\"\""); } - public void testTextBlockTemplate7() { doParserTest("STR.\"\"\"\n\\{}\"\"\".length()"); } - public void testTextBlockTemplate8() { doParserTest("STR.\"\"\"\\{"); } + public void testStringTemplate1() { doParserTest(); } + public void testStringTemplate2() { doParserTest(); } + public void testStringTemplate3() { doParserTest(); } + public void testStringTemplate4() { doParserTest(); } + public void testStringTemplate5() { doParserTest(); } + public void testStringTemplate6() { doParserTest(); } + public void testStringTemplate7() { doParserTest(); } + public void testStringTemplate8() { doParserTest(); } + public void testTextBlockTemplate1() { doParserTest(); } + public void testTextBlockTemplate2() { doParserTest(); } + public void testTextBlockTemplate3() { doParserTest(); } + public void testTextBlockTemplate4() { doParserTest(); } + public void testTextBlockTemplate5() { doParserTest(); } + public void testTextBlockTemplate6() { doParserTest(); } + public void testTextBlockTemplate7() { doParserTest(); } + public void testTextBlockTemplate8() { doParserTest(); } private void doParserTest(String text) { doParserTest(text, builder -> JavaParser.INSTANCE.getExpressionParser().parse(builder)); } + + private void doParserTest() { + doParserTest(builder -> JavaParser.INSTANCE.getExpressionParser().parse(builder)); + } } \ No newline at end of file