oxilean_codegen/scala_backend/
scalamethod_traits.rs1use crate::lcnf::*;
12
13use super::types::ScalaMethod;
14use std::fmt;
15
16impl fmt::Display for ScalaMethod {
17 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18 for m in &self.modifiers {
19 write!(f, "{} ", m)?;
20 }
21 write!(f, "def {}", self.name)?;
22 if !self.type_params.is_empty() {
23 write!(f, "[")?;
24 for (i, tp) in self.type_params.iter().enumerate() {
25 if i > 0 {
26 write!(f, ", ")?;
27 }
28 write!(f, "{}", tp)?;
29 }
30 write!(f, "]")?;
31 }
32 for param_list in &self.params {
33 write!(f, "(")?;
34 for (i, p) in param_list.iter().enumerate() {
35 if i > 0 {
36 write!(f, ", ")?;
37 }
38 write!(f, "{}", p)?;
39 }
40 write!(f, ")")?;
41 }
42 write!(f, ": {}", self.return_type)?;
43 if let Some(body) = &self.body {
44 write!(f, " = {}", body)?;
45 }
46 Ok(())
47 }
48}