use crate::codegen::naming::{dart_tuple_field_identifier, dart_type_identifier, dart_value_identifier};
#[allow(dead_code)]
pub(crate) fn dart_safe_type_name(name: &str, parent: Option<&str>) -> String {
dart_type_identifier(name, parent)
}
pub(crate) fn dart_safe_ident(name: &str) -> String {
dart_value_identifier(name)
}
#[allow(dead_code)]
pub(crate) fn dart_safe_tuple_field(name: &str) -> String {
dart_tuple_field_identifier(name)
}
#[cfg(test)]
mod tests {
use super::dart_safe_ident;
#[test]
fn reserved_keyword_default_gets_trailing_underscore() {
assert_eq!(dart_safe_ident("default"), "default_");
}
#[test]
fn reserved_keyword_final_gets_trailing_underscore() {
assert_eq!(dart_safe_ident("final"), "final_");
}
#[test]
fn reserved_keyword_class_gets_trailing_underscore() {
assert_eq!(dart_safe_ident("class"), "class_");
}
#[test]
fn reserved_keyword_return_gets_trailing_underscore() {
assert_eq!(dart_safe_ident("return"), "return_");
}
#[test]
fn reserved_keyword_required_gets_trailing_underscore() {
assert_eq!(dart_safe_ident("required"), "required_");
}
#[test]
fn numeric_ident_zero_gets_field_prefix() {
assert_eq!(dart_safe_ident("0"), "field0");
}
#[test]
fn numeric_ident_one_gets_field_prefix() {
assert_eq!(dart_safe_ident("1"), "field1");
}
#[test]
fn normal_ident_passes_through_unchanged() {
assert_eq!(dart_safe_ident("radius"), "radius");
assert_eq!(dart_safe_ident("xCoord"), "xCoord");
assert_eq!(dart_safe_ident("field0"), "field0");
}
}