private static AbstractExpression ReadTypeOf(ITypeOfOperation op) { var context = CodeReaderContext.GetContextOrThrow(); var operand = context.CodeModel.Get <TypeMember>(op.TypeOperand); return(new TypeReferenceExpression(operand)); }
private static void AnalyzeTypeof(OperationAnalysisContext context, ITypeOfOperation typeOf) { if (IsInternal(context, typeOf.TypeOperand)) { ReportDiagnostic(context, typeOf.TypeOperand); } }
public override MultiValue VisitTypeOf(ITypeOfOperation typeOfOperation, StateValue state) { if (typeOfOperation.TypeOperand is ITypeParameterSymbol typeParameter) { return(new GenericParameterValue(typeParameter)); } else if (typeOfOperation.TypeOperand is INamedTypeSymbol namedType) { return(new SystemTypeValue(new TypeProxy(namedType))); } return(TopValue); }
public override PointsToAbstractValue VisitTypeOf(ITypeOfOperation operation, object argument) { var _ = base.VisitTypeOf(operation, argument); return(PointsToAbstractValue.NoLocation); }
public override MultiValue VisitTypeOf(ITypeOfOperation typeOfOperation, StateValue state) { return(SingleValueExtensions.FromTypeSymbol(typeOfOperation.TypeOperand) ?? TopValue); }
public override NullAbstractValue VisitTypeOf(ITypeOfOperation operation, object argument) { var _ = base.VisitTypeOf(operation, argument); return(NullAbstractValue.NotNull); }
public override IOperation VisitTypeOf(ITypeOfOperation operation, object argument) { return(new TypeOfExpression(operation.TypeOperand, ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit)); }
public override void VisitTypeOf(ITypeOfOperation operation) { Assert.Equal(OperationKind.TypeOf, operation.Kind); Assert.NotNull(operation.TypeOperand); Assert.Empty(operation.Children); }
public virtual void VisitTypeOf(ITypeOfOperation operation) { DefaultVisit(operation); }
public override void VisitTypeOf([NotNull] ITypeOfOperation operation) { base.VisitTypeOf(operation); }
public override void VisitTypeOf(ITypeOfOperation operation) { var typeOperand = operation.TypeOperand; base.VisitTypeOf(operation); }
public override bool VisitTypeOf([NotNull] ITypeOfOperation operation1, [CanBeNull] IOperation argument) { return(argument is ITypeOfOperation operation2 && AreBaseOperationsEqual(operation1, operation2) && AreSymbolsEqual(operation1.TypeOperand, operation2.TypeOperand)); }
public override Location VisitTypeOf([NotNull] ITypeOfOperation operation, [CanBeNull] object argument) { var syntax = (TypeOfExpressionSyntax)operation.Syntax; return(syntax.Keyword.GetLocation()); }