public override ResolveResult Resolve(CSharpResolver resolver) { ResolveResult lhs = left.Resolve(resolver); ResolveResult rhs = right.Resolve(resolver); return(resolver.ResolveBinaryOperator(operatorType, lhs, rhs)); }
public override ResolveResult Resolve(CSharpResolver resolver) { return(resolver.ResolveConditional( condition.Resolve(resolver), trueExpr.Resolve(resolver), falseExpr.Resolve(resolver) )); }
public override ResolveResult Resolve(CSharpResolver resolver) { ResolveResult rr; if (targetType != null) { rr = new TypeResolveResult(targetType.Resolve(resolver.CurrentTypeResolveContext)); } else { rr = targetExpression.Resolve(resolver); } return(resolver.ResolveMemberAccess(rr, memberName, typeArguments.Resolve(resolver.CurrentTypeResolveContext))); }
public override ResolveResult Resolve(CSharpResolver resolver) { var type = targetType.Resolve(resolver.CurrentTypeResolveContext); var resolveResult = expression.Resolve(resolver); if (allowNullableConstants && NullableType.IsNullable(type)) { resolveResult = resolver.ResolveCast(NullableType.GetUnderlyingType(type), resolveResult); if (resolveResult.IsCompileTimeConstant) { return(new ConstantResolveResult(type, resolveResult.ConstantValue)); } } return(resolver.ResolveCast(type, resolveResult)); }
public override ResolveResult Resolve(CSharpResolver resolver) { return(resolver.ResolveUnaryOperator(operatorType, expression.Resolve(resolver))); }
public override ResolveResult Resolve(CSharpResolver resolver) { return(expression.Resolve(resolver.WithCheckForOverflow(checkForOverflow))); }
public override ResolveResult Resolve(CSharpResolver resolver) { return(resolver.ResolveCast(targetType.Resolve(resolver.CurrentTypeResolveContext), expression.Resolve(resolver))); }