George Marques
5fc7918594
GDScript: Improve usability of setter chains
...
- Consider PackedArrays non-shared since they are copied on C++/script
boundaries.
- Add error messages in the analyzer when assigning to read-only
properties.
- Add specific error message at runtime when assignment fails because
the property is read-only.
2023-02-02 10:20:35 -03:00
Dmitrii Maganov
7b04e3865a
GDScript: Fix getting reduced value of incomplete subscript
2023-02-02 02:15:26 +02:00
Dmitrii Maganov
1a810ff45e
GDScript: Fix type certainty for result of ternary operator
2023-02-01 14:52:29 +02:00
Rémi Verschelde
afe3b94ab2
Revert "GDScript: Add warnings that are set to error by default"
...
This reverts commit a166833bfa
.
This caused multiple regressions.
Needs to be redone with more testing before merge.
Fixes #72501 .
2023-02-01 10:54:22 +01:00
George Marques
a166833bfa
GDScript: Add warnings that are set to error by default
...
- Adds a list of default levels for all warning so they can be set
individually.
- Add warnings set by default to error for:
- Using `get_node()` without `@onready`.
- Using `@onready` together with `@export`.
- Inferring a static type with a Variant value.
- Overriding a native engine method.
- Adjust how annotations to ignore warnings are treated so they also
apply to method parameters.
- Clean up a bit how ignored warnings are set. There were two sets but
only one was actually being used.
- Set all warnings to the `WARN` level for tests, so they they can be
properly tested.
- Fix enum types in native methods signatures being set to `int`.
- Fix native enums being treated as Dictionary by mistake.
- Make name of native enum types use the class they are defined in, not
the direct super class of the script. This ensures they are always
equal even when coming from different sources.
- Fix error for signature mismatch that was only showing the first
default argument as having a default. Now it shows for all.
2023-02-01 00:05:14 -03:00
Rémi Verschelde
925784df03
Merge pull request #72454 from dalexeev/gds-fix-icon-annotation
...
GDScript: Fix `@icon` annotation
2023-01-31 15:58:49 +01:00
Rémi Verschelde
6d9c9d30b9
Merge pull request #72206 from vnen/gdscript-allow-void-return-shorthand
...
GDScript: Allow void functions to return calls to other void functions
2023-01-31 15:55:35 +01:00
Rémi Verschelde
361f3f1721
Merge pull request #57520 from jordigcs/gd-rename-map
...
Add hint for identifiers renamed from 3.x to 4.0
2023-01-31 15:55:25 +01:00
Danil Alexeev
83cb968965
GDScript: Fix `@icon` annotation
2023-01-31 17:43:54 +03:00
George Marques
a47d4d57ca
GDScript: Allow void functions to return calls to other void functions
2023-01-31 11:37:30 -03:00
Dmitrii Maganov
5909f9f075
GDScript: Fix issues with typed arrays
2023-01-31 11:54:41 +02:00
Rémi Verschelde
a2817eca03
Merge pull request #72175 from dalexeev/gds-fix-export-group-annotations
...
GDScript: Fix broken export group annotations
2023-01-30 10:00:54 +01:00
Rémi Verschelde
a3dae9e548
Merge pull request #72285 from vnen/gdscript-variable-match
...
GDScript: Allow variables in match patterns
2023-01-29 02:45:48 +01:00
Rémi Verschelde
4011a0915e
Merge pull request #71844 from vonagam/fix-constant-conversions
...
GDScript: Fix constant conversions
2023-01-29 02:18:57 +01:00
George Marques
c68b2358d5
GDScript: Allow variables in match patterns
...
To restore an ability available in 3.x and reduce compatibility changes.
2023-01-28 19:53:27 -03:00
Dmitrii Maganov
31e0ae2012
GDScript: Fix constant conversions
2023-01-29 00:01:53 +02:00
Dmitrii Maganov
6194a7e0fa
GDScript: Fix implicit conversions for function returns
2023-01-28 23:56:07 +02:00
Rémi Verschelde
cc6e8379d4
Merge pull request #69163 from vonagam/variant-safe-lines
...
GDScript: Fix wrong marking of some lines related to Variant as unsafe
2023-01-28 15:40:19 +01:00
Danil Alexeev
1d68ce2cce
GDScript: Fix broken export group annotations
2023-01-27 16:25:15 +03:00
Dmitrii Maganov
abe6d67232
GDScript: Fix test for read-only state of constants
2023-01-27 05:28:08 +02:00
Rémi Verschelde
a5c211641f
Merge pull request #71634 from dalexeev/gds-annotations-analyzer
...
GDScript: Allow constant expressions in annotations
2023-01-26 01:07:00 +01:00
Rémi Verschelde
944b44243d
Merge pull request #72008 from vonagam/fix-property-access-unsafe-mark
...
GDScript: Fix marking of line with unsafe property access as unsafe
2023-01-26 01:04:57 +01:00
Danil Alexeev
b004f8180e
GDScript: Allow constant expressions in annotations
2023-01-25 18:43:56 +03:00
George Marques
e93266b9ff
Merge pull request #71120 from jordigcs/ternary
...
Closes https://github.com/godotengine/godot/issues/71065
2023-01-25 12:23:11 -03:00
Rémi Verschelde
41e5f5b093
Merge pull request #71349 from vonagam/disallow-infer-on-weak
...
GDScript: Disallow type inference with untyped initializer
2023-01-25 14:42:20 +01:00
Dmitrii Maganov
3c308f42e2
GDScript: Fix marking of line with unsafe property access as unsafe
2023-01-25 01:45:40 +02:00
jordi
bb9a00889a
Add hint for identifiers renamed since Godot 3
2023-01-24 12:33:55 -06:00
jordi
2e488072d0
Allow standalone ternary expressions
2023-01-19 14:27:57 -06:00
ocean (they/them)
4854e723be
Fix unnammed enum crash regression
2023-01-18 09:35:48 -05:00
Rémi Verschelde
4005fc4b8d
Merge pull request #71279 from vonagam/fix-iterator-number-type
...
GDScript: Fix typing of iterator in for loop
2023-01-16 22:21:26 +01:00
Adam Scott
48e041458f
Fix cyclic reference errors while reducing identifiers.
...
Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
2023-01-15 19:19:25 -05:00
Dmitrii Maganov
a1e0281b45
GDScript: Disallow type inference with untyped initializer
2023-01-13 20:51:29 +02:00
Dmitrii Maganov
40613ebd21
GDScript: Fix typing of iterator in for loop
2023-01-13 15:36:11 +02:00
George Marques
3a5e41293c
GDScript: Fix infinite recursion in resolution of enum values
2023-01-13 10:17:30 -03:00
Rémi Verschelde
aaa5158ff9
Merge pull request #70733 from vonagam/fix-assigning-untyped
...
GDScript: Fix some issues with assignments that involve untyped things
2023-01-12 20:08:55 +01:00
Dmitrii Maganov
274d49790d
GDScript: Fix extending abstract classes, forbid their construction
2023-01-12 17:47:10 +02:00
Dmitrii Maganov
ef81b344be
GDScript: Fix wrong marking of some lines related to Variant as unsafe
2023-01-12 17:21:33 +02:00
Dmitrii Maganov
38c214d483
GDScript: Fix some issues with assignments that involve untyped things
2023-01-12 17:07:45 +02:00
Dmitrii Maganov
5980abbcec
GDScript: Fix getting type from PropertyInfo for Variant arguments
2023-01-12 16:47:06 +02:00
George Marques
75515e4303
Merge pull request #70987 from vonagam/fix-parameter-conversion-assign
2023-01-12 11:34:13 -03:00
Dmitrii Maganov
0f184379de
GDScript: Fix small inconsistencies with resolve_datatype
2023-01-12 15:52:55 +02:00
George Marques
04d0e851ea
GDScript: Fix use of conversion assign for variant values
2023-01-10 20:01:11 -03:00
Rémi Verschelde
c894edd4cb
Merge pull request #71140 from vonagam/fix-const-index-subscript-type
...
GDScript: Fix type for index subscript on constant
2023-01-10 07:58:29 +01:00
Dmitrii Maganov
ff505c9875
GDScript: Fix type for index subscript on constant
2023-01-10 07:10:00 +02:00
Adam Scott
fb175d92da
Fix GDScript base and outer classes, signals and functions lookup order
...
- Add outer class lookup test
- Add signal lookup test
Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
2023-01-09 20:12:10 -05:00
Rémi Verschelde
d3fc9d9e41
Merge pull request #71051 from vonagam/consts-are-deep-start
...
GDScript: Begin making constants deep, not shallow or flat
2023-01-09 23:22:59 +01:00
Rémi Verschelde
509da86205
Merge pull request #69590 from anvilfolk/enums
...
GDScript enum fixes & refactor
2023-01-09 23:10:37 +01:00
ocean (they/them)
366ec895b1
Assorted enum and native type fixes
2023-01-09 11:08:07 -05:00
Rémi Verschelde
df952a32f8
Merge pull request #71107 from vnen/gdscript-fix-nil-address-assign
...
GDScript: Don't use the NIL address to hold return value of functions
2023-01-09 14:22:16 +01:00
George Marques
a1309f1f42
GDScript: Allow using await on calls to void functions
2023-01-09 09:55:05 -03:00
Dmitrii Maganov
5e2ac1a31e
GDScript: Begin making constants deep, not shallow or flat
2023-01-08 07:29:10 +02:00
Dmitrii Maganov
532ffc30bd
GDScript: Fix typing of lambda functions
2023-01-06 16:38:22 +02:00
Dmitrii Maganov
a8c2f8a0e1
GDScript: Fix missing conversion for default argument values
2023-01-06 11:49:06 +02:00
Dmitrii Maganov
a1d06749f1
Unify typing of variables, constants and parameters in GDScript
2023-01-06 01:10:04 +02:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Rémi Verschelde
8203e09330
Merge pull request #70859 from vonagam/fix-preload-native-type
...
GDScript: Fix wrong native type for preloaded class
2023-01-03 23:22:23 +01:00
Rémi Verschelde
4e360ac612
Merge pull request #70702 from vnen/gdscript-error-on-assign-void
...
GDScript: Error when assigning return value of void function
2023-01-03 12:23:00 +01:00
Rémi Verschelde
e4c1103af4
Merge pull request #70656 from vonagam/fix-void-returns
...
GDScript: Disallow return with value in void functions
2023-01-03 12:20:33 +01:00
Dmitrii Maganov
961b4ac5f5
GDScript: Fix wrong native type for preloaded class
2023-01-03 05:45:06 +02:00
George Marques
8a98110e3e
Merge pull request #62688 from cdemirer/assignments-and-types
...
Fixes https://github.com/godotengine/godot/issues/62650
2022-12-30 16:38:35 -03:00
George Marques
bc739a4687
GDScript: Make using return of void function an error
...
Remove the `VOID_ASSIGNMENT` warning since those cases will be errors
now.
2022-12-30 13:35:38 -03:00
George Marques
33afa82fb0
Merge pull request #70613 from vonagam/fix-enum-as-constant
...
Fixes https://github.com/godotengine/godot/issues/54018
Fixes https://github.com/godotengine/godot/issues/70213
Fixes https://github.com/godotengine/godot/issues/70495
2022-12-30 12:10:50 -03:00
Dmitrii Maganov
9507f65e25
GDScript: Disallow return with value in void functions
2022-12-29 03:06:13 +02:00
Dmitrii Maganov
b6aa4840d8
Fix usage of Enum as constant
2022-12-28 23:04:40 +02:00
Dmitrii Maganov
f67aa3e46d
GDScript: Fix return type of constructor call for extending class
2022-12-27 23:02:12 +02:00
cdemirer
bbb21c3fd5
Fix type adjustment skipped when value is considered both not hard and not variant
2022-12-25 17:11:30 +03:00
Rémi Verschelde
edfa1e8665
Merge pull request #70220 from adamscott/fix-external-enum
...
Fix external enums not assignable as constants
2022-12-23 09:20:50 +01:00
Rémi Verschelde
e1657bd2a7
Merge pull request #70440 from rune-scape/null-again
...
Fix GDScript analyzer null literal
2022-12-22 16:02:19 +01:00
rune-scape
3228fdb88a
Fix GDScript analyzer null literal
2022-12-22 06:02:34 -05:00
ocean (they/them)
d93dbab054
Add MethodInfo to signal datatype
2022-12-21 22:49:51 -05:00
ocean (they/them)
fb418685a0
Unify GDScriptAnalyzer in-editor and runtime autoload checks
2022-12-20 19:01:28 -05:00
rune-scape
9f6ad59da7
Fix autoload subscript regression
2022-12-18 18:36:41 -05:00
Adam Scott
7fc814f697
Fix external enums not assignable as constants
...
- Add external enums test
- Rename external inner class test
- Clean up `GDScriptAnalyzer::reduce_identifier_from_base` class
behavior
2022-12-17 17:59:38 -05:00
Adam Scott
1bbb2b4159
Fix outer class lookup
2022-12-17 17:57:00 -05:00
Adam Scott
2fefcf7329
Fix inner class constant assignment
2022-12-17 12:03:03 -05:00
Rémi Verschelde
8d52eea52b
Merge pull request #70000 from rune-scape/find-more-classes
...
GDScript: Fix built-in script `find_class` bugs
2022-12-17 16:30:34 +01:00
rune-scape
213c94b42f
Fix enum value regression
2022-12-16 22:48:25 -05:00
Rémi Verschelde
f18f2740da
Merge pull request #70131 from rune-scape/preload-type-regression
...
Fix preload type regression
2022-12-16 00:31:26 +01:00
stmSi
2a341a6321
Fixed GDScript crashed when two consecutive unary operators are analysed
2022-12-16 04:45:53 +06:30
rune-scape
17e03c29d6
Fix preload type regression
2022-12-15 16:47:13 -05:00
rune-scape
e1c63fee86
GDScript: Fix built-in script and other `find_class` bugs
2022-12-15 14:56:23 -05:00
Rémi Verschelde
6debf86d51
Merge pull request #69471 from rune-scape/rune-out-of-order
...
GDScript: Out of order member resolution
2022-12-15 07:56:23 +01:00
rune-scape
2dfc6d5b69
GDScript: Allow out of order member resolution
2022-12-14 21:44:05 -05:00
rune-scape
08449ab16e
Fix String type compatibility being too permissive
2022-12-12 07:27:41 -05:00
Rémi Verschelde
8410e7c9c6
Merge pull request #66733 from MewPurPur/unary-op-warnings
...
Fix unary op warnings never showing
2022-12-11 22:33:58 +01:00
rune-scape
98e1a2031d
Fix subscript of preloaded script
2022-12-11 07:59:43 -05:00
Adam Scott
65a49bad5a
Fix constant base typing in extended GDScript class
2022-12-10 13:39:45 -05:00
Rémi Verschelde
1ac7e5a334
Merge pull request #69518 from rune-scape/rune-analyze-values
...
GDScript: Preload should make native type
2022-12-10 11:29:50 +01:00
Rémi Verschelde
f6ea295bb1
Merge pull request #69467 from rune-scape/rune-subclass-script-path
...
GDScript: Fix subclass script path issues
2022-12-10 10:21:19 +01:00
rune-scape
e79be6ce07
Unify String and StringName
2022-12-05 21:46:47 -05:00
rune-scape
6f8ffd5591
GDScript: preload should make native type
2022-12-04 05:36:17 -05:00
Adam Scott
7bcaa9df9e
Fix missing parent class name identifier crash
2022-12-02 21:30:19 -05:00
rune-scape
d531869a7c
GDScript: Fix subclass script path issues
2022-12-01 20:43:27 -05:00
Rémi Verschelde
4821de146e
Merge pull request #69423 from KoBeWi/parenture
...
Improve parent signature error
2022-12-01 18:10:31 +01:00
Rémi Verschelde
2d96f63e09
Merge pull request #68481 from dalexeev/gds-fix-dyn-arg-def-val
...
GDScript 2.0: Fix shift due to skip of non-constant default argument values
2022-12-01 18:09:25 +01:00
kobewi
d1e4146462
Improve parent signature error
2022-12-01 15:16:16 +01:00
VolTer
bfc093c53f
Fix unary op warnings never showing
2022-12-01 01:09:10 +01:00
rune-scape
847c9bd248
GDScript: Avoid using `get_global_class_native_base`
2022-11-27 03:55:53 -05:00
Rémi Verschelde
c7ceb94e37
Merge pull request #69079 from adamscott/fix-singleton-scene-cyclic-load
...
Fix singleton scene cyclic loading
2022-11-25 19:29:57 +01:00
Adam Scott
69bb7e5b11
Fix singleton scene cyclic loading
2022-11-25 12:43:55 -05:00
clayjohn
075cea1077
Ensure class name is printed in STATIC_CALLED_ON_INSTANCE warning
2022-11-24 12:06:11 -08:00
Adam Scott
2918689ff1
[godot#68977] Fix constants parameters
2022-11-23 08:15:54 -05:00
Rémi Verschelde
0b2dc0f017
Merge pull request #68970 from Chaosus/gds_fix_lambda_signal
...
Fix using signals in lambda functions
2022-11-22 10:00:05 +01:00
Yuri Rubinsky
f6c8c140f0
Fix using signals in lambda functions
2022-11-22 11:22:41 +03:00
Adam Scott
eb62d241c0
[godot#61386] Fix autoload scenes implicit types
2022-11-21 23:39:31 -05:00
Adam Scott
6d7c8533d5
Remove fix leftover that caused cyclic load issues
2022-11-18 23:37:00 -05:00
Rémi Verschelde
80b3813b15
Merge pull request #67714 from adamscott/fix-preload-cyclic-references-part2
...
Fix cyclic references in GDScript 2.0
2022-11-18 23:08:01 +01:00
Adam Scott
5704055d30
Fix cyclic references in GDScript 2.0
2022-11-18 16:41:31 -05:00
ocean (they/them)
13be0ab733
Fix ability to overload "script" variable
2022-11-17 17:21:12 -05:00
Rune
bce6f1792e
GDScript compiler subclass bugfixes
2022-11-13 02:29:21 -08:00
Danil Alexeev
0f8e28f818
GDScript 2.0: Fix shift due to skip of non-constant default argument values
2022-11-10 19:22:52 +03:00
Rémi Verschelde
7eb44fa47d
Merge pull request #68125 from kleonc/range-fix-single-arg-optimized-type-mismatch
...
[GDScript] Fix type mismatch in optimized single arg `range`
2022-11-02 14:18:24 +01:00
Rémi Verschelde
7c0e46f1c1
Merge pull request #68040 from adamscott/fix-property-getter-return-type
...
Fix property getter with custom return type
2022-11-02 14:16:37 +01:00
kleonc
c268e3a235
GDScript Fix type mismatch in optimized single arg `range`
2022-11-02 13:20:47 +01:00
Rémi Verschelde
213ba46672
Merge pull request #68065 from zCubed3/fix_min_max_crash
...
`GDScriptAnalyzer` Fix math utilities crashing when invalid args are passed
2022-10-31 10:59:27 +01:00
Rémi Verschelde
b43cc96535
Merge pull request #62695 from Spartan322/relax-constant-asserts
...
Allow non-constant string message for assert
2022-10-31 10:44:56 +01:00
zCubed3
b7f0ab13a4
Fix math utility functions crashing when invalid args passed
2022-10-30 15:18:03 -07:00
Adam Scott
26f0afdce2
[godot#68001] Fix property getter with custom return type
2022-10-29 20:38:26 -04:00
João Martins
a0c4002520
Clarified reason why a resource cannot be loaded.
2022-10-16 17:27:00 -04:00
clayjohn
0a51bb4ca5
Add STATIC_CALLED_ON_INSTANCE warning to highlight
...
when static functions are called directly from objects
2022-10-14 10:43:42 -07:00
clayjohn
be1e9acb7c
Implement RETURN_VALUE_DISCARDED warning in GDscript
2022-10-13 11:56:45 -07:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4.
2022-10-07 11:32:33 +03:00
willnationsdev
339aba1656
Add GDScript resource export.
2022-09-17 17:10:30 -05:00
Abdelhafidh Belalia
4dca9975e7
Fix GDScript `preload` fails in standalone build unless files are present in directory
...
Fixes #56343 .
2022-09-15 13:52:37 +02:00
Rémi Verschelde
6843a484ff
Merge pull request #65065 from Atlinx/fix/65010_enum-doesnt-show-up
2022-08-31 16:51:53 +02:00
Atlinx
6b5640c88c
Fix inferred GDScript enum values not appearing in inspector
...
"enum_values" originally wasn't being forwarded to the new type inside "reduce_identifier_from_base", which caused hint strings derived from the new type to be blank, which ultimately caused an empty enum dropdown menu.
2022-08-30 17:40:38 -04:00
Aaron Franke
10a56981dc
Rename String `plus_file` to `path_join`
2022-08-29 19:38:13 -05:00
Antonio Dell'Annunziata
f81a166ab8
fix(gdscript): Infer type from preload const
...
When resolving the type of the attribute from the variant, the result_type.kind was overritten for no reason.
It is assumed that this only needs to be done, if the variant value is not valid to have any kind here.
Solves #63715
2022-08-07 16:09:24 +02:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
George L. Albany
8035f1e36f
Allow non-constant string message for assert
2022-07-18 00:53:31 -04:00
Rémi Verschelde
4873886830
Merge pull request #62760 from cdemirer/fix-annotation-initializer-conflict
...
Fix priority of annotated type vs initializer type
2022-07-06 15:47:56 +02:00
cdemirer
f280975bf1
Fix priority of annotated type vs initializer type
2022-07-06 04:25:44 +03:00
Yuri Sizov
f85bafaa11
Add grouping annotations for class properties in GDScript
2022-07-05 22:01:40 +03:00
K. S. Ernest (iFire) Lee
9ddebc0c22
Add a const call mode to Object, Variant and Script.
...
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
2022-06-27 13:33:06 -07:00
bruvzg
860e24683f
Make enum/constant binds 64-bit.
2022-06-17 16:36:26 +03:00
Nathan Franke
3d61246bc4
use correct error for unused bind match, suppress with underscore
2022-06-03 13:28:33 -05:00
Rémi Verschelde
6369e495fd
Merge pull request #61279 from Trioct/fix-typed-array-assignment
2022-05-25 17:28:22 +02:00
Trioct
bcbfa641ec
Fix const typed array assignment
2022-05-25 09:02:11 -05:00
George Marques
24bcbe971a
GDScript: Don't show redundant await warning on unknown types
...
Also avoid it when the type is known to be a signal.
2022-05-24 14:37:50 -03:00
reduz
45af29da80
Add a new HashSet template
...
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
reduz
8b7c7f5a75
Add a new HashMap implementation
...
Adds a new, cleaned up, HashMap implementation.
* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing ).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).
This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
Rémi Verschelde
f626e8ef91
Merge pull request #60396 from vnen/gdscript-self-lambda
2022-04-27 13:11:24 +02:00
George Marques
01d13ab2c1
GDScript: Allow using self in lambdas
2022-04-24 21:49:02 -03:00
PastMoments
b3704e664d
Fixes GDScript define nested dictionary and array as constants #50285
2022-04-19 08:57:23 -04:00
George Marques
4710e2b278
GDScript: Add support for static method calls in native types
2022-04-06 14:14:38 -03:00
Rémi Verschelde
a647fb3e62
Fix typos with codespell
...
Using codespell 2.2-dev from current git.
Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
George Marques
be718285f7
GDScript: Fix issues with completion and `super` calls
...
- Make call errors use the call node instead of the calle, which will be
empty on super calls.
- Don't allow `super()` to be used within lambdas.
2022-03-30 11:58:29 -03:00
Yuri Roubinsky
c14043b166
Prevent NARROWING_CONVERSION warning for int(float) function in GDScript
2022-03-22 09:17:00 +03:00
Yuri Rubinsky
6cba2143de
Merge pull request #59056 from Chaosus/gds_fix_extends_crash
2022-03-22 08:27:03 +03:00