internal EventPropertyWithCodeAnalysis() { node = new Node <EventPropertyWithCodeAnalysis, EventDeclarationSyntax>(this); addAttributes = new AttributeListWrapper <EventPropertyWithCodeAnalysis, EventDeclarationSyntax>( node, syntax => syntax.GetAccessor(SyntaxKind.AddKeyword).AttributeLists, (parentSyntax, childSyntax) => CreateAccessorAttributes(parentSyntax, childSyntax, SyntaxKind.AddKeyword)); addBody = new CachedChildNode <EventPropertyWithCodeAnalysis, EventDeclarationSyntax, MethodBodyWithCodeAnalysis, BlockSyntax>( node, () => new MethodBodyWithCodeAnalysis(), syntax => syntax.GetAccessor(SyntaxKind.AddKeyword).Body, (parentSyntax, childSyntax) => parentSyntax.WithBody(childSyntax, SyntaxKind.AddKeyword)); attributes = new AttributeListWrapper <EventPropertyWithCodeAnalysis, EventDeclarationSyntax>( node, syntax => syntax.AttributeLists, (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax)); eventType = new CachedChildNode <EventPropertyWithCodeAnalysis, EventDeclarationSyntax, DelegateReferenceWithCodeAnalysis, NameSyntax>( node, () => new DelegateReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => (NameSyntax)syntax.Type, (parentSyntax, childSyntax) => parentSyntax.WithType(childSyntax)); removeAttributes = new AttributeListWrapper <EventPropertyWithCodeAnalysis, EventDeclarationSyntax>( node, syntax => syntax.GetAccessor(SyntaxKind.RemoveKeyword).AttributeLists, (parentSyntax, childSyntax) => CreateAccessorAttributes(parentSyntax, childSyntax, SyntaxKind.RemoveKeyword)); removeBody = new CachedChildNode <EventPropertyWithCodeAnalysis, EventDeclarationSyntax, MethodBodyWithCodeAnalysis, BlockSyntax>( node, () => new MethodBodyWithCodeAnalysis(), syntax => syntax.GetAccessor(SyntaxKind.RemoveKeyword).Body, (parentSyntax, childSyntax) => parentSyntax.WithBody(childSyntax, SyntaxKind.RemoveKeyword)); }
internal ExplicitInterfaceIndexerWithCodeAnalysis() { indexer = new IndexerWithBodyWithCodeAnalysis(); explicitInterface = new CachedChildNode <IndexerWithCodeAnalysis, IndexerDeclarationSyntax, InterfaceReferenceWithCodeAnalysis, NameSyntax>( indexer.Indexer.Node, () => new InterfaceReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => syntax.ExplicitInterfaceSpecifier.Name, (parentSyntax, childSyntax) => parentSyntax.WithExplicitInterfaceSpecifier(parentSyntax.ExplicitInterfaceSpecifier.WithName(childSyntax))); }
internal ExplicitInterfaceEventWithCodeAnalysis() { @event = new EventPropertyWithCodeAnalysis(); explicitInterface = new CachedChildNode <EventPropertyWithCodeAnalysis, EventDeclarationSyntax, InterfaceReferenceWithCodeAnalysis, NameSyntax>( @event.Node, () => new InterfaceReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => syntax.ExplicitInterfaceSpecifier.Name, (parentSyntax, childSyntax) => parentSyntax.WithExplicitInterfaceSpecifier(parentSyntax.ExplicitInterfaceSpecifier.WithName(childSyntax))); }
internal GenericParameterConstraint() { node = new Node <GenericParameterConstraint, TypeConstraintSyntax>(this); type = new CachedChildNode <GenericParameterConstraint, TypeConstraintSyntax, UnspecifiedTypeReferenceWithCodeAnalysis, NameSyntax>( node, () => new UnspecifiedTypeReferenceWithCodeAnalysis(), syntax => (NameSyntax)syntax.Type, (parentSyntax, childSyntax) => parentSyntax.WithType(childSyntax)); }
internal ExplicitInterfaceMethodWithCodeAnalysis() { method = new MethodWithBodyWithCodeAnalysis(); explicitInterface = new CachedChildNode <MethodWithCodeAnalysis, MethodDeclarationSyntax, InterfaceReferenceWithCodeAnalysis, NameSyntax>( method.Method.Node, () => new InterfaceReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => syntax.ExplicitInterfaceSpecifier.Name, (parentSyntax, childSyntax) => parentSyntax.WithExplicitInterfaceSpecifier(parentSyntax.ExplicitInterfaceSpecifier.WithName(childSyntax))); }
internal ExplicitInterfacePropertyWithCodeAnalysis() { property = new PropertyWithBodyWithCodeAnalysis(); explicitInterface = new CachedChildNode <PropertyWithCodeAnalysis, PropertyDeclarationSyntax, InterfaceReferenceWithCodeAnalysis, NameSyntax>( property.Property.Node, () => new InterfaceReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => syntax.ExplicitInterfaceSpecifier.Name, (parentSyntax, childSyntax) => parentSyntax.WithExplicitInterfaceSpecifier(parentSyntax.ExplicitInterfaceSpecifier.WithName(childSyntax))); }
public CachedStatementNode( Node <TParent, TParentSyntax> node, Func <TParentSyntax, StatementSyntax> getSyntax, Func <TParentSyntax, StatementSyntax, TParentSyntax> createSyntax) { childNode = new CachedChildNode <TParent, TParentSyntax, IInternalStatement, StatementSyntax>( node, StatementSyntaxExtensions.ToInternalStatement, getSyntax, createSyntax); }
public CachedExpressionNode( Node <TParent, TParentSyntax> node, Func <TParentSyntax, ExpressionSyntax> getSyntax, Func <TParentSyntax, ExpressionSyntax, TParentSyntax> createSyntax) { childNode = new CachedChildNode <TParent, TParentSyntax, IInternalExpression, ExpressionSyntax>( node, ExpressionSyntaxExtensions.ToInternalExpression, getSyntax, createSyntax); }
public CachedTypeReferenceNode( Node <TParent, TParentSyntax> node, Func <TParentSyntax, TypeSyntax> getChildSyntax, Func <TParentSyntax, TypeSyntax, TParentSyntax> createChildSyntax, Func <TypeSyntax, IInternalTypeReferenceWithCodeAnalysis> createChildNode = null) { childNode = new CachedChildNode <TParent, TParentSyntax, IInternalTypeReferenceWithCodeAnalysis, TypeSyntax>( node, createChildNode ?? TypeSyntaxExtensions.ToTypeReference, getChildSyntax, createChildSyntax); }
internal EventWithCodeAnalysis() { node = new Node <EventWithCodeAnalysis, EventFieldDeclarationSyntax>(this); attributes = new AttributeListWrapper <EventWithCodeAnalysis, EventFieldDeclarationSyntax>( node, syntax => syntax.AttributeLists, (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax)); eventType = new CachedChildNode <EventWithCodeAnalysis, EventFieldDeclarationSyntax, DelegateReferenceWithCodeAnalysis, NameSyntax>( node, () => new DelegateReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => (NameSyntax)syntax.Declaration.Type, (parentSyntax, childSyntax) => parentSyntax.WithDeclaration(parentSyntax.Declaration.WithType(childSyntax))); }
internal PropertyWithCodeAnalysis() { node = new Node <PropertyWithCodeAnalysis, PropertyDeclarationSyntax>(this); attributes = new AttributeListWrapper <PropertyWithCodeAnalysis, PropertyDeclarationSyntax>( node, syntax => syntax.AttributeLists, (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax)); propertyType = new CachedTypeReferenceNode <PropertyWithCodeAnalysis, PropertyDeclarationSyntax>( node, syntax => syntax.Type, (parentSyntax, childSyntax) => parentSyntax.WithType(childSyntax)); getAccessor = GetAccessorNode(SyntaxKind.GetKeyword); setAccessor = GetAccessorNode(SyntaxKind.SetKeyword); }
internal IndexerWithCodeAnalysis() { node = new Node <IndexerWithCodeAnalysis, IndexerDeclarationSyntax>(this); attributes = new AttributeListWrapper <IndexerWithCodeAnalysis, IndexerDeclarationSyntax>( node, syntax => syntax.AttributeLists, (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax)); getAccessor = GetAccessorNode(SyntaxKind.GetKeyword); indexerType = new CachedTypeReferenceNode <IndexerWithCodeAnalysis, IndexerDeclarationSyntax>( node, syntax => syntax.Type, (parentSyntax, childSyntax) => parentSyntax.WithType(childSyntax)); parameters = new SeparatedSyntaxNodeList <IndexerWithCodeAnalysis, IndexerDeclarationSyntax, IndexerParameterWithCodeAnalysis, ParameterSyntax>( node, syntax => syntax.ParameterList.Parameters, (parentSyntax, childSyntax) => parentSyntax.WithParameterList(parentSyntax.ParameterList.WithParameters(childSyntax)), () => new IndexerParameterWithCodeAnalysis()); setAccessor = GetAccessorNode(SyntaxKind.SetKeyword); }
internal AttributeWithCodeAnalysis() { node = new Node <AttributeWithCodeAnalysis, AttributeSyntax>(this); attributeType = new CachedChildNode <AttributeWithCodeAnalysis, AttributeSyntax, ClassReferenceWithCodeAnalysis, NameSyntax>( node, () => new ClassReferenceWithCodeAnalysis(new UnspecifiedTypeReferenceWithCodeAnalysis()), syntax => syntax.Name, (parentSyntax, childSyntax) => parentSyntax.WithName(childSyntax)); SeparatedSyntaxList <AttributeArgumentSyntax> getArguments() => node.Syntax.ArgumentList?.Arguments ?? SyntaxFactory.SeparatedList <AttributeArgumentSyntax>(); namedValues = new ChildNodeList <AttributeWithCodeAnalysis, AttributeSyntax, NamedAttributeValueWithCodeAnalysis, AttributeArgumentSyntax>( node, new ImmutableAttributeArgumentListWrapper(getArguments, SetArguments, true), () => new NamedAttributeValueWithCodeAnalysis()); unnamedValues = new ChildNodeList <AttributeWithCodeAnalysis, AttributeSyntax, UnnamedAttributeValueWithCodeAnalysis, AttributeArgumentSyntax>( node, new ImmutableAttributeArgumentListWrapper(getArguments, SetArguments, false), () => new UnnamedAttributeValueWithCodeAnalysis()); }
internal ConversionOperatorWithCodeAnalysis() { node = new Node <ConversionOperatorWithCodeAnalysis, ConversionOperatorDeclarationSyntax>(this); attributes = new AttributeListWrapper <ConversionOperatorWithCodeAnalysis, ConversionOperatorDeclarationSyntax>( node, syntax => syntax.AttributeLists, (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax)); body = new MethodBodyNode <ConversionOperatorWithCodeAnalysis, ConversionOperatorDeclarationSyntax>( node, syntax => syntax.Body, (parentSyntax, childSyntax) => parentSyntax.WithBody(childSyntax)); parameter = new CachedChildNode <ConversionOperatorWithCodeAnalysis, ConversionOperatorDeclarationSyntax, OperatorParameterWithCodeAnalysis, ParameterSyntax>( node, () => new OperatorParameterWithCodeAnalysis(), syntax => syntax.ParameterList.Parameters[0], WithParameter); returnType = new CachedTypeReferenceNode <ConversionOperatorWithCodeAnalysis, ConversionOperatorDeclarationSyntax>( node, syntax => syntax.Type, (parentSyntax, childSyntax) => parentSyntax.WithType(childSyntax)); }