mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 10:20:21 +02:00
The sources of the Free Pascal compiler, RTL, packages and utilities.
See https://www.freepascal.org/ for more info.
![]() - remove thelpersearch again => adjustments to searchsym_in_class and calls to it - rename sto_has_classhelper to sto_has_helper * symbase.pas: make push and pop in tsymtablestack virtual * symdef.pas: - add a new class tdefawaresymtablestack which overrides push and pop of tsymtablestack and adjusts the new extendeddefs field of the current tmodule - tobjectdef.create: sto_has_classhelper => sto_has_helper * fmodule.pas: - add new hash object list to tmodule (key: mangled type name) which holds object list instances that contain all helpers currently active for a given type (= key of the hash list) - tmodule.create: the hash list owns the sublists (but those don't own the defs) - tmodule.destroy: free the hash list * pdecobjpas: - rename parse_extended_class to parse_extended_type - parsing of constructors: # for all helper types: no class constructors allowed # for record helpers: as long as constructors for records themselves are disabled they are for record helpers as well - object_dec: manually add the helper to the extendeddefs if the overall owner of the current def is a static symtable (implementation section or program/library main file), because the symtable won't be popped and pushed then * parser.pas: instantiate the new stack class * psub.pas: backup the extendeddefs in specialize_objectdefs as well * ptype.pas: - generate_specialization: backup the extendeddefs as well - record_dec: _RECORD is now consumed in read_named_type itself - read_named_type: parse "record helper" if advanced record syntax is enabled * symtable.pas: - correct searchsym_in_class declaration => adjustments in this unit as well - add the possibility to pass a context def to search_last_objectpascal_helper - rename search_objectpascal_class_helper to search_objectpascal_helper - rename search_class_helper to search_objc_helper - searchsym_in_class: # search for helpers in every level of the tree of the class # the contextclassh can also be a subclass of the extendeddef - searchsym_in_record: search for helper methods as well - searchsym_in_helper: # search for symbols in class and record helpers is the same except for the search in the class' ancestors # search the extendeddef directly and rely on searchsym_in_class only for the class' ancestors as we need to find the helpers there as well - search_last_objectpascal_helper: use the extendeddefs list of current_module instead of scanning the symbol stack itself * pexpr.pas: adjustments because of renaming of sto_has_classhelper * pinline.pas: adjustment because of removing of thelpersearch * nflw.pas: - renamed classhelper to helperdef - adjusted search_last_objectpascal_helper call * msg*: - adjusted error message for constructors in records (this currently applies to record helpers as well) - renamed parser_e_not_allowed_in_classhelper to parser_e_not_allowed_in_helper => adjustments in code - added parser_e_no_class_constructors_in_helpers * pdecsub.pas: adjusted renamed error message * htypechk.pas: check for helpers in every step of the hierarchy * nobj.pas: search_class_helper => search_objc_helper * utils/ppudump.pas: adjust, because of renames Note: the define "useoldsearch" will be only used for performance comparison on my (faster) Linux machine; that (and its associated code) will be removed afterwards git-svn-id: branches/svenbarth/classhelpers@17151 - |
||
---|---|---|
compiler | ||
ide | ||
installer | ||
packages | ||
rtl | ||
tests | ||
utils | ||
.gitattributes | ||
.gitignore | ||
Makefile | ||
Makefile.fpc |