Age | Commit message (Collapse) | Author |
|
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`.
|
|
Follow-up to #73870.
|
|
GDScript: Fix groups and categories been seen as members
|
|
|
|
|
|
GDScript: Fix parsing unexpected break/continue in lambda
|
|
|
|
|
|
GDScript: Fix error message for unfound type
|
|
Added check for null objects in gdscript typed assign.
|
|
|
|
|
|
Avoid treating the super class as a meta type for signature check, since
it is looking at the instance level for that.
|
|
|
|
Make global scope enums accessible as types in GDScript
|
|
Fix: Func with typed args error when arg is null
|
|
GDScript: Rework type check
|
|
|
|
Add functions to CoreConstant so enums can be properly deduced. Also add
the enums in release builds to make consistent with ClassDB enums and
avoid differences in script compilation between debug and release.
|
|
|
|
Co-authored-by: Dmitry Maganov <vonagam@gmail.com>
|
|
GDScript: Fix error about enum typed arrays
|
|
Fix unset getter return types resulting in strange behavior
|
|
|
|
|
|
|
|
GDScript: Allow strings as multiline comments
|
|
- Allow identifiers similar to keywords if they are in ASCII range.
- Allow constants to be treated as regular identifiers.
- Allow keywords that can be used as identifiers in expressions.
|
|
Bring back the behavior in 3.x that was left out by oversight.
|
|
|
|
This reverts commit 0fef203b1f39c3373f9f25b8e75e75f6b03f7c88.
This introduced some other issues, as discussed in #72144.
|
|
|
|
GDScript: Fix can_reference check for typed arrays
|
|
GDScript: Fix `await` type inference
|
|
GDScript: Fix inheritance check of @onready for inner classes
|
|
|
|
|
|
|
|
|
|
GDScript: Fix type certainty for result of ternary operator
|
|
|
|
GDScript: Add warnings that are set to error by default (take 2)
|
|
- 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.
|
|
- 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.
|
|
|
|
This reverts commit a166833bfa23a21a7bff196a85a20b014e7c1396.
This caused multiple regressions.
Needs to be redone with more testing before merge.
Fixes #72501.
|
|
- 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.
|
|
|
|
Fix global script class parsing.
|
|
* Broke with #72226
* Restored previous version of the code, made it even more error tolerant.
* Added a warning to **not** change the code.
Fixes #72226.
|