has -> implements

This commit is contained in:
Bryce Miller 2023-06-10 13:30:54 -04:00
parent e463ccf4a6
commit afa5aaba94
No known key found for this signature in database
GPG key ID: F1E97BF8DF152350
2 changed files with 6 additions and 6 deletions

View file

@ -1681,11 +1681,11 @@ impl<'a> Malformed for TypeDef<'a> {
} => header.is_malformed() || typ.is_malformed() || derived.is_malformed(), } => header.is_malformed() || typ.is_malformed() || derived.is_malformed(),
TypeDef::Ability { TypeDef::Ability {
header, header,
loc_implements: loc_has, loc_implements,
members, members,
} => { } => {
header.is_malformed() header.is_malformed()
|| loc_has.is_malformed() || loc_implements.is_malformed()
|| members.iter().any(|member| member.is_malformed()) || members.iter().any(|member| member.is_malformed())
} }
} }

View file

@ -617,14 +617,14 @@ pub fn parse_single_def<'a>(
}; };
if let Some((name, name_region, args)) = opt_tag_and_args { if let Some((name, name_region, args)) = opt_tag_and_args {
if let Ok((_, loc_has, state)) = if let Ok((_, loc_implements, state)) =
loc_implements_parser().parse(arena, state.clone(), min_indent) loc_implements_parser().parse(arena, state.clone(), min_indent)
{ {
let (_, (type_def, def_region), state) = finish_parsing_ability_def_help( let (_, (type_def, def_region), state) = finish_parsing_ability_def_help(
min_indent, min_indent,
Loc::at(name_region, name), Loc::at(name_region, name),
args, args,
loc_has, loc_implements,
arena, arena,
state, state,
)?; )?;
@ -1370,7 +1370,7 @@ fn finish_parsing_ability_def_help<'a>(
start_column: u32, start_column: u32,
name: Loc<&'a str>, name: Loc<&'a str>,
args: &'a [Loc<Pattern<'a>>], args: &'a [Loc<Pattern<'a>>],
loc_has: Loc<Implements<'a>>, loc_implements: Loc<Implements<'a>>,
arena: &'a Bump, arena: &'a Bump,
state: State<'a>, state: State<'a>,
) -> ParseResult<'a, (TypeDef<'a>, Region), EExpr<'a>> { ) -> ParseResult<'a, (TypeDef<'a>, Region), EExpr<'a>> {
@ -1408,7 +1408,7 @@ fn finish_parsing_ability_def_help<'a>(
let def_region = Region::span_across(&name.region, &demands.last().unwrap().typ.region); let def_region = Region::span_across(&name.region, &demands.last().unwrap().typ.region);
let type_def = TypeDef::Ability { let type_def = TypeDef::Ability {
header: TypeHeader { name, vars: args }, header: TypeHeader { name, vars: args },
loc_implements: loc_has, loc_implements,
members: demands.into_bump_slice(), members: demands.into_bump_slice(),
}; };