Commit Graph

530 Commits

Author SHA1 Message Date
florian
13de117b8e * give better error message for #40821 2024-06-16 10:51:45 +02:00
Sven/Sarah Barth
0e9efd07ef * extend read_anon_type() so that it can take a genericdef as well 2024-04-12 17:34:58 +02:00
florian
bccc0b195e * allow type = type ... ; syntax only for previously declared types, avoids also internal error for #40566 2024-02-20 23:14:31 +01:00
Michaël Van Canneyt
fe62b3ace8 * Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently 2024-02-13 19:44:36 +01:00
Michael VAN CANNEYT
ed50a1941b * Unicode resource strings 2023-07-25 16:06:53 +02:00
Sven/Sarah Barth
a20e8b9a3d * fix #40095: when searching a suitable constructor for the custom attribute don't allow the return of a procvar which can happen in Mac/TP procvar modes (like Delphi)
+ added test
2023-06-30 17:12:56 +02:00
Sven/Sarah Barth
c7776d899b * in case there hasn't been an error generated with an invalid attribute declaration then print at least "illegal expression" error 2023-06-30 17:09:52 +02:00
Sven/Sarah Barth
251af216ce * fix typo in comment 2023-06-23 16:15:33 +02:00
Sven/Sarah Barth
62cc594ca4 * for unique type aliases keep track of the original def
* increase PPU version
2023-06-23 16:15:27 +02:00
Jonas Maebe
7f41bb4718 JVM: add typesym for anonymous record typed constants
Fixes compilation of system unit with JVM compiler after b38d13577f
2023-02-05 10:58:59 +01:00
florian
e77ec69de4 * avoid internal error in case of an illegal generic declaration 2023-01-12 23:05:51 +01:00
Pierre Muller
e148afd506 Fix cycling with -CR option 2022-05-26 22:43:41 +02:00
florian
45bf47ee05 * compilation with -O3 fixed 2022-05-26 22:34:34 +02:00
Sven/Sarah Barth
533a11ec80 * correctly handle calling convention for function references 2022-05-26 21:43:39 +02:00
Sven/Sarah Barth
ff0b560fe4 * set the flag that the symtable contains a generic at the end of the corresponding block of types_dec() to ensure that the owner is assigned correctly 2022-05-26 21:43:39 +02:00
Sven/Sarah Barth
e8b0fc88e3 * correctly handle directives for function references 2022-05-26 21:43:37 +02:00
Sven/Sarah Barth
2ed2c21313 + add support for parsing function references 2022-05-26 21:42:59 +02:00
Sven/Sarah Barth
e5df46722e * apply part of patch by Blaise.ru: reduce code duplication when parsing anonymous procvar types 2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
bd226c00f1 * apply part of patch by Blaise.ru: check only once whether writable consts are enabled or not by determining the type of the assembly list earlier (it's only not needed in an error case anyway) 2022-05-26 21:42:54 +02:00
Sven/Sarah Barth
9c9c6cc81b * apply patch by Blaise.ru:
- all call sites of parse_var_proc_directives() have the tprocvardef easily available, so use parse_proctype_directives() directly
  - remove the now no longer required parse_var_proc_directives()
2022-05-26 21:42:53 +02:00
Pierre Muller
5acd7a7b83 Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
Sven/Sarah Barth
3f14a19d3e * fix typos in comments, no code changes 2022-02-18 17:54:36 +01:00
Sven/Sarah Barth
2a5023508a + add support for forward declarations of generic classes and interfaces (any implicit pointer type really); fixes #34128 2022-02-18 17:54:23 +01:00
Sven/Sarah Barth
3e26beb1ed * extract the code to parse a forward declaration out from types_dec into its own function parse_forward_declaration 2022-02-18 17:53:35 +01:00
Sven/Sarah Barth
7f1e420bb0 * move determine_generic_def out from pdecl.types_dec to pgenutil 2022-02-18 17:53:35 +01:00
florian
f78818e387 * some warnings fixed 2021-09-18 19:24:53 +02:00
pierre
6230de31bb * Second patch xml-node-dump-defs.patch from J. Gareth Moreton from bug report 36882.
With same changes to ensure that xmllint find no errors in generated xml files.

git-svn-id: trunk@47667 -
2020-12-02 21:01:40 +00:00
Jonas Maebe
1c61c30cd2 * added "const" to some string parameters
git-svn-id: trunk@47299 -
2020-11-03 21:34:15 +00:00
Jonas Maebe
cc315e0ac7 * fix tw3930 after r37927
o "unique" class (and interface) type aliases should actually not exist at
     all except for overload resolution. All the rest (VMT, UUID, RTTI, ...)
     should be taken from the aliased class/interface
   o there is one Delphi-incompatibily left after this change, but it shouldn't
     matter: tw8180 does not compile if you change the declaration to
     "tcl=class(TInterfacedObject,XStr,iinterface)", while Kylix does compile
     that. It doesn't really matter though, because in Kylix this actually
     adds iinterface twice as implemented interface, so there is no point
     in accepting this.

git-svn-id: trunk@46773 -
2020-09-05 12:25:09 +00:00
florian
6dac888ae5 * 0 is a valid label in iso mode, resolves #37428
git-svn-id: trunk@46362 -
2020-08-11 12:05:13 +00:00
florian
f6f5cb45a3 + strip leading zeros in numeric labels in iso/extended pascal mode also in label declarations, resolves #37323
git-svn-id: trunk@45764 -
2020-07-11 07:12:37 +00:00
svenbarth
60345366f2 * fix for Mantis #35140: apply patch by Ryan Joseph together with some further changes by me to add support for constant parameters in generics
+ added tests

git-svn-id: trunk@45080 -
2020-04-25 22:12:35 +00:00
florian
c146aecc01 * throw an error if the forward interface type and the actual interface type do not match, resolves #36720
git-svn-id: trunk@44230 -
2020-02-21 20:35:27 +00:00
pierre
d1e4066477 Hopefully fix problems related to loading of ppufile generated with other endianess for generics
git-svn-id: trunk@44056 -
2020-01-28 23:43:56 +00:00
svenbarth
8111e92e1f * rework syntax for cblocks: now a cblock directive is required
* additionally implicit calling conventions of cdecl or mwpascal now work as well
* adjusted tests
+ added tests

Note: the generator for packages/univint needs to be fixed, until then building on macOS will be broken

git-svn-id: trunk@43684 -
2019-12-14 16:45:38 +00:00
svenbarth
bf5d75e594 * move the common sequence to build a VMT for an objectdef into a separate procedure (based on a patch by Blaise.ru)
git-svn-id: trunk@43674 -
2019-12-11 22:42:53 +00:00
svenbarth
85637ad5fa * register constant symbols
git-svn-id: trunk@43537 -
2019-11-21 21:44:26 +00:00
Jonas Maebe
a051b8d225 - remmoved doregister parameter from t*sym constructors, as the registration
is handled automatically nowadays

git-svn-id: trunk@42998 -
2019-09-14 17:30:45 +00:00
Jonas Maebe
956aab3be0 * implement support for the Objective-C "related result type" convention
as described on
    http://releases.llvm.org/8.0.0/tools/clang/docs/LanguageExtensions.html#objective-c-features
    (rest of mantis #35994)

git-svn-id: trunk@42816 -
2019-08-25 15:23:53 +00:00
florian
aac8559a8d * some runtime errors fixed, if compiled with -CrR
git-svn-id: trunk@42479 -
2019-07-21 12:25:55 +00:00
svenbarth
c282f21b1b * don't bother finding the correct constructor if the attribute isn't a TCustomAttribute descendant anyway; simply skip the parameters in that case
+ added tests

git-svn-id: trunk@42470 -
2019-07-20 19:46:03 +00:00
svenbarth
6cde8ab4cb * fix for Mantis #35866: parse_paras does not check whether the expressions are really constant, so check that manually
+ added test

git-svn-id: trunk@42469 -
2019-07-20 19:45:59 +00:00
svenbarth
b7a8dd9479 * adjust error message when attributes are unbound
git-svn-id: trunk@42410 -
2019-07-12 22:08:17 +00:00
svenbarth
87458a065c * allow use of multiple, comma separated attributes as Delphi allows that as well
+ added test

git-svn-id: trunk@42409 -
2019-07-12 22:08:14 +00:00
svenbarth
98b1b04951 * free unbound attributes
git-svn-id: trunk@42407 -
2019-07-12 22:08:07 +00:00
svenbarth
404b465c33 * allow custom attributes for all type declarations that are not a simple alias
+ added tests

git-svn-id: trunk@42405 -
2019-07-12 22:08:00 +00:00
svenbarth
80ebb98431 * correct identation (no code changes)
git-svn-id: trunk@42404 -
2019-07-12 22:07:57 +00:00
svenbarth
8ce4f9606d * explicitely store the procdef of the picked constructor of the attribute
git-svn-id: trunk@42400 -
2019-07-12 22:07:41 +00:00
svenbarth
a64a8f8deb - remove code to create an attribute using a synthetic function
git-svn-id: trunk@42396 -
2019-07-12 22:07:28 +00:00
svenbarth
402728239f * trtti_attribute_list.bind already checks whether the dangling attribute list is assigned or not
git-svn-id: trunk@42395 -
2019-07-12 22:07:24 +00:00