207 Commits
Author SHA1 Message Date
Danil Alexeev 43c73b6d8d GDScript: Allow implicit conversion for preload() argument 2026-07-23 13:52:44 +03:00
aurpine 9a55707735 GDScript: remove temporary when calling void function or uncaptured return value 2026-07-17 23:07:14 -04:00
Thaddeus Crews 9c5136b228 Merge pull request #121371 from nieboczek/release-at-end-of-statement
GDScript: Fix not releasing `RefCounted` temporary at end of statement
2026-07-15 18:11:26 -05:00
Thaddeus Crews 4b80850721 Merge pull request #120891 from mattigu/fix/unused-variable
GDScript: Fix attribute access falsely counting as local usage
2026-07-15 11:53:24 -05:00
nieboczek b76603aa61 GDScript: Fix not releasing RefCounted temporary at end of statement 2026-07-15 15:21:14 +02:00
mattigu 292239db6b GDScript: Move variable/parameter usage tracking to the analyzer
Usage of variables and parameters was previously done in the parser by
incrementing usage whenever an identifier was parsed. This process was
unaware of accessing member variables, which caused the warning to not
be emitted when using a member variable with the same identifier as an
unused local variable.

This change moves the usage counting logic to `reduce_identifier` in the
analyzer which only runs on actual expressions. The warning emission was
also moved later into analyzing since the usage information is collected
later.
2026-07-13 20:08:28 +02:00
Thaddeus Crews 2cd047c26d Merge pull request #119932 from dalexeev/gds-add-checks-for-abstract-classes
GDScript: Add missing runtime checks for abstract class instantiation
2026-07-13 10:37:48 -05:00
Thaddeus Crews 5248091d02 Merge pull request #119080 from aurpine/improve-custom-iterator-performance
Improve custom iterator performance
2026-06-30 08:44:50 -05:00
fish 0eecb08580 Change type validation error messages to be more readable
# Conflicts:
#	core/variant/container_type_validate.h
2026-06-24 21:04:09 -07:00
Thaddeus Crews 867f7dadeb Merge pull request #115461 from HolonProduction/gdscript/noroutine
GDScript: Prevent function states from leaking into typed temporaries, when overwriting with coroutines
2026-06-18 15:14:14 -05:00
aurpine 600a18e2ae Improve object custom iterator performance by removing Array allocations 2026-06-13 22:07:31 -04:00
Danil Alexeev a7ef3cc3b8 GDScript: Add missing runtime checks for abstract class instantiation 2026-06-02 12:36:33 +03:00
Danil Alexeev 30f2a30f9b GDScript: Preserve compatibility for untyped return of _get_property_list() 2026-05-05 10:47:07 +03:00
Danil Alexeev 8299b03c1a GDScript: Fix type deduction for functions without return statements 2026-04-19 12:11:58 +03:00
Danil Alexeev 7db019d44d GDScript: Improve PROPERTY_HINT_{ARRAY,DICTIONARY}_TYPE handling 2026-04-09 13:39:57 +03:00
Danil Alexeev 9a78c8bd31 GDScript: Group similar analyzer/runtime error tests into single files 2026-04-02 15:02:10 +03:00
Danil Alexeev d0eb19359e GDScript: Fix compiler generates incorrect bytecode for conversion return 2026-03-18 11:44:20 +03:00
Danil Alexeev 65a7cab928 GDScript: Deprecate type_exists() global function 2026-03-15 12:26:47 +03:00
Danil Alexeev 8a09a2f88c GDScript: Fix and simplify coroutine stack clearing 2026-03-04 10:50:02 +03:00
Danil Alexeev ba8b2a1ff0 GDScript: Fix interrupted coroutines not clearing 2026-02-24 12:04:40 +03:00
rune-scapeandrune-scape f3c2397e34 GDScript: Call static methods in native base class 2026-02-19 10:49:02 -08:00
Leonard Pop 058a46f154 Inherit parent method return types for untyped overrides 2026-02-02 21:34:37 +02:00
HolonProduction 7c6a17647f GDScript: Prevent function states from leaking into typed temporaries, when overwriting with coroutines 2026-01-27 16:47:14 +01:00
Danil Alexeev 6d06b3a7d6 GDScript: Improve evaluation of constant expressions with arrays/dictionaries 2026-01-12 11:59:38 +03:00
Danil Alexeev 37f09e579e Core: Fix implicit conversions in ContainerTypeValidate 2026-01-09 22:54:08 +03:00
Thaddeus Crews 8bc1dd63f4 Merge pull request #107936 from mihe/missing-await-warning
Add opt-in GDScript warning for when calling coroutine without `await`
2025-09-30 18:35:05 -05:00
Shadows_of_Fire b18beb2cc2 Elide unnecessary copies in CONSTRUCT_TYPED_* opcodes 2025-09-20 00:00:18 -07:00
aaronp64 2b855d831d Add more Array tests
Added more tests for Array, focusing on methods exposed to gdscript that didn't have tests.
2025-08-30 13:12:16 -04:00
Pāvels Nadtočajevs b21e6529e6 [GDScript] Fix range helper method using 32-bit ints for arguments. 2025-08-08 20:22:24 +03:00
George Marques 81c7cae567 GDScript: Don't get invalid dictionary key during completion
We try to get the value out of a dictionary in order to establish its
type for completion purposes. However, if the dictionary or the key
is not a constant, we cannot safely get the actual value, so we skip
this and just try to infer from static typing.

Getting the value directly with `Variant::get()` generate errors if the
base is a Dictionary and the key is of an invalid type. So before trying
to get it we use the Dictionary validator to make sure it we can safely
try to get the key.
2025-07-24 15:02:40 -03:00
Mikael Hermansson a3e58a385f Add opt-in GDScript warning for when calling coroutine without await 2025-06-27 20:24:41 +02:00
Aaron FrankeandDanil Alexeev 1085200f51 GDScript: Replace abstract keyword with @abstract annotation
Co-authored-by: Danil Alexeev <[email protected]>
2025-06-23 12:24:45 -07:00
Danil Alexeev e2d4469dc2 GDScript: Add missing type conversions in for range 2025-06-11 20:45:47 +03:00
Thaddeus Crews 0f05e91889 Merge pull request #82808 from dalexeev/gds-vararg
GDScript: Add support for variadic functions
2025-06-09 17:08:48 -05:00
Danil Alexeev a13fbc6e3e GDScript: Optimize non-constant for-range 2025-06-09 22:04:39 +03:00
Danil Alexeev ee121ef80e GDScript: Add support for variadic functions 2025-06-09 21:53:05 +03:00
Thaddeus Crews 86415f1732 Merge pull request #99150 from dalexeev/gds-fix-callable-call-errror-text
GDScript: Fix `Callable` call error text
2025-06-09 12:31:39 -05:00
Danil Alexeevandryanabx a7cf2069d5 GDScript: Add abstract methods
Co-authored-by: ryanabx <[email protected]>
2025-06-09 20:11:58 +03:00
Pedro J. Estébanez 6841b45552 Add tests for resource duplication 2025-05-26 17:05:04 +02:00
Malcolm Anderson d8db03e31a Fix a few GDScript warning messages for grammar and consistency
Regenerate test results

Improve warning message for `INT_AS_ENUM_WITHOUT_CAST`

Improve `REDUNDANT_AWAIT` message and regenerate tests

Allow warning message for UNASSIGNED_VARIABLE_OP_ASSIGN to display specific operator

Remove "being" from some messages to make them consistent and clearer

Update expected test results

Use Variant::get_operator_name for determining string representation of operator instead of big switch-case

Update tests

Update modules/gdscript/gdscript_warning.cpp

Co-authored-by: Danil Alexeev <[email protected]>

Update tests... again
2025-05-06 20:28:01 -07:00
Danil Alexeev 2b30f23595 GDScript: Fix Callable call error text 2025-05-02 18:30:35 +03:00
Nolkaloid c1cdaf7b16 Add gdscript tests for callv with const arrays 2025-04-10 23:13:01 +02:00
HolonProduction 676e4c9013 GDScript: Cancel suspended functions when reloading a script 2025-03-06 11:34:40 +01:00
Danil Alexeev 7d65d0a908 GDScript: Add @warning_ignore_start and @warning_ignore_restore annotations 2024-12-06 15:37:02 +03:00
Rémi Verschelde 682c5c7d49 GDScript: Fix failing tests due to collision with #99490 formatting change 2024-11-29 23:10:02 +01:00
Rémi Verschelde b3a44a5567 Merge pull request #99490 from dalexeev/gds-tests-track-multiple-errors
GDScript: Support tracking multiple analyzer and runtime errors in tests
2024-11-29 22:02:02 +01:00
Rémi Verschelde f2f48aaf36 Fix stringification of Projection 2024-11-25 21:10:32 +01:00
kobewi e210313045 Fix stringification of Vector4 2024-11-22 21:44:30 +01:00
Danil Alexeev f86dcd4e67 GDScript: Support tracking multiple analyzer and runtime errors in tests 2024-11-21 22:09:50 +03:00
Chaosus 0524e29b5c Fix crash when division by zero/modulo by zero happen on vectors 2024-11-21 20:24:43 +03:00