fix(codegen): hacky fix for colliding enum names
This commit is contained in:
parent
14e6e81278
commit
40913bc89b
|
@ -429,6 +429,24 @@ impl Enum {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let shared: Vec<_> = result
|
||||||
|
.variants
|
||||||
|
.iter_mut()
|
||||||
|
.filter(|v| v.name == "Variant")
|
||||||
|
.collect();
|
||||||
|
if shared.len() >= 2 {
|
||||||
|
for (idx, variant) in shared.into_iter().enumerate() {
|
||||||
|
let label = idx + 1;
|
||||||
|
variant.name = format!("Variant{}", label);
|
||||||
|
if let EnumVariantValue::Tuple(values) = &mut variant.value {
|
||||||
|
if let [EnumVariantTupleValue::Enum { name, inner, .. }] = values.as_mut_slice()
|
||||||
|
{
|
||||||
|
inner.name.push_str(&label.to_string());
|
||||||
|
name.push_str(&label.to_string());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Some(result)
|
Some(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue