Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Correct superclass constructors in 3to4.
Fixes godotengine#70542. The 3to4 conversion tool was not handling superclass constructors. We should translate the godot3 syntax: ```gdscript func _init(a,b,c).(a,b,c): pass func _init(a,b,c): super(a,b,c) ``` Originally, the _init conversion was intended to remove `void` return types from _init functions, as this was disallowed due to godotengine#50589. As that was resolved by godotengine#53366, I removed that part of the conversion logic. If a void return type is present on a constructor, the converter now leaves it. Here's a sample diff from my own project: ```diff @@ -103,10 +105,11 @@ class Real: class Text: extends Setting - var choices: PoolStringArray - var value: String setget set_value, get_value + var choices: PackedStringArray + var value: String : get = get_value, set = set_value - func _init(section: String, key: String, default: String, choice_list: Array).(section, key, default) -> void: + func _init(section: String, key: String, default: String, choice_list: Array) -> void: + super(section, key, default) choices = choice_list func normalize(val): @@ -129,9 +132,10 @@ class Text: class Boolean: extends Setting - var value: bool setget set_value, get_value + var value: bool : get = get_value, set = set_value - func _init(section: String, key: String, default: bool).(section, key, default) -> void: + func _init(section: String, key: String, default: bool) -> void: + super(section, key, default) pass ```
- Loading branch information