private static ISymbol GetGlobalMember(SemanticModelBase semanticModel, SyntaxNodeBase node) { switch (node) { case FunctionSyntax t: return(semanticModel.GetDeclaredSymbol(t)); case VariableDeclaratorSyntax t: return(semanticModel.GetDeclaredSymbol(t)); } return(null); }
private static ISymbol GetType(SemanticModelBase semanticModel, SyntaxNodeBase node) { switch (node) { case ConstantBufferSyntax t: return(semanticModel.GetDeclaredSymbol(t)); case NamespaceSyntax t: return(semanticModel.GetDeclaredSymbol(t)); case TechniqueSyntax t: return(semanticModel.GetDeclaredSymbol(t)); case TypeDefinitionSyntax t: return(semanticModel.GetDeclaredSymbol(t)); } return(null); }
public ISymbol GetDeclaredSymbol(SemanticModelBase semanticModel, ISyntaxToken token, CancellationToken cancellationToken) { var location = token.SourceRange; var q = from node in ((SyntaxToken)token).Ancestors() let symbol = semanticModel.GetDeclaredSymbol(node) where symbol != null && symbol.Locations.Contains(location) select symbol; return(q.FirstOrDefault()); }