Commit graph

28579 commits

Author SHA1 Message Date
Tan Wang Leng
7b1423a61e 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.
2020-05-16 20:02:55 +08:00
Rémi Verschelde
ac58372db8
Merge pull request #38463 from smartin015/3.2-fixgedit
Remove get_local_mouse_position() hack in GraphEdit
2020-05-16 13:52:20 +02:00
Rémi Verschelde
cd16836392
Merge pull request #37430 from bruvzg/fix_non_hidpi_popup_pos
[macOS] Fix popup positions on multiple screens.
2020-05-16 13:44:51 +02:00
Rémi Verschelde
1a43d3b396
Merge pull request #38451 from eduardonunesp/feature/command-comma-preferences
Using command + comma on macOS as default shortcut for editor settings
2020-05-16 13:24:15 +02:00
smartin015
00457c68bc Remove get_local_mouse_position() hack in GraphEdit 2020-05-16 13:22:52 +02:00
bruvzg
08e80ccd99
Fix popup positions on multiple screens (with same scaling only). 2020-05-16 14:11:43 +03:00
bruvzg
48d133a5fd
Fix GDNative wrapper type sizes (RID, Variant, Packed*Array), add size checking static asserts. 2020-05-16 13:58:42 +03:00
Rémi Verschelde
988dd09047
Merge pull request #38777 from madmiraal/update-r128
Update r128.h to include latest fixes for mingw-64 32 bit builds.
2020-05-16 11:56:40 +02:00
Marcel Admiraal
8efd1ca9f7 Update r128.h to include latest fix for mingw-64 32 bit builds. 2020-05-16 10:30:51 +01:00
Rémi Verschelde
d999071edf
Merge pull request #37924 from thebestnom/migrate-to-androidX
Android: Migrate deprecated support library to AndroidX
2020-05-16 09:03:17 +02:00
Rémi Verschelde
5b2c0c342a
Merge pull request #38772 from neikeq/issue-38729
websocket: Fix crash at exit when not running the editor
2020-05-16 08:50:47 +02:00
Ignacio Etcheverry
18332a0094 websocket: Fix crash at exit when not running the editor
EditorDebuggerServer::register_protocol_handler must not be called before
editor initialization. Otherwise, if the editor is never initialized,
the added StringName will not be released until static destructors are
called (instead of being release during editor deinitialization).
2020-05-16 04:30:12 +02:00
Oliver Frank
6815bf42b3 Fix incorrect capabilities notification in LSP
(cherry picked from commit 2173d041af)
2020-05-15 23:55:49 +02:00
Oliver Frank
3d09edeaef Improve jsonrpc error reporting
(cherry picked from commit dac8b7b6f4)
2020-05-15 23:55:41 +02:00
Rémi Verschelde
5b53f22774
Merge pull request #38760 from akien-mga/error-macros-style
Error macros: Improve style of error messages
2020-05-15 22:04:52 +02:00
Rémi Verschelde
20ffb4b452
Merge pull request #38764 from YeldhamDev/icons_missing
Add more missing icons
2020-05-15 22:04:23 +02:00
Dominik 'dreamsComeTrue' Jasiński
7f5c81c32f Replace 'add_child_below_node' with 'add_sibling' in Node
Fixes: #19642
2020-05-15 22:02:00 +02:00
Michael Alexsander
54ed1f63bf Add more missing icons 2020-05-15 16:20:35 -03:00
Rémi Verschelde
2800c8f43d doc: Sync classref with current source 2020-05-15 18:25:09 +02:00
Rémi Verschelde
0ed7d3a40a Error macros: Improve style of error messages
Document why the `if (1) {} else ((void)0)` construct is used.
2020-05-15 18:21:14 +02:00
Rémi Verschelde
3a6d9a41bb
Merge pull request #38755 from dreamsComeTrue/editor-spin-slider-grabber-hide
Hide editor_spin_slider grabber when closing Editor's windows
2020-05-15 18:10:11 +02:00
Rémi Verschelde
24275b26b8
Merge pull request #36726 from ThakeeNathees/invalid-break-parsing
Fix: break, continue outside of a loop, match statement handled when parsing
2020-05-15 18:06:27 +02:00
Rémi Verschelde
f06c44a02c
Merge pull request #38717 from madmiraal/fix-image-uninitialized-warning
Silence 'w' may be used uninitialized in image.cpp warning.
2020-05-15 18:05:53 +02:00
Rémi Verschelde
bc008d413e
Merge pull request #38757 from madmiraal/fix-oidn-mingw-build
Fix #include <windows.h> for case-senstive cross-compilation.
2020-05-15 18:03:35 +02:00
Rémi Verschelde
0bdd1d46dd
Merge pull request #38754 from Calinou/doc-canvasitem-texture-filter-repeat
Document CanvasItem's texture filtering and repeating modes
2020-05-15 18:03:25 +02:00
Rémi Verschelde
fe0196e58f
Merge pull request #38753 from Calinou/doc-camera3d-effects
Document the Camera3D's `effects` property
2020-05-15 18:03:15 +02:00
Rémi Verschelde
4f23215395
Merge pull request #38750 from madmiraal/fix-vulkan-uninitialized-warning
Silence mulitple may be used uninitialized warnings in RenderingDeviceVulkan::uniform_set_create()
2020-05-15 18:02:56 +02:00
Marcel Admiraal
0aac6a2853 Fix #include <windows.h> for case-senstive cross-compilation. 2020-05-15 15:36:44 +01:00
Dominik 'dreamsComeTrue' Jasiński
095167dcc3 Hide editor_spin_slider grabber when closing Editor's windows
Fixes: #38740
2020-05-15 15:39:32 +02:00
Hugo Locurcio
3a79f98be7 Document CanvasItem's texture filtering and repeating modes
This makes the CanvasItem documentation 100% complete.
2020-05-15 14:49:43 +02:00
Hugo Locurcio
9e9410bd3d Document the Camera3D's effects property
This makes the Camera3D documentation 100% complete.
2020-05-15 14:38:26 +02:00
Marcel Admiraal
8f0b3392c3 Silence mulitple may be used uninitialized warnings in
RenderingDeviceVulkan::uniform_set_create()
2020-05-15 11:48:06 +01:00
bruvzg
4bec713b8c
macOS signing improvements: allow signed app exporting as ZIP, sign DMG after exporting. 2020-05-15 09:38:59 +03:00
Thakee Nathees
c076a2b7e9 break, continue outside of a loop, match statement handled 2020-05-15 03:16:50 +05:30
Rémi Verschelde
00949f0c5f
Merge pull request #38738 from akien-mga/cause-we-never-go-out-of-style
Style: Remove new line at block start, enforce line between functions, enforce braces in if and loop blocks
2020-05-14 23:09:03 +02:00
Rémi Verschelde
0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde
5046f666a1
Merge pull request #38610 from ThakeeNathees/infer-type-null-error
set parser error when infer type is null
2020-05-14 21:50:48 +02:00
Rémi Verschelde
07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde
0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde
710b34b702 Style: Fix missing/invalid copyright headers 2020-05-14 16:54:54 +02:00
Rémi Verschelde
963a27f8a2
Merge pull request #38611 from ThakeeNathees/shadow-var-warning-bug-fix
shadowed var warning in nested block bug fix
2020-05-14 16:48:56 +02:00
Marcel Admiraal
6c4c1bf53d Silence 'w' may be used uninitialized in image.cpp warning.
Rename `w` to the more meaningful `data_write`
2020-05-14 15:24:17 +01:00
Ignacio Roldán Etcheverry
27b4915fa8
Merge pull request #38718 from neikeq/fix-bindings-after-lightmapper
Fix C# bindings after lightmapper changes
2020-05-14 16:12:26 +02:00
Rémi Verschelde
15b25b739d
Merge pull request #38736 from akien-mga/modernize-all-the-things
C++: Apply some `modernize-*` checks from clang-tidy (nullptr, bool literals, void args)
2020-05-14 14:50:17 +02:00
Rémi Verschelde
a1aaed5a84 Remove redundant void argument lists
Using clang-tidy's `modernize-redundant-void-arg`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
2020-05-14 13:51:45 +02:00
Rémi Verschelde
dcd1151d77 Enforce use of bool literals instead of integers
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2020-05-14 13:45:01 +02:00
Rémi Verschelde
1a8167867b Modernize remaining uses of 0/NULL instead of nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2020-05-14 13:45:01 +02:00
Rémi Verschelde
5f5f53e8eb
Merge pull request #38697 from akien-mga/member-init-c++11
Port member default initialization from constructor to declaration (C++11)
2020-05-14 12:53:38 +02:00
Rémi Verschelde
1f6f364a56 Port member initialization from constructor to declaration (C++11)
Using `clang-tidy`'s `modernize-use-default-member-init` check and
manual review of the changes, and some extra manual changes that
`clang-tidy` failed to do.

Also went manually through all of `core` to find occurrences that
`clang-tidy` couldn't handle, especially all initializations done
in a constructor without using initializer lists.
2020-05-14 10:01:56 +02:00
Thakee Nathees
687b1941b4 set parser error when infer type is null 2020-05-13 22:12:23 +05:30