示例#1
0
        internal static bool TryGetConstructor(this ObjectCreationExpressionSyntax objectCreation, QualifiedType qualifiedType, SemanticModel semanticModel, CancellationToken cancellationToken, out IMethodSymbol ctor)
        {
            if (objectCreation.Type is SimpleNameSyntax typeName &&
                (typeName.Identifier.ValueText == qualifiedType.Type ||
                 AliasWalker.Contains(objectCreation.SyntaxTree, typeName.Identifier.ValueText)))
            {
                ctor = semanticModel.GetSymbolSafe(objectCreation, cancellationToken) as IMethodSymbol;
                return(ctor?.ContainingType == qualifiedType);
            }

            if (objectCreation.Type is QualifiedNameSyntax qualifiedName &&
                qualifiedName.Right.Identifier.ValueText == qualifiedType.Type)
            {
                ctor = semanticModel.GetSymbolSafe(objectCreation, cancellationToken) as IMethodSymbol;
                return(ctor?.ContainingType == qualifiedType);
            }

            ctor = null;
            return(false);
        }
 private static bool NameEquals(string left, QualifiedType right)
 {
     return(left == right.Type ||
            (right.alias != null && left == right.alias));
 }
        internal static bool IsSameType(this ExpressionSyntax expression, QualifiedType metadataName, SemanticModel semanticModel, CancellationToken cancellationToken)
        {
            var type = semanticModel?.Compilation.GetTypeByMetadataName(metadataName.QualifiedName);

            return(expression.IsSameType(type, semanticModel, cancellationToken));
        }
 public QualifiedMethod(QualifiedType containingType, string name)
     : base(containingType, name)
 {
 }
 internal static bool IsSameType(this ExpressionSyntax expression, QualifiedType metadataName, SyntaxNodeAnalysisContext context)
 {
     return(expression.IsSameType(metadataName, context.SemanticModel, context.CancellationToken));
 }
示例#6
0
 public QualifiedProperty(QualifiedType containingType, string name)
     : base(containingType, name)
 {
 }
示例#7
0
        internal static bool TryGetAttribute(MethodDeclarationSyntax methodDeclaration, QualifiedType attributeType, SemanticModel semanticModel, CancellationToken cancellationToken, out AttributeSyntax result)
        {
            if (methodDeclaration != null)
            {
                return(TryGetAttribute(
                           methodDeclaration.AttributeLists,
                           attributeType,
                           semanticModel,
                           cancellationToken,
                           out result));
            }

            result = null;
            return(false);
        }
示例#8
0
        internal static bool TryGetAttribute(SyntaxList <AttributeListSyntax> attributeLists, QualifiedType attributeType, SemanticModel semanticModel, CancellationToken cancellationToken, out AttributeSyntax result)
        {
            result = null;
            foreach (var attributeList in attributeLists)
            {
                foreach (var attribute in attributeList.Attributes)
                {
                    if (IsType(attribute, attributeType, semanticModel, cancellationToken))
                    {
                        result = attribute;
                        return(true);
                    }
                }
            }

            return(false);
        }
示例#9
0
 public QualifiedMember(QualifiedType containingType, string name)
 {
     this.Name           = name;
     this.ContainingType = containingType;
 }