bool TryBindArgument(int srcarg, Type targetType, out Expression expr) { var args = _args; if (srcarg >= 0 && srcarg < args.Length) { // skip RuntimeChain's srcarg = MapToArgsIndex(srcarg); // if (srcarg < args.Length) { expr = args[srcarg]; // apply the runtime chain: if (srcarg + 1 < args.Length) { BinderHelpers.TryAppendRuntimeChain(ref expr, args[srcarg + 1], _ctx, _classContext, targetType == typeof(PhpAlias)); } // if (targetType != null) { expr = ConvertExpression.Bind(expr, targetType, _ctx); } // return(true); } } // not provided expr = null; return(false); }