diff --git a/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.cs b/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.cs index c5f12145..08ab7d15 100644 --- a/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.cs +++ b/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.cs @@ -6,17 +6,6 @@ partial interface J { partial class SwitchExpression { - public JavaType? Type - { - get - { - StrongBox type = new(); - new SwitchExpressionJavaVisitor().Visit(this, type); - return type.Value; - } - } - - public SwitchExpression WithType(JavaType? type) => this; class SwitchExpressionJavaVisitor : JavaVisitor> { diff --git a/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.g.cs b/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.g.cs index d5fe2413..752f228b 100644 --- a/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.g.cs +++ b/Rewrite/src/Rewrite.Java/Tree/SwitchExpression.g.cs @@ -31,7 +31,8 @@ public partial class SwitchExpression( Space prefix, Markers markers, J.ControlParentheses selector, - Block cases + Block cases, + JavaType? type ) : J, Expression, TypedTree, Expression, TypedTree, J, MutableTree { public J? AcceptJava

(JavaVisitor

v, P p) @@ -43,31 +44,37 @@ Block cases public SwitchExpression WithId(Guid newId) { - return newId == id ? this : new SwitchExpression(newId, prefix, markers, selector, cases); + return newId == id ? this : new SwitchExpression(newId, prefix, markers, selector, cases, type); } public Space Prefix => prefix; public SwitchExpression WithPrefix(Space newPrefix) { - return newPrefix == prefix ? this : new SwitchExpression(id, newPrefix, markers, selector, cases); + return newPrefix == prefix ? this : new SwitchExpression(id, newPrefix, markers, selector, cases, type); } public Markers Markers => markers; public SwitchExpression WithMarkers(Markers newMarkers) { - return ReferenceEquals(newMarkers, markers) ? this : new SwitchExpression(id, prefix, newMarkers, selector, cases); + return ReferenceEquals(newMarkers, markers) ? this : new SwitchExpression(id, prefix, newMarkers, selector, cases, type); } public J.ControlParentheses Selector => selector; public SwitchExpression WithSelector(J.ControlParentheses newSelector) { - return ReferenceEquals(newSelector, selector) ? this : new SwitchExpression(id, prefix, markers, newSelector, cases); + return ReferenceEquals(newSelector, selector) ? this : new SwitchExpression(id, prefix, markers, newSelector, cases, type); } public J.Block Cases => cases; public SwitchExpression WithCases(J.Block newCases) { - return ReferenceEquals(newCases, cases) ? this : new SwitchExpression(id, prefix, markers, selector, newCases); + return ReferenceEquals(newCases, cases) ? this : new SwitchExpression(id, prefix, markers, selector, newCases, type); + } + public JavaType? Type => type; + + public SwitchExpression WithType(JavaType? newType) + { + return newType == type ? this : new SwitchExpression(id, prefix, markers, selector, cases, newType); } #if DEBUG_VISITOR [DebuggerStepThrough] diff --git a/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpReceiver.g.cs b/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpReceiver.g.cs index 63f15596..e8520eec 100644 --- a/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpReceiver.g.cs +++ b/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpReceiver.g.cs @@ -1708,6 +1708,7 @@ public override J VisitSwitchExpression(J.SwitchExpression switchExpression, Rec switchExpression = switchExpression.WithMarkers(ctx.ReceiveNode(switchExpression.Markers, ctx.ReceiveMarkers)!); switchExpression = switchExpression.WithSelector(ctx.ReceiveNode(switchExpression.Selector, ReceiveControlParentheses)!); switchExpression = switchExpression.WithCases(ctx.ReceiveNode(switchExpression.Cases, ctx.ReceiveTree)!); + switchExpression = switchExpression.WithType(ctx.ReceiveValue(switchExpression.Type)); return switchExpression; } @@ -3733,7 +3734,8 @@ public Rewrite.Core.Tree Create(string type, ReceiverContext ctx) where T : R ctx.ReceiveNode(default(Space), ReceiveSpace)!, ctx.ReceiveNode(default(Markers), ctx.ReceiveMarkers)!, ctx.ReceiveNode(default(J.ControlParentheses), ReceiveControlParentheses)!, - ctx.ReceiveNode(default(J.Block), ctx.ReceiveTree)! + ctx.ReceiveNode(default(J.Block), ctx.ReceiveTree)!, + ctx.ReceiveValue(default(JavaType?))! ); } diff --git a/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpSender.g.cs b/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpSender.g.cs index fd32b0f4..6f438a30 100644 --- a/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpSender.g.cs +++ b/Rewrite/src/Rewrite.Remote.Codec/CSharp/CSharpSender.g.cs @@ -1713,6 +1713,7 @@ public override J VisitSwitchExpression(J.SwitchExpression switchExpression, Sen ctx.SendNode(switchExpression, v => v.Markers, ctx.SendMarkers); ctx.SendNode(switchExpression, v => v.Selector, ctx.SendTree); ctx.SendNode(switchExpression, v => v.Cases, ctx.SendTree); + ctx.SendTypedValue(switchExpression, v => v.Type); return switchExpression; } diff --git a/Rewrite/src/Rewrite.Remote.Codec/Java/JavaReceiver.g.cs b/Rewrite/src/Rewrite.Remote.Codec/Java/JavaReceiver.g.cs index b2f2c75b..11ee0e93 100644 --- a/Rewrite/src/Rewrite.Remote.Codec/Java/JavaReceiver.g.cs +++ b/Rewrite/src/Rewrite.Remote.Codec/Java/JavaReceiver.g.cs @@ -605,6 +605,7 @@ public override J VisitSwitchExpression(J.SwitchExpression switchExpression, Rec switchExpression = switchExpression.WithMarkers(ctx.ReceiveNode(switchExpression.Markers, ctx.ReceiveMarkers)!); switchExpression = switchExpression.WithSelector(ctx.ReceiveNode(switchExpression.Selector, ReceiveControlParentheses)!); switchExpression = switchExpression.WithCases(ctx.ReceiveNode(switchExpression.Cases, ctx.ReceiveTree)!); + switchExpression = switchExpression.WithType(ctx.ReceiveValue(switchExpression.Type)); return switchExpression; } @@ -1423,7 +1424,8 @@ public Rewrite.Core.Tree Create(string type, ReceiverContext ctx) where T : R ctx.ReceiveNode(default(Space), ReceiveSpace)!, ctx.ReceiveNode(default(Markers), ctx.ReceiveMarkers)!, ctx.ReceiveNode(default(J.ControlParentheses), ReceiveControlParentheses)!, - ctx.ReceiveNode(default(J.Block), ctx.ReceiveTree)! + ctx.ReceiveNode(default(J.Block), ctx.ReceiveTree)!, + ctx.ReceiveValue(default(JavaType?))! ); } diff --git a/Rewrite/src/Rewrite.Remote.Codec/Java/JavaSender.g.cs b/Rewrite/src/Rewrite.Remote.Codec/Java/JavaSender.g.cs index 80dcc08d..87089c66 100644 --- a/Rewrite/src/Rewrite.Remote.Codec/Java/JavaSender.g.cs +++ b/Rewrite/src/Rewrite.Remote.Codec/Java/JavaSender.g.cs @@ -610,6 +610,7 @@ public override J VisitSwitchExpression(J.SwitchExpression switchExpression, Sen ctx.SendNode(switchExpression, v => v.Markers, ctx.SendMarkers); ctx.SendNode(switchExpression, v => v.Selector, ctx.SendTree); ctx.SendNode(switchExpression, v => v.Cases, ctx.SendTree); + ctx.SendTypedValue(switchExpression, v => v.Type); return switchExpression; } diff --git a/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpReceiver.java b/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpReceiver.java index 762064e8..fe7edf50 100644 --- a/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpReceiver.java +++ b/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpReceiver.java @@ -1724,6 +1724,7 @@ public J.SwitchExpression visitSwitchExpression(J.SwitchExpression switchExpress switchExpression = switchExpression.withMarkers(ctx.receiveNonNullNode(switchExpression.getMarkers(), ctx::receiveMarkers)); switchExpression = switchExpression.withSelector(ctx.receiveNonNullNode(switchExpression.getSelector(), ctx::receiveTree)); switchExpression = switchExpression.withCases(ctx.receiveNonNullNode(switchExpression.getCases(), ctx::receiveTree)); + switchExpression = switchExpression.withType(ctx.receiveValue(switchExpression.getType(), JavaType.class)); return switchExpression; } @@ -3768,7 +3769,8 @@ private static J.SwitchExpression createJSwitchExpression(ReceiverContext ctx) { ctx.receiveNonNullNode(null, CSharpReceiver::receiveSpace), ctx.receiveNonNullNode(null, ctx::receiveMarkers), ctx.receiveNonNullNode(null, ctx::receiveTree), - ctx.receiveNonNullNode(null, ctx::receiveTree) + ctx.receiveNonNullNode(null, ctx::receiveTree), + ctx.receiveValue(null, JavaType.class) ); } diff --git a/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpSender.java b/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpSender.java index 5eb87cc9..0ce0c9d5 100644 --- a/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpSender.java +++ b/rewrite-csharp-remote/src/main/java/org/openrewrite/csharp/remote/CSharpSender.java @@ -1727,6 +1727,7 @@ public J.SwitchExpression visitSwitchExpression(J.SwitchExpression switchExpress ctx.sendNode(switchExpression, J.SwitchExpression::getMarkers, ctx::sendMarkers); ctx.sendNode(switchExpression, J.SwitchExpression::getSelector, ctx::sendTree); ctx.sendNode(switchExpression, J.SwitchExpression::getCases, ctx::sendTree); + ctx.sendTypedValue(switchExpression, J.SwitchExpression::getType); return switchExpression; }