This isn’t a question of pedantic, it’s invalid code, you should return a value or not
Return null or something else in the rest of the cases, but this code doesn’t make any sense if you return something in some cases and not in others, what do you use the value for?
Im just testing godot 4.7… in godot 4.6 and 4.5 all the addons were working correctly.
Unfortunately a lot of addons have functions that do not declare a return type and functions that dont return a default value. These are breaking in 4.7 I dont want to modify them all because theres a risk of unintended behavior.
Even ‘set()’ functions that dont have a return type seem to cause the error message. The message says they should return bool, so perhaps thats the default?
I have moved the game back to 4.6 for now. I did start doing trivial corrections then i realized there might be more problems ahead, so i undid everything.
Never swap the engine version in the middle of the project development, especially not to a non-stable version. Unless, of course, there’s a feature you absolutely cannot live without
I wouldn’t say never. Depends on where you are at the project and what the changes are with the new version and how good you are with debugging things. Aside from new features, a new versions usually gives more stability and a later date for end of support.
It’s impossible to predict the ways the changes could break the project, even if you have the complete list of all the changes and in-depth understanding of them. Some of the breakage might not even manifest immediately. If the version was good enough for the project yesterday, it should be good enough tomorrow. Why risk the introduction of unknow number of potentially sneaky bugs.
Of course, for small throwaway projects it doesn’t really matter. The more serious the project, the more conservative should the engine upgrading strategy be. As the saying goes; if it ain’t broke, don’t fix it.
I have multiple applications for the paintable texture in 4.7, this could change the workflow and potentially save some memory compared to baked textures.
That’s an implementation of a virtual function _get(). The return type is already declared to be Variant by the engine. This actually might be the difference in 4.7