#715 closed defect (fixed)
Falso mensaje de advertencia de ocultación de métodos
Reported by: | Víctor de Buen Remiro | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | OOP Implementation |
Component: | OOP | Version: | 2.0.1 |
Severity: | trivial | Keywords: | |
Cc: | Javier Portugal |
Description
Cuando se crea una instancia de clase o un NameBlock dentro de un método de otra instancia o NameBlock que contiene algun método en común con la primera, entonces salta un mensaje de advertencia de ocultación de métodos que no tiene ningún sentido.
Por ejemplo, el siguiente código TOL
Class ClaseA { Text _.name; Text GetName(Real unused) { _.name } }; Class ClaseB { Text _.name; Text GetName(Real unused) { _.name }; ClaseA GetClaseA(Text sufix) { Text name = GetName(0)+"."+sufix; ClaseA a = [[Text _.name = name]] } }; ClaseB b = [[ Text _.name = "b" ]]; ClaseA _.a = b::GetClaseA("a");
genera el mensaje
Warning: [1] La función global Text GetName oculta el miembro de NameBlock publicado b::GetName
Y resulta completamente falso pues realmente no hay ninguna ocultación de ningún tipo sino un cambio de ámbito perfectamente posible, en el cual a::GetName sustituye a b::GetName con todo el derecho del mundo.
(In [1184]) Fixes #715