summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_compiler.cpp
Commit message (Collapse)AuthorAgeFilesLines
* GDScript: Lambda hot reloadingrune-scape2023-10-171-0/+147
| | | | Co-authored-by: Adam Scott <ascott.ca@gmail.com>
* GDScript: Replace ptrcalls on MethodBind to validated callsGeorge Marques2023-10-061-10/+10
| | | | | | | | | This improves the performance of typed calls to engine methods when the argument types are exact. Using validated calls delegate more of the work the core instead of doing argument unpacking in the VM. It also does not need different instructions for each return type, simplifying the code.
* Merge pull request #82186 from dalexeev/gds-fix-property-duplicationYuri Sizov2023-09-281-1/+1
|\ | | | | | | GDScript: Fix duplication of inherited script properties
| * GDScript: Fix duplication of inherited script propertiesDanil Alexeev2023-09-231-1/+1
| |
* | Merge pull request #80085 from vnen/gdscript-pattern-guardsYuri Sizov2023-09-281-0/+20
|\ \ | | | | | | | | | GDScript: Implement pattern guards for match statement
| * | GDScript: Implement pattern guards for match statementGeorge Marques2023-09-271-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #75988 from dalexeev/gds-unsafe-call-argumentYuri Sizov2023-09-271-5/+2
|\ \ \ | |/ / |/| | | | | GDScript: Improve call analysis
| * | GDScript: Improve call analysisDanil Alexeev2023-09-211-5/+2
| |/ | | | | | | | | | | * Add missing `UNSAFE_CALL_ARGUMENT` warning. * Fix `Object` constructor. * Display an error for non-existent static methods.
* | [Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicableA Thousand Ships2023-09-261-1/+1
| |
* | GDScript: Fix crash with `GDScriptNativeClass`Danil Alexeev2023-09-251-2/+13
|/
* Merge pull request #81605 from dalexeev/gds-fix-some-lambda-bugsRémi Verschelde2023-09-161-5/+32
|\ | | | | | | GDScript: Fix some lambda bugs
| * GDScript: Fix some lambda bugsDanil Alexeev2023-09-141-5/+32
| |
* | GDScript: Fix compilation of expressions compiling other classesocean (they/them)2023-09-121-1/+2
|/ | | | | This PR is part of ongoing work on fixing cyclic dependencies in the GDScript compiler.
* Merge pull request #81201 from anvilfolk/rpcRémi Verschelde2023-09-121-8/+24
|\ | | | | | | GDScript: Fix subclass methods not inheriting RPC info
| * GDScript: fix subclass methods not inheriting RPC infoocean (they/them)2023-09-111-8/+24
| |
* | GDScript: Fix `get_*_list()` methods return incorrect infoDanil Alexeev2023-09-041-23/+26
|/
* Add a script method to get its class iconYuri Sizov2023-08-241-0/+1
| | | | Co-authored-by: Danil Alexeev <danil@alexeev.xyz>
* GDScript: Add static typing for `for` loop variableDanil Alexeev2023-08-171-2/+2
|
* GDScript: Fix regression with native signal not foundDanil Alexeev2023-08-021-32/+34
|
* Merge pull request #79880 from dalexeev/gds-fix-id-shadowing-belowYuri Sizov2023-07-311-156/+173
|\ | | | | | | GDScript: Fix bug with identifier shadowed below in current scope
| * GDScript: Fix bug with identifier shadowed below in current scopeDanil Alexeev2023-07-261-156/+173
| |
* | Merge pull request #78254 from dalexeev/gds-fix-property-group-name-conflictYuri Sizov2023-07-311-3/+4
|\ \ | |/ |/| | | GDScript: Fix conflict between property and group names
| * GDScript: Fix conflict between property and group namesDanil Alexeev2023-06-151-3/+4
| |
* | GDScript: solve `_populate_class_members()` cyclic dependency problemocean (they/them)2023-07-081-4/+9
| |
* | Merge pull request #77744 from dalexeev/gds-reset-block-locals-on-exitRémi Verschelde2023-06-211-7/+28
|\ \ | | | | | | | | | GDScript: Reset local variables on exit from block
| * | GDScript: Reset local variables on exit from blockDanil Alexeev2023-06-021-7/+28
| |/
* | Merge pull request #78389 from rune-scape/rune-match-stringnamesRémi Verschelde2023-06-191-22/+55
|\ \ | | | | | | | | | GDScript: Strings and StringNames match
| * | GDScript: Strings and StringNames matchrune-scape2023-06-141-22/+55
| |/
* / GDScript: Fix some bugs with static variables and functionsDanil Alexeev2023-06-161-51/+121
|/
* Add support for static variables in GDScriptGeorge Marques2023-04-271-17/+211
| | | | | | | | | | Which allows editable data associated with a particular class instead of the instance. Scripts with static variables are kept in memory indefinitely unless the `@static_unload` annotation is used or the `static_unload()` method is called on the GDScript. If the custom function `_static_init()` exists it will be called when the class is loaded, after the static variables are set.
* Merge pull request #72095 from anvilfolk/gd-docsYuri Sizov2023-04-261-72/+2
|\ | | | | Improve GDScript documentation generation & behavior
| * Improve and fix GDScript documentation generation & behaviorocean (they/them)2023-04-211-72/+2
| | | | | | | | | | | | Removes documentation generation (docgen) from the GDScript compiler to its own file. Adds support for GDScript enums and signal parameters and quite a few other assorted fixes and improvements.
* | Merge pull request #75885 from AThousandShips/compound_fixRémi Verschelde2023-04-251-11/+1
|\ \ | | | | | | | | | [GDScript] Fix incorrect compound assignment
| * | [GDScript] Fix incorrect compound assignmentNinni Pipping2023-04-141-11/+1
| |/ | | | | | | | | | | Reverts in-place compound assignments Added test to ensure correctness
* / Fix edge cases of object lifetime when signals involvedPedro J. Estébanez2023-04-111-0/+3
|/
* Merge pull request #72056 from resistor/masterYuri Sizov2023-03-201-1/+11
|\ | | | | [GDScript] Perform update-and-assign operations in place when possible.
| * [GDScript] Perform update-and-assign operations in place when possible.Owen Anderson2023-01-251-1/+11
| | | | | | | | | | | | This turns two bytecode operations into one by using the assignment destination directly as the output of the binary operator. This manifests in operations like `+=`.
* | GDScript: Fix checking if a call is awaited in compilerDmitrii Maganov2023-03-011-5/+7
| |
* | Merge pull request #73915 from vonagam/fix-conversions-from-native-memberRémi Verschelde2023-02-261-1/+1
|\ \ | | | | | | | | | GDScript: Fix conversions from native members accessed by identifier
| * | GDScript: Fix conversions from native members accessed by identifierDmitrii Maganov2023-02-251-1/+1
| | |
* | | Merge pull request #73964 from vonagam/fix-coroutine-compiler-typeRémi Verschelde2023-02-261-1/+1
|\ \ \ | | | | | | | | | | | | GDScript: Fix address type for coroutine results
| * | | GDScript: Fix address type for coroutine resultsDmitrii Maganov2023-02-261-1/+1
| | | |
* | | | Merge pull request #73899 from vnen/gdscript-init-defaults-beforehandRémi Verschelde2023-02-261-10/+26
|\ \ \ \ | |/ / / |/| | | | | | | GDScript: Initialize all defaults beforehand in implicit constructor
| * | | GDScript: Initialize all defaults beforehand in implicit constructorGeorge Marques2023-02-241-10/+26
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* / / Revert "GDScript: Fix groups and categories been seen as members"George Marques2023-02-251-5/+1
|/ / | | | | | | | | | | | | This reverts commit 6f2a8434c675b3df2aceca4e5200aaf799eeb2bd. The commit introduces a bug where it creates spurious entries for member information.
* | GDScript: Fix groups and categories been seen as membersGeorge Marques2023-02-241-1/+5
| |
* | GDScript: Fix setting native type with script inheritanceGeorge Marques2023-02-211-6/+7
| | | | | | | | | | | | | | Sometimes the inheritance tree is compiled out of order and the base don't have yet a native type set. This is now changed to not rely on the base script but use the native type set in the datatype, which is already resolved by the analyzer.
* | GDScript: Rework type checkDmitrii Maganov2023-02-171-36/+24
| |
* | Add return type for GDScript gettersocean (they/them)2023-02-151-1/+1
| |
* | Revert "Remove script class checks when getting function signature"Rémi Verschelde2023-02-071-1/+2
| | | | | | | | | | | | This reverts commit 0fef203b1f39c3373f9f25b8e75e75f6b03f7c88. This introduced some other issues, as discussed in #72144.