private static IOperation TryGetTargetInNotNullCheck([NotNull] IOperation operation, [NotNull] NullCheckScanner scanner) { IOperation targetOperation = SkipNotOperators(operation); var visitor = new NullCheckVisitor(scanner); visitor.Visit(targetOperation); return(visitor.ScanResult != null && visitor.ScanResult.Value.Operand == NullCheckOperand.IsNotNull ? visitor.ScanResult.Value.Target : null); }
public Expression Resolve(Expression input, Expression output) { if (input.Type == typeof(string) || output.Type != typeof(string)) { return(null); } Expression result = Expression.Call(input, typeof(object).GetTypeInfo().GetDeclaredMethod("ToString")); if (input.Type.IsClass()) { result = new NullCheckVisitor(result).Visit(); } return(result); }