Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }