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
Yuri Roubinsky
5a99aa3b3a
Fix default value count checking for inherited function
2022-03-14 18:00:42 +03:00
Yuri Roubinsky
d009d96a92
Prevent crash due to empty error message on empty extends in GDScript
2022-03-12 09:46:51 +03:00
K. S. Ernest (iFire) Lee
2eaadb1b52
Restore building web platform by enclosing resolve_function_signature.
2022-03-07 00:35:11 -08:00
George Marques
1ebcb58e69
GDScript: Check if method signature matches the parent
...
To guarantee polymorphism, a method signature must be compatible with
the parent. This checks if:
1. Return type is the same.
2. The subclass method takes at least the same amount of parameters.
3. The matching parameters have the same type.
4. If the subclass takes more parameters, all of the extra ones have a
default value.
5. If the superclass has default values, so must have the subclass.
There's a few test cases to ensure this holds up.
2022-03-06 11:16:20 -03:00
Rémi Verschelde
bb8c4acdc9
Merge pull request #58185 from V-Sekai/explicit_variant_assignment_fix
2022-03-04 14:56:38 +01:00
Rémi Verschelde
d31aaed172
Merge pull request #58626 from groud/fix_gdscript_analyser_crash
2022-03-04 14:15:59 +01:00
Max Hilbrunner
57838fc0ee
Merge pull request #58262 from Sauermann/fix-range-doc
...
Describe usage of float in range documentation
2022-03-03 13:12:29 +01:00
Gilles Roudière
7ae988ce5e
Fix a crash in GDScriptAnalyzer when a script class's file is not found
2022-02-28 12:20:00 +01:00
SaracenOne
b6aa4ed55d
Fixes cyclic detection from variables assigning themselves to themselves in autocomplete, and restricts initialization of variables from other variables which have not been declared above it in class body
2022-02-22 01:21:21 +00:00
Markus Sauermann
bac8e451c0
Describe usage of float in range documentation
2022-02-18 00:59:22 +01:00
SaracenOne
d45c3cdd1d
Fix error when assigning to an explicitly annotated variant from an ambiguous source
2022-02-16 13:25:27 +00:00
Rémi Verschelde
317cd0b19a
Refactor some object type checking code with `cast_to`
...
Less stringly typed logic, and less String allocations and comparisons.
2022-02-08 10:08:34 +01:00
Rémi Verschelde
89eb6d372d
Merge pull request #57591 from vnen/gdscript-enum-fixes
2022-02-04 13:49:15 +01:00
George Marques
ceafdf347e
GDScript: Treat enum values as int and enum types as dictionary
...
Since enums resolve to a dictionary at runtime, calling dictionary
methods on an enum type is a valid use case. This ensures this is true
by adding test cases. This also makes enum values be treated as ints
when used in operations.
2022-02-03 13:32:34 -03:00
George Marques
ad6e2e82a9
GDScript: Consolidate behavior for assigning enum types
...
This makes sure that assigning values to enum-typed variables are
consistent. Same enum is always valid, different enum is always
invalid (without casting) and assigning `int` creates a warning
if there is no casting.
There are new test cases to ensure this behavior doesn't break in
the future.
2022-02-03 13:32:16 -03:00
cdemirer
28ac4d8b7d
Fix crash with non-constant keys in match statement Dictionary pattern
2022-01-26 04:10:07 +08:00
Rémi Verschelde
4cfade6212
Merge pull request #55995 from Xwdit/enum_fix
...
Fix enum int comparison
2022-01-17 20:20:16 +01:00
Rémi Verschelde
1989120d3f
Merge pull request #56194 from cdemirer/fix-operation-result-type-inference
2022-01-10 17:18:32 +01:00
Rémi Verschelde
4acc819f9b
Merge pull request #56232 from V-Sekai/invalid_explicit_variant_assign_fix
2022-01-10 17:12:56 +01:00
Rémi Verschelde
cc7f634066
Merge pull request #56260 from cdemirer/fix-type-mutation-upon-assignment-with-operation
2022-01-10 17:12:34 +01:00
Rémi Verschelde
6d4ed65f4c
Merge pull request #56483 from vnen/gdscript-warning-annotation
...
Add annotation to ignore warnings
2022-01-05 09:05:56 +01:00
George Marques
fd643c903d
GDScript: Add annotation to ignore warnings
2022-01-04 09:32:43 -03:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
...
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
cdemirer
067b4c8c07
Fix type mutation upon compound assignment
2021-12-27 03:32:22 +08:00
SaracenOne
b22c805dbe
Fix 'Compiler bug: unresolved assign' on explicitly annotated variants.
2021-12-25 00:53:57 +00:00
cdemirer
455cc07f90
Fix operation result type inference
2021-12-23 20:45:24 +08:00
Xwdit
0430e26e6d
Fix enum int comparison
...
Fix enum int comparison
2021-12-16 16:14:14 +01:00
Gilles Roudière
ab8119b5f6
Avoid a crash in the gdscript analyser
2021-12-14 15:54:25 +01:00
Yuri Roubinsky
566895732c
Fix shadowed global identifier warning duplication
2021-12-13 11:54:23 +03:00
kobewi
4682f22293
Improve various texts
2021-11-23 12:20:57 +01:00
Benjamin Navarro
560d9a4cc0
Fix incorrect debug check for setters
...
the check read the return type of the setter, which doesn't exist and
lead to a segmentation fault. Now we check the first function parameter.
Probably a bad copy/paste of the getter case
2021-10-18 09:01:16 +02:00
Rémi Verschelde
3f888966c0
Merge pull request #53843 from vnen/gdscript-typed-array-subscript-constant
...
Fix inferred typed array marked as constant
2021-10-15 16:49:29 +02:00
George Marques
540821a264
GDScript: Fix inferred typed array marked as constant
2021-10-15 10:40:50 -03:00
George Marques
84abb9a76c
GDScript: Fix typing for await expression
...
Don't grab the type of the awaited value unless it's constant (which
makes it synchronous) or call (which always use the proper return type).
2021-10-14 20:30:06 -03:00
George Marques
749d89ae38
GDScript: Remove error when coroutine is called without await
...
In the case the call happens as a statement, since the return value
isn't used in this case.
2021-10-14 20:12:01 -03:00
George Marques
bf322bacdd
Merge pull request #53726 from briansemrau/gd-outer-class
...
GDScript 2.0: Access outer scope classes
2021-10-14 10:12:52 -03:00
Brian Semrau
0ff0f64cd4
GDScript: Access outer scope classes
2021-10-13 22:39:12 -04:00
Rémi Verschelde
e4288bf728
Merge pull request #53720 from vnen/gdscript-typed-array-custom-class
2021-10-12 16:51:50 +02:00
George Marques
34288b24a6
GDScript: Fix typed array with custom classes
2021-10-12 10:41:04 -03:00
George Marques
45f546c1d8
GDScript: Make setter parameter type same as variable type
2021-10-12 09:39:23 -03:00
ZuBsPaCe
551ceb590b
GDScript: Report property type errors
...
Inline getters & setters are now FunctionNodes.
Their names are set in the parser, not in the compiler.
GDScript-Analyzer will now run through getter and setter.
Also report wrong type or signature errors regarding getset properties.
Added GDScript tests for getters and setters.
#53102
2021-10-08 22:06:15 +02:00
George Marques
3a856b4fcc
GDScript: Use getter return type for the property type
...
The PropertyInfo hints are more relevant for the inspector. The getter
return type is more reliable and less likely to be incorrect and it is
what's going to be called in the end.
2021-10-07 20:22:19 -03:00
Rémi Verschelde
98b81ad35c
Merge pull request #53479 from vnen/gdscript-subscript-object-self
2021-10-06 19:48:23 +02:00
George Marques
1f55bd190c
GDScript: Allow subscript on self and object types
2021-10-06 12:01:34 -03:00
George Marques
6bdb28f5e4
GDScript: Avoid hard errors on inferred types
...
Since inference isn't always correct, they are now treated as unsafe
instead of errors.
This also removes inferred type when a variable is reassigned. Since
it's not aware of branching, the types might become invalid in a later
context.
2021-10-06 11:42:19 -03:00