Implement new builder syntax alongside old one

This commit is contained in:
Sam Mohr 2024-07-07 03:22:05 -07:00
parent 1bcf30391b
commit f415017c90
No known key found for this signature in database
GPG key ID: EA41D161A3C1BC99
17 changed files with 1023 additions and 211 deletions

View file

@ -370,7 +370,8 @@ pub enum EExpr<'a> {
InParens(EInParens<'a>, Position),
Record(ERecord<'a>, Position),
OptionalValueInRecordBuilder(Region),
RecordUpdateBuilder(Region),
RecordUpdateAccumulator(Region),
RecordBuilderAccumulator(Region),
// SingleQuote errors are folded into the EString
Str(EString<'a>, Position),
@ -422,6 +423,7 @@ pub enum ERecord<'a> {
Open(Position),
Updateable(Position),
BuilderMapper(Position),
Field(Position),
Colon(Position),
QuestionMark(Position),
@ -570,6 +572,7 @@ pub enum EImportParams<'a> {
Indent(Position),
Record(ERecord<'a>, Position),
RecordUpdateFound(Region),
RecordBuilderFound(Region),
RecordApplyFound(Region),
Space(BadInputError, Position),
}
@ -737,6 +740,7 @@ pub enum ETypeAbilityImpl<'a> {
Space(BadInputError, Position),
Updateable(Position),
BuilderMapper(Position),
QuestionMark(Position),
Ampersand(Position),
Expr(&'a EExpr<'a>, Position),
@ -754,6 +758,7 @@ impl<'a> From<ERecord<'a>> for ETypeAbilityImpl<'a> {
ERecord::Arrow(p) => ETypeAbilityImpl::Arrow(p),
ERecord::Space(s, p) => ETypeAbilityImpl::Space(s, p),
ERecord::Updateable(p) => ETypeAbilityImpl::Updateable(p),
ERecord::BuilderMapper(p) => ETypeAbilityImpl::BuilderMapper(p),
ERecord::QuestionMark(p) => ETypeAbilityImpl::QuestionMark(p),
ERecord::Ampersand(p) => ETypeAbilityImpl::Ampersand(p),
ERecord::Expr(e, p) => ETypeAbilityImpl::Expr(e, p),