Commit Graph

428 Commits

Author SHA1 Message Date
Danil Alexeev 7f4721a941
GDScript: Fix non-static call is allowed in static var lambda body 2023-10-20 20:43:07 +03:00
Rémi Verschelde 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
Lunarisnia 981c6c94c0 Fix grammar typo in GDScript error message 2023-10-17 01:33:37 +07:00
Rémi Verschelde 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
Danil Alexeev 0c2202c56e
GDScript: Fix incorrect error message for utility functions 2023-10-16 14:09:57 +03:00
Danil Alexeev 3ac61aadd7
GDScript: Fix unresolved datatype for incomplete expressions 2023-10-13 12:52:14 +03:00
Danil Alexeev 9e2273abc7
GDScript: Add error when exporting node in non [Node]-derived classes 2023-10-05 13:50:26 +03:00
Rémi Verschelde 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
Danil Alexeev 2c5636c135
GDScript: Fix unresolved datatype for incomplete binary operator 2023-10-04 17:07:37 +03:00
Danil Alexeev 6767de9b69
GDScript: Fix `native_type` is empty for autoload without script 2023-10-04 16:09:18 +03:00
Danil Alexeev ba96d4f631
GDScript: Fix `UNSAFE_CALL_ARGUMENT` warning for `Variant` constructors 2023-09-30 13:57:09 +03:00
Yuri Sizov 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
Yuri Sizov 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
Yuri Sizov 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
Danil Alexeev cb8b89fd95
GDScript: Add return type covariance and parameter type contravariance 2023-09-28 12:27:36 +03:00
Yuri Sizov aa474c9feb Merge pull request #75988 from dalexeev/gds-unsafe-call-argument
GDScript: Improve call analysis
2023-09-27 19:07:46 +02:00
George Marques 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
A Thousand Ships 517e9f8aef [Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-26 16:44:52 +02:00
Rémi Verschelde 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
Chia-Hsiang Cheng ceda13720b Check if any global script class is shadowed by a variable 2023-09-26 16:47:17 +08:00
Danil Alexeev 4ce27301d3
GDScript: Add `INFERRED_DECLARATION` warning 2023-09-22 23:13:52 +03:00
Danil Alexeev 10b00bc2ea
GDScript: Prevent constructing and inheriting engine singletons 2023-09-22 17:30:00 +03:00
Danil Alexeev 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
Danil Alexeev 3c35e7f1d6
GDScript: Make array literal typed if `for` loop variable type is specified 2023-09-21 11:25:59 +03:00
Rémi Verschelde 712ebe7d8a
Merge pull request #81332 from dalexeev/gds-fix-update-array-literal-in-weak-context
GDScript: Don't make array literal typed in weak type context
2023-09-20 13:09:23 +02:00
Danil Alexeev c35cb51d74
GDScript: Fix subscript resolution for constant non-metatypes 2023-09-19 22:26:06 +03:00
ocean (they/them) 729c9b4d4b GDScript: Add check for `super()` methods not being implemented 2023-09-17 16:21:28 -04:00
Rémi Verschelde e5ac7cf034
Merge pull request #81577 from anvilfolk/thecycleeeeeeeeeeeeesaaaaaaaaaaaaah
GDScript: Fix compilation of expressions compiling other classes
2023-09-16 21:23:18 +02:00
ryanabx ceda960131 Remove REDUNDANT_FOR_VARIABLE_TYPE
Remove REDUNDANT_FOR_VARIABLE_TYPE
2023-09-12 20:04:32 -05:00
ocean (they/them) d330f5642e GDScript: Fix compilation of expressions compiling other classes
This PR is part of ongoing work on fixing cyclic dependencies in the GDScript
compiler.
2023-09-12 11:18:33 -04:00
ryanabx 14edf044af Add "untyped_declaration" warning 2023-09-11 09:39:10 -05:00
Danil Alexeev 242d3d81e9
GDScript: Don't make array literal typed in weak type context 2023-09-05 11:32:16 +03:00
Danil Alexeev 462d8f4752
GDScript: Fix `get_*_list()` methods return incorrect info 2023-09-04 00:21:03 +03:00
Yuri Sizov b6c4efe1b1 Merge pull request #80964 from dalexeev/gds-allow-use-local-consts-as-types
GDScript: Allow use local constants as types
2023-08-25 21:26:44 +02:00
Danil Alexeev 68a567bd13
GDScript: Allow use local constants as types 2023-08-25 17:04:04 +03:00
Danil Alexeev 89429b0273
GDScript: Fix lambda resolution with cyclic references 2023-08-25 16:29:11 +03:00
Danil Alexeev 6c59ed9485
GDScript: Add static typing for `for` loop variable 2023-08-17 20:54:34 +03:00
Rémi Verschelde 4f00f925b3
Merge pull request #78552 from dalexeev/gds-check-get-node-in-static-func
GDScript: Check `get_node()` shorthand in static functions
2023-08-17 11:20:32 +02:00
Danil Alexeev fb45cab133
GDScript: Fix "Identifier not found" error when accessing inner class from inside 2023-08-11 11:22:01 +03:00
Danil Alexeev 0f27c4ad80
GDScript: Check `get_node()` shorthand in static functions 2023-08-09 17:11:38 +03:00
Danil Alexeev d53fc92b4c
GDScript: Fix bug with identifier shadowed below in current scope 2023-07-26 11:26:57 +03:00
Yuri Sizov 0e1c9531b5 Merge pull request #75620 from jpcerrone/fix_shadow_warnings_not_going_away_after_ignoring
Fix for not being able to ignore shadowing warnings on class scope
2023-07-25 21:25:45 +02:00
jpcerrone 13c73500ab Fix for not being able to ignore shadowing warnings on class scope 2023-07-24 17:22:12 -03:00
rune-scape 83b01708b2 Script editor: Show depended script errors 2023-07-24 15:49:39 +02:00
ocean (they/them) 6c28b8edd3 GDScript: fix regression when checking for virtual function implementation.
Unfortunately it appears the virtual function checks in #77324 are not
trustworthy at runtime, because objects can have scripts attached, but
this information is not always available at compile-time. These checks
need to be removed.

The rest of the PR is still useful, making all method flags available to
the analyzer, so a full revert isn't necessary/desirable.

This reopens #76938, which will need another solution.
2023-06-21 15:13:45 -04:00
Yuri Sizov f1e79e2581 Make container element type comparison safe 2023-06-20 17:04:57 +02:00
Rémi Verschelde 248e5245e4
Merge pull request #73540 from mashumafi/fix-typed-array-add
Fix: Typed arrays aren't working with +
2023-06-20 15:12:39 +02:00
Rémi Verschelde ae00187b58
Merge pull request #77129 from dalexeev/gds-fix-static-var-bugs-part-1
GDScript: Fix some bugs with static variables and functions
2023-06-19 21:18:18 +02:00
Rémi Verschelde 1a62f1e4fc
Merge pull request #74741 from vnen/variant-not-for-everyone
Allow boolean operators for all Variant types
2023-06-18 16:28:10 +02:00
Rémi Verschelde 4db1d09bf5
Merge pull request #73657 from mashumafi/callable-ctor
Fix: Get constructor as Callable
2023-06-18 16:27:42 +02:00