summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_analyzer.cpp
AgeCommit message (Collapse)Author
2023-02-07Some code simplificationsMarkus Sauermann
1. `number_width` isn't used later 2. `return_type` is used only once 3. AudioServer::get_singleton()->get_channel_count() always returns a channel_count of 1 or larger 4. negative `aa->backward` conditional 5. `current_canvas` == `find_world_2d()->get_canvas()` 6. identical if `render_shadows`
2023-02-06GDScript: Fix `await` type inferenceDanil Alexeev
2023-02-06Merge pull request #72512 from vonagam/fix-ternary-type-sourceYuri Sizov
GDScript: Fix type certainty for result of ternary operator
2023-02-05Merge pull request #72608 from vnen/gdscript-warning-default-errorYuri Sizov
GDScript: Add warnings that are set to error by default (take 2)
2023-02-02GDScript: Add warnings that are set to error by defaultGeorge Marques
- 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-02GDScript: Improve usability of setter chainsGeorge Marques
- 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-02GDScript: Fix getting reduced value of incomplete subscriptDmitrii Maganov
2023-02-01GDScript: Fix type certainty for result of ternary operatorDmitrii Maganov
2023-02-01Revert "GDScript: Add warnings that are set to error by default"Rémi Verschelde
This reverts commit a166833bfa23a21a7bff196a85a20b014e7c1396. This caused multiple regressions. Needs to be redone with more testing before merge. Fixes #72501.
2023-02-01GDScript: Add warnings that are set to error by defaultGeorge Marques
- 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-01-31Merge pull request #72454 from dalexeev/gds-fix-icon-annotationRémi Verschelde
GDScript: Fix `@icon` annotation
2023-01-31Merge pull request #72206 from vnen/gdscript-allow-void-return-shorthandRémi Verschelde
GDScript: Allow void functions to return calls to other void functions
2023-01-31Merge pull request #57520 from jordigcs/gd-rename-mapRémi Verschelde
Add hint for identifiers renamed from 3.x to 4.0
2023-01-31GDScript: Fix `@icon` annotationDanil Alexeev
2023-01-31GDScript: Allow void functions to return calls to other void functionsGeorge Marques
2023-01-31GDScript: Fix issues with typed arraysDmitrii Maganov
2023-01-30Merge pull request #72175 from dalexeev/gds-fix-export-group-annotationsRémi Verschelde
GDScript: Fix broken export group annotations
2023-01-29Merge pull request #72285 from vnen/gdscript-variable-matchRémi Verschelde
GDScript: Allow variables in match patterns
2023-01-29Merge pull request #71844 from vonagam/fix-constant-conversionsRémi Verschelde
GDScript: Fix constant conversions
2023-01-28GDScript: Allow variables in match patternsGeorge Marques
To restore an ability available in 3.x and reduce compatibility changes.
2023-01-29GDScript: Fix constant conversionsDmitrii Maganov
2023-01-28GDScript: Fix implicit conversions for function returnsDmitrii Maganov
2023-01-28Merge pull request #69163 from vonagam/variant-safe-linesRémi Verschelde
GDScript: Fix wrong marking of some lines related to Variant as unsafe
2023-01-27GDScript: Fix broken export group annotationsDanil Alexeev
2023-01-27GDScript: Fix test for read-only state of constantsDmitrii Maganov
2023-01-26Merge pull request #71634 from dalexeev/gds-annotations-analyzerRémi Verschelde
GDScript: Allow constant expressions in annotations
2023-01-26Merge pull request #72008 from vonagam/fix-property-access-unsafe-markRémi Verschelde
GDScript: Fix marking of line with unsafe property access as unsafe
2023-01-25GDScript: Allow constant expressions in annotationsDanil Alexeev
2023-01-25Merge pull request #71120 from jordigcs/ternaryGeorge Marques
Closes https://github.com/godotengine/godot/issues/71065
2023-01-25Merge pull request #71349 from vonagam/disallow-infer-on-weakRémi Verschelde
GDScript: Disallow type inference with untyped initializer
2023-01-25GDScript: Fix marking of line with unsafe property access as unsafeDmitrii Maganov
2023-01-24Add hint for identifiers renamed since Godot 3jordi
2023-01-19Allow standalone ternary expressionsjordi
2023-01-18Fix unnammed enum crash regressionocean (they/them)
2023-01-16Merge pull request #71279 from vonagam/fix-iterator-number-typeRémi Verschelde
GDScript: Fix typing of iterator in for loop
2023-01-15Fix cyclic reference errors while reducing identifiers.Adam Scott
Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>
2023-01-13GDScript: Disallow type inference with untyped initializerDmitrii Maganov
2023-01-13GDScript: Fix typing of iterator in for loopDmitrii Maganov
2023-01-13GDScript: Fix infinite recursion in resolution of enum valuesGeorge Marques
2023-01-12Merge pull request #70733 from vonagam/fix-assigning-untypedRémi Verschelde
GDScript: Fix some issues with assignments that involve untyped things
2023-01-12GDScript: Fix extending abstract classes, forbid their constructionDmitrii Maganov
2023-01-12GDScript: Fix wrong marking of some lines related to Variant as unsafeDmitrii Maganov
2023-01-12GDScript: Fix some issues with assignments that involve untyped thingsDmitrii Maganov
2023-01-12GDScript: Fix getting type from PropertyInfo for Variant argumentsDmitrii Maganov
2023-01-12Merge pull request #70987 from vonagam/fix-parameter-conversion-assignGeorge Marques
2023-01-12GDScript: Fix small inconsistencies with resolve_datatypeDmitrii Maganov
2023-01-10GDScript: Fix use of conversion assign for variant valuesGeorge Marques
2023-01-10Merge pull request #71140 from vonagam/fix-const-index-subscript-typeRémi Verschelde
GDScript: Fix type for index subscript on constant
2023-01-10GDScript: Fix type for index subscript on constantDmitrii Maganov
2023-01-09Fix GDScript base and outer classes, signals and functions lookup orderAdam Scott
- Add outer class lookup test - Add signal lookup test Co-authored-by: Dmitrii Maganov <vonagam@gmail.com>