Commit Graph

2014 Commits

Author SHA1 Message Date
c881f607a9 Merge pull request #61463 from vnen/gdscript-await-stack
GDScript: Fix stack overflow when using multiple `await`
2022-05-31 12:44:50 +02:00
68bf4eb100 Merge pull request #61440 from vnen/gdscript-scene-unique-nodes
GDScript: Support `%` in shorthand for `get_node`
2022-05-31 12:36:37 +02:00
eba3e0a9fc GDScript: Support % in shorthand for get_node
The `%` is used in scene unique nodes. Now `%` can also be used instead
of `$` for the shorthand, besides being allowed generally anywhere in
the path as the prefix for a node name.
2022-05-27 13:46:18 -03:00
328aadc0ef GDScript: Fix stack overflow when using multiple await 2022-05-27 09:31:37 -03:00
f2a7bb6b51 Merge pull request #59943 from jordigcs/gdscript_warning_enums
Add enum values (Ignore, Warn, Error) to GDScript warnings
2022-05-26 00:52:01 +02:00
410b6b5f7d Merge pull request #55099 from dalexeev/desc-by-blank-line
Use blank line instead of `@desc:` for doc comments
2022-05-25 19:14:43 +02:00
e465b72b9b Merge pull request #61389 from snailrhymer/lookup-fix 2022-05-25 18:38:29 +02:00
320cf5d84c Use blank line instead of @desc: for doc comments 2022-05-25 19:01:41 +03:00
3a87d1acae Make Lookup Symbol recognize assert and preload in the script editor 2022-05-25 16:41:10 +01:00
6369e495fd Merge pull request #61279 from Trioct/fix-typed-array-assignment 2022-05-25 17:28:22 +02:00
bcbfa641ec Fix const typed array assignment 2022-05-25 09:02:11 -05:00
688a62d841 Fix lookup_code to properly handle symbols at start of assignments 2022-05-25 11:45:57 +01:00
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
1b76a9d705 GDScript: Fix lambda captures in default argument values 2022-05-23 21:38:31 -03:00
969f1980d2 GDScript: Fix if after lambda being seen as ternary 2022-05-23 21:13:25 -03:00
0a28b4cd94 GDScript: Do not allow standalone lambdas
They cannot be accessed in this case, so an error is shown to avoid
misleading the uses, especially in case of named lambdas.
2022-05-23 12:25:03 -03:00
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
900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
cdc5da7460 Merge pull request #61025 from Chaosus/gds_fix_extend_crash 2022-05-18 16:17:18 +02:00
e22255edaf Merge pull request #55201 from Scony/fix-unreachable-code-false-positive 2022-05-18 16:04:12 +02:00
5d95a5a024 Fix crash when extending inner class in GDScript 2022-05-18 16:53:24 +03:00
5b02415fd0 Merge pull request #55134 from KoBeWi/script_pillow_or_something
Always soft-reload scripts
2022-05-17 15:09:09 +02:00
c41f62c3df Merge pull request #61003 from vnen/gdscript-await-stack-fix 2022-05-16 14:10:29 +02:00
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
102c312497 GDScript: Fix stack manipulation for await
The stack now contains three special addresses that should no be copied
to the state, since it contains references that creates cycles. They can
be recreated when the function is resumed.

This commit also removes the clearing of stack from the
GDScriptFunctionState destructor, since it should be cleared when the
function exits. The state stack should only be cleared manually if the
instance is freed before the state resumes (which is already being
done). Otherwise this would destruct the stack twice, causing crashes.
2022-05-13 20:15:34 -03:00
8870e1c75d Fix first value update 2022-05-12 19:11:33 -04:00
a439832035 Fix signal completion in GDScript editor 2022-05-12 16:10:48 +03:00
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
be8eb6625e Fix incorrect precedence of pow operator in GDScript 2022-05-12 10:09:51 +03:00
dbd7a31507 Implement exponential operator (**) to GDScript/Expressions 2022-05-11 16:30:37 +03:00
9963ae3553 Merge pull request #59863 from cdemirer/fix-match-multiple-bind-single-pattern
Fix issues with multiple bind patterns in match statement
2022-05-11 14:18:02 +02:00
c171f675c8 Merge pull request #60229 from Dorodri/improve-gdscript-range-description 2022-05-11 14:17:39 +02:00
505e15c523 Merge pull request #60732 from CalebJohn/matching_signature_regression_test 2022-05-11 14:15:48 +02:00
f4ece7e736 Merge pull request #60609 from nathanfranke/string-quotes 2022-05-06 08:59:08 +02:00
84f64ddde9 Merge pull request #60723 from reduz/refactor-module-initialization 2022-05-04 19:08:43 +02:00
de0ca3b999 Refactor module initialization
* Changed to use the same stages as extensions.
* Makes the initialization more coherent, helping solve problems due to lack of stages.
* Makes it easier to port between module and extension.
* removed the DRIVER initialization level (no longer needed).
2022-05-04 17:34:51 +02:00
06a2d83e30 Add regression test for gdscript valid function signature
Previously, there was an issue where the gdscript analyzer incorrectly
riased a validation error for code that had a default Dictionary, Array,
or custom type.
2022-05-03 12:46:09 -07:00
58fcad20ef quote strings inside arrays and dictionaries 2022-05-03 13:37:13 -05:00
180e5d3028 Remove RES and REF typedefs in favor of spelled out Ref<>
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
c273ddc3ee Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
b2841ce194 Improve description for GDScript built-in range
Rewrites the definition of how the function works.
Reworks the style of the examples and adds a negative range example.
Changes the while loop to a range loop in the array backwards example.
2022-04-30 15:17:17 -03:00
a793960a10 Fix cppcheck const parameters
Convert method signature parameters to const where it is possible

# Conflicts:
#	drivers/gles3/rasterizer_canvas_gles3.cpp
#	drivers/gles3/rasterizer_canvas_gles3.h
#	editor/plugins/animation_state_machine_editor.cpp
#	editor/plugins/animation_state_machine_editor.h
2022-04-28 11:35:39 +02:00
f626e8ef91 Merge pull request #60396 from vnen/gdscript-self-lambda 2022-04-27 13:11:24 +02:00
3dd550e1ca Merge pull request #59613 from PastMoments/dict-arr-const-fix 2022-04-27 12:45:30 +02:00
cb5f3a39b9 Merge pull request #60418 from ShimmyShaman/master 2022-04-26 11:11:08 +02:00
bef00b2b0d Merge pull request #60445 from nathanfranke/minor-changes
small changes: improve OS.get_name classref, misc/scripts fixes, remove trailing quote
2022-04-25 23:10:48 +02:00
01d13ab2c1 GDScript: Allow using self in lambdas 2022-04-24 21:49:02 -03:00
1304d72fc1 improve OS.get_name classref, misc/scripts fixes, remove trailing quote 2022-04-22 17:13:08 -05:00
b3922a42e9 improved error msg for gdscript load_source_code 2022-04-22 16:10:48 +12:00
540fca147d Fix typo in GDScript::range doc 2022-04-20 19:38:49 +03:00