Commit Graph

536 Commits

Author SHA1 Message Date
Rémi Verschelde 98b81ad35c Merge pull request #53479 from vnen/gdscript-subscript-object-self 2021-10-06 19:48:23 +02:00
George Marques 1f55bd190c GDScript: Allow subscript on self and object types 2021-10-06 12:01:34 -03:00
George Marques 6bdb28f5e4 GDScript: Avoid hard errors on inferred types
Since inference isn't always correct, they are now treated as unsafe
instead of errors.

This also removes inferred type when a variable is reassigned. Since
it's not aware of branching, the types might become invalid in a later
context.
2021-10-06 11:42:19 -03:00
George Marques 7725ebf3d2 GDScript: Use path cache when checking preloaded scripts
The path itself might not always be set in some cases, especially when
the script is just created and is already in the resource cache. Using
get_path() in this case gets the correct resource path.

This also adds a null check for safety in case the path is incorrect or
missing, to avoid a crash in the engine.
2021-10-04 20:48:39 -03:00
Rémi Verschelde 4a4995524c Merge pull request #53338 from briansemrau/gdscript-handle-for-with-null-list 2021-10-04 17:11:43 +02:00
kobewi cb28469281 Allow void as return type for constructors 2021-10-03 21:16:54 +02:00
Brian Semrau dc046e5cbe GDScript Check for null list in for loop 2021-10-02 13:53:56 -04:00
Lightning_A c63b18507d Use range iterators for Map 2021-09-30 15:09:12 -06:00
Rémi Verschelde d2b8560d7a Revert "GdScript: Use reduced constant expression result when doing binary operations. Fixes #50293"
This reverts commit 6207708607.

It broke a GDScript test (which didn't exist back when the PR was made,
so was missed prior to the merge).

It choked on:
```
prints("a", test_instance.a, test_instance.a == Named.VALUE_A)
```
With:
```
Invalid operands "VALUE_A (enum value)" and "int" for "==" operator.
```
2021-09-30 18:57:59 +02:00
Rémi Verschelde 7f8e50801e Merge pull request #51818 from MarianoGnu/gdscript2-enum-fixes 2021-09-30 18:35:49 +02:00
George Marques 72c07708e8 GDScript: Don't allow builtin type names as identifiers 2021-09-29 11:23:16 -03:00
George Marques 5107f9190b GDScript: Remove conversion assign mistakenly done when unneeded 2021-09-21 11:58:57 -03:00
George Marques b8fdeb6467 Merge pull request #51671 from RandomShaper/fix_gdscript_crash
Fix some GDScript bugs
2021-09-17 12:29:40 -03:00
George Marques 4e69341c01 GDScript: Avoid inferred types from giving hard errors 2021-09-17 11:52:30 -03:00
George Marques a5c299630d Merge pull request #50456 from Blackiris/fix-extends-parent-relative
Fix extends with relative path to parent script
2021-09-15 11:12:24 -03:00
Rémi Verschelde c23823ac54 Merge pull request #52582 from jmb462/Prevent-non-explicit-inferring-parameter-from-null 2021-09-15 15:50:42 +02:00
Rémi Verschelde 45d9df2e63 Merge pull request #52632 from vnen/autoload-global-script-class-conflict
Disallow class names to be the same as global names
2021-09-13 21:10:50 +02:00
Rémi Verschelde 0c2ab55a58 Merge pull request #52100 from vnen/gdscript-access-outer-constants
GDScript: Allow access to outer constant and enum values
2021-09-13 18:04:35 +02:00
George Marques 2e5fa124f4 Disallow class names to be the same as global names
Also forbid autoloads to have the same name as global script class.
2021-09-13 10:51:29 -03:00
jmb462 b9219bedf7 Prevent non explicit inferring parameter from null 2021-09-11 21:11:10 +02:00
Pedro J. Estébanez 7c79e361f5 Fix parameter type resolution in GDScript 2021-09-11 11:35:25 +02:00
Pedro J. Estébanez d72f12a561 Implement iterator variable typing in GDScript 2021-09-11 11:35:25 +02:00
George Marques 6da061faf5 Merge pull request #49897 from Blackiris/fix-dollar-point-crash-on-editor
Fix crash when writing $. in the editor
2021-09-10 10:55:11 -03:00
Julien Nguyen a92d2c447b Fix extends with relative path to parent script 2021-09-05 00:11:04 +02:00
Max Hilbrunner 8c82e305ba Merge pull request #52329 from ZuBsPaCe/gdscript-unused-private-class-variable-fix
GDScript: Fix for UNUSED_PRIVATE_CLASS_VARIABLE
2021-09-03 10:04:11 +02:00
ZuBsPaCe c76ad6b158 GDScript: Count usages of member variables.
Otherwise private member variables will always lead to UNUSED_PRIVATE_CLASS_VARIABLE.
2021-09-03 07:44:46 +02:00
SaracenOne 84852585b9 Check for GDScript member and class naming conflicts in a variety of conditions. 2021-09-02 07:16:06 +01:00
Wilson E. Alvarez d11c1afc04 Rename String::is_rel_path to String::is_relative_path 2021-08-29 20:41:29 -04:00
George Marques 4918df4527 GDScript: Allow access to outer constant and enum values 2021-08-24 14:45:51 -03:00
George Marques 2e84a46a0f GDScript: Make singleton functions be seen as static
Since those can be called without an instance.
2021-08-20 10:52:58 -03:00
George Marques 1c8b076502 GDScript: Fix calling builtin static functions 2021-08-18 18:58:41 -03:00
George Marques 47545aeb1a GDScript: Fix issue when calling new() on its own 2021-08-18 18:56:21 -03:00
George Marques 2ba4ee9198 GDScript: Fix inner classes and preloaded scripts as types 2021-08-18 18:56:21 -03:00
Mariano Suligoy 6207708607 GdScript: Use reduced constant expression result when doing binary operations. Fixes #50293 2021-08-18 09:19:09 -03:00
Mariano Suligoy 70c5feb32c Accept non unnamed enums as valid values for enums. Fixes #49357 2021-08-17 19:44:27 -03:00
Mariano Suligoy 7f37e2987a When analyzing GdScript sources, consider Enums as Dictionaries. Fixes #45558 2021-08-17 19:44:27 -03:00
Max Hilbrunner 5161c97c9c Remove underscore hacks
Way less cruft. :)

Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-17 16:10:28 +02:00
Aaron Franke 4e6efd1b07 Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
Julien Nguyen bf8795c7af Fix crash when writing $. in the editor 2021-07-08 20:49:57 +02:00
Lightning_A e28fd07b2b Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde a9c53fa599 Merge pull request #49287 from reduz/expose-variant-internal-binders
Make some Variant internal functions public.
2021-06-19 01:11:03 +02:00
George Marques c4fcc678df Merge pull request #49449 from SpectralDragon/fix-enum-equal-operation
Fix equal operation for typed enums
2021-06-18 17:18:44 -03:00
George Marques b5f1e88b2e GDScript: Fix setting type of operator return value
Also write type adjust when needed for binary operators.
2021-06-18 13:09:35 -03:00
Pedro J. Estébanez 04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Rémi Verschelde 9e328bb5b7 Core: Move DirAccess and FileAccess to core/io
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Владислав Прусаков 6449c5f246 Fix equal operation for typed enums 2021-06-09 02:52:21 +03:00
Marcel Admiraal 8acd13a456 Rename Quat to Quaternion 2021-06-04 18:14:32 +01:00
Aaron Franke 08a85352fb Rename Variant TRANSFORM to TRANSFORM3D
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Rémi Verschelde 364ea7f280 Merge pull request #49114 from vnen/gdscript-fix-self-function-type-check
GDScript: Fix function signature check for self calls
2021-05-26 20:59:17 +02:00
George Marques a23fc45727 GDScript: Fix function signature check for self calls 2021-05-26 15:33:18 -03:00