Skip to content

Commit dfa6d36

Browse files
author
machibuse
committed
Refactor PropertyVisitor to include bitwise operations and set default value assignment logic.
1 parent 5016d2c commit dfa6d36

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

Source/Porticle.Grpc.GuidMapper/PropertyVisitor.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,23 @@ public class PropertyVisitor : CSharpSyntaxRewriter
130130
throw new TypeMapperException("Exactly 2 Assignment expressions expected in optional setter");
131131
}
132132

133-
var hasBitsAssignment = assignment[0];
133+
var setBitAssignment = assignment[0];
134134
var setValueAssignment = assignment[0];
135135

136-
136+
// Erzeuge neuen Ausdruck: <setBitAssignment.left> &= ~<setBitAssignment.right>
137+
var deleteBitAssignment = SyntaxFactory.AssignmentExpression(
138+
SyntaxKind.AndAssignmentExpression,
139+
setBitAssignment.Left,
140+
SyntaxFactory.PrefixUnaryExpression(
141+
SyntaxKind.BitwiseNotExpression,
142+
setBitAssignment.Right.WithoutTrivia()
143+
)
144+
).WithTriviaFrom(setBitAssignment);
145+
146+
string defaultValueIdentifierName = "DefaultValue";
147+
148+
// Erzeuge neue Zuweisung: enumOptional_ = <defaultValueIdentifierName>
149+
var setDefaultValueAssignment = setValueAssignment.WithRight(SyntaxFactory.IdentifierName(defaultValueIdentifierName));
137150

138151
return null;
139152
}

0 commit comments

Comments
 (0)