svenbarth
|
90bec938f6
* don't free the constructor call in trtti_attribute_list as that is already freed in the destructor of trtti_attribute
|
6 tahun lalu |
svenbarth
|
404b465c33
* allow custom attributes for all type declarations that are not a simple alias
|
6 tahun lalu |
svenbarth
|
80ebb98431
* correct identation (no code changes)
|
6 tahun lalu |
svenbarth
|
9dbd155131
* use two empty lines between method definitions (no code changes)
|
6 tahun lalu |
svenbarth
|
a72553eea2
* disable [...] syntax for procedure directives if modeswitch "prefixed attributes" is enabled; they conflict otherwise and it's not easily resolveable
|
6 tahun lalu |
svenbarth
|
b945e66e28
* store attribute information in PPU; this is less important for the compiler, but more for e.g. Lazarus when dealing with binary only units
|
6 tahun lalu |
svenbarth
|
8ce4f9606d
* explicitely store the procdef of the picked constructor of the attribute
|
6 tahun lalu |
svenbarth
|
dfb9fffcf9
+ add functions for syms and defs and write sub entries of the sym/def to PPU and loads them again
|
6 tahun lalu |
svenbarth
|
352ff5f82a
- symbolname field is no longer required
|
6 tahun lalu |
svenbarth
|
3a02393584
- remove functionality to get the code block when parsing again (let's open this pandora's box only when really needed...)
|
6 tahun lalu |
svenbarth
|
a64a8f8deb
- remove code to create an attribute using a synthetic function
|
6 tahun lalu |
svenbarth
|
402728239f
* trtti_attribute_list.bind already checks whether the dangling attribute list is assigned or not
|
6 tahun lalu |
svenbarth
|
ced3885dbb
* generate construction function for the attributes used in a unit using a more straight forward approach
|
6 tahun lalu |
svenbarth
|
0b63e89ba2
* make the reference to the TCustomAttribute type global
|
6 tahun lalu |
svenbarth
|
d9d2515ada
* move binding of a dangling attribute list to a sym's/def's attribute list to a class procedure of trtti_attribute_list
|
6 tahun lalu |
svenbarth
|
5cea374255
* add a remark that's going to be important once extended RTTI is supported (Delphi programs crash if an attribute's constructor is used that does not have any extended RTTI)
|
6 tahun lalu |
svenbarth
|
71fa4d1fe2
* the RTTI of an attribute not only consists of the creation function, but also of the attribute's type, a pointer to the constructor and a data blob containing the constant parameters
|
6 tahun lalu |
svenbarth
|
55d5bdc98d
+ add methods for the const nodes to directly emit their constant data to a constant builder
|
6 tahun lalu |
svenbarth
|
f9cda608fa
* take a copy of the constructor assignment node (and free it together with the attribute)
|
6 tahun lalu |
svenbarth
|
d31dd4ac7b
* better check for a valid call node
|
6 tahun lalu |
svenbarth
|
8cd1f1973b
- remove unneeded local variable
|
6 tahun lalu |
svenbarth
|
affa9f9d9c
* to be on the safe side: don't include AttributeTable fields when cycling
|
6 tahun lalu |
svenbarth
|
99914b4279
* instead of collecting the raw parameters we need to collect the parameters as passed to the call as there might be type conversions involved
|
6 tahun lalu |
svenbarth
|
b5e6c0b98d
* ensure that any potentially created constructor call is freed if the attribute is not bound to a def or sym
|
6 tahun lalu |
svenbarth
|
0e04d9b4de
* store the parameter nodes in the attribute object as well (we need to write them to the RTTI as well as store them in the PPU)
|
6 tahun lalu |
svenbarth
|
3a20178d96
* fix code formatting (no code changes)
|
6 tahun lalu |
svenbarth
|
c214648224
+ add a test for overloaded attribute constructors
|
6 tahun lalu |
svenbarth
|
db37146f12
* rework code for parsing attributes to only allow constant expressions; Delphi only allows those as well and better we don't open *that* pandora's box just yet
|
6 tahun lalu |
svenbarth
|
ab2fa724ec
* fix code formatting (no code changes)
|
6 tahun lalu |
svenbarth
|
62c137a6d8
* check that we indeed have a type node and nothing else
|
6 tahun lalu |