Make some notes about what to do next
This commit is contained in:
parent
65bc32b033
commit
5572e0eebb
2
TODO.md
2
TODO.md
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## General code cleanup
|
## General code cleanup
|
||||||
- standardize on an error type that isn't String
|
- standardize on an error type that isn't String
|
||||||
|
-give scope reduction reference to symbol_table
|
||||||
|
-turn ast reduction into methods-on-struct-returning-result format
|
||||||
|
|
||||||
## Reduction
|
## Reduction
|
||||||
- make a good type for actual language builtins to avoid string comparisons
|
- make a good type for actual language builtins to avoid string comparisons
|
||||||
|
@ -370,7 +370,9 @@ impl Pattern {
|
|||||||
},
|
},
|
||||||
Ignored => Subpattern { tag: None, subpatterns: vec![], guard: None, bound_vars: vec![] },
|
Ignored => Subpattern { tag: None, subpatterns: vec![], guard: None, bound_vars: vec![] },
|
||||||
Literal(lit) => lit.to_subpattern(symbol_table),
|
Literal(lit) => lit.to_subpattern(symbol_table),
|
||||||
VarOrName(Meta { n: QualifiedName(vec), .. }) => {
|
VarOrName(Meta { n: QualifiedName(vec), fqsn, .. }) => {
|
||||||
|
// if fqsn is Some, then it should be a symbol pattern but isn't yet
|
||||||
|
// if it's None, then it's a variable. scope resolution makes this decision
|
||||||
println!("Calling VarOrName reduction with : {:?}", vec);
|
println!("Calling VarOrName reduction with : {:?}", vec);
|
||||||
//TODO this name needs to be resolved from metadata with context
|
//TODO this name needs to be resolved from metadata with context
|
||||||
let name = if vec.len() == 1 {
|
let name = if vec.len() == 1 {
|
||||||
|
@ -136,6 +136,7 @@ impl ScopeResolver {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO add symbol table reference to make this determination
|
||||||
/// this might be a variable or a pattern. if a variable, set to none
|
/// this might be a variable or a pattern. if a variable, set to none
|
||||||
fn qualified_name_in_pattern(&mut self, meta_qualified_name: &mut Meta<QualifiedName>, ) {
|
fn qualified_name_in_pattern(&mut self, meta_qualified_name: &mut Meta<QualifiedName>, ) {
|
||||||
let inner_name = meta_qualified_name.node();
|
let inner_name = meta_qualified_name.node();
|
||||||
|
Loading…
Reference in New Issue
Block a user