- add stoAllowSpecialization to TSingleTypeOption enum to differentiate between any new type definition and only generic specialization
- allow only specializations for class parents (not any other type definition)
- allow specialization for method arguments and return types (maybe this must be allowed only in delphi mode but in this case tgeneric11 must fail)
git-svn-id: trunk@16738 -
- store type parameter in parasymtable, push it to the symtablestack before parsing arguments and return type
- move procedure/function declaration parsing to procvar_dec subroutine
- don't skip parasymtable while searching types because they store type parameters now
- add TParaSymTable.ReadOnly field to prevent adding defs into symtable. Add defs to the parent symtable in this case (we are adding this symtable to stack to read type parameters only, add defs should go to parent in this case as it was before)
git-svn-id: trunk@16719 -
relocations for addr_pic_no_got references (do not go via the GOT)
* fixed code generator so that it generates addr_pic_no_got references
also for platforms that use the internal assembler (this will break linking
of some tests that check static data > 2GB on Linux/x86-64, but they were
already broken before as well because we don't use the "huge" x86-64
execution model)
* fixed x86-64 Linux syscall code to not expect GOT-based relocations for
the system unit's errno variable (it's an implementation-only variable)
git-svn-id: trunk@16717 -
- change id_type to single_type in readImplementedInterfacesAndProtocols to allow use of interface specializations inside class parent block
- change single_type boolean arguments to set, add stoParseClassParent option to that set
- move parse_generic variable assignment from parse_object_members to outer routine to setup it before parsing class parents
- return paticular generic in generate_specialization instead of undefineddef to pass class/interface checks inside parent class block
- add test for delphi mode
- modify tw11431 to be syntatically correct
git-svn-id: trunk@16706 -
- show array symtable
- support unicodestring
- don't read "Last VTable idx" field in case of interface - this entry is not stored in ppu
git-svn-id: trunk@16688 -
change is that it is now also allowed to specify an external name for
formal external class definitions, but if they are later mixed with
regular class definitions the external names have to match.
o because the "external" status of methods is now set while parsing the
class rather than afterwards, some procdir compatibility checks had to
be inlined because they only have to be performed for
* also adapted the syntax for external cppclasses in the same way
* fixed return type of NSObject.retainCount and NSObject.hash
(NSUInteger instead of cint)
* moved "patches" directory from cocoaint/src to cocoaint/utils/cocoa-skel
so they are used by the conversion script when re-parsing the headers
* updated Objective-C header parser script to
o use the new external class syntax
o not write inheritance information for root classes (NSObject, NSProxy)
o use internal translation tables for some conflicting method names that
are named specially in objcbase.pp
and updated parsed headers
* fixed rtl/inc/objcbase.pp and tests to conform to the new external class
syntax
git-svn-id: trunk@16684 -