diff options
author | Ryan Roden-Corrent <ryan@rcorre.net> | 2023-03-03 18:31:40 -0500 |
---|---|---|
committer | Ryan Roden-Corrent <ryan@rcorre.net> | 2023-03-04 08:03:24 -0500 |
commit | 53a00abb11cbbdceba7f7d027e7455854bfef01e (patch) | |
tree | d9dbdd1ab3f732d3e1a23a9273190b012c064b1d /modules/mono/csharp_script.cpp | |
parent | 61d2c855114c824f5ca27ded0a1fa71cc7b21134 (diff) | |
download | redot-engine-53a00abb11cbbdceba7f7d027e7455854bfef01e.tar.gz |
Correct superclass constructors in 3to4.
Fixes #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 #50589.
As that was resolved by #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
```
Diffstat (limited to 'modules/mono/csharp_script.cpp')
0 files changed, 0 insertions, 0 deletions