pass through correct path and type for ingested file

This commit is contained in:
Brendan Hansknecht 2023-03-23 11:39:19 -07:00
parent 0c366949cb
commit 56ed985cc9
No known key found for this signature in database
GPG key ID: 0EA784685083E75B
7 changed files with 25 additions and 19 deletions

View file

@ -1,4 +1,5 @@
use std::fmt::Debug;
use std::path::Path;
use crate::header::{AppHeader, HostedHeader, InterfaceHeader, PackageHeader, PlatformHeader};
use crate::ident::Accessor;
@ -264,7 +265,7 @@ pub enum Expr<'a> {
Tuple(Collection<'a, &'a Loc<Expr<'a>>>),
// The name of a file to be ingested directly into a variable.
IngestedFile(StrLiteral<'a>),
IngestedFile(&'a Path, &'a Loc<TypeAnnotation<'a>>),
// Lookups
Var {
@ -1468,13 +1469,12 @@ impl<'a> Malformed for Expr<'a> {
Tag(_) |
OpaqueRef(_) |
SingleQuote(_) | // This is just a &str - not a bunch of segments
IngestedFile(_, _) |
Crash => false,
Str(inner) => inner.is_malformed(),
// TODO: what is the scope of Malformed? Would this not being a real file make it malformed?
IngestedFile(inner) => inner.is_malformed(),
RecordAccess(inner, _) |
TupleAccess(inner, _) => inner.is_malformed(),

View file

@ -1906,7 +1906,7 @@ fn expr_to_pattern_help<'a>(arena: &'a Bump, expr: &Expr<'a>) -> Result<Pattern<
is_negative,
},
// These would not have parsed as patterns
Expr::IngestedFile(_)
Expr::IngestedFile(_, _)
| Expr::AccessorFunction(_)
| Expr::RecordAccess(_, _)
| Expr::TupleAccess(_, _)