Tests compile again
This commit is contained in:
parent
ea542192be
commit
9a28ccfd85
@ -9,7 +9,7 @@ pub use operators::*;
|
|||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub struct Meta<T> {
|
pub struct Meta<T> {
|
||||||
n: T,
|
pub n: T,
|
||||||
source_map: SourceMap,
|
source_map: SourceMap,
|
||||||
type_data: TypeData,
|
type_data: TypeData,
|
||||||
pub fqsn: Option<FullyQualifiedSymbolName>
|
pub fqsn: Option<FullyQualifiedSymbolName>
|
||||||
|
@ -937,14 +937,14 @@ impl Parser {
|
|||||||
match self.token_handler.peek_kind() {
|
match self.token_handler.peek_kind() {
|
||||||
LCurlyBrace => {
|
LCurlyBrace => {
|
||||||
let members = delimited!(self, LCurlyBrace, record_pattern_entry, Comma, RCurlyBrace);
|
let members = delimited!(self, LCurlyBrace, record_pattern_entry, Comma, RCurlyBrace);
|
||||||
Pattern::Record(qualified_name, members)
|
Pattern::Record(Meta::new(qualified_name), members)
|
||||||
},
|
},
|
||||||
LParen => {
|
LParen => {
|
||||||
let members = delimited!(self, LParen, pattern, Comma, RParen);
|
let members = delimited!(self, LParen, pattern, Comma, RParen);
|
||||||
Pattern::TupleStruct(qualified_name, members)
|
Pattern::TupleStruct(Meta::new(qualified_name), members)
|
||||||
},
|
},
|
||||||
_ => {
|
_ => {
|
||||||
Pattern::VarOrName(qualified_name)
|
Pattern::VarOrName(Meta::new(qualified_name))
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -596,8 +596,8 @@ fn patterns() {
|
|||||||
"if x is Some(a) then { 4 } else { 9 }", exst!(
|
"if x is Some(a) then { 4 } else { 9 }", exst!(
|
||||||
IfExpression {
|
IfExpression {
|
||||||
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
||||||
body: bx!(IfExpressionBody::SimplePatternMatch(Pattern::TupleStruct(QualifiedName(vec![rc!(Some)]),
|
body: bx!(IfExpressionBody::SimplePatternMatch(Pattern::TupleStruct(Meta::new(QualifiedName(vec![rc!(Some)])),
|
||||||
vec![Pattern::VarOrName(QualifiedName(vec![rc!(a)]))]), vec![exst!(s "4")], Some(vec![exst!(s "9")]))) }
|
vec![Pattern::VarOrName(Meta::new(QualifiedName(vec![rc!(a)])))]), vec![exst!(s "4")], Some(vec![exst!(s "9")]))) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -605,8 +605,8 @@ fn patterns() {
|
|||||||
"if x is Some(a) then 4 else 9", exst!(
|
"if x is Some(a) then 4 else 9", exst!(
|
||||||
IfExpression {
|
IfExpression {
|
||||||
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
||||||
body: bx!(IfExpressionBody::SimplePatternMatch(Pattern::TupleStruct(QualifiedName(vec![rc!(Some)]),
|
body: bx!(IfExpressionBody::SimplePatternMatch(Pattern::TupleStruct(Meta::new(QualifiedName(vec![rc!(Some)])),
|
||||||
vec![Pattern::VarOrName(QualifiedName(vec![rc!(a)]))]), vec![exst!(s "4")], Some(vec![exst!(s "9")]))) }
|
vec![Pattern::VarOrName(Meta::new(QualifiedName(vec![rc!(a)])))]), vec![exst!(s "4")], Some(vec![exst!(s "9")]))) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -615,9 +615,9 @@ fn patterns() {
|
|||||||
IfExpression {
|
IfExpression {
|
||||||
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
discriminator: bx!(Discriminator::Simple(Meta::new(ex!(s "x")))),
|
||||||
body: bx!(IfExpressionBody::SimplePatternMatch(
|
body: bx!(IfExpressionBody::SimplePatternMatch(
|
||||||
Pattern::Record(QualifiedName(vec![rc!(Something)]), vec![
|
Pattern::Record(Meta::new(QualifiedName(vec![rc!(Something)])), vec![
|
||||||
(rc!(a),Pattern::Literal(PatternLiteral::StringPattern(rc!(a)))),
|
(rc!(a),Pattern::Literal(PatternLiteral::StringPattern(rc!(a)))),
|
||||||
(rc!(b),Pattern::VarOrName(QualifiedName(vec![rc!(x)])))
|
(rc!(b),Pattern::VarOrName(Meta::new(QualifiedName(vec![rc!(x)]))))
|
||||||
]),
|
]),
|
||||||
vec![exst!(s "4")], Some(vec![exst!(s "9")])))
|
vec![exst!(s "4")], Some(vec![exst!(s "9")])))
|
||||||
}
|
}
|
||||||
|
@ -249,7 +249,7 @@ fn reduce_if_expression(discriminator: &Discriminator, body: &IfExpressionBody,
|
|||||||
};
|
};
|
||||||
|
|
||||||
let alternatives = vec![
|
let alternatives = vec![
|
||||||
pat.node().to_alternative(then_clause, symbol_table),
|
pat.to_alternative(then_clause, symbol_table),
|
||||||
Alternative {
|
Alternative {
|
||||||
matchable: Subpattern {
|
matchable: Subpattern {
|
||||||
tag: None,
|
tag: None,
|
||||||
@ -272,7 +272,7 @@ fn reduce_if_expression(discriminator: &Discriminator, body: &IfExpressionBody,
|
|||||||
match arm.guard {
|
match arm.guard {
|
||||||
Guard::Pat(ref p) => {
|
Guard::Pat(ref p) => {
|
||||||
let item = reduce_block(&arm.body, symbol_table);
|
let item = reduce_block(&arm.body, symbol_table);
|
||||||
let alt = p.node().to_alternative(item, symbol_table);
|
let alt = p.to_alternative(item, symbol_table);
|
||||||
alternatives.push(alt);
|
alternatives.push(alt);
|
||||||
},
|
},
|
||||||
Guard::HalfExpr(HalfExpr { op: _, expr: _ }) => {
|
Guard::HalfExpr(HalfExpr { op: _, expr: _ }) => {
|
||||||
@ -346,7 +346,7 @@ impl Pattern {
|
|||||||
fn to_subpattern(&self, symbol_table: &SymbolTable) -> Subpattern {
|
fn to_subpattern(&self, symbol_table: &SymbolTable) -> Subpattern {
|
||||||
use self::Pattern::*;
|
use self::Pattern::*;
|
||||||
match self {
|
match self {
|
||||||
TupleStruct(QualifiedName(vec), inner_patterns) => {
|
TupleStruct( Meta { n: QualifiedName(vec), .. }, inner_patterns) => {
|
||||||
let name = if vec.len() == 1 {
|
let name = if vec.len() == 1 {
|
||||||
vec[0].clone()
|
vec[0].clone()
|
||||||
} else {
|
} else {
|
||||||
@ -361,7 +361,7 @@ 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(QualifiedName(vec)) => {
|
VarOrName(Meta { n: QualifiedName(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 {
|
||||||
vec[0].clone()
|
vec[0].clone()
|
||||||
|
Loading…
Reference in New Issue
Block a user