@@ -110,8 +110,7 @@ fn declared_properties(root: &ElementRc) -> Vec<DeclaredProperty> {
110110 . filter ( |( _, decl) | decl. node . is_some ( ) )
111111 . map ( |( name, decl) | {
112112 let init = root_borrowed
113- . bindings
114- . get ( name)
113+ . binding_cell_including_synthetic ( name)
115114 . map ( |b| compile_expression ( & b. borrow ( ) . expression , root) )
116115 . unwrap_or_else ( || default_value ( & decl. property_type ) ) ;
117116 let snake = name. replace ( '-' , "_" ) ;
@@ -202,8 +201,10 @@ fn emit_element(elem: &ElementRc, root: &ElementRc) -> TokenStream {
202201 let h = resolve ( geometry. as_ref ( ) . map ( |g| & g. height ) ) . expect ( "element without a height" ) ;
203202 let x = resolve ( geometry. as_ref ( ) . map ( |g| & g. x ) ) . unwrap_or_else ( || quote ! ( 0i32 ) ) ;
204203 let y = resolve ( geometry. as_ref ( ) . map ( |g| & g. y ) ) . unwrap_or_else ( || quote ! ( 0i32 ) ) ;
205- let background =
206- elem. borrow ( ) . bindings . get ( "background" ) . map ( |b| b. borrow ( ) . expression . clone ( ) ) ;
204+ let background = elem
205+ . borrow ( )
206+ . binding_cell_including_synthetic ( "background" )
207+ . map ( |b| b. borrow ( ) . expression . clone ( ) ) ;
207208 let mut color = background. map ( |expr| compile_expression ( & expr, root) ) ;
208209 if std:: rc:: Rc :: ptr_eq ( elem, root) {
209210 // The window background defaults to black, so that the whole frame
@@ -237,7 +238,10 @@ fn emit_element(elem: &ElementRc, root: &ElementRc) -> TokenStream {
237238/// size for the root's unbound width and height.
238239fn compile_property_reference ( nr : & NamedReference , root : & ElementRc ) -> Option < TokenStream > {
239240 let element = nr. element ( ) ;
240- let binding = element. borrow ( ) . bindings . get ( nr. name ( ) ) . map ( |b| b. borrow ( ) . expression . clone ( ) ) ;
241+ let binding = element
242+ . borrow ( )
243+ . binding_cell_including_synthetic ( nr. name ( ) )
244+ . map ( |b| b. borrow ( ) . expression . clone ( ) ) ;
241245 match binding {
242246 Some ( expr) => Some ( compile_expression ( & expr, root) ) ,
243247 None if std:: rc:: Rc :: ptr_eq ( & element, root) => match nr. name ( ) . as_str ( ) {
0 commit comments