Francois Belair
e3f16a83dc
Fix line num of enums reported as the line before
2020-08-08 11:52:25 -04:00
Thakee Nathees
9ce1fe59ea
Fix: editor crash on super constructor called
...
Fix : #39909
(cherry picked from commit 023b3f2786
)
2020-07-06 16:47:44 +02:00
Thakee Nathees
fc92f83c30
Debugger stepping to incorrect line fix
...
Fix : #39296
(cherry picked from commit fc89c5c76d
)
2020-06-18 11:29:28 +02:00
Thakee Nathees
931a927a40
shodowed var warning for for
loop counter
...
Fix : #39268
(cherry picked from commit 54835a5302
)
2020-06-18 10:51:45 +02:00
Rémi Verschelde
1cf8652945
Merge pull request #39263 from ThakeeNathees/is-operation-fail
...
[3.2] Fix `is` operation fail on get_script()
2020-06-16 16:28:43 +02:00
Hugo Locurcio
aeb5513bab
Tweak the GDScript error message about passed argument type mismatch
...
This makes it less confusing.
This closes https://github.com/godotengine/godot-proposals/issues/670 .
(cherry picked from commit 30053de182
)
2020-06-05 12:50:55 +02:00
Thakee Nathees
837cba7567
predefined var check for for
loop counter
...
(cherry picked from commit e153772de2
)
2020-06-05 12:45:12 +02:00
Thakee Nathees
8f795cb38e
Fix is
operation fail on get_script()
...
Fix : #39244
2020-06-03 21:04:48 +05:30
George Marques
a0983637cf
GDScript: Allow get_script() to be considered a type
2020-06-03 10:48:43 -03:00
Tan Wang Leng
48a2fd7a3d
gdscript_parser: Fix "unreachable code" false positive for loops
...
Depending on the conditional statements of the 'for' and 'while' loops,
their body may not even execute once. For example:
func a():
var arr = []
for i in arr:
return i
# can be reached, but analysis says cannot
return -1
func b():
var should_loop = false
while should_loop:
return 1
# can be reached, but analysis says cannot
return 0
The parser will complain that the statements after the comment cannot
be reached, but it is clearly possible for our scenario. This is
because the parser falsely assumes that the loop body will always
execute at least once.
Fix the code to remove this assumption for both of those loops.
(cherry picked from commit 7b1423a61e
)
2020-05-25 16:31:07 +02:00
James Buck
9347a6ad6a
Trigger an error when trying to define a preexisting signal in GDScript
...
A class can't have multiple signals with the same name, but previously users
would not be alerted to a conflict while editing the script where it occurred.
Now a helpful error will appear in the editor during script parsing.
(cherry picked from commit 9e44739324
)
2020-05-25 16:29:20 +02:00
Thakee Nathees
9ee77179b5
break, continue outside of a loop, match statement handled
...
(cherry picked from commit c076a2b7e9
)
2020-05-16 00:08:37 +02:00
Thakee Nathees
d13f46bc41
shadowed var warning in nested block bug fix
...
Fix : #38552
(cherry picked from commit 79eee93b9a
)
2020-05-14 22:01:45 +02:00
Thakee Nathees
40c43da96f
set parser error when infer type is null
...
(cherry picked from commit 687b1941b4
)
2020-05-14 22:01:26 +02:00
Thakee Nathees
e42318e41c
regression: var declaration type info parser bug fix
...
(cherry picked from commit e5d735851d
)
2020-05-13 16:14:22 +02:00
Thakee Nathees
6d7fb3d322
regression: static func can't access const fix
...
(cherry picked from commit e7f056dfac
)
2020-05-13 16:14:08 +02:00
Thakee Nathees
72aa9ce7fc
range() with non-numeric const argument crash fix
...
(cherry picked from commit 3e10392d48
)
2020-05-13 16:08:33 +02:00
Thakee Nathees
55b4e0c44a
parser error for static func access non-static variables
...
Fix : #38408
(cherry picked from commit ce978517e0
)
2020-05-11 11:01:13 +02:00
Thakee Nathees
22053ed75f
GDScript class var type resolve bug fixed
...
Fix : #37545
(cherry picked from commit e67eb5ca36
)
2020-05-11 10:50:46 +02:00
Thakee Nathees
6b0cfc87af
more clearer unexpected statement end error messages
...
(cherry picked from commit 5758d87f09
)
2020-05-11 10:50:46 +02:00
Thakee Nathees
7111aa0688
pass keyword inside a class implemented
...
(cherry picked from commit 63ce1fc438
)
2020-05-11 10:50:46 +02:00
janglee
d16abbdee4
Improved go-to definition (Ctrl + Click)
...
Co-Authored-By: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
(cherry picked from commit be7a353c70
)
2020-05-11 09:33:21 +05:30
Steven Schoen
40125c7cce
Mention offending function name in "Indented block expected" error
...
(cherry picked from commit e6e5ba32cd
)
2020-05-04 16:10:22 +02:00
Tom Evans
2859ceec6f
Fix for marking assert lines as safe bug
...
Calling _reduce_node_type from GDScriptParser::_parse_block for assert
was using a current class with a scope that didn't include all
functions. Now calling in GDScriptParser::_check_block_types uses the
right class type. We also now check the assert node message. The assert
line was added to the set_errors associated with assert, since before
the error would be reported on the next line
(cherry picked from commit bd081df519
)
2020-05-01 10:56:58 +02:00
Thakee Nathees
1a4530e84c
export var type reduce() implemented
...
(cherry picked from commit cd487201c6
)
2020-05-01 10:56:58 +02:00
Tom Evans
3bd5fc2e5e
Mark assert lines as safe in gdscript
...
Now calling _reduce_node_type with debugging enabled to determine
if assert line is safe. Part of doing this required the assert line
to be stored away. Now the AssertNode line is being correctly set.
Newlines are now marked safe always
(cherry picked from commit 8dc8833782
)
2020-04-27 10:10:20 +02:00
Thakee Nathees
95f6bdfa78
GDScript class name existance check enhanced
...
(cherry picked from commit 62280c3d47
)
2020-04-23 11:10:51 +02:00
Thakee Nathees
12c776dba3
line unsafe for indexing with known base type & unkown identifier
...
(cherry picked from commit 0780ad2800
)
2020-04-23 11:10:28 +02:00
Stoofin
243711e77f
Pattern bind counts as assignment
...
Fixes #34697
(cherry picked from commit 44281f233d
)
2020-04-23 11:10:06 +02:00
Thakee Nathees
3658f7127e
:=
fails on some nodes fix : #37357
...
(cherry picked from commit bdd7048cb5
)
2020-04-16 11:46:23 +02:00
Thakee Nathees
df87601c88
Fix for loop range bug: #37358
...
(cherry picked from commit 0b5bad78c0
)
2020-04-06 20:58:21 +02:00
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