svenbarth
|
6ba85c2a70
* second fix for Mantis #30626: also search in parent classes for a suitable pre-existing specialization
|
8 gadi atpakaļ |
svenbarth
|
0a1e080089
* only create a new procsym for a specialization if it's indeed needed
|
8 gadi atpakaļ |
svenbarth
|
a535d54bcb
* fix for Mantis #30939: Rework generation of the generic name to be less relying on the type hierarchy as a specialization inside the parameter declaration would want to have the full name of the procdef including its parameters, but those are still parsed at that stage (the pretty name is still a topic onto itself however...)
|
8 gadi atpakaļ |
svenbarth
|
ee466b9a28
* extend tdef.fullownerhierarchyname() with a parameter that skips the inclusion of a procdef's parameter declaration using the new pno_noparams option
|
8 gadi atpakaļ |
svenbarth
|
63b0024e4c
* fix for Mantis #30626: unset current_procinfo so that further specializations don't use a symtable to specialize themselves in that they shouldn't use (cause current_procinfo takes precedence)
|
8 gadi atpakaļ |
svenbarth
|
fd7daf91df
+ new overload for generate_specialization_phase1() which allows to pass a specific symbol name without the need to specify a file position
|
9 gadi atpakaļ |
svenbarth
|
627e30f47f
* factor() might return a typenode with a errordef, so check for that and don't add the typesymbol to the parameter list in that case; fixes the access violation of tw17181.pp
|
9 gadi atpakaļ |
svenbarth
|
80c2e3b51a
* special detection of an ongoing specialization for the case that a function that belongs to a generic and has said generic as parameter or result is in turn specialized as a parameter or result of another generic function
|
9 gadi atpakaļ |
svenbarth
|
6a14bb5014
* check the owner of current_specializedef as that is Nil if a generic routine is specialized and this is the specialization of one of its parameters or its result type
|
9 gadi atpakaļ |
pierre
|
22a7ce8972
Fix memory leak due to double srsym allocation
|
9 gadi atpakaļ |
Jonas Maebe
|
95f28e5e0c
* avoid a crash when processing synthetic methods of specialised classes:
|
9 gadi atpakaļ |
svenbarth
|
6c3dd6b601
Another system, another regression... (this time tests/test/tgenfunc15.pp on i386-win32)
|
9 gadi atpakaļ |
svenbarth
|
fd98ec56e9
Fix (hopefully last) regression introduced due to the reworking specialization of routine bodies.
|
9 gadi atpakaļ |
florian
|
04a68d9b94
* fix compilation with -Oodfa
|
9 gadi atpakaļ |
svenbarth
|
1bd43d9e37
Fix regressions.
|
9 gadi atpakaļ |
svenbarth
|
1d7c19aaf0
Fix regressions.
|
9 gadi atpakaļ |
svenbarth
|
f27ce0b159
Rework the way the method bodies for specializations are generated: instead of walking the global and local symboltable all pending specializations are kept in a list of the current module which is (for now) walked at the end of a unit/program to generate the method bodies as before.
|
9 gadi atpakaļ |
svenbarth
|
2f6a1c01ba
pgenutil.pas, generate_specialization_phase2:
|
9 gadi atpakaļ |
svenbarth
|
f8def6dbc9
Store and use procedure directives of generic routines.
|
9 gadi atpakaļ |
svenbarth
|
d07b49270f
Fix for Mantis #30030.
|
9 gadi atpakaļ |
svenbarth
|
e9fab1bfee
Fix for Mantis #29080.
|
9 gadi atpakaļ |
svenbarth
|
0ff87336aa
Convert the Boolean parameters accept_equal, typeonly and hadspecialize of comp_expr(), sub_expr() and factor() to a set parameter and adjust all calls.
|
9 gadi atpakaļ |
Jonas Maebe
|
2cea723a0d
* only write the parts of the unit localsymtables that are actually needed:
|
10 gadi atpakaļ |
svenbarth
|
96a9273fba
pdecsub.pas:
|
10 gadi atpakaļ |
svenbarth
|
35d8a51730
pexpr.pas:
|
10 gadi atpakaļ |
svenbarth
|
2e24d6dffb
htypechk.pas:
|
10 gadi atpakaļ |
svenbarth
|
e8c68a09c1
pgenutil.pas, parse_generic_parameters:
|
10 gadi atpakaļ |
svenbarth
|
040786e5bb
+ extend tundefineddef with the possiblity to create it as unregistered
|
10 gadi atpakaļ |
svenbarth
|
4b98b36212
pgenutil.pas:
|
10 gadi atpakaļ |
yury
|
d27964bd1a
* Removed unused chunk of code. Looks like a not needed leftover.
|
10 gadi atpakaļ |