Thakee Nathees
5798c8135f
logic error in gdscript_parser.cpp for-loop-range
...
there was a logic error in for loop range argument that
check if all of the argument were constants, fixed
(cherry picked from commit bcbcf0f1ea
)
2020-03-25 09:45:47 +01:00
Thakee Nathees
40b53bc29a
duplicate arguments in a function handled
...
(cherry picked from commit 5424b626f9
)
2020-03-25 09:44:51 +01:00
Rémi Verschelde
36e11d1c34
Merge pull request #35412 from DaividFrank/check_overriding_self
...
Disabled re-assigning 'self'
2020-01-22 20:47:52 +01:00
DaividFrank
badabdf8b9
GDScript: Added checks in assign operations to disable re-assigning 'self'
2020-01-22 19:00:54 +02:00
Dani Frank
8f5e424c66
Fix subclass finding in extend statement for sub-sub classes
...
lookup was always done on top level script instead of advancing to subclass each time.
this commit changes the lookup to always be at last found subclass
2020-01-18 11:55:27 +02:00
Bojidar Marinov
19ce2d5159
Fix slight problems related to default values of exported typed arrays
2020-01-16 14:50:29 +02:00
George Marques
1d129f9bec
GDScript: Check function arguments on release too
...
Needed because otherwise the certain type operations (such as type
casting) used as a function argument might become unresolved on release,
causing a compilation failure.
Fix #28680
2020-01-13 15:58:53 -03:00
George Marques
e6060706ca
GDScript: Type match on assignment only if operators have type
...
This ensures that a value without type won't be wrongly assigned to a
typed variable when the types mismatch.
2020-01-13 08:51:24 -03:00
George Marques
4c20d9407d
GDScript: Forbid using "script" as member name
...
Avoids the user breaking things by creating a "script" variable with
something else, effectively overwriting the "script" slot on Object.
2020-01-10 19:43:33 -03:00
George Marques
76678b2609
GDScript: Fix type name on error message for function parameters
2020-01-09 15:50:06 -03:00
George Marques
1aef8bfeb1
GDScript: Fix resolution of default parameter values
...
Fix #26556
2020-01-09 15:42:31 -03:00
Rémi Verschelde
e97e951741
Merge pull request #34948 from vnen/gdscript-copy-constructor
...
GDScript: Allow copy constructor for built-in types
2020-01-09 13:42:10 +01:00
George Marques
41ed905c1a
GDScript: Allow copy constructor for built-in types
...
Those are implicitly defined in Variant.
2020-01-09 09:03:09 -03:00
George Marques
7d4fc79eb3
Add GDScript warning for standalone expression
...
This makes the error message clearer as it might be used to call
functions with side effects.
2020-01-09 08:30:14 -03:00
George Marques
e7b7dc57fc
GDScript: set assign operation on local var made by match
...
This is needed in a all local variables with assigment to properly set
the typed operation.
Fix #34928
2020-01-08 19:28:07 -03:00
Rémi Verschelde
c456d87ee6
Merge pull request #34918 from vnen/gdscript-assign-op
...
GDScript: enable type checks on release mode
2020-01-08 18:22:38 +01:00
George Marques
d26414f9fe
GDScript: enable type checks on release mode
...
Also make builtin GDScript functions report return type as Variant in
release so type is converted when needed.
2020-01-08 12:38:18 -03:00
George Marques
899f7999b4
GDScript: properly set type of local variable initialization
...
Properly sets the type of the identifier for the local variable
that is stored in the assignment operation. This makes sure that the
compiler is aware of typing for local variables when they are
initialized with the declaration.
2020-01-08 11:36:50 -03:00
Bojidar Marinov
b93b7aca74
Allow the usage of newlines in export hints
...
Fixes #34689
2020-01-02 18:03:11 +02:00
Rémi Verschelde
a7f49ac9a1
Update copyright statements to 2020
...
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
George Marques
475d7f0e52
GDScript: Fix type conversion in assignment with operation
2019-12-13 12:51:08 -03:00
Rémi Verschelde
f326913f4d
Merge pull request #34067 from bojidar-bg/32370-retype-message
...
Make error when accidentially redeclaring a variable's type clearer
2019-12-04 06:52:22 +01:00
Bojidar Marinov
79c26344e8
Make error when accidentially redeclaring a variable's type clearer
...
Fixes #32370
2019-12-02 22:26:05 +02:00
lupoDharkael
9254961297
Parser: Check all the arguments of the ternary operator
2019-11-15 01:29:18 +01:00
mashumafi
d7137a6b72
Add setting to exclude addons from script warnings
2019-11-07 23:01:22 -05:00
Rémi Verschelde
c43c3747cf
Merge pull request #32808 from bojidar-bg/30937-less-strict-mixed-spacing
...
Allow mixed tabs and spaces when indentation does not depend on tab size
2019-10-25 23:16:04 +02:00
Bojidar Marinov
afbde3314a
Allow mixed tabs and spaces when indentation does not depend on tab size
...
(hopefully) Closes #30937 , fixes #32612
2019-10-25 14:54:57 +03:00
Rémi Verschelde
8228b93fcd
Merge pull request #32919 from vnen/gdscript-unused-args
...
Fix wrong counting of function argument usage
2019-10-22 14:15:58 +02:00
George Marques
05465b9693
GDScript: Add _ prefix on class name in type compatibility check
...
This makes sure that the classes internally represented with an
underscore (_) prefix, such as singletons, are still properly checked
for inheritance in the ClassDB.
2019-10-19 13:45:52 -03:00
George Marques
bb20e420af
Fix wrong counting of function argument usage
...
There's no need to subtract 1 from the assignment usages because it's
not incremented anywhere else.
Also put back the assignment with operators because they should not
count as usage if the argument is on the left side.
2019-10-19 10:59:57 -03:00
qarmin
616ab4fac2
Small fixes to redundand code, copy paste bugs
2019-10-14 11:40:55 +02:00
George Marques
64d09b7de5
GDScript: Fix type resolution not being return in some cases
...
Some situations caused the parser node type to not being update when
trying to resolve the type, returning invalid data and breaking the
parsing when it shouldn't. This patch fix the behavior.
2019-09-24 18:05:20 -03:00
qarmin
50be65bf43
Changed some code found by Clang Tidy and Coverity
2019-09-22 18:45:08 +02:00
Rémi Verschelde
fdc2463a1b
Merge pull request #32150 from luzpaz/typos
...
Fix misc. source comment typos
2019-09-20 17:09:05 +02:00
luz.paz
91ecd7b6a6
Fix misc. source comment typos
...
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Rémi Verschelde
c3d5c96494
Merge pull request #31921 from bojidar-bg/28978-uninitialized-array-value
...
Fix uninitialized arrays and dictionaries retaining value
2019-09-19 20:31:12 +02:00
Rémi Verschelde
291f408fcf
Merge pull request #32100 from SaracenOne/gdscript_parent_const_types
...
Fix const deceleration for inherited scripts above immediate parent
2019-09-19 20:11:37 +02:00
Rémi Verschelde
b5f14cc6f7
Merge pull request #31934 from mitchcurtis/28187
...
Produce an error when a class has the same name as a Singleton
2019-09-19 20:05:41 +02:00
Mitch Curtis
aa8e3e7b0f
GDScript: add an optional message parameter to assert()
...
Before this patch, assert() only took the condition to assert on:
assert(item_data)
Now, it can optionally take a string that will be printed upon failure:
assert(item_data, item_name + " has no item data in ItemDatabase")
This makes it easier to immediately see what the issue is by being
able to write informative failure messages.
Thanks to @wiped1 for sharing their patch, upon which this is based.
Closes #17082
2019-09-11 15:37:11 +02:00
Saracen
cf00f35a8e
Allow for constant deceleration to be detected inherited scripts above the immediate parent.
2019-09-11 06:19:20 +01:00
Mitch Curtis
8f5ffeeacc
Produce an error when a class has the same name as a Singleton
...
If you somehow end up with a Singleton.gd that looks like this:
extends Node
class_name Singleton
func foo():
pass
You will get an error when using it in another file:
extends Node2D
func _init():
# Parser Error: Non-static function "foo" can only be called from an instance.
Singleton.foo()
This error is confusing. This patch ensures that an error on the class_name line will be produced:
Parse Error: The class "Singleton" conflicts with the AutoLoad singleton of the same name, and is therefore redundant. Remove the class_name declaration to fix this error.
Fixes #28187 .
2019-09-06 17:12:43 +02:00
Bojidar Marinov
3ca7b4ee45
Fix uninitialized arrays and dictionaries retaining value
...
Fixes #28978
2019-09-03 10:39:04 +03:00
Rémi Verschelde
10b040ab20
Merge pull request #31893 from bojidar-bg/25081-gdscript-index-self
...
Re-allow indexing on objects and other non-builtin types
2019-09-02 20:25:14 +02:00
Rémi Verschelde
85955c5f25
Merge pull request #31843 from 2shady4u/parserCtrlClick
...
Solves ctrl+click on functions by ignoring the cursor
2019-09-02 19:56:35 +02:00
Bojidar Marinov
e3d05fa42d
Re-allow indexing on "self" and object types in GDScript
...
Fixes #25081
2019-09-02 20:18:15 +03:00
Rémi Verschelde
877912b23c
Merge pull request #24925 from Mr-Slurpy/typed-autoload
...
Added autoloads as a potential type.
2019-09-02 16:05:05 +02:00
shaderbeast
dbd253d7a2
Solves ctrl+click on functions by ignoring the cursor
...
Obeyed CLANG format rules
Obeying CLANG format rules attempt 2
Obeying CLANG format rules attempt 3
Clean up
Fixed runaway while loop
Removed int initialization
2019-09-02 13:46:38 +02:00
Rémi Verschelde
7995ce03f3
Merge pull request #31738 from bojidar-bg/31056-class_name-extends
...
Remove check for class_name and extends order
2019-08-29 08:33:51 +02:00
Rémi Verschelde
46ad60385b
Merge pull request #29780 from GodotExplorer/gdscript-lsp
...
Add Language Server Protocol for GDScript
2019-08-28 13:06:51 +02:00
Bojidar Marinov
b70b16a20f
Remove check for class_name and extends order
...
Closes #31056
2019-08-28 12:05:21 +03:00
Michael Alexsander Silva Dias
a8826ad3b8
Make 'break' and 'continue' be marked as safe
2019-08-27 23:10:33 -03:00
Hugo Locurcio
a4794af5df
Improve writing style in GDScript error/warning messages
...
This uses double quotes everywhere for consistency.
2019-08-23 20:55:50 +02:00
Rémi Verschelde
d3153c28f0
Replace last occurrences of 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG'
...
The last remaining ERR_EXPLAIN call is in FreeType code and makes sense as is
(conditionally defines the error message).
There are a few ERR_EXPLAINC calls for C-strings where String is not included
which can stay as is to avoid adding additional _MSGC macros just for that.
Part of #31244 .
2019-08-17 13:31:22 +02:00
geequlim
f58560ac36
Add GDScript Language Protocol plugin
2019-08-11 13:30:15 +08:00
Rémi Verschelde
80c7cb6378
Merge pull request #31227 from profan/fix/err-explain-usages
...
Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in "platform", "modules/gdnative", "modules/gdscript" directories.
2019-08-09 12:28:06 +02:00
Robin Hübner
6ab118c464
Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in "platform", "modules/gdnative", "modules/gdscript" directories.
2019-08-09 11:13:24 +02:00
Cameron Reikes
2339e85b78
Expression before 'is' may be null
2019-08-09 01:24:03 -07:00
Rémi Verschelde
be3b2f3ff9
Merge pull request #31041 from 2shady4u/master
...
Mark class_name line as safe in editor
2019-08-05 08:05:49 +02:00
shaderbeast
1e6a52b215
Mark class_name line as safe in editor
2019-08-02 20:07:54 +02:00
Rémi Verschelde
d15cf7b672
Merge pull request #30576 from qarmin/lgtm_coverage
...
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
qarmin
6cbaf7662f
Changed some code showed in LGTM and Coverage
2019-07-20 08:09:57 +02:00
Shiqing
206d515783
Fix unreachable code detection in match statements
2019-07-13 19:31:49 +08:00
Rémi Verschelde
ba211bd58c
Merge pull request #30352 from bojidar-bg/28727-enum-value-check
...
Fix parsing of enums allowing for juxtaposed identifiers
2019-07-06 20:28:53 +02:00
Bojidar Marinov
c43e050145
Fix parsing of enums allowing for juxtaposed identifiers
...
Fixes #28727
2019-07-05 21:40:40 +03:00
Rémi Verschelde
e81ddf1242
Merge pull request #30289 from bojidar-bg/29586-class-name-constant
...
Fix inheriting from class_name messing up constants
2019-07-03 21:25:20 +02:00
Bojidar Marinov
2ef438c200
Fix inheriting from class_name messing up constants
...
Fixes #29586
2019-07-03 17:59:29 +03:00
Bojidar Marinov
f7de816f8b
Fix parsing of arguments in constant expressions
...
Fixes #8006
2019-07-03 17:28:50 +03:00
Rémi Verschelde
d17eac735c
Merge pull request #29815 from NilsIrl/plus_file_1
...
Replace ` + "/" + ` with `String::file_add()`
2019-07-01 12:06:35 +02:00
unknown
bd25e8d72a
Fixed regression bug caused in #30095 and actually fix the issue it was supposed to fix( #26850 )
2019-06-28 14:58:52 +05:30
Rémi Verschelde
eaaff9da31
Merge pull request #29941 from qarmin/redundant_code_and_others
...
Remove redundant code, possible NULL pointers and others
2019-06-27 01:05:18 +02:00
unknown
a859643f7e
Fixed parser treating compound assignment the same as assignment which gave wrong argument usage count
2019-06-26 22:43:08 +05:30
qarmin
4e5310cc60
Some code changed with Clang-Tidy
2019-06-26 15:08:25 +02:00
Nils ANDRÉ-CHANG
d2833d4f4d
Replace + "/" +
with String::file_add()
2019-06-23 13:33:50 +01:00
Rémi Verschelde
971b5160c6
Merge pull request #29306 from qarmin/small_code_fixes
...
Small fixes to unrechable code, possibly overflows, using NULL pointers
2019-06-12 12:49:21 +02:00
Rémi Verschelde
4043c8a8c9
Merge pull request #29678 from akien-mga/err-macros-semicolon
...
Fix error macro calls not ending with semicolon
2019-06-11 19:01:26 +02:00
Rémi Verschelde
6d16f2f053
Fix error macro calls not ending with semicolon
...
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
MrCdK
74d336d0f4
Added export hint to 2D and 3D physics and render layers.
2019-06-07 16:30:54 +02:00
qarmin
8245db869f
Small fixes to unrechable code, possibly overflows, using NULL pointers
2019-06-03 21:52:50 +02:00
Rémi Verschelde
8cc8383a7f
Merge pull request #29433 from bojidar-bg/29406-dictionary-constant
...
Properly catch certain errors in Dictionary and Array declarations
2019-06-03 20:53:02 +02:00
Bojidar Marinov
b5bbedb45a
Properly catch certain errors in Dictionary declarations
...
Fixes #29406
2019-06-03 17:29:05 +03:00
Rémi Verschelde
b9dc2e7e4d
Merge pull request #28099 from lupoDharkael/fix-completion
...
Fix code completion not working with class_name
2019-06-03 14:01:07 +02:00
Rémi Verschelde
633af46a66
Merge pull request #27987 from lupoDharkael/classname-duplicate
...
Prevent using multiple class_name in a class
2019-05-28 11:56:21 +02:00
Geequlim
ebcfe28475
Fix parse error when extends from subclass of named classes
2019-05-24 11:56:44 +08:00
Rémi Verschelde
e0574e1d98
Fix typos with codespell
...
Using codespell 1.15.0.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
doubleclick
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-05-19 13:10:35 +02:00
Bojidar Marinov
aff9320ff2
Fix typed arrays and dictionaries getting their values shared
2019-05-02 14:00:33 +03:00
Rémi Verschelde
ae41e35191
Merge pull request #27676 from qarmin/small_fixes_2
...
Small fixes to static analyzer bugs
2019-05-01 08:19:04 +02:00
lupoDharkael
2ad302cec4
Don't allow class_name in built-in scripts
2019-04-17 17:06:21 +02:00
lupoDharkael
c07b49280a
Prevent using multiple class_name in a class
2019-04-16 01:41:00 +02:00
lupoDharkael
14078fbb82
GDScript: add variable shadowing warning
2019-04-15 18:19:14 +02:00
Rémi Verschelde
e7a1fbe83a
Merge pull request #27863 from bojidar-bg/27460-constant-class-clash
...
Check subclasses too when checking for name clashes
2019-04-12 11:54:35 +02:00
George Marques
e56f5d5c91
GDScript: Don't allow built-in scripts to use class_name
2019-04-10 18:05:34 -03:00
Bojidar Marinov
ece09f9872
Check for subclasses when checking for name clashes
...
Fixes #27460
2019-04-10 13:19:30 +03:00
Rémi Verschelde
c8994b56f9
Style: Apply new changes from clang-format 8.0
...
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Rémi Verschelde
fc370b3feb
Fix -Wimplicit-fallthrough warnings from GCC 8
...
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.
The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.
Fixes #26135 .
2019-04-05 15:14:53 +02:00
qarmin
8460d0678c
Small fixes to static analyzer bugs
2019-04-04 22:00:16 +02:00
Rémi Verschelde
4ec384f9d4
Merge pull request #26097 from danielspaniol/25955-wrong-unreachable-warning-after-returning-from-matchs-wildcard-pattern
...
Fix: Wrong unreachable warning after returning from match's wildcard pattern #25955
2019-04-01 12:17:17 +02:00
Bojidar Marinov
b64f9f03f8
Fix duplicated lines in GDScript bytecode
...
Fixes #26789
2019-03-14 18:38:07 +02:00
Bojidar Marinov
9637e42705
Fix enums coming from other classes without preload
...
Fix #19704 , fix #26001
2019-03-05 23:19:02 +02:00
Rémi Verschelde
425ec6914c
Revert "Forbid implicit type conversion in GDScript"
2019-03-04 12:25:59 +01:00
Rémi Verschelde
7889e9b7ca
Merge pull request #26562 from vnen/gdscript-no-implicit-cast
...
Forbid implicit type conversion in GDScript
2019-03-04 10:19:00 +01:00