(p);
+ }
+ else
+ {
+ _padding.TryGetTarget(out p);
+ if (p == null || p.T != this)
+ {
+ p = new PaddingHelper(this);
+ _padding.SetTarget(p);
+ }
+ }
+ return p;
+ }
+ }
+
+ public J? AcceptCSharp(CSharpVisitor
v, P p)
+ {
+ return v.VisitAliasQualifiedName(this, p);
+ }
+
+ public Guid Id => id;
+
+ public AliasQualifiedName WithId(Guid newId)
+ {
+ return newId == id ? this : new AliasQualifiedName(newId, prefix, markers, _alias, name);
+ }
+ public Space Prefix => prefix;
+
+ public AliasQualifiedName WithPrefix(Space newPrefix)
+ {
+ return newPrefix == prefix ? this : new AliasQualifiedName(id, newPrefix, markers, _alias, name);
+ }
+ public Markers Markers => markers;
+
+ public AliasQualifiedName WithMarkers(Markers newMarkers)
+ {
+ return ReferenceEquals(newMarkers, markers) ? this : new AliasQualifiedName(id, prefix, newMarkers, _alias, name);
+ }
+ private readonly JRightPadded _alias = alias;
+ public J.Identifier Alias => _alias.Element;
+
+ public AliasQualifiedName WithAlias(J.Identifier newAlias)
+ {
+ return Padding.WithAlias(_alias.WithElement(newAlias));
+ }
+ public Expression Name => name;
+
+ public AliasQualifiedName WithName(Expression newName)
+ {
+ return ReferenceEquals(newName, name) ? this : new AliasQualifiedName(id, prefix, markers, _alias, newName);
+ }
+ public sealed record PaddingHelper(Cs.AliasQualifiedName T)
+ {
+ public JRightPadded Alias => T._alias;
+
+ public Cs.AliasQualifiedName WithAlias(JRightPadded newAlias)
+ {
+ return T._alias == newAlias ? T : new Cs.AliasQualifiedName(T.Id, T.Prefix, T.Markers, newAlias, T.Name);
+ }
+
+ }
+
+ #if DEBUG_VISITOR
+ [DebuggerStepThrough]
+ #endif
+ public bool Equals(Rewrite.Core.Tree? other)
+ {
+ return other is AliasQualifiedName && other.Id == Id;
+ }
+ #if DEBUG_VISITOR
+ [DebuggerStepThrough]
+ #endif
+ public override int GetHashCode()
+ {
+ return Id.GetHashCode();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/AllowsConstraintClause.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/AllowsConstraintClause.g.cs
index 387e935..1e9f6ed 100644
--- a/Rewrite/src/Rewrite.CSharp/Tree/AllowsConstraintClause.g.cs
+++ b/Rewrite/src/Rewrite.CSharp/Tree/AllowsConstraintClause.g.cs
@@ -36,7 +36,7 @@ public partial class AllowsConstraintClause(
Space prefix,
Markers markers,
JContainer expressions
- ) : Cs, Cs.TypeParameterConstraint, MutableTree
+ ) : Cs, Cs.TypeParameterConstraint, J, MutableTree
{
[NonSerialized] private WeakReference? _padding;
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/AnnotatedStatement.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/AnnotatedStatement.g.cs
index 11ea1c6..8ee3f0c 100644
--- a/Rewrite/src/Rewrite.CSharp/Tree/AnnotatedStatement.g.cs
+++ b/Rewrite/src/Rewrite.CSharp/Tree/AnnotatedStatement.g.cs
@@ -33,7 +33,7 @@ public partial class AnnotatedStatement(
Markers markers,
IList attributeLists,
Statement statement
- ) : Cs, Statement, MutableTree
+ ) : Cs, Statement, J, MutableTree
{
public J? AcceptCSharp(CSharpVisitor
v, P p)
{
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/Argument.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/Argument.g.cs
index 3c238ff..3388794 100644
--- a/Rewrite/src/Rewrite.CSharp/Tree/Argument.g.cs
+++ b/Rewrite/src/Rewrite.CSharp/Tree/Argument.g.cs
@@ -34,7 +34,7 @@ public partial class Argument(
JRightPadded? nameColumn,
Keyword? refKindKeyword,
Expression expression
- ) : Cs, Expression, Expression, MutableTree
+ ) : Cs, Expression, Expression, J, MutableTree
{
[NonSerialized] private WeakReference? _padding;
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/ArrayRankSpecifier.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/ArrayRankSpecifier.g.cs
index 524c589..32ff93a 100644
--- a/Rewrite/src/Rewrite.CSharp/Tree/ArrayRankSpecifier.g.cs
+++ b/Rewrite/src/Rewrite.CSharp/Tree/ArrayRankSpecifier.g.cs
@@ -32,7 +32,7 @@ public partial class ArrayRankSpecifier(
Space prefix,
Markers markers,
JContainer sizes
- ) : Cs, Expression, Expression, MutableTree
+ ) : Cs, Expression, Expression, J, MutableTree
{
[NonSerialized] private WeakReference? _padding;
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/ArrayType.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/ArrayType.g.cs
new file mode 100644
index 0000000..d519a26
--- /dev/null
+++ b/Rewrite/src/Rewrite.CSharp/Tree/ArrayType.g.cs
@@ -0,0 +1,95 @@
+//------------------------------------------------------------------------------
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+#nullable enable
+#pragma warning disable CS0108 // 'member1' hides inherited member 'member2'. Use the new keyword if hiding was intended.
+#pragma warning disable CS8767 // Nullability of reference types in type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using Rewrite.Core;
+using Rewrite.Core.Marker;
+using FileAttributes = Rewrite.Core.FileAttributes;
+using Rewrite.RewriteJava.Tree;
+
+namespace Rewrite.RewriteCSharp.Tree;
+
+[SuppressMessage("ReSharper", "InconsistentNaming")]
+[SuppressMessage("ReSharper", "PossibleUnintendedReferenceComparison")]
+[SuppressMessage("ReSharper", "InvertIf")]
+[SuppressMessage("ReSharper", "RedundantExtendsListEntry")]
+[SuppressMessage("ReSharper", "UnusedMember.Global")]
+[SuppressMessage("ReSharper", "RedundantNameQualifier")]
+public partial interface Cs : J
+{
+ #if DEBUG_VISITOR
+ [DebuggerStepThrough]
+ #endif
+ public partial class ArrayType(
+ Guid id,
+ Space prefix,
+ Markers markers,
+ TypeTree? typeExpression,
+ IList dimensions,
+ JavaType? type
+ ) : Cs, Expression, TypeTree, Expression, TypedTree, J, TypeTree, MutableTree
+ {
+ public J? AcceptCSharp(CSharpVisitor
v, P p)
+ {
+ return v.VisitArrayType(this, p);
+ }
+
+ public Guid Id => id;
+
+ public ArrayType WithId(Guid newId)
+ {
+ return newId == id ? this : new ArrayType(newId, prefix, markers, typeExpression, dimensions, type);
+ }
+ public Space Prefix => prefix;
+
+ public ArrayType WithPrefix(Space newPrefix)
+ {
+ return newPrefix == prefix ? this : new ArrayType(id, newPrefix, markers, typeExpression, dimensions, type);
+ }
+ public Markers Markers => markers;
+
+ public ArrayType WithMarkers(Markers newMarkers)
+ {
+ return ReferenceEquals(newMarkers, markers) ? this : new ArrayType(id, prefix, newMarkers, typeExpression, dimensions, type);
+ }
+ public TypeTree? TypeExpression => typeExpression;
+
+ public ArrayType WithTypeExpression(TypeTree? newTypeExpression)
+ {
+ return ReferenceEquals(newTypeExpression, typeExpression) ? this : new ArrayType(id, prefix, markers, newTypeExpression, dimensions, type);
+ }
+ public IList Dimensions => dimensions;
+
+ public ArrayType WithDimensions(IList newDimensions)
+ {
+ return newDimensions == dimensions ? this : new ArrayType(id, prefix, markers, typeExpression, newDimensions, type);
+ }
+ public JavaType? Type => type;
+
+ public ArrayType WithType(JavaType? newType)
+ {
+ return newType == type ? this : new ArrayType(id, prefix, markers, typeExpression, dimensions, newType);
+ }
+ #if DEBUG_VISITOR
+ [DebuggerStepThrough]
+ #endif
+ public bool Equals(Rewrite.Core.Tree? other)
+ {
+ return other is ArrayType && other.Id == Id;
+ }
+ #if DEBUG_VISITOR
+ [DebuggerStepThrough]
+ #endif
+ public override int GetHashCode()
+ {
+ return Id.GetHashCode();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Rewrite/src/Rewrite.CSharp/Tree/AssignmentOperation.g.cs b/Rewrite/src/Rewrite.CSharp/Tree/AssignmentOperation.g.cs
index 3634ab5..9797bfa 100644
--- a/Rewrite/src/Rewrite.CSharp/Tree/AssignmentOperation.g.cs
+++ b/Rewrite/src/Rewrite.CSharp/Tree/AssignmentOperation.g.cs
@@ -35,7 +35,7 @@ public partial class AssignmentOperation(
JLeftPadded @operator,
Expression assignment,
JavaType? type
- ) : Cs, Statement, Expression, TypedTree, Expression, TypedTree