Skip to content

Commit b44172b

Browse files
committed
Janitor: Remove BuiltinElement::reserved_properties
It was added when support for `font-metrics` was added, but there is no reason why this can't simply be in the `properties` hash.
1 parent 6da0f55 commit b44172b

File tree

3 files changed

+14
-22
lines changed

3 files changed

+14
-22
lines changed

internal/compiler/langtype.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -412,11 +412,7 @@ impl ElementType {
412412
} else {
413413
Cow::Borrowed(name)
414414
};
415-
match b
416-
.properties
417-
.get(resolved_name.as_ref())
418-
.or_else(|| b.reserved_properties.get(resolved_name.as_ref()))
419-
{
415+
match b.properties.get(resolved_name.as_ref()) {
420416
None => {
421417
if b.is_non_item_type {
422418
PropertyLookupResult {
@@ -483,12 +479,9 @@ impl ElementType {
483479
);
484480
r
485481
}
486-
Self::Builtin(b) => b
487-
.properties
488-
.iter()
489-
.chain(b.reserved_properties.iter())
490-
.map(|(k, t)| (k.clone(), t.ty.clone()))
491-
.collect(),
482+
Self::Builtin(b) => {
483+
b.properties.iter().map(|(k, t)| (k.clone(), t.ty.clone())).collect()
484+
}
492485
Self::Native(n) => {
493486
n.properties.iter().map(|(k, t)| (k.clone(), t.ty.clone())).collect()
494487
}
@@ -733,7 +726,6 @@ pub struct BuiltinElement {
733726
pub name: SmolStr,
734727
pub native_class: Rc<NativeClass>,
735728
pub properties: BTreeMap<SmolStr, BuiltinPropertyInfo>,
736-
pub reserved_properties: BTreeMap<SmolStr, BuiltinPropertyInfo>,
737729
pub additional_accepted_child_types: HashMap<SmolStr, ElementType>,
738730
pub disallow_global_types_as_child_elements: bool,
739731
/// Non-item type do not have reserved properties (x/width/rowspan/...) added to them (eg: PropertyAnimation)

internal/compiler/passes/materialize_fake_properties.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,14 @@ fn should_materialize(
9595
let has_declared_property = match base_type {
9696
ElementType::Component(c) => has_declared_property(&c.root_element.borrow(), prop),
9797
ElementType::Builtin(b) => {
98-
if let Some(info) = b.reserved_properties.get(prop) {
99-
return Some(info.ty.clone());
98+
if let Some(p) = b.properties.get(prop) {
99+
if b.native_class.lookup_property(prop).is_none() {
100+
return Some(p.ty.clone());
101+
}
102+
true
103+
} else {
104+
false
100105
}
101-
b.properties.contains_key(prop)
102106
}
103107
ElementType::Native(n) => {
104108
n.lookup_property(prop).map_or(false, |prop_type| prop_type.is_property_type())
@@ -140,9 +144,7 @@ fn has_declared_property(elem: &Element, prop: &str) -> bool {
140144
/// Initialize a sensible default binding for the now materialized property
141145
pub fn initialize(elem: &ElementRc, name: &str) -> Option<Expression> {
142146
if let ElementType::Builtin(b) = &elem.borrow().base_type {
143-
if let Some(expr) =
144-
b.reserved_properties.get(name).and_then(|prop| prop.default_value.expr(elem))
145-
{
147+
if let Some(expr) = b.properties.get(name).and_then(|prop| prop.default_value.expr(elem)) {
146148
return Some(expr);
147149
}
148150
}

internal/compiler/typeregister.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,9 +491,7 @@ impl TypeRegister {
491491
text_input
492492
.member_functions
493493
.insert("set-selection-offsets".into(), BuiltinFunction::SetSelectionOffsets);
494-
text_input
495-
.reserved_properties
496-
.insert("font-metrics".into(), font_metrics_prop.clone());
494+
text_input.properties.insert("font-metrics".into(), font_metrics_prop.clone());
497495
}
498496

499497
_ => unreachable!(),
@@ -502,7 +500,7 @@ impl TypeRegister {
502500
match &mut register.elements.get_mut("Text").unwrap() {
503501
ElementType::Builtin(ref mut b) => {
504502
let text = Rc::get_mut(b).unwrap();
505-
text.reserved_properties.insert("font-metrics".into(), font_metrics_prop);
503+
text.properties.insert("font-metrics".into(), font_metrics_prop);
506504
}
507505

508506
_ => unreachable!(),

0 commit comments

Comments
 (0)