Give compile-time error if registering a class without its own _bind_methods()
function
#1448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It's already a compile-time error if you make a class without a
_bind_methods()
that descends from a native class (likeNode
,Control
, etc).But as pointed out on issue #1430, if you make a class that descends from another extension class, there won't be a compile-time error because the parent class's
_bind_methods()
will get picked up, and some things won't work correctly (ex virtual method registration, like_ready()
, as mentioned in the issue).This PR attempts to make it a compile-time error if the class doesn't have its own
_bind_methods()
, ignoring any_bind_methods()
inherited from its parent class.This seems to work in my testing on GCC!
Fixes #1430