aa474c9feb
Merge pull request #75988 from dalexeev/gds-unsafe-call-argument
...
GDScript: Improve call analysis
2023-09-27 19:07:46 +02:00
54a1414500
GDScript: Implement pattern guards for match statement
...
Within a match statement, it is now possible to add guards in each
branch:
var a = 0
match a:
0 when false: print("does not run")
0 when true: print("but this does")
This allows more complex logic for deciding which branch to take.
2023-09-27 11:25:25 -03:00
517e9f8aef
[Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable
2023-09-26 16:44:52 +02:00
16b024ba82
GDScript: Fix crash with GDScriptNativeClass
2023-09-25 17:09:20 +03:00
16e860bcb3
GDScript: Fix duplication of inherited script properties
2023-09-23 15:30:23 +03:00
e8696f9961
GDScript: Improve call analysis
...
* Add missing `UNSAFE_CALL_ARGUMENT` warning.
* Fix `Object` constructor.
* Display an error for non-existent static methods.
2023-09-21 13:36:39 +03:00
6c1be30836
Merge pull request #81605 from dalexeev/gds-fix-some-lambda-bugs
...
GDScript: Fix some lambda bugs
2023-09-16 21:23:42 +02:00
b1eb737719
GDScript: Fix some lambda bugs
2023-09-14 14:22:23 +03:00
d330f5642e
GDScript: Fix compilation of expressions compiling other classes
...
This PR is part of ongoing work on fixing cyclic dependencies in the GDScript
compiler.
2023-09-12 11:18:33 -04:00
b539bfb263
Merge pull request #81201 from anvilfolk/rpc
...
GDScript: Fix subclass methods not inheriting RPC info
2023-09-12 08:49:33 +02:00
711ffabcfe
GDScript: fix subclass methods not inheriting RPC info
2023-09-11 11:10:07 -04:00
462d8f4752
GDScript: Fix get_*_list() methods return incorrect info
2023-09-04 00:21:03 +03:00
2c77f07aaa
Add a script method to get its class icon
...
Co-authored-by: Danil Alexeev <danil@alexeev.xyz >
2023-08-24 13:05:41 +02:00
6c59ed9485
GDScript: Add static typing for for loop variable
2023-08-17 20:54:34 +03:00
f19377160c
GDScript: Fix regression with native signal not found
2023-08-02 15:42:36 +03:00
3de7dd902c
Merge pull request #79880 from dalexeev/gds-fix-id-shadowing-below
...
GDScript: Fix bug with identifier shadowed below in current scope
2023-07-31 21:01:36 +02:00
efbff1369a
Merge pull request #78254 from dalexeev/gds-fix-property-group-name-conflict
...
GDScript: Fix conflict between property and group names
2023-07-31 21:01:03 +02:00
d53fc92b4c
GDScript: Fix bug with identifier shadowed below in current scope
2023-07-26 11:26:57 +03:00
7d29ac0bf2
GDScript: solve _populate_class_members() cyclic dependency problem
2023-07-08 15:34:20 -04:00
faf3faa8c8
Merge pull request #77744 from dalexeev/gds-reset-block-locals-on-exit
...
GDScript: Reset local variables on exit from block
2023-06-21 21:51:05 +02:00
c211c22abc
Merge pull request #78389 from rune-scape/rune-match-stringnames
...
GDScript: Strings and StringNames match
2023-06-19 21:18:42 +02:00
aebbbda080
GDScript: Fix some bugs with static variables and functions
2023-06-16 22:52:11 +03:00
bf8f996212
GDScript: Fix conflict between property and group names
2023-06-15 08:36:10 +03:00
fcdd926881
GDScript: Strings and StringNames match
2023-06-14 19:24:28 -07:00
f3bf75fbb4
GDScript: Reset local variables on exit from block
2023-06-02 13:20:19 +03:00
0ba6048ad3
Add support for static variables in GDScript
...
Which allows editable data associated with a particular class instead of
the instance. Scripts with static variables are kept in memory
indefinitely unless the `@static_unload` annotation is used or the
`static_unload()` method is called on the GDScript.
If the custom function `_static_init()` exists it will be called when
the class is loaded, after the static variables are set.
2023-04-27 09:51:44 -03:00
26fb911f79
Merge pull request #72095 from anvilfolk/gd-docs
...
Improve GDScript documentation generation & behavior
2023-04-26 16:54:25 +02:00
45cd5dcad3
Merge pull request #75885 from AThousandShips/compound_fix
...
[GDScript] Fix incorrect compound assignment
2023-04-25 16:17:02 +02:00
6783ff69c0
Improve and fix GDScript documentation generation & behavior
...
Removes documentation generation (docgen) from the GDScript compiler to
its own file. Adds support for GDScript enums and signal parameters and
quite a few other assorted fixes and improvements.
2023-04-21 10:17:30 -04:00
e5365da03c
[GDScript] Fix incorrect compound assignment
...
Reverts in-place compound assignments
Added test to ensure correctness
2023-04-14 11:28:44 +02:00
2f4168daeb
Fix edge cases of object lifetime when signals involved
2023-04-11 17:27:39 +02:00
a008a06fcb
Merge pull request #72056 from resistor/master
...
[GDScript] Perform update-and-assign operations in place when possible.
2023-03-20 19:16:30 +01:00
55a2ad25bf
GDScript: Fix checking if a call is awaited in compiler
2023-03-01 09:31:35 +02:00
c0f1ed57c4
Merge pull request #73915 from vonagam/fix-conversions-from-native-member
...
GDScript: Fix conversions from native members accessed by identifier
2023-02-26 19:02:27 +01:00
1bd0b296e1
Merge pull request #73964 from vonagam/fix-coroutine-compiler-type
...
GDScript: Fix address type for coroutine results
2023-02-26 16:00:17 +01:00
c118790eb9
Merge pull request #73899 from vnen/gdscript-init-defaults-beforehand
...
GDScript: Initialize all defaults beforehand in implicit constructor
2023-02-26 15:59:27 +01:00
4efaf15605
GDScript: Fix address type for coroutine results
2023-02-26 08:30:46 +02:00
eba984a44f
Revert "GDScript: Fix groups and categories been seen as members"
...
This reverts commit 6f2a8434c6 .
The commit introduces a bug where it creates spurious entries for member
information.
2023-02-25 13:40:31 -03:00
281c8c75d3
GDScript: Fix conversions from native members accessed by identifier
2023-02-25 10:53:36 +02:00
0e6aa6fc38
GDScript: Initialize all defaults beforehand in implicit constructor
...
Set all the default values for typed variables before actually trying to
initialize them, including `@onready` ones.
This ensures that if validated calls are being used there will be a
value of the correct type, even if the resolution is done out of order
or deferred because of `@onready`.
2023-02-24 22:01:06 -03:00
6f2a8434c6
GDScript: Fix groups and categories been seen as members
2023-02-24 10:03:12 -03:00
d076c76551
GDScript: Fix setting native type with script inheritance
...
Sometimes the inheritance tree is compiled out of order and the base
don't have yet a native type set. This is now changed to not rely on the
base script but use the native type set in the datatype, which is
already resolved by the analyzer.
2023-02-21 14:09:10 -03:00
8fe023ad93
GDScript: Rework type check
2023-02-17 19:57:18 +02:00
94dfac8da7
Add return type for GDScript getters
2023-02-15 17:54:38 -05:00
98921d8fba
Revert "Remove script class checks when getting function signature"
...
This reverts commit 0fef203b1f .
This introduced some other issues, as discussed in #72144 .
2023-02-07 16:28:52 +01:00
0fef203b1f
Remove script class checks when getting function signature
2023-02-07 11:48:10 +01:00
a47d4d57ca
GDScript: Allow void functions to return calls to other void functions
2023-01-31 11:37:30 -03:00
5909f9f075
GDScript: Fix issues with typed arrays
2023-01-31 11:54:41 +02:00
011b3895db
GDScript: Fix vararg method calls with exact arguments
2023-01-30 19:38:07 +02:00
22a0c200c6
[GDScript] Perform update-and-assign operations in place when possible.
...
This turns two bytecode operations into one by using the assignment
destination directly as the output of the binary operator. This manifests
in operations like `+=`.
2023-01-25 10:22:04 -06:00