summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadrieril2019-08-03 22:15:49 +0200
committerNadrieril2019-08-03 22:15:49 +0200
commitb85967fbe27505ae932be3b640dff5260fd32662 (patch)
tree03163b62a93c92041937cf47d4ed41074a109ef2
parent2ad5973a32099ad8f79f247adc9d03340e2df4ab (diff)
Update dhall-lang submodule
m---------dhall-lang0
-rw-r--r--dhall/build.rs15
-rw-r--r--dhall_generated_parser/src/dhall.pest.visibility1
-rw-r--r--dhall_syntax/src/parser.rs1
-rw-r--r--tests_buffer1
5 files changed, 13 insertions, 5 deletions
diff --git a/dhall-lang b/dhall-lang
-Subproject 70c049883d2a6c9662511f166f5a359b7664d0d
+Subproject 034d48aa2d9433c4af574165483b3e796382483
diff --git a/dhall/build.rs b/dhall/build.rs
index 46bb3a4..3f09d47 100644
--- a/dhall/build.rs
+++ b/dhall/build.rs
@@ -35,11 +35,11 @@ fn dhall_files_in_dir<'a>(
}
fn make_test_module(
- w: &mut impl Write,
- mod_name: &str,
- dir: &Path,
- feature: &str,
- mut exclude: impl FnMut(&str) -> bool,
+ w: &mut impl Write, // Where to output the generated code
+ mod_name: &str, // Name of the module, used in the output of `cargo test`
+ dir: &Path, // Directory containing the tests files
+ feature: &str, // Relevant variant of `dhall::tests::Feature`
+ mut exclude: impl FnMut(&str) -> bool, // Given a file name, whether to exclude it
) -> std::io::Result<()> {
writeln!(w, "mod {} {{", mod_name)?;
for (name, path) in dhall_files_in_dir(&dir.join("success/"), true) {
@@ -67,6 +67,8 @@ fn make_test_module(
}
fn main() -> std::io::Result<()> {
+ // Tries to detect when the submodule gets updated; doesn't really work.
+ // To force regeneration of the test list, just `touch dhall-lang/.git`
println!("cargo:rerun-if-changed=../dhall-lang/.git");
println!(
"cargo:rerun-if-changed=../.git/modules/dhall-lang/refs/heads/master"
@@ -129,6 +131,9 @@ fn main() -> std::io::Result<()> {
path == "success/simple/integerToDouble"
// Too slow
|| path == "success/remoteSystems"
+ // TODO: selection by expression
+ || path == "success/unit/RecordProjectionTypeEmpty"
+ || path == "success/unit/RecordProjectionTypeNonEmpty"
},
)?;
diff --git a/dhall_generated_parser/src/dhall.pest.visibility b/dhall_generated_parser/src/dhall.pest.visibility
index 6e83052..60de54d 100644
--- a/dhall_generated_parser/src/dhall.pest.visibility
+++ b/dhall_generated_parser/src/dhall.pest.visibility
@@ -155,6 +155,7 @@ first_application_expression
selector_expression
selector
labels
+# type_selector
primitive_expression
# record_type_or_literal
empty_record_literal
diff --git a/dhall_syntax/src/parser.rs b/dhall_syntax/src/parser.rs
index d8bd957..9d9a374 100644
--- a/dhall_syntax/src/parser.rs
+++ b/dhall_syntax/src/parser.rs
@@ -878,6 +878,7 @@ make_parser! {
rule!(selector<Either<Label, Vec<Label>>>; children!(
[label(l)] => Either::Left(l),
[labels(ls)] => Either::Right(ls),
+ [expression(e)] => unimplemented!("selection by expression"), // TODO
));
rule!(labels<Vec<Label>>; children!(
diff --git a/tests_buffer b/tests_buffer
index 75a233b..1ea9a1c 100644
--- a/tests_buffer
+++ b/tests_buffer
@@ -5,6 +5,7 @@ text interpolation and escapes
remove `double`
remove imports/parenthesizeUsing
remove multilet
+selection by expression unit tests
success/
imports/
Missing missing