From 6f7f11719de77cfea968a1431c06efb7feb8cf05 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 10 May 2026 17:18:53 +0200 Subject: [PATCH] Impl for --- mist-test/src/logger.mist | 12 ++++++------ parser/src/lib.rs | 9 +++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/mist-test/src/logger.mist b/mist-test/src/logger.mist index 2b567eb..65dbe78 100644 --- a/mist-test/src/logger.mist +++ b/mist-test/src/logger.mist @@ -10,15 +10,15 @@ impl fmt::Display for LogLevel { std::fmt::Result fmt(self*, std::fmt::Formatter<'_> mut* f) { match (self) { LogLevel::Info => { - write!(f, "[INFO]"); + return write!(f, "[INFO]"); } LogLevel::Warning => { - write!(f, "[WARN]"); + return write!(f, "[WARN]"); } LogLevel::Error => { - write!(f, "[ERROR]"); + return write!(f, "[ERROR]"); } } } @@ -46,15 +46,15 @@ public class Logger { void log(self*, LogLevel level, str* message) { match(level) { LogLevel::Info => { - println!("[INFO] {} {}", self.prefix, message); + println!("{level} {} {}", self.prefix, message); } LogLevel::Warning => { - println!("[WARN] {} {}", self.prefix, message); + println!("{level} {} {}", self.prefix, message); } LogLevel::Error => { - println!("[ERROR] {} {}", self.prefix, message); + println!("{level} {} {}", self.prefix, message); } } } diff --git a/parser/src/lib.rs b/parser/src/lib.rs index eb8e90c..7756176 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -303,6 +303,15 @@ impl From> for TopLevelKind { Rule::mod_package => TopLevelKind::Mod(Identifier::from(inner.next().unwrap())), + Rule::impl_for_decl => TopLevelKind::ImplDecl(ImplDecl { + generics: consume_rule(&mut inner, Rule::generics) + .map(Generics::from) + .unwrap_or_default(), + trait_: Some(TypeExpr::from(inner.next().unwrap())), + target: TypeExpr::from(inner.next().unwrap()), + methods: inner.map(FunctionDecl::from).collect(), + }), + _ => unimplemented!("{rule:#?}"), } }