67076c167d
Merge pull request #90448 from vnen/gdscript-infer-string-format
...
GDScript: Infer type with string format operator
2024-04-10 17:49:49 +02:00
8611fd8400
Merge pull request #90442 from vnen/gdscript-dont-warn-using-default-builtin
...
GDScript: Don't warn on unassigned for builtin-typed variables
2024-04-10 17:49:44 +02:00
877802e252
GDScript: Don't warn on unassigned for builtin-typed variables
...
If the type of a variable is a built-in Variant type, then it will
automatically be assigned a default value based on the type. This means
that the explicit initialization may be unnecessary. Thus this commit
removes the warning in such case.
This also changes the meaning of the unassigned warning to happen when
the variable is used before being assigned, not when it has zero
assignments.
2024-04-10 11:59:57 -03:00
4bdba718c5
GDScript: Infer type with string format operator
...
If the left value type is known to be String, assume the format operator
(`%`) will return a string, since it works with any type in the right
hand side. This is also used by type inference even if the right hand
type is unknown at compile time.
2024-04-10 11:49:30 -03:00
f8ca571efe
Merge pull request #84043 from dalexeev/gds-fix-unsafe-cast-warning
...
GDScript: Fix `UNSAFE_CAST` warning
2024-04-09 22:24:55 +02:00
164b34a734
Don't pass self when calling a static function from a non-static context
2024-04-04 21:15:17 +00:00
ef1909fca3
GDScript: Fix @warning_ignore annotation issues
2024-03-12 19:00:06 +03:00
24181d1055
GDScript: Adjust STATIC_CALLED_ON_INSTANCE warning to not default to the native type, and to not trigger on self-calls
...
Not defaulting to the native type rationale:
Defaulting to the native type is less than useful, as:
* There are very few native types that are extensible and have static methods.
* Defaulting to the native type does not account for a method being script-defined.
While the "real fix" would be to carefully track the source of the method, the get_function_signature method is already complicated enough.
This will at least ensure the resulting code should always be valid.
Not triggering on self-calls rationale:
Found in PR comment https://github.com/godotengine/godot/pull/85918#issuecomment-1935864459
```
static func example():
pass
func example2():
example() # self-call on static function
```
Disabling this warning on self-calls is:
* Consistent with other languages
* Important for anonymous classes (where the output code is unusable)
2024-03-01 17:14:59 +03:00
8ffc50ee8c
GDScript: Canonicalize script path in FQCN
2024-02-26 10:46:24 +03:00
ee5ace10b7
Merge pull request #85501 from /remove-packed-scene-cache
2024-02-25 11:49:27 +01:00
a2e3e31e80
GDScript: Fix extension comparison for exported scripts
2024-02-15 17:53:24 +03:00
9572cf5ab2
Merge pull request #86823 from dalexeev/gds-utility-func-as-callable
...
GDScript: Allow utility functions to be used as `Callable`
2024-01-30 17:47:50 +01:00
72756133e0
Merge pull request #85224 from HolonProduction/identifier-type-prefer-annotated
...
Prefer identifiers annotated type if assigned type is incompatible to it
2024-01-24 14:07:52 +01:00
b5dcb5f58a
Merge pull request #85215 from HolonProduction/type-from-property-class-name
...
Handle global classes when resolving type from `PropertyInfo`
2024-01-18 09:33:22 +01:00
0203b3c310
Prefer identifiers annotated type if assigned type is incompatible to it
2024-01-17 22:32:00 +01:00
4ab985d138
Handle global classes when resolving type from PropertyInfo
2024-01-17 21:39:51 +01:00
b31acb0cd5
GDScript: Allow utility functions to be used as Callable
2024-01-05 21:16:53 +03:00
96a95cb974
Add const lvalue ref to container parameters
2024-01-05 14:49:57 -03:00
2bffa3cbc5
Merge pull request #82639 from golfinq/gdscript-improve-indexing-error
...
GDScript: Improve error messages for invalid indexing
2024-01-04 16:38:58 +01:00
b5c6e870e8
Merge pull request #82264 from dalexeev/core-builtin-methods-as-callables
...
Core: Allow methods of built-in `Variant` types to be used as Callables
2024-01-02 18:05:05 +01:00
38d8ca0dc1
Merge pull request #85703 from TitanNano/jovan/gdscript_foreign_script_properties
...
Make GDScriptAnalyzer aware of properties from other languages
2023-12-19 13:02:19 +01:00
030aa41a99
GDScriptAnalyzer is unaware of properties from other Languages
...
Co-authored-by: K. S. Ernest (iFire) Lee <fire@users.noreply.github.com >
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com >
2023-12-18 22:03:30 +01:00
5cf0d772bc
Change container_element_type to vector container
2023-12-05 08:51:49 -06:00
ef5dcccde7
Stop caching packed scenes in GDScript cache
2023-11-29 12:52:55 +02:00
6e996a597f
GDScript: Fix UNSAFE_CAST warning
2023-10-27 12:42:00 +03:00
b04263644c
Core: Allow methods of built-in Variant types to be used as Callables
2023-10-25 15:53:52 +03:00
7f4721a941
GDScript: Fix non-static call is allowed in static var lambda body
2023-10-20 20:43:07 +03:00
109cb8e697
Merge pull request #83455 from Lunarisnia/fix/gdscript-error-typo
...
Fix grammar typo in GDScript error message
2023-10-17 16:13:02 +02:00
981c6c94c0
Fix grammar typo in GDScript error message
2023-10-17 01:33:37 +07:00
ddb7969cb6
Merge pull request #83257 from dalexeev/gds-fix-unresolved-type-for-incomplete-expressions
...
GDScript: Fix unresolved datatype for incomplete expressions
2023-10-16 18:44:27 +02:00
0c2202c56e
GDScript: Fix incorrect error message for utility functions
2023-10-16 14:09:57 +03:00
3ac61aadd7
GDScript: Fix unresolved datatype for incomplete expressions
2023-10-13 12:52:14 +03:00
9e2273abc7
GDScript: Add error when exporting node in non [Node]-derived classes
2023-10-05 13:50:26 +03:00
7c1abe8599
Merge pull request #82789 from dalexeev/gds-fix-unresolved-type-for-incomplete-bin-op
...
GDScript: Fix unresolved datatype for incomplete binary operator
2023-10-05 10:10:33 +02:00
2c5636c135
GDScript: Fix unresolved datatype for incomplete binary operator
2023-10-04 17:07:37 +03:00
6767de9b69
GDScript: Fix native_type is empty for autoload without script
2023-10-04 16:09:18 +03:00
5efbed51cc
GDScript: Improve error messages for invalid indexing
...
These errors are very common when using an invalid property name
or calling on an object of the wrong type, and the previous message
was a bit cryptic for users.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com >
Co-authored-by: golfinq <golfinqz@gmail.com >
2023-10-02 14:23:11 -04:00
ba96d4f631
GDScript: Fix UNSAFE_CALL_ARGUMENT warning for Variant constructors
2023-09-30 13:57:09 +03:00
b25f1f9c79
Merge pull request #82477 from dalexeev/gds-covariance-and-contravariance
...
GDScript: Add return type covariance and parameter type contravariance
2023-09-28 20:04:37 +02:00
73252669b1
Merge pull request #82030 from dalexeev/gds-make-for-loop-array-literal-typed
...
GDScript: Make array literal typed if `for` loop variable type is specified
2023-09-28 20:04:12 +02:00
813cd1dfc8
Merge pull request #80085 from vnen/gdscript-pattern-guards
...
GDScript: Implement pattern guards for match statement
2023-09-28 20:03:57 +02:00
cb8b89fd95
GDScript: Add return type covariance and parameter type contravariance
2023-09-28 12:27:36 +03:00
aa474c9feb
Merge pull request #75988 from dalexeev/gds-unsafe-call-argument
...
GDScript: Improve call analysis
2023-09-27 19:07:46 +02:00
54a1414500
GDScript: Implement pattern guards for match statement
...
Within a match statement, it is now possible to add guards in each
branch:
var a = 0
match a:
0 when false: print("does not run")
0 when true: print("but this does")
This allows more complex logic for deciding which branch to take.
2023-09-27 11:25:25 -03:00
517e9f8aef
[Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable
2023-09-26 16:44:52 +02:00
9b0b441cf3
Merge pull request #82139 from dalexeev/gds-add-inferred-declaration-warning
...
GDScript: Add `INFERRED_DECLARATION` warning
2023-09-26 16:36:39 +02:00
ceda13720b
Check if any global script class is shadowed by a variable
2023-09-26 16:47:17 +08:00
4ce27301d3
GDScript: Add INFERRED_DECLARATION warning
2023-09-22 23:13:52 +03:00
10b00bc2ea
GDScript: Prevent constructing and inheriting engine singletons
2023-09-22 17:30:00 +03:00
e8696f9961
GDScript: Improve call analysis
...
* Add missing `UNSAFE_CALL_ARGUMENT` warning.
* Fix `Object` constructor.
* Display an error for non-existent static methods.
2023-09-21 13:36:39 +03:00