mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-27 20:54:30 +02:00
* allow equal result types instead of exactly the same result types for generic functions if both are specializations (otherwise they would be considered as different if they depend on the generic function's generic types)
git-svn-id: trunk@34409 -
This commit is contained in:
parent
3ea78f53ad
commit
a4a1e9db12
@ -3434,8 +3434,14 @@ const
|
||||
if compare_paras(fwpd.paras,currpd.paras,cp_none,[cpo_ignorehidden,cpo_openequalisexact,cpo_ignoreuniv,cpo_generic])<>te_exact then
|
||||
exit;
|
||||
if not foundretdef then
|
||||
{ the returndef isn't a type parameter, so compare as usual }
|
||||
result:=compare_defs(fwpd.returndef,currpd.returndef,nothingn)=te_exact
|
||||
begin
|
||||
if tstoreddef(fwpd.returndef).is_specialization and tstoreddef(currpd.returndef).is_specialization then
|
||||
{ for specializations we're happy with equal defs instead of exactly the same defs }
|
||||
result:=equal_defs(fwpd.returndef,currpd.returndef)
|
||||
else
|
||||
{ the returndef isn't a type parameter, so compare as usual }
|
||||
result:=compare_defs(fwpd.returndef,currpd.returndef,nothingn)=te_exact;
|
||||
end
|
||||
else
|
||||
result:=true;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user