Age | Commit message (Collapse) | Author |
|
|
|
|
|
Fix case where exported properties value is lost
|
|
|
|
- Count and panel per script.
- Ability to disable warnings per script using special comments.
- Ability to disable warnings globally using Project Settings.
- Option to treat enabled warnings as errors.
|
|
|
|
Fixes exported property modified values lost when creating a placeholder script instance with a failed script compilation
- Object set/get will call PlaceHolderScriptInstance's new fallback set/get methods as a last resort. This way, placeholder script instances can keep the values for storage or until the script is compiled successfuly.
- Script::can_instance() will only return true if a real script instance can be created. Otherwise, in the case of placeholder script instances, it will return false.
- Object::set_script(script) is now in charge of requesting the creation of placeholder script instances. It's no longer Script::instance_create(owner)'s duty.
- PlaceHolderScriptInstance has a new method set_build_failed(bool) to determine whether it should call into its script methods or not.
- Fixed a few problems during reloading of C# scripts.
|
|
|
|
|
|
|
|
Also make typed assigns a debug-only thing, so release builds are more
lenient on errors.
|
|
|
|
Only for debug builds. Fix problems in non-tools targets.
|
|
|
|
|
|
|
|
Also show the parent method signature in the error message.
|
|
|
|
|
|
|
|
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
|
|
- Use data type struct from the parser.
- Avail from type hints when type can't be guessed.
- Consider inner classes and other scripts when looking for candidates.
|
|
Syntax: var x : = 42
Infers the type of "x" to be an integer.
|
|
The line number is hightlighted to indicate that the line contains only
type-safe code.
|
|
|
|
- Allow type hints to be completed.
- Use type information to infer completion candidates.
- Show typed function signature in tooltip.
- Add type hints when completing declaration from virtual functions
(optional).
|
|
|
|
This makes the Script API provide accurate information when requesting
property or method info.
|
|
- Typed assignment (built-in, native, and script).
- Cast (built-in conversion; native and script checks).
- Check type of functions arguments on call.
- Check type of members on set.
|
|
- Resolve types for all identifiers.
- Error when identifier is not found.
- Match return type and error when not returning a value when it should.
- Check unreachable code (code after sure return).
- Match argument count and types for function calls.
- Determine if return type of function call matches the assignment.
- Do static type check with match statement when possible.
- Use type hints to determine export type.
- Check compatibility between type hint and explicit export type.
|
|
|
|
|
|
|
|
|
|
|
|
Fix onready vars / vars accessing class members if _ready / _init not present
|
|
Add new debug print method that shows line number where the print came from
|
|
Fix memory leak in GDScript during infinnity loops with yields
|
|
Add new get_stack function to get GDScript stack trace as array
|
|
Small changes to the comments in the script templates
|
|
|
|
|
|
Part of #19158
|
|
from main editor.
|
|
Add support for tutorial links to makerst.py
|
|
Also change the <tutorials> structure to make use of individual <link> tags
|
|
Fixes #19386
|
|
|
|
This allows to disable modules based on the environment,
in particular `env[tools]` which tells us if we are
building the editor or not.
|
|
|