using System; using System.Collections.Generic; using Microsoft.CodeAnalysis.Syntax.InternalSyntax; using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax; internal sealed class StructDeclarationSyntax : TypeDeclarationSyntax { internal readonly GreenNode? attributeLists; internal readonly GreenNode? modifiers; internal readonly SyntaxToken keyword; internal readonly SyntaxToken identifier; internal readonly TypeParameterListSyntax? typeParameterList; internal readonly ParameterListSyntax? parameterList; internal readonly BaseListSyntax? baseList; internal readonly GreenNode? constraintClauses; internal readonly SyntaxToken? openBraceToken; internal readonly GreenNode? members; internal readonly SyntaxToken? closeBraceToken; internal readonly SyntaxToken? semicolonToken; public override SyntaxList AttributeLists => new SyntaxList(attributeLists); public override SyntaxList Modifiers => new SyntaxList(modifiers); public override SyntaxToken Keyword => keyword; public override SyntaxToken Identifier => identifier; public override TypeParameterListSyntax? TypeParameterList => typeParameterList; public override ParameterListSyntax? ParameterList => parameterList; public override BaseListSyntax? BaseList => baseList; public override SyntaxList ConstraintClauses => new SyntaxList(constraintClauses); public override SyntaxToken? OpenBraceToken => openBraceToken; public override SyntaxList Members => new SyntaxList(members); public override SyntaxToken? CloseBraceToken => closeBraceToken; public override SyntaxToken? SemicolonToken => semicolonToken; internal StructDeclarationSyntax(SyntaxKind kind, GreenNode? attributeLists, GreenNode? modifiers, SyntaxToken keyword, SyntaxToken identifier, TypeParameterListSyntax? typeParameterList, ParameterListSyntax? parameterList, BaseListSyntax? baseList, GreenNode? constraintClauses, SyntaxToken? openBraceToken, GreenNode? members, SyntaxToken? closeBraceToken, SyntaxToken? semicolonToken, DiagnosticInfo[]? diagnostics, SyntaxAnnotation[]? annotations) : base(kind, diagnostics, annotations) { ((GreenNode)this).SlotCount = 12; if (attributeLists != null) { ((GreenNode)this).AdjustFlagsAndWidth(attributeLists); this.attributeLists = attributeLists; } if (modifiers != null) { ((GreenNode)this).AdjustFlagsAndWidth(modifiers); this.modifiers = modifiers; } ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)keyword); this.keyword = keyword; ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)identifier); this.identifier = identifier; if (typeParameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)typeParameterList); this.typeParameterList = typeParameterList; } if (parameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)parameterList); this.parameterList = parameterList; } if (baseList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)baseList); this.baseList = baseList; } if (constraintClauses != null) { ((GreenNode)this).AdjustFlagsAndWidth(constraintClauses); this.constraintClauses = constraintClauses; } if (openBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)openBraceToken); this.openBraceToken = openBraceToken; } if (members != null) { ((GreenNode)this).AdjustFlagsAndWidth(members); this.members = members; } if (closeBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)closeBraceToken); this.closeBraceToken = closeBraceToken; } if (semicolonToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)semicolonToken); this.semicolonToken = semicolonToken; } } internal StructDeclarationSyntax(SyntaxKind kind, GreenNode? attributeLists, GreenNode? modifiers, SyntaxToken keyword, SyntaxToken identifier, TypeParameterListSyntax? typeParameterList, ParameterListSyntax? parameterList, BaseListSyntax? baseList, GreenNode? constraintClauses, SyntaxToken? openBraceToken, GreenNode? members, SyntaxToken? closeBraceToken, SyntaxToken? semicolonToken, SyntaxFactoryContext context) : base(kind) { SetFactoryContext(context); ((GreenNode)this).SlotCount = 12; if (attributeLists != null) { ((GreenNode)this).AdjustFlagsAndWidth(attributeLists); this.attributeLists = attributeLists; } if (modifiers != null) { ((GreenNode)this).AdjustFlagsAndWidth(modifiers); this.modifiers = modifiers; } ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)keyword); this.keyword = keyword; ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)identifier); this.identifier = identifier; if (typeParameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)typeParameterList); this.typeParameterList = typeParameterList; } if (parameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)parameterList); this.parameterList = parameterList; } if (baseList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)baseList); this.baseList = baseList; } if (constraintClauses != null) { ((GreenNode)this).AdjustFlagsAndWidth(constraintClauses); this.constraintClauses = constraintClauses; } if (openBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)openBraceToken); this.openBraceToken = openBraceToken; } if (members != null) { ((GreenNode)this).AdjustFlagsAndWidth(members); this.members = members; } if (closeBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)closeBraceToken); this.closeBraceToken = closeBraceToken; } if (semicolonToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)semicolonToken); this.semicolonToken = semicolonToken; } } internal StructDeclarationSyntax(SyntaxKind kind, GreenNode? attributeLists, GreenNode? modifiers, SyntaxToken keyword, SyntaxToken identifier, TypeParameterListSyntax? typeParameterList, ParameterListSyntax? parameterList, BaseListSyntax? baseList, GreenNode? constraintClauses, SyntaxToken? openBraceToken, GreenNode? members, SyntaxToken? closeBraceToken, SyntaxToken? semicolonToken) : base(kind) { ((GreenNode)this).SlotCount = 12; if (attributeLists != null) { ((GreenNode)this).AdjustFlagsAndWidth(attributeLists); this.attributeLists = attributeLists; } if (modifiers != null) { ((GreenNode)this).AdjustFlagsAndWidth(modifiers); this.modifiers = modifiers; } ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)keyword); this.keyword = keyword; ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)identifier); this.identifier = identifier; if (typeParameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)typeParameterList); this.typeParameterList = typeParameterList; } if (parameterList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)parameterList); this.parameterList = parameterList; } if (baseList != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)baseList); this.baseList = baseList; } if (constraintClauses != null) { ((GreenNode)this).AdjustFlagsAndWidth(constraintClauses); this.constraintClauses = constraintClauses; } if (openBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)openBraceToken); this.openBraceToken = openBraceToken; } if (members != null) { ((GreenNode)this).AdjustFlagsAndWidth(members); this.members = members; } if (closeBraceToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)closeBraceToken); this.closeBraceToken = closeBraceToken; } if (semicolonToken != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)semicolonToken); this.semicolonToken = semicolonToken; } } internal override GreenNode? GetSlot(int index) { return (GreenNode?)(index switch { 0 => attributeLists, 1 => modifiers, 2 => keyword, 3 => identifier, 4 => typeParameterList, 5 => parameterList, 6 => baseList, 7 => constraintClauses, 8 => openBraceToken, 9 => members, 10 => closeBraceToken, 11 => semicolonToken, _ => null, }); } internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) { return (SyntaxNode)(object)new Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax(this, parent, position); } public override void Accept(CSharpSyntaxVisitor visitor) { visitor.VisitStructDeclaration(this); } public override TResult Accept(CSharpSyntaxVisitor visitor) { return visitor.VisitStructDeclaration(this); } public StructDeclarationSyntax Update(SyntaxList attributeLists, SyntaxList modifiers, SyntaxToken keyword, SyntaxToken identifier, TypeParameterListSyntax typeParameterList, ParameterListSyntax parameterList, BaseListSyntax baseList, SyntaxList constraintClauses, SyntaxToken openBraceToken, SyntaxList members, SyntaxToken closeBraceToken, SyntaxToken semicolonToken) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (attributeLists != AttributeLists || modifiers != Modifiers || keyword != Keyword || identifier != Identifier || typeParameterList != TypeParameterList || parameterList != ParameterList || baseList != BaseList || constraintClauses != ConstraintClauses || openBraceToken != OpenBraceToken || members != Members || closeBraceToken != CloseBraceToken || semicolonToken != SemicolonToken) { StructDeclarationSyntax structDeclarationSyntax = SyntaxFactory.StructDeclaration(attributeLists, modifiers, keyword, identifier, typeParameterList, parameterList, baseList, constraintClauses, openBraceToken, members, closeBraceToken, semicolonToken); DiagnosticInfo[] diagnostics = ((GreenNode)this).GetDiagnostics(); if (diagnostics != null && diagnostics.Length != 0) { structDeclarationSyntax = GreenNodeExtensions.WithDiagnosticsGreen(structDeclarationSyntax, diagnostics); } SyntaxAnnotation[] annotations = ((GreenNode)this).GetAnnotations(); if (annotations != null && annotations.Length != 0) { structDeclarationSyntax = GreenNodeExtensions.WithAnnotationsGreen(structDeclarationSyntax, (IEnumerable)annotations); } return structDeclarationSyntax; } return this; } internal override GreenNode SetDiagnostics(DiagnosticInfo[]? diagnostics) { return (GreenNode)(object)new StructDeclarationSyntax(base.Kind, attributeLists, modifiers, keyword, identifier, typeParameterList, parameterList, baseList, constraintClauses, openBraceToken, members, closeBraceToken, semicolonToken, diagnostics, ((GreenNode)this).GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[]? annotations) { return (GreenNode)(object)new StructDeclarationSyntax(base.Kind, attributeLists, modifiers, keyword, identifier, typeParameterList, parameterList, baseList, constraintClauses, openBraceToken, members, closeBraceToken, semicolonToken, ((GreenNode)this).GetDiagnostics(), annotations); } internal StructDeclarationSyntax(ObjectReader reader) : base(reader) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Expected O, but got Unknown //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Expected O, but got Unknown ((GreenNode)this).SlotCount = 12; GreenNode val = (GreenNode)reader.ReadValue(); if (val != null) { ((GreenNode)this).AdjustFlagsAndWidth(val); attributeLists = val; } GreenNode val2 = (GreenNode)reader.ReadValue(); if (val2 != null) { ((GreenNode)this).AdjustFlagsAndWidth(val2); modifiers = val2; } SyntaxToken syntaxToken = (SyntaxToken)reader.ReadValue(); ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)syntaxToken); keyword = syntaxToken; SyntaxToken syntaxToken2 = (SyntaxToken)reader.ReadValue(); ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)syntaxToken2); identifier = syntaxToken2; TypeParameterListSyntax typeParameterListSyntax = (TypeParameterListSyntax)reader.ReadValue(); if (typeParameterListSyntax != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)typeParameterListSyntax); typeParameterList = typeParameterListSyntax; } ParameterListSyntax parameterListSyntax = (ParameterListSyntax)reader.ReadValue(); if (parameterListSyntax != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)parameterListSyntax); parameterList = parameterListSyntax; } BaseListSyntax baseListSyntax = (BaseListSyntax)reader.ReadValue(); if (baseListSyntax != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)baseListSyntax); baseList = baseListSyntax; } GreenNode val3 = (GreenNode)reader.ReadValue(); if (val3 != null) { ((GreenNode)this).AdjustFlagsAndWidth(val3); constraintClauses = val3; } SyntaxToken syntaxToken3 = (SyntaxToken)reader.ReadValue(); if (syntaxToken3 != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)syntaxToken3); openBraceToken = syntaxToken3; } GreenNode val4 = (GreenNode)reader.ReadValue(); if (val4 != null) { ((GreenNode)this).AdjustFlagsAndWidth(val4); members = val4; } SyntaxToken syntaxToken4 = (SyntaxToken)reader.ReadValue(); if (syntaxToken4 != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)syntaxToken4); closeBraceToken = syntaxToken4; } SyntaxToken syntaxToken5 = (SyntaxToken)reader.ReadValue(); if (syntaxToken5 != null) { ((GreenNode)this).AdjustFlagsAndWidth((GreenNode)(object)syntaxToken5); semicolonToken = syntaxToken5; } } internal override void WriteTo(ObjectWriter writer) { ((GreenNode)this).WriteTo(writer); writer.WriteValue((IObjectWritable)(object)attributeLists); writer.WriteValue((IObjectWritable)(object)modifiers); writer.WriteValue((IObjectWritable)(object)keyword); writer.WriteValue((IObjectWritable)(object)identifier); writer.WriteValue((IObjectWritable)(object)typeParameterList); writer.WriteValue((IObjectWritable)(object)parameterList); writer.WriteValue((IObjectWritable)(object)baseList); writer.WriteValue((IObjectWritable)(object)constraintClauses); writer.WriteValue((IObjectWritable)(object)openBraceToken); writer.WriteValue((IObjectWritable)(object)members); writer.WriteValue((IObjectWritable)(object)closeBraceToken); writer.WriteValue((IObjectWritable)(object)semicolonToken); } static StructDeclarationSyntax() { ObjectBinder.RegisterTypeReader(typeof(StructDeclarationSyntax), (Func)((ObjectReader r) => (IObjectWritable)(object)new StructDeclarationSyntax(r))); } }