forked from M-Labs/nac3
1
0
Fork 0

allows function ending with a number

This commit is contained in:
pca006132 2021-09-22 14:45:42 +08:00
parent 1c170f5c41
commit 4fe643f45b
3 changed files with 2 additions and 11 deletions

View File

@ -150,7 +150,7 @@ impl<'ctx, 'a> CodeGenContext<'ctx, 'a> {
} = &mut *definition.write() } = &mut *definition.write()
{ {
instance_to_symbol.get(&key).cloned().unwrap_or_else(|| { instance_to_symbol.get(&key).cloned().unwrap_or_else(|| {
let symbol = format!("{}_{}", name, instance_to_symbol.len()); let symbol = format!("{}.{}", name, instance_to_symbol.len());
instance_to_symbol.insert(key, symbol.clone()); instance_to_symbol.insert(key, symbol.clone());
let key = self.get_subst_key(obj.map(|a| a.0), fun.0, Some(var_id)); let key = self.get_subst_key(obj.map(|a| a.0), fun.0, Some(var_id));
let instance = instance_to_stmt.get(&key).unwrap(); let instance = instance_to_stmt.get(&key).unwrap();

View File

@ -183,12 +183,6 @@ impl TopLevelComposer {
if self.keyword_list.contains(method_name) { if self.keyword_list.contains(method_name) {
return Err("cannot use keyword as a method name".into()); return Err("cannot use keyword as a method name".into());
} }
if method_name.ends_with(|x: char| x.is_ascii_digit()) {
return Err(format!(
"function name `{}` must not end with numbers",
method_name
));
}
let global_class_method_name = { let global_class_method_name = {
let mut n = mod_path.clone(); let mut n = mod_path.clone();
n.push_str( n.push_str(
@ -253,9 +247,6 @@ impl TopLevelComposer {
if self.keyword_list.contains(name) { if self.keyword_list.contains(name) {
return Err("cannot use keyword as a top level function name".into()); return Err("cannot use keyword as a top level function name".into());
} }
if name.ends_with(|x: char| x.is_ascii_digit()) {
return Err(format!("function name `{}` must not end with numbers", name));
}
let fun_name = name.to_string(); let fun_name = name.to_string();
let global_fun_name = { let global_fun_name = {
let mut n = mod_path; let mut n = mod_path;

View File

@ -57,7 +57,7 @@ pub enum TopLevelDef {
constructor: Option<Type>, constructor: Option<Type>,
}, },
Function { Function {
// prefix for symbol, should be unique globally, and not ending with numbers // prefix for symbol, should be unique globally
name: String, name: String,
// simple name, the same as in method/function definition // simple name, the same as in method/function definition
simple_name: String, simple_name: String,