@@ -214,6 +214,7 @@ internal static stmt Convert(Statement stmt) {
214214 stmt ast = stmt switch {
215215 FunctionDefinition s => new FunctionDef ( s ) ,
216216 ReturnStatement s => new Return ( s ) ,
217+ AnnotatedAssignStatement s => new AnnAssign ( s ) ,
217218 AssignmentStatement s => new Assign ( s ) ,
218219 AugmentedAssignStatement s => new AugAssign ( s ) ,
219220 DelStatement s => new Delete ( s ) ,
@@ -711,6 +712,43 @@ public class And : boolop {
711712 internal static readonly And Instance = new And ( ) ;
712713 }
713714
715+ [ PythonType ]
716+ public class AnnAssign : stmt {
717+ public AnnAssign ( ) {
718+ _fields = PythonTuple . MakeTuple ( new [ ] { nameof ( target ) , nameof ( annotation ) , nameof ( value ) , nameof ( simple ) } ) ;
719+ }
720+
721+ public AnnAssign ( expr target , expr annotation , expr value , int simple , [ Optional ] int ? lineno , [ Optional ] int ? col_offset )
722+ : this ( ) {
723+ this . target = target ;
724+ this . annotation = annotation ;
725+ this . value = value ;
726+ this . simple = simple ;
727+ _lineno = lineno ;
728+ _col_offset = col_offset ;
729+ }
730+
731+ internal AnnAssign ( AnnotatedAssignStatement stmt )
732+ : this ( ) {
733+ target = Convert ( stmt . Target , Store . Instance ) ;
734+ annotation = Convert ( stmt . Annotation ) ;
735+ value = stmt . Value is null ? null : Convert ( stmt . Value ) ;
736+ simple = stmt . Simple ? 1 : 0 ;
737+ }
738+
739+ internal override Statement Revert ( ) {
740+ return new AnnotatedAssignStatement ( expr . Revert ( target ) , expr . Revert ( annotation ) , expr . Revert ( value ) , simple != 0 ) ;
741+ }
742+
743+ public expr target { get ; set ; }
744+
745+ public expr annotation { get ; set ; }
746+
747+ public expr value { get ; set ; }
748+
749+ public int simple { get ; set ; }
750+ }
751+
714752 [ PythonType ]
715753 public class Assert : stmt {
716754 public Assert ( ) {
0 commit comments