summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_parser.cpp
AgeCommit message (Collapse)Author
2021-10-15GDScript: Avoid crash if missing setter signatureGeorge Marques
2021-10-11Merge pull request #53103 from ZuBsPaCe/gdscript-analyze-properties-fixGeorge Marques
GDScript: Report property type errors
2021-10-11Remove redundant String operation from GDScript enum exportsYuri Sizov
2021-10-08GDScript: Report property type errorsZuBsPaCe
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[Net] Rename RPCConfig.sync to call_local.Fabio Alessandrelli
For consistency with the other user facing changes.
2021-10-06Fix outdated no_call_local, use call_remoteMax Hilbrunner
2021-10-02GDScript Check for null list in `for` loopBrian Semrau
2021-10-01[Net] Rename RPC constants and annotation arguments.Fabio Alessandrelli
any -> any_peer sync -> call_local ordered -> unreliable_ordered Multiplayer.RPC_MODE_ANY -> RPC_MODE_ANY_PEER Multiplayer.TRANSFER_MODE_ORDERED -> TRANSFER_MODE_UNRELIABLE_ORDERED
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-21Merge pull request #52906 from vnen/gdscript-show-error-on-yieldRémi Verschelde
2021-09-21Merge pull request #52905 from vnen/gdscript-single-line-declarationRémi Verschelde
2021-09-21GDScript: Show specific error when "yield" is usedGeorge Marques
To help people porting code, it gives a hint to use "await" instead of a generic error.
2021-09-21GDScript: Allow classes declaration to be done in single lineGeorge Marques
Incidentally, allow multiple statements in single line functions when using semicolon as a terminator.
2021-09-21GDScript: Allow multiple lines in signal parameters declarationGeorge Marques
2021-09-17GDScript: Properly catch error when missing index in subscriptGeorge Marques
2021-09-17Merge pull request #51671 from RandomShaper/fix_gdscript_crashGeorge Marques
Fix some GDScript bugs
2021-09-15Merge pull request #52706 from vnen/gdscript-ternary-operator-crashRémi Verschelde
GDScript: Show error when missing expression after ternary else
2021-09-15GDScript: Show error when missing expression after ternary elseGeorge Marques
2021-09-15GDScript: Show error on unary operators without argumentGeorge Marques
2021-09-15GDScript: Allow string keys on Lua-style dictionariesGeorge Marques
Which is useful when the key isn't a valid identifier, such as keys with spaces or numeric keys.
2021-09-13Merge pull request #52068 from ThreeRhinosInAnElephantCostume/fixgdscriptRémi Verschelde
Fix parse error on statement-less files with only newlines, add a warning for empty files.
2021-09-11Fix error on parsing statement-less GDScript files,ThreeRhinosInAnElephantCostume
add an empty file warning, add relevant tests.
2021-09-11Implement iterator variable typing in GDScriptPedro J. Estébanez
2021-09-10GDScript: Removed spurious UNASSIGNED_VARIABLE warning for localsZuBsPaCe
Variable->assignment needs to be incremented when assigned a value. Also fixed and improved unit test 'variable_declaration.gd'. Fixes #52551
2021-09-10Merge pull request #52063 from KoBeWi/double_comma_of_doomGeorge Marques
Fix crash with consecutive commas in Dictionary
2021-09-10Fix crash with consecutive commas in Dictionarykobewi
2021-09-10Merge pull request #51593 from KoBeWi/ifGeorge Marques
Prevent crash when awaiting in a getter/setter
2021-09-10Merge pull request #52081 from ThreeRhinosInAnElephantCostume/fixmatchfreezeGeorge Marques
Fix gdscript pattern matching expressions
2021-09-07[Net] Move multiplayer to core subdir, split RPCManager.Fabio Alessandrelli
Move multiplayer classes to "core/multiplayer" subdir. Move the RPCConfig and enums (TransferMode, RPCMode) to a separate file (multiplayer.h), and bind them to the global namespace. Move the RPC handling code to its own class (RPCManager). Renames "get_rpc_sender_id" to "get_remote_sender_id".
2021-09-03Added tests for expression matchingThreeRhinosInAnElephantCostume
2021-08-30[GDScript] [Net] Allow mixing rpc annotation paramters.Fabio Alessandrelli
The strings no longer needs to be in order. The last parameter (channel), still requires all the other parameters to be present.
2021-08-30[Net] Rename RPC "puppet" to "auth" (authority). Drop "master".Fabio Alessandrelli
This commit completely removes the RPC_MODE_MASTER ("master" keyword), and renames the RPC_MODE_PUPPET to RPC_MODE_AUTHORITY ("auth" keyword). This commit also renames the "Node.[get|set]_network_master" methods to "Node.[get|set]_network_authority". This commit also renames the RPC_MODE_REMOTE constant to RPC_MODE_ANY. RPC_MODE_MASTER in Godot 3.x meant that a given RPC would be callable by any puppet peer on the master, while RPC_MODE_PUPPET meant that it would be callable by the master on any puppet. Beside proving to be very confusing to the user (referring to where it could be called instead of who can call it) the RPC_MODE_MASTER is quite useless. It is almost the same as RPC_MODE_REMOTE (anyone can call) with the exception that the network master cannot. While this could be useful to check in some case, in such a function you would anyway need to check in code who is the caller via get_rpc_sender_id(), so adding the check there for those rare cases does not warrants a dedicated mode.
2021-08-28Print error message when await is not followed by signal or coroutineWilliam Deurwaarder
When await was not followed by a signal or coroutine the GDScript parser would crash. This fix will check if await is followed by a signal or coroutine in case that isn't true (element == nullptr) then an error message is printed.
2021-08-25Fixed crash when parsing an empty assignment.Louis Dumont
Resolves #51620.
2021-08-25Fixed pattern matching with expressionsThreeRhinosInAnElephantCostume
2021-08-23Merge pull request #51971 from aaronfranke/httpsMax Hilbrunner
Replace HTTP URLs with HTTPS for sites with HTTPS versions
2021-08-22Replace HTTP links with HTTPS for sites with HTTPS versionsAaron Franke
2021-08-21Remove redundant assignments.Anilforextra
Use used_in_transfer instead of used_in_compute twice.
2021-08-17Remove underscore hacksMax Hilbrunner
Way less cruft. :) Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-16Reorganise text editor settingsPaulb23
2021-08-13 Prevent crash when awaiting in a getter/setterkobewi
2021-08-10Fix crash when parsing Dictionarykobewi
2021-08-06[Net] Default @rpc annotation should be puppet, not master.Fabio Alessandrelli
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-21Use the standard C `INFINITY` and `NAN` constants directlyHugo Locurcio
The `Math_INF` and `Math_NAN` defines were just aliases for those constants, so we might as well use them directly. Some portions of the code were already using `INFINITY` directly.
2021-07-20[Net] Single `rpc` annotation. "sync" no longer part of mode.Fabio Alessandrelli
- Move the "sync" property for RPCs to RPCConfig. - Unify GDScript annotations into a single one: - `@rpc(master)` # default - `@rpc(puppet)` - `@rpc(any)` # former `@remote` - Implement three additional `@rpc` options: - The second parameter is the "sync" option (which also calls the function locally when RPCing). One of "sync", "nosync". - The third parameter is the transfer mode (reliable, unreliable, ordered). - The third parameter is the channel (unused for now).
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-15Adding some more missing renames for Transform3D and QuaternionBastiaan Olij
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.