mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-28 04:09:05 +00:00
feat: support symbolized operators
This commit is contained in:
parent
64874f4169
commit
21cb0bb4c1
5 changed files with 187 additions and 147 deletions
|
@ -837,6 +837,8 @@ impl_locational_for_enum!(ClassAttr; Def, Decl, Doc);
|
|||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct ClassAttrs(Vec<ClassAttr>);
|
||||
|
||||
impl_stream!(ClassAttrs, ClassAttr);
|
||||
|
||||
impl NestedDisplay for ClassAttrs {
|
||||
fn fmt_nest(&self, f: &mut fmt::Formatter<'_>, level: usize) -> fmt::Result {
|
||||
fmt_lines(self.0.iter(), f, level)?;
|
||||
|
@ -856,28 +858,6 @@ impl From<Vec<ClassAttr>> for ClassAttrs {
|
|||
}
|
||||
}
|
||||
|
||||
impl ClassAttrs {
|
||||
pub const fn new(attrs: Vec<ClassAttr>) -> Self {
|
||||
Self(attrs)
|
||||
}
|
||||
|
||||
pub fn iter(&self) -> impl Iterator<Item = &ClassAttr> {
|
||||
self.0.iter()
|
||||
}
|
||||
|
||||
pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut ClassAttr> {
|
||||
self.0.iter_mut()
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoIterator for ClassAttrs {
|
||||
type Item = ClassAttr;
|
||||
type IntoIter = <Vec<ClassAttr> as IntoIterator>::IntoIter;
|
||||
fn into_iter(self) -> Self::IntoIter {
|
||||
self.0.into_iter()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct RecordAttrs(Vec<Def>);
|
||||
|
||||
|
@ -3135,6 +3115,10 @@ impl VarName {
|
|||
pub fn trim_end_proc_mark(&mut self) {
|
||||
self.0.content = Str::rc(self.0.content.trim_end_matches('!'));
|
||||
}
|
||||
|
||||
pub fn rename(&mut self, new: Str) {
|
||||
self.0.content = new;
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue