Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactoring #4

Open
wants to merge 76 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
f95c256
refactoring
adamnemecek Dec 22, 2023
0b8c521
cargo fmt
adamnemecek Dec 22, 2023
3e7e2c6
stuff
adamnemecek Dec 22, 2023
1eede12
refactoring
adamnemecek Dec 22, 2023
2c33072
refactored repeated variable names in construcotrs
adamnemecek Dec 22, 2023
02c5a83
refactoring
adamnemecek Dec 22, 2023
2dde223
use Self
adamnemecek Dec 22, 2023
767aa3e
refactoring
adamnemecek Dec 22, 2023
0ad80bd
use Self
adamnemecek Dec 22, 2023
9384ee7
use self
adamnemecek Dec 22, 2023
f596e1b
rust fmt, group imports
adamnemecek Dec 22, 2023
4d41415
From<&str> for Name
adamnemecek Dec 22, 2023
5331b38
From<&str> for Name
adamnemecek Dec 22, 2023
5d80935
cargo fmt
adamnemecek Dec 22, 2023
20f8f1d
nitpicks
adamnemecek Dec 22, 2023
9452784
refcatoring of module parsing
adamnemecek Dec 22, 2023
5302f94
Location::eof
adamnemecek Dec 22, 2023
88bba9a
refactoring
adamnemecek Dec 22, 2023
3e2289e
refactoring
adamnemecek Dec 22, 2023
b8358e3
refactoring
adamnemecek Dec 22, 2023
efa6ae1
refactoring
adamnemecek Dec 22, 2023
8eb9d0d
refactoring
adamnemecek Dec 22, 2023
d6c960a
len() == 0 -> is_empty()
adamnemecek Dec 22, 2023
309af5c
cleanup
adamnemecek Dec 22, 2023
ceb7a79
nitpicks
adamnemecek Dec 22, 2023
0382cb5
refactoring
adamnemecek Dec 22, 2023
6bf60bb
intern("a") -> "a".into()
adamnemecek Dec 22, 2023
764851e
refactoring
adamnemecek Dec 22, 2023
1120197
refactoring
adamnemecek Dec 22, 2023
f6643cb
refactoring
adamnemecek Dec 22, 2023
d90f54c
refactoring
adamnemecek Dec 22, 2023
17cc666
removed unneeded dereferencing
adamnemecek Dec 22, 2023
21b0944
cargo fmt
adamnemecek Dec 22, 2023
cc787b1
refactoring
adamnemecek Dec 22, 2023
d5c4afc
refactoring
adamnemecek Dec 22, 2023
28031c6
refactoring
adamnemecek Dec 22, 2023
3daee49
refactoring
adamnemecek Dec 22, 2023
d3994f8
nitpicks
adamnemecek Dec 22, 2023
9a7368e
refactoring
adamnemecek Dec 22, 2023
d23db7e
refactoring
adamnemecek Dec 22, 2023
179c3d7
refactoring
adamnemecek Dec 22, 2023
c2c71f3
using while let
adamnemecek Dec 22, 2023
a45d17e
refactoring
adamnemecek Dec 22, 2023
3b02d40
refactoring
adamnemecek Dec 22, 2023
aaf63fa
reactoring
adamnemecek Dec 22, 2023
d1c4b05
reactoring
adamnemecek Dec 22, 2023
c376e3c
reactoring
adamnemecek Dec 22, 2023
752d224
reactoring
adamnemecek Dec 22, 2023
60bf81c
refactoring
adamnemecek Dec 22, 2023
999e64d
refactoring
adamnemecek Dec 22, 2023
215a05f
refactoring
adamnemecek Dec 22, 2023
77bd8e1
refactoring
adamnemecek Dec 22, 2023
27fbe0e
refactoring
adamnemecek Dec 22, 2023
1e7bdb3
nitpicks
adamnemecek Dec 22, 2023
98ab3d8
nitpicks
adamnemecek Dec 22, 2023
292d87d
refactoring
adamnemecek Dec 22, 2023
8dcc143
fixing dereferencing
adamnemecek Dec 22, 2023
9bc2451
refactoring
adamnemecek Dec 22, 2023
2513a5a
refactoring
adamnemecek Dec 22, 2023
2d072ae
refactoring
adamnemecek Dec 22, 2023
885bcf4
refactoring
adamnemecek Dec 22, 2023
59a6d0b
refactoring
adamnemecek Dec 22, 2023
6d39deb
refactoring
adamnemecek Dec 22, 2023
308a0b6
refactoring
adamnemecek Dec 23, 2023
a1136e4
refactoring
adamnemecek Dec 23, 2023
4528843
refactoring
adamnemecek Dec 23, 2023
21f6c24
refactoring
adamnemecek Dec 23, 2023
3a4fd3d
refactoring
adamnemecek Dec 23, 2023
e995b6a
nitpicks
adamnemecek Dec 23, 2023
748590c
find
adamnemecek Dec 23, 2023
512e06a
nitpicks
adamnemecek Dec 23, 2023
d003fbf
refactoring
adamnemecek Dec 23, 2023
20d8fc1
nitpicks
adamnemecek Dec 23, 2023
75f2f1f
refactoring
adamnemecek Dec 23, 2023
4983abe
refactoring
adamnemecek Dec 23, 2023
b153a7f
refactoring
adamnemecek Dec 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
reorder_modules = true
imports_layout = "Vertical"
imports_granularity = "One"

70 changes: 54 additions & 16 deletions src/builtins.rs
Original file line number Diff line number Diff line change
@@ -1,21 +1,59 @@
use crate::types::{Type, TypeVariable, Kind};
use crate::interner::intern;
use crate::renamer::{name, Name};
use crate::renamer::typ::*;
use crate::{
renamer::{
name,
typ::*,
Name,
},
types::{
Kind,
Type,
TypeVariable,
},
};

///Returns an array of all the compiler primitves which exist (not including numeric primitives atm)
pub fn builtins() -> Vec<(&'static str, Type<Name>)> {
let var = Type::Generic(TypeVariable { id: intern("a"), kind: Kind::Star, age: 0 } );
let var2 = Type::Generic(TypeVariable { id: intern("b"), kind: Kind::Star, age: 0 } );
vec![("error", function_type_(list_type(char_type()), var.clone())),
("seq", function_type_(var.clone(), function_type_(var2.clone(), var2.clone()))),
("readFile", function_type_(list_type(char_type()), io(list_type(char_type())))),
("io_bind", function_type_(io(var.clone()),
function_type_(function_type_(var.clone(), io(var2.clone())),
io(var2.clone())))),
("io_return", function_type_(var.clone(), io(var.clone()))),
("putStrLn", function_type_(list_type(char_type()), io(unit()))),
("#compare_tags", function_type_(var.clone(), function_type_(var.clone(), Type::new_op(name("Ordering"), Vec::new())))),
let var = Type::Generic(TypeVariable {
id: "a".into(),
kind: Kind::Star,
age: 0,
});
let var2 = Type::Generic(TypeVariable {
id: "b".into(),
kind: Kind::Star,
age: 0,
});
vec![
("error", function_type_(list_type(char_type()), var.clone())),
(
"seq",
function_type_(var.clone(), function_type_(var2.clone(), var2.clone())),
),
(
"readFile",
function_type_(list_type(char_type()), io(list_type(char_type()))),
),
(
"io_bind",
function_type_(
io(var.clone()),
function_type_(
function_type_(var.clone(), io(var2.clone())),
io(var2.clone()),
),
),
),
("io_return", function_type_(var.clone(), io(var.clone()))),
(
"putStrLn",
function_type_(list_type(char_type()), io(unit())),
),
(
"#compare_tags",
function_type_(
var.clone(),
function_type_(var.clone(), Type::new_op(name("Ordering"), vec![])),
),
),
]
}

Loading