aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ast.rs8
-rw-r--r--src/builtins.rs4
-rw-r--r--src/runtime.rs4
-rw-r--r--src/test.rs30
4 files changed, 23 insertions, 23 deletions
diff --git a/src/ast.rs b/src/ast.rs
index 4ecd705..d1450c1 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -43,7 +43,7 @@ impl Statement {
while let Some(p) = inner.next() {
match p.as_rule() {
- Rule::symbol => parameters.push(String::from(p.as_span().as_str())),
+ Rule::symbol => parameters.push(p.as_span().as_str().to_owned()),
Rule::expression => {
let expression_inners: Vec<ExpressionInner> =
p.into_inner().map(ExpressionInner::from_pair).collect();
@@ -60,7 +60,7 @@ impl Statement {
expression_opt.expect("[ast] no expression found as child of definition");
Statement::Definition {
- symbol: String::from(symbol),
+ symbol: symbol.to_owned(),
parameters: parameters,
expression: expression,
}
@@ -99,7 +99,7 @@ impl ExpressionInner {
chars.next();
chars.next_back();
let s = chars.as_str();
- ExpressionInner::StringLiteral(String::from(s))
+ ExpressionInner::StringLiteral(s.to_owned())
}
Rule::expression => {
let expression_inners: Vec<ExpressionInner> =
@@ -145,7 +145,7 @@ fn integer_from_pair(pair: pest::iterators::Pair<Rule>) -> i64 {
pub type StringLiteral = String;
fn string_from_pair(pair: pest::iterators::Pair<Rule>) -> String {
- String::from(pair.as_span().as_str())
+ pair.as_span().as_str().to_owned()
}
pub type Symbol = String;
diff --git a/src/builtins.rs b/src/builtins.rs
index 3063d10..d0f5788 100644
--- a/src/builtins.rs
+++ b/src/builtins.rs
@@ -151,8 +151,8 @@ pub fn evaluate_builtin(builtin: &Builtin, rhs: Rc<Term>) -> Result<(Rc<Term>, u
_ => return Ok((Rc::new(Term::Builtin(builtin.clone())), 0)),
},
B_BOOL_TO_STRING => {
- let true_str_rc = Rc::new(Term::Primitive(Value::String(String::from("true"))));
- let false_str_rc = Rc::new(Term::Primitive(Value::String(String::from("false"))));
+ let true_str_rc = Rc::new(Term::Primitive(Value::String("true".to_owned())));
+ let false_str_rc = Rc::new(Term::Primitive(Value::String("false".to_owned())));
let inner = Rc::new(Term::Application(rhs, true_str_rc));
Term::Application(inner, false_str_rc)
}
diff --git a/src/runtime.rs b/src/runtime.rs
index 0dc4789..9e903cd 100644
--- a/src/runtime.rs
+++ b/src/runtime.rs
@@ -71,7 +71,7 @@ pub fn advance_v() -> usize {
fn _bound_variable_opt_to_string(bound_variable_opt: &Option<(usize, Rc<Term>)>) -> String {
match bound_variable_opt {
Some((v, term_rc)) => format!("({}, {})", v, term_rc),
- None => String::from("None"),
+ None => "None".to_owned(),
}
}
@@ -202,7 +202,7 @@ pub fn repeatedly_reduce_term(
loop {
i += 1;
if i >= MAX_REDUCTION_ITERATIONS {
- return Err(String::from("MAX_REDUCTION_ITERATIONS reached"));
+ return Err("MAX_REDUCTION_ITERATIONS reached".to_owned());
}
let (result_term, substitution_n) = reduce_term(
diff --git a/src/test.rs b/src/test.rs
index 0600798..728e2e5 100644
--- a/src/test.rs
+++ b/src/test.rs
@@ -43,7 +43,7 @@ fn reduce_integer_primitive() -> Result<(), String> {
#[serial]
fn reduce_string_primitive() -> Result<(), String> {
initialize_before_test();
- let term = Term::Primitive(Value::String(String::from("foobar")));
+ let term = Term::Primitive(Value::String("foobar".to_owned()));
let (result_term, _) = reduce_term(&HashMap::new(), Rc::new(term.clone()), &None, false)?;
assert_eq!(*result_term, term);
Ok(())
@@ -56,7 +56,7 @@ fn reduce_id_call() -> Result<(), String> {
let source = "
id 1;
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 1);
let term = &terms[0];
@@ -74,7 +74,7 @@ fn reduce_id_call_negative() -> Result<(), String> {
let source = "
id 1;
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 1);
let term = &terms[0];
@@ -92,7 +92,7 @@ fn define_parameterized_func() -> Result<(), String> {
let source = "
f a b = b a;
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 0);
let term = symbol_table.get("f").ok_or("f not in symbol table")?;
@@ -133,10 +133,10 @@ fn reduce_parameterized_func() -> Result<(), String> {
));
let mut initial_symbol_table: HashMap<String, Rc<Term>> = HashMap::new();
- initial_symbol_table.insert(String::from("f"), Rc::clone(&predefined_f));
+ initial_symbol_table.insert("f".to_owned(), Rc::clone(&predefined_f));
let (terms, symbol_table) =
- evaluate_from_source(String::from(source), Some(initial_symbol_table))?;
+ evaluate_from_source(source.to_owned(), Some(initial_symbol_table))?;
assert_eq!(terms.len(), 1);
let term = &terms[0];
@@ -157,7 +157,7 @@ fn reduce_builtin_int_add() -> Result<(), String> {
int.add 10 20;
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 3);
let term1 = &terms[0];
let term2 = &terms[1];
@@ -209,14 +209,14 @@ fn reduce_builtin_int_eq() -> Result<(), String> {
\"false\";
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 2);
let term1 = &terms[0];
let term2 = &terms[1];
// First expression
let (result_term1, _) = repeatedly_reduce_term(&symbol_table, Rc::clone(term1), &None, false)?;
- let expected1_string = Value::String(String::from("false"));
+ let expected1_string = Value::String("false".to_owned());
let result_builtin1 = match &*result_term1 {
Term::Primitive(p) => p,
_ => return Err(format!("{} is not a primitive", result_term1)),
@@ -226,7 +226,7 @@ fn reduce_builtin_int_eq() -> Result<(), String> {
// Second expression
let (result_term2, _) = repeatedly_reduce_term(&symbol_table, Rc::clone(term2), &None, false)?;
- let expected2_string = Value::String(String::from("true"));
+ let expected2_string = Value::String("true".to_owned());
let result_builtin2 = match &*result_term2 {
Term::Primitive(p) => p,
_ => return Err(format!("{} is not a primitive", result_term2)),
@@ -250,14 +250,14 @@ fn reduce_builtin_str_eq() -> Result<(), String> {
\"false\";
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 2);
let term1 = &terms[0];
let term2 = &terms[1];
// First expression
let (result_term1, _) = repeatedly_reduce_term(&symbol_table, Rc::clone(term1), &None, false)?;
- let expected1_string = Value::String(String::from("false"));
+ let expected1_string = Value::String("false".to_owned());
let result_builtin1 = match &*result_term1 {
Term::Primitive(p) => p,
_ => return Err(format!("{} is not a primitive", result_term1)),
@@ -267,7 +267,7 @@ fn reduce_builtin_str_eq() -> Result<(), String> {
// Second expression
let (result_term2, _) = repeatedly_reduce_term(&symbol_table, Rc::clone(term2), &None, false)?;
- let expected2_string = Value::String(String::from("true"));
+ let expected2_string = Value::String("true".to_owned());
let result_builtin2 = match &*result_term2 {
Term::Primitive(p) => p,
_ => return Err(format!("{} is not a primitive", result_term2)),
@@ -288,7 +288,7 @@ fn reduce_nontrivial_terminates1() -> Result<(), String> {
true);
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 1);
let term1 = &terms[0];
@@ -310,7 +310,7 @@ fn reduce_nontrivial_terminates2() -> Result<(), String> {
string.eq? result \"true\";
";
- let (terms, symbol_table) = evaluate_from_source(String::from(source), None)?;
+ let (terms, symbol_table) = evaluate_from_source(source.to_owned(), None)?;
assert_eq!(terms.len(), 1);
let term1 = &terms[0];