This commit is contained in:
parent
a63a489968
commit
28b1a4917b
9
TestSuite/defaultparams5.pas
Normal file
9
TestSuite/defaultparams5.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
var obj: object;
|
||||||
|
procedure p1<T>(o: T := default(T));
|
||||||
|
begin
|
||||||
|
obj := o;
|
||||||
|
end;
|
||||||
|
begin
|
||||||
|
p1&<BigInteger>;
|
||||||
|
assert(BigInteger(obj) = default(BigInteger));
|
||||||
|
end.
|
||||||
|
|
@ -2649,6 +2649,14 @@ namespace PascalABCCompiler.TreeRealization
|
||||||
par.default_value, null);
|
par.default_value, null);
|
||||||
cpar.inital_value = par.inital_value;
|
cpar.inital_value = par.inital_value;
|
||||||
cpar.default_value = par.default_value;
|
cpar.default_value = par.default_value;
|
||||||
|
if (cpar.default_value is default_operator_node)
|
||||||
|
(cpar.default_value as default_operator_node).type = generic_convertions.determine_type(cpar.default_value.type, _instance_params, true, orig_gen_params);
|
||||||
|
else if (cpar.default_value is default_operator_node_as_constant)
|
||||||
|
{
|
||||||
|
(cpar.default_value as default_operator_node_as_constant).type = generic_convertions.determine_type(cpar.default_value.type, _instance_params, true, orig_gen_params);
|
||||||
|
(cpar.default_value as default_operator_node_as_constant).default_operator.type = (cpar.default_value as default_operator_node_as_constant).type;
|
||||||
|
}
|
||||||
|
|
||||||
cpar.intrenal_is_params = par.is_params;
|
cpar.intrenal_is_params = par.is_params;
|
||||||
cpar.is_ret_value = par.is_ret_value;
|
cpar.is_ret_value = par.is_ret_value;
|
||||||
cpar.is_special_name = par.is_special_name;
|
cpar.is_special_name = par.is_special_name;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue