diff --git a/Rewrite/src/Rewrite.Java/JavaPrinter.cs b/Rewrite/src/Rewrite.Java/JavaPrinter.cs index fa80fd95..48d224a5 100644 --- a/Rewrite/src/Rewrite.Java/JavaPrinter.cs +++ b/Rewrite/src/Rewrite.Java/JavaPrinter.cs @@ -369,13 +369,13 @@ public override J VisitBreak(J.Break breakStatement, PrintOutputCapture
p) public override J VisitCase(J.Case @case, PrintOutputCapture
p)
{
BeforeSyntax(@case, Space.Location.CASE_PREFIX, p);
- Expression elem = @case.Expressions[0];
+ Expression elem = (Expression)@case.CaseLabels[0];
if (elem is not J.Identifier identifier || !identifier.SimpleName.Equals("default"))
{
p.Append("case");
}
- VisitContainer("", @case.Padding.Expressions, JContainer.Location.CASE_EXPRESSION, ",", "", p);
+ VisitContainer("", @case.Padding.CaseLabels, JContainer.Location.CASE_CASE_LABELS, ",", "", p);
VisitSpace(@case.Padding.Statements.Before, Space.Location.CASE, p);
p.Append(@case.CaseType == J.Case.Types.Statement ? ":" : "->");
VisitStatements(@case.Padding.Statements.Padding.Elements, JRightPadded.Location.CASE, p);
diff --git a/Rewrite/src/Rewrite.Java/Tree/Erroneous.cs b/Rewrite/src/Rewrite.Java/Tree/Erroneous.cs
new file mode 100644
index 00000000..e3e2e791
--- /dev/null
+++ b/Rewrite/src/Rewrite.Java/Tree/Erroneous.cs
@@ -0,0 +1,10 @@
+namespace Rewrite.RewriteJava.Tree;
+
+partial interface J
+{
+ partial class Erroneous
+ {
+ public JavaType? Type => JavaType.Unknown.Instance;
+ public Erroneous WithType(JavaType? type) => this;
+ }
+}
diff --git a/Rewrite/src/Rewrite.Java/Tree/JContainer.cs b/Rewrite/src/Rewrite.Java/Tree/JContainer.cs
index 7adc852e..ea9d96eb 100644
--- a/Rewrite/src/Rewrite.Java/Tree/JContainer.cs
+++ b/Rewrite/src/Rewrite.Java/Tree/JContainer.cs
@@ -149,7 +149,7 @@ public record Location(Space.Location BeforeLocation, JRightPadded.Location Elem
public static readonly Location ANY = new(Space.Location.ANY, JRightPadded.Location.ANY);
public static readonly Location ANNOTATION_ARGUMENTS = new(Space.Location.ANNOTATION_ARGUMENTS, JRightPadded.Location.ANNOTATION_ARGUMENT);
public static readonly Location CASE = new(Space.Location.CASE, JRightPadded.Location.CASE);
- public static readonly Location CASE_EXPRESSION = new(Space.Location.CASE_EXPRESSION, JRightPadded.Location.CASE_EXPRESSION);
+ public static readonly Location CASE_CASE_LABELS = new(Space.Location.CASE_CASE_LABELS, JRightPadded.Location.CASE_CASE_LABELS);
public static readonly Location IMPLEMENTS = new(Space.Location.IMPLEMENTS, JRightPadded.Location.IMPLEMENTS);
public static readonly Location PERMITS = new(Space.Location.PERMITS, JRightPadded.Location.PERMITS);
public static readonly Location LANGUAGE_EXTENSION = new(Space.Location.LANGUAGE_EXTENSION, JRightPadded.Location.LANGUAGE_EXTENSION);
diff --git a/Rewrite/src/Rewrite.Java/Tree/JRightPadded.cs b/Rewrite/src/Rewrite.Java/Tree/JRightPadded.cs
index 95de6828..e3fc0334 100644
--- a/Rewrite/src/Rewrite.Java/Tree/JRightPadded.cs
+++ b/Rewrite/src/Rewrite.Java/Tree/JRightPadded.cs
@@ -143,7 +143,7 @@ public record Location(Space.Location AfterLocation)
public static readonly Location ARRAY_INDEX = new(Space.Location.ARRAY_INDEX_SUFFIX);
public static readonly Location BLOCK_STATEMENT = new(Space.Location.BLOCK_STATEMENT_SUFFIX);
public static readonly Location CASE = new(Space.Location.CASE_SUFFIX);
- public static readonly Location CASE_EXPRESSION = new(Space.Location.CASE_EXPRESSION);
+ public static readonly Location CASE_CASE_LABELS = new(Space.Location.CASE_CASE_LABELS);
public static readonly Location CASE_BODY = new(Space.Location.CASE_BODY);
public static readonly Location CATCH_ALTERNATIVE = new(Space.Location.CATCH_ALTERNATIVE_SUFFIX);
public static readonly Location DIMENSION = new(Space.Location.DIMENSION_SUFFIX);
diff --git a/Rewrite/src/Rewrite.Java/Tree/Space.cs b/Rewrite/src/Rewrite.Java/Tree/Space.cs
index b4b5827c..e35a5835 100644
--- a/Rewrite/src/Rewrite.Java/Tree/Space.cs
+++ b/Rewrite/src/Rewrite.Java/Tree/Space.cs
@@ -218,7 +218,7 @@ public enum Location
CASE,
CASE_PREFIX,
CASE_BODY,
- CASE_EXPRESSION,
+ CASE_CASE_LABELS,
CASE_SUFFIX,
CATCH_ALTERNATIVE_SUFFIX,
CATCH_PREFIX,
@@ -344,6 +344,7 @@ public enum Location
WILDCARD_BOUND,
WILDCARD_PREFIX,
YIELD_PREFIX,
+ ERRONEOUS_PREFIX,
}
private static Space Build(string str, IList