// ----- ----- ----- ----- override ----- ----- ----- -----

            protected override Expression GenLambdaParam(LambdaParameter elem)
            {
                var param = ParamList.Search(_params, p => p.Name == elem.Name);

                if (param != null)
                {
                    return(param);
                }
                param   = Expression.Parameter(typeof(object), elem.Name);
                _params = new ParamList(param, _params);
                return(param);
            }
 // ----- ----- ----- ----- override ----- ----- ----- -----
 protected override Expression GenLambdaParam(LambdaParameter elem)
 {
     var param = ParamList.Search(_params, p => p.Name == elem.Name);
     if (param != null)
         return param;
     param = Expression.Parameter(typeof(object), elem.Name);
     _params = new ParamList(param, _params);
     return param;
 }
 protected virtual Expression GenLambdaParam(LambdaParameter elem)
 {
     Contract.Requires <ArgumentNullException>(elem != null);
     Contract.Ensures(Contract.Result <Expression>() != null);
     throw StmtGen.Error("ラムダパラメタはラムダ式の内部でのみ利用出来ます。", elem.Range.Start);
 }
 protected virtual Expression GenLambdaParam(LambdaParameter elem)
 {
     Contract.Requires<ArgumentNullException>(elem != null);
     Contract.Ensures(Contract.Result<Expression>() != null);
     throw StmtGen.Error("ラムダパラメタはラムダ式の内部でのみ利用出来ます。", elem.Range.Start);
 }