summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_parser.cpp
AgeCommit message (Collapse)Author
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-12Fix incorrect precedence of pow operator in GDScript Yuri Rubinsky
2022-05-11Implement exponential operator (**) to GDScript/ExpressionsYuri Roubinsky
2022-05-11Merge pull request #59863 from cdemirer/fix-match-multiple-bind-single-patternRémi Verschelde
Fix issues with multiple bind patterns in match statement
2022-04-24GDScript: Allow using self in lambdasGeorge Marques
2022-04-04Fix issues with multiple bind patterns in match statementcdemirer
2022-03-30Merge pull request #59694 from vnen/gdscript-better-call-superRémi Verschelde
2022-03-30GDScript: Fix issues with completion and `super` callsGeorge Marques
- 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-30Fix autocompletion of static methods in built-in types in GDScriptYuri Roubinsky
2022-03-22Merge pull request #58971 from Chaosus/gds_multiline_annotationYuri Rubinsky
2022-03-16Add an error emitting when the `@export_flags` arg count is exceededYuri Roubinsky
2022-03-10Allow making multiline annotations in GDScriptYuri Roubinsky
2022-02-18Make 'is_attribute' false during parse error to prevent crashSaracenOne
2022-02-08Refactor some object type checking code with `cast_to`Rémi Verschelde
Less stringly typed logic, and less String allocations and comparisons.
2022-02-04Merge pull request #57591 from vnen/gdscript-enum-fixesRémi Verschelde
2022-02-03GDScript: Consolidate behavior for assigning enum typesGeorge Marques
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-01-22Merge pull request #55433 from V-Sekai/prev_operand_nullptr_checkRémi Verschelde
Check for nullptr expression in parse_precedence function
2022-01-22Merge pull request #55214 from Scony/fix-gdscript-crash-2Rémi Verschelde
Fix GDScript parser crash on 'dollar mixed with assignment' expression
2022-01-17Merge pull request #55625 from ↵Rémi Verschelde
cdemirer/fix-type-guessing-and-gdscript-parser-printing Fix `--test gdscript-parser` crash
2022-01-13Fix various typosluz paz
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inh,inout,leapyear,lod,nd,numer,ois,ony,paket,ro,seeked,sinc,switchs,te,uint,varn,vew`
2022-01-10Merge pull request #55715 from nathanfranke/enum-orderedRémi Verschelde
2022-01-10Merge pull request #56342 from NNesh/fix/class-completionRémi Verschelde
2022-01-08Fixed completion showing for class membersNNesh
2022-01-05Merge pull request #56483 from vnen/gdscript-warning-annotationRémi Verschelde
Add annotation to ignore warnings
2022-01-04GDScript: Add annotation to ignore warningsGeorge Marques
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2022-01-03Fix gdscript-parser crashcdemirer
Fixes gdscript-parser crashing while printing empty identifiers.
2021-12-16Use OrderedHashMap for enum_valuesNathan Franke
2021-12-13Fix shadowed global identifier warning duplicationYuri Roubinsky
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-12-03Fix typo in `gdscript_parser`Raul Santos
2021-11-29Check for nullptr expression in parse_precedence functionSaracenOne
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-21Fix GDScript parser crash on 'dollar mixed with assignment' expressionPawel Lampe
fixes #53696
2021-11-13Allow using built-in names for variables, push warnings insteadYuri Roubinsky
2021-11-10Merge pull request #54676 from Chaosus/gds_restrict_namesRémi Verschelde
2021-11-09Allow using $/root node pathsMaximilian
format fix shadowing use match instead of comparison Update gdscript_parser.cpp
2021-11-08Prevent identifiers from naming as built-in funcs and global classesYuri Roubinsky
2021-10-28Merge pull request #54350 from akien-mga/clang-format-dont-align-operandsRémi Verschelde
2021-10-28Merge pull request #53526 from KoBeWi/super_printRémi Verschelde
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
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-07Change print_line() to use any number of Variantskobewi
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