From b85967fbe27505ae932be3b640dff5260fd32662 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 3 Aug 2019 22:15:49 +0200 Subject: Update dhall-lang submodule --- dhall-lang | 2 +- dhall/build.rs | 15 ++++++++++----- dhall_generated_parser/src/dhall.pest.visibility | 1 + dhall_syntax/src/parser.rs | 1 + tests_buffer | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dhall-lang b/dhall-lang index 70c0498..034d48a 160000 --- a/dhall-lang +++ b/dhall-lang @@ -1 +1 @@ -Subproject commit 70c049883d2a6c9662511f166f5a359b7664d0d1 +Subproject commit 034d48aa2d9433c4af574165483b3e7963824835 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>>; children!( [label(l)] => Either::Left(l), [labels(ls)] => Either::Right(ls), + [expression(e)] => unimplemented!("selection by expression"), // TODO )); rule!(labels>; 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 -- cgit v1.2.3