Пример #1
0
 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));
 }
Пример #2
0
 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)));
 }
Пример #3
0
 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)));
 }
Пример #4
0
 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)));
 }
Пример #7
0
 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);
 }
Пример #10
0
 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)));
 }
Пример #11
0
 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);
 }
Пример #12
0
 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));
 }