Пример #1
0
 public static void Go(OutputWriter writer, EventFieldDeclarationSyntax field)
 {
     foreach (var declaration in field.Declaration.Variables)
     {
        
             Go(writer, field, field.Modifiers,
                 WriteIdentifierName.TransformIdentifier(declaration.Identifier.Text),
                 field.Declaration.Type, declaration.Initializer,field.IsThreadStatic());
         
     }
 }
Пример #2
0
 public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     var eventDeclaration = node.Declaration;
     var @event = new Event(
          (ITypeSymbol)_semantic.GetSymbolInfo(eventDeclaration.Type).Symbol,
          eventDeclaration.Variables.ToString())
     {
         IsOverride = node.Modifiers.Any(x => x.IsKind(SyntaxKind.OverrideKeyword)),
         IsAbstract = node.Modifiers.Any(x => x.IsKind(SyntaxKind.AbstractKeyword))
     };
     _events.AddEvent(@event);
 }
 private Task<Document> RemoveVirtualEventFieldAsync(Document document, EventFieldDeclarationSyntax declaration, CancellationToken c)
 {
     var modifiers = declaration.Modifiers;
     var virtualToken = modifiers.Single(m => m.Kind() == SyntaxKind.VirtualKeyword);
     return RemoveVirtualTokenAsync(document, virtualToken, c);
 }
        private async Task<Document> ImplementVirtualRaiseEventFieldAsync(Document document, EventFieldDeclarationSyntax declaration, CancellationToken c)
        {
            var eventName = declaration.Declaration.Variables.Single().Identifier.ValueText;
            var raiseMethod = CreateRaiseMethod(eventName, eventName,
                (declaration.Declaration.Type as GenericNameSyntax));

            var root = await document.GetSyntaxRootAsync(c);
            var newRoot = root.InsertNodesAfter(declaration, new SyntaxNode[] { raiseMethod });
            // Note that we need to find the node again
            declaration = newRoot.FindToken(declaration.Span.Start).Parent.AncestorsAndSelf()
                .OfType<EventFieldDeclarationSyntax>().First();

            var modifiers = declaration.Modifiers;
            var virtualToken = modifiers.Single(m => m.Kind() == SyntaxKind.VirtualKeyword);

            var newDeclaration = declaration.ReplaceToken(virtualToken, Token(SyntaxKind.None));
            newRoot = newRoot.ReplaceNode(declaration, newDeclaration
                .WithTrailingTrivia(TriviaList(CarriageReturnLineFeed, CarriageReturnLineFeed)));
            return document.WithSyntaxRoot(newRoot);
        }
Пример #5
0
 private static void WriteThreadStatic(OutputWriter writer, VariableDeclaratorSyntax declaration,
     EventFieldDeclarationSyntax field)
 {
     var type = TypeProcessor.ConvertType(field.Declaration.Type);
     throw new NotImplementedException("ThreadStatic");
 }
			public override void VisitEventFieldDeclaration (EventFieldDeclarationSyntax node)
			{
				base.VisitEventFieldDeclaration (node);
				foreach (var v in node.Declaration.Variables)
					Append (v);
			}
Пример #7
0
            public void Add(EventFieldDeclarationSyntax node)
            {
                /*
                   // Summary:
                   //     Gets the attribute declaration list.
                   public override SyntaxList<AttributeListSyntax> AttributeLists { get; }
                   public override VariableDeclarationSyntax Declaration { get; }
                   public SyntaxToken EventKeyword { get; }
                   //
                   // Summary:
                   //     Gets the modifier list.
                   public override SyntaxTokenList Modifiers { get; }
                   public override SyntaxToken SemicolonToken { get; }
                 */
                // add field info
                Add(node.Modifiers, node.Declaration);

                /*
                // Summary:
                //     Gets the attribute declaration list.
                public override SyntaxList<AttributeListSyntax> AttributeLists { get; }
                public override VariableDeclarationSyntax Declaration { get; }
                //
                // Summary:
                //     Gets the modifier list.
                public override SyntaxTokenList Modifiers { get; }
                public override SyntaxToken SemicolonToken { get; }
                 */

                // add to metadata for runtime type building
                FlatArrayBuilder fab = new FlatArrayBuilder();

                fab.Add(FlatValue.Int32(node.Modifiers.ToString().Contains("static") ? (int)ClassMemberType.StaticField : (int)ClassMemberType.Field));
                TypeInfo ti = Model.GetTypeInfo(node.Declaration.Type);
                fab.Add(FlatValue.String(ti.ConvertedType.GetFullyQualifiedName()));

                {
                    FlatArrayBuilder varList = new FlatArrayBuilder();
                    foreach (VariableDeclaratorSyntax vds in node.Declaration.Variables)
                    {
                        if (vds.ArgumentList != null)
                        {
                            throw new NotImplementedException("VariableDeclaratorSyntax with ArgumentList");
                        }
                        varList.Add(FlatValue.String(vds.Identifier.ToString()));
                    }

                    fab.Add(varList.GetFlatValue());
                }

                Members.Add(fab.GetFlatValue());
            }
Пример #8
0
 public override SyntaxNode VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     //Note:Simple Event declare(no body)
     //Extend:May add support depend on template, e.g. enyo
     this.AppendCompileIssue(node, IssueType.Error, IssueId.EventNotSupport);
     return node;
 }
Пример #9
0
 public override SyntaxNode VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     if (node == null)
         return null;
     //var symbol = m_model.GetDeclaredSymbol(node);
     var symbol = m_model.GetDeclaredSymbol(node.Declaration.Variables.First());
     node = (EventFieldDeclarationSyntax)base.VisitEventFieldDeclaration(node);
     if (!IsPrivateOrInternal(symbol.DeclaredAccessibility))
         node = (EventFieldDeclarationSyntax)ApplyDocComment(node, symbol.GetDocumentationCommentId());
     return node;
 }
        public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
        {
            if (IsIgnoreMember(node.Modifiers)) { return; }

            var modifiers = GetMemberModifiersText(node.Modifiers);
            var name = string.Join(",", node.Declaration.Variables.Select(v => v.Identifier));
            var typeName = node.Declaration.Type.ToString();

            WriteLine($"{modifiers} <<{node.EventKeyword}>> {name} : {typeName} ");
        }
Пример #11
0
 public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     base.VisitEventFieldDeclaration(node);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitEventFieldDeclaration(node);
 }
Пример #13
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitEventFieldDeclaration(node);
 }
Пример #14
0
 private static EventNode GetEventNode(EventFieldDeclarationSyntax evnt)
 {
     EventNode eventnode = new EventNode();
     eventnode.Name      = evnt.EventKeyword.ToString();
     eventnode.Modifier  = evnt.Modifiers.ToString();
     return eventnode;
 }
 public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     CheckXmlDocForErrors(node, semanticModel.GetDeclaredSymbol(node.Declaration.Variables.FirstOrDefault()));
 }
 public override VisualBasicSyntaxNode VisitEventFieldDeclaration(CSS.EventFieldDeclarationSyntax node)
 {
     return(base.VisitEventFieldDeclaration(node));
 }
        private static Document GetTransformedDocumentForEventFieldDeclaration(Document document, Diagnostic diagnostic, SyntaxNode root, SemanticModel semanticModel, EventFieldDeclarationSyntax eventFieldDeclaration, CancellationToken cancellationToken)
        {
            if (!eventFieldDeclaration.Modifiers.Any(SyntaxKind.OverrideKeyword))
            {
                ISymbol declaredSymbol = null;
                VariableDeclaratorSyntax firstVariable = eventFieldDeclaration.Declaration?.Variables.FirstOrDefault();
                if (firstVariable != null)
                {
                    declaredSymbol = semanticModel.GetDeclaredSymbol(firstVariable, cancellationToken);
                }

                if (declaredSymbol == null || !NamedTypeHelpers.IsImplementingAnInterfaceMember(declaredSymbol))
                {
                    return document;
                }
            }

            return InsertInheritdocComment(document, diagnostic, root, eventFieldDeclaration, cancellationToken);
        }
            public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
            {
                Debug.Assert(currentScope == null);
                DeclarationScope initScope = node.Modifiers.Any(SyntaxKind.StaticKeyword) ? staticInitScope : instanceInitScope;

                foreach (VariableDeclaratorSyntax declarator in node.Declaration.Variables)
                {
                    currentScope = initScope ?? new DeclarationScope(null);
                    Visit(declarator.Initializer);
                    currentScope = null;
                }
            }
        private static SyntaxNode HandleEventFieldDeclaration(EventFieldDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.EventKeyword;
            if (triviaToken.IsMissing)
            {
                return null;
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref triviaToken, SyntaxKind.PrivateKeyword);
            return node
                .WithEventKeyword(triviaToken)
                .WithModifiers(modifiers)
                .WithoutFormatting();
        }
 public override void VisitEventFieldDeclaration(EventFieldDeclarationSyntax node)
 {
     AsChild(node, node.Declaration.Variables.First().Identifier.Text, node.Declaration.Variables.First().Identifier.GetLocation());
 }