✨ (theme): Evita referencias cíclicas de parent()
Como `Theme::parent()` se resuelve en tiempo de ejecución, una referencia cíclica (en la que un tema acaba siendo padre de sí mismo, directa o transitivamente) no puede descartarse en compilación. Se detecta al registrar el tema y aborta el arranque si procede.
This commit is contained in:
parent
825283caa3
commit
8cb5e035dc
3 changed files with 40 additions and 0 deletions
|
|
@ -56,6 +56,11 @@ pub trait Theme: Extension + Send + Sync {
|
|||
/// no los sobrescribe.
|
||||
///
|
||||
/// La implementación por defecto devuelve `None` (tema sin padre).
|
||||
///
|
||||
/// Una referencia circular (un tema acaba siendo padre de sí mismo, directa o transitivamente)
|
||||
/// no puede descartarse en tiempo de compilación. PageTop la detecta al registrar el tema y
|
||||
/// aborta el arranque de la aplicación si encuentra una, para evitar bucles infinitos o
|
||||
/// desbordamientos de pila al usar el tema.
|
||||
fn parent(&self) -> Option<ThemeRef> {
|
||||
None
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue