Skip to content

Commit a4d7c25

Browse files
committed
v0.8.28
1 parent 630b1a0 commit a4d7c25

File tree

4 files changed

+28
-26
lines changed

4 files changed

+28
-26
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,4 @@ keywords = ["schema", "interpreter", "async", "validation", "embedded"]
126126
license = "Apache-2.0"
127127
name = "stof"
128128
repository = "https://github.com/dev-formata-io/stof"
129-
version = "0.8.27"
129+
version = "0.8.28"

project.stof

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ github: {
213213
/// Generate Cargo.toml file.
214214
/// `stof run project.stof -a cargo`
215215
async fn generate_cargo_toml() {
216-
const out = await Rust.Cargo.generate(self.cargo, 0.8.27, update = false);
216+
const out = await Rust.Cargo.generate(self.cargo, 0.8.28, update = false);
217217
fs.write('Cargo.toml', out);
218218
pln('Cargo .. ok');
219219
}

src/model/components/field.rs

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -170,43 +170,45 @@ impl Field {
170170
}
171171
}
172172

173-
// Look for a parent with the field name (that is also a field)
174-
let mut gp = None;
175-
if let Some(parent) = &node.parent {
176-
if let Some(parent) = parent.node(&graph) {
177-
if (parent.name.as_ref() == field_name || field_name == SUPER_KEYWORD.as_ref()) && parent.is_field() {
178-
if let Some(grand) = &parent.parent {
179-
if grand.node_exists(&graph) {
180-
gp = Some((grand.clone(), parent.name.clone()));
173+
if created.is_none() {
174+
// Look for a parent with the field name (that is also a field)
175+
let mut gp = None;
176+
if let Some(parent) = &node.parent {
177+
if let Some(parent) = parent.node(&graph) {
178+
if (parent.name.as_ref() == field_name || field_name == SUPER_KEYWORD.as_ref()) && parent.is_field() {
179+
if let Some(grand) = &parent.parent {
180+
if grand.node_exists(&graph) {
181+
gp = Some((grand.clone(), parent.name.clone()));
182+
}
181183
}
182184
}
183185
}
184186
}
185-
}
186-
if let Some((gp, field_name)) = gp {
187-
return Self::field(graph, &gp, field_name.as_ref());
188-
}
187+
if let Some((gp, field_name)) = gp {
188+
return Self::field(graph, &gp, field_name.as_ref());
189+
}
189190

190-
// Is this node the thing?
191-
if (node.name.as_ref() == field_name || field_name == SELF_KEYWORD.as_ref()) && node.is_field() {
192-
if let Some(parent) = &node.parent {
193-
if parent.node_exists(graph) {
194-
self_parent = Some(parent.clone());
195-
self_name = Some(node.name.clone());
191+
// Is this node the thing?
192+
if (node.name.as_ref() == field_name || field_name == SELF_KEYWORD.as_ref()) && node.is_field() {
193+
if let Some(parent) = &node.parent {
194+
if parent.node_exists(graph) {
195+
self_parent = Some(parent.clone());
196+
self_name = Some(node.name.clone());
197+
}
196198
}
197199
}
198200
}
199201
}
200-
if let Some(parent) = self_parent {
201-
if let Some(name) = self_name {
202-
return Self::field(graph, &parent, name.as_ref());
203-
}
204-
}
205202
if let Some(field) = created {
206203
if let Some(dref) = graph.insert_stof_data(node, field_name, Box::new(field), None) {
207204
return Some(dref);
208205
}
209206
}
207+
if let Some(parent) = self_parent {
208+
if let Some(name) = self_name {
209+
return Self::field(graph, &parent, name.as_ref());
210+
}
211+
}
210212
None
211213
}
212214

0 commit comments

Comments
 (0)