Class inheritance method override does not work in 4.8 beta 1
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Start with the reproduction in addons/test/cTest.h and main.gd, then compile it with addons/test/compite_debug.sh using Godot 4.8 beta and the listed godot-cpp commits. Compare the inherited test method behavior with versions before 4.8; done when b.test(im) accepts the Image argument while a.test(ba) still works.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Godot version
4.8.beta1
godot-cpp version
1b089f20a959e67e79e32e352a57065b3058dbfd
System information
Ubuntu 24.04
Issue description
We have two classes, see reproduction project (addons/test/cTest.h):
class cTestA : public RefCounted {
GDCLASS(cTestA, RefCounted)
public:
cTestA(){}
~cTestA(){}
void test(PackedByteArray byte_array){
UtilityFunctions::print("cTestA: test function call: PackedByteArray");
}
protected:
static void _bind_methods(){
ClassDB::bind_method(D_METHOD("test", "byte_array"), &cTestA::test);
};
};
class cTestB : public cTestA {
GDCLASS(cTestB, cTestA)
public:
cTestB(){}
~cTestB(){}
void test(Ref<Image> image){
UtilityFunctions::print("cTestB: test function call: Ref<Image>");
}
protected:
static void _bind_methods(){
ClassDB::bind_method(D_METHOD("test", "image2d"), &cTestB::test);
};
};
But in GDScript (main.gd):
func _ready() -> void:
var a := cTestA.new()
var b := cTestB.new()
var ba := PackedByteArray([0,0,0])
var im := Image.create_empty(128, 128, false, Image.FORMAT_RF)
a.test(ba)
b.test(im)
I get an error: "Error at (8, 12): Invalid argument for "test()" function: argument 1 should be "PackedByteArray" but is "Image"."
This problem did not exist in any version <4.8.
Tested with:
- godot-cpp commit 1b089f20a959e67e79e32e352a57065b3058dbfd
- godot-cpp commit 507ed9d840c01a3c5b2a39af8bb4000bfac30bf5
Steps to reproduce
See reproduction project. Compile script: addons/test/compite_debug.sh
To compile:
cd addons/test
git clone [email protected]:godotengine/godot-cpp.git
chmod +x compite_debug.sh
./compite_debug.sh
then open this project in Godot 4.8 beta.
Minimal reproduction project
- Lenguaje dominante
- C++
- Estrellas
- 2.8k
- Forks
- 825
- Merge medio
- 3 d 23 h
- PR fusionados (30 d)
- 19
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de godotengine/godot-cpp
-
Building gdextensions with lto=full warns about serial compilatonPosiblemente ocupada @marcozee03 la tomó hace 60 días. Abiertoenhancement topic:buildsystem
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
godotengine/godot-cpp#2002 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
godotengine/godot-cpp#1969 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
TypedDictionary doesn't support Vector4(i)Posiblemente ocupada @AddisionS la tomó hace 5 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
godotengine/godot-cpp#1967 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
enhancement topic:buildsystem tracker
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
godotengine/godot-cpp#2064 · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
godotengine/godot-cpp#2059 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de godotengine/godot-cpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
eclipse-score/lifecycle#929 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
colbymchenry/codegraph#3223 ·
Los mantenedores suelen responder en 1 día