summaryrefslogtreecommitdiff
path: root/src/lexer.rs
diff options
context:
space:
mode:
authorNanoTech2016-12-08 09:20:39 +0000
committerNanoTech2017-03-10 23:48:28 -0600
commit0b2d2ccee2023198d60b48154b9b211e47b782ec (patch)
tree2da08badda644c47cd6b93322a9aeb6e994c2527 /src/lexer.rs
parente72192c0c1825f36f054263437029d05d717c957 (diff)
Replace Cow<'i, str> with &'i str in Expr
Cow::Owned is never used in Expr
Diffstat (limited to '')
-rw-r--r--src/lexer.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/lexer.rs b/src/lexer.rs
index ca181ce..499f762 100644
--- a/src/lexer.rs
+++ b/src/lexer.rs
@@ -2,8 +2,6 @@ use nom;
use core::Const;
-use std::borrow::Cow;
-
#[derive(Debug, PartialEq, Eq)]
pub enum Keyword {
Let,
@@ -43,7 +41,7 @@ pub enum Builtin {
#[derive(Debug, PartialEq, Eq)]
pub enum Tok<'i> {
- Identifier(Cow<'i, str>),
+ Identifier(&'i str),
Keyword(Keyword),
Builtin(Builtin),
ListLike(ListLike),
@@ -260,7 +258,7 @@ named!(token<&str, Tok>, alt!(
map!(list_like, Tok::ListLike) |
map!(natural, Tok::Natural) |
map!(integer, Tok::Integer) |
- map!(identifier, |s| Tok::Identifier(Cow::Borrowed(s))) |
+ map!(identifier, Tok::Identifier) |
map!(string_lit, Tok::Text) |
value!(Tok::BraceL, tag!("{")) |
@@ -371,12 +369,12 @@ fn test_lex() {
let s = "λ(b : Bool) → b == False";
let expected = [Lambda,
ParenL,
- Identifier(Cow::Borrowed("b")),
+ Identifier("b"),
Ascription,
Builtin(self::Builtin::Bool),
ParenR,
Arrow,
- Identifier(Cow::Borrowed("b")),
+ Identifier("b"),
CompareEQ,
Bool(false)];
let lexer = Lexer::new(s);