From db10310a75de675fdc4b6baf2b30e6fb7628a610 Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Mon, 3 Jun 2024 15:10:18 -0700 Subject: [PATCH 1/3] Add tests for `$ion_literal`. --- conformance/ion_literal.ion | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 conformance/ion_literal.ion diff --git a/conformance/ion_literal.ion b/conformance/ion_literal.ion new file mode 100644 index 0000000..b8ddb5a --- /dev/null +++ b/conformance/ion_literal.ion @@ -0,0 +1,31 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + + +(ion_1_1 + (each (toplevel '#$11' '#$11'::'#$11' '#$11'::1) + (toplevel $ion_literal $ion_literal::$ion_literal $ion_literal::1) + (produces $ion_literal $ion_literal 1))) + +// But the annotation is only recognized at top level. +(ion_1_1 + (toplevel ['#$11', '#$11'::'#$11', $ion_literal::1]) + (produces [$ion_literal, $ion_literal::$ion_literal, $ion_literal::1])) + +// No such effects in 1.0, even with the same SID. +(ion_1_0 + (toplevel $ion_symbol_table::{symbols:["$ion_literal"]}) + (toplevel '#$10' '#$10'::'#$10') + (produces $ion_literal $ion_literal::$ion_literal)) + + +// Top-level `$ion_literal::$ion_symbol_table::{}` is an error. +// TODO Is this correct? What about '$ion_1_0' etc? +// https://github.com/amazon-ion/ion-docs/issues/322 +(ion_1_1 + (toplevel $ion_literal::$ion_symbol_table::{}) + (signals "Cannot use literal $ion_symbol_table struct as application data")) + +(ion_1_1 + (toplevel [$ion_literal::$ion_symbol_table::{}]) + (produces [$ion_literal::$ion_symbol_table::{}])) From c1fa96f69198b39a62f64061424b91927003dc0d Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Tue, 11 Jun 2024 14:28:02 -0700 Subject: [PATCH 2/3] Apply suggestions from code review --- conformance/ion_literal.ion | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conformance/ion_literal.ion b/conformance/ion_literal.ion index b8ddb5a..acbb7ac 100644 --- a/conformance/ion_literal.ion +++ b/conformance/ion_literal.ion @@ -4,13 +4,13 @@ (ion_1_1 (each (toplevel '#$11' '#$11'::'#$11' '#$11'::1) - (toplevel $ion_literal $ion_literal::$ion_literal $ion_literal::1) - (produces $ion_literal $ion_literal 1))) + (toplevel $ion_literal $ion_literal::$ion_literal $ion_literal::1 $ion_literal::$ion_literal::1) + (produces $ion_literal $ion_literal 1 $ion_literal::1))) // But the annotation is only recognized at top level. (ion_1_1 - (toplevel ['#$11', '#$11'::'#$11', $ion_literal::1]) - (produces [$ion_literal, $ion_literal::$ion_literal, $ion_literal::1])) + (toplevel ['#$11', '#$11'::'#$11', $ion_literal::1, $ion_literal::$ion_literal::1]) + (produces [$ion_literal, $ion_literal::$ion_literal, $ion_literal::1, $ion_literal::$ion_literal::1])) // No such effects in 1.0, even with the same SID. (ion_1_0 From fc6d4dc727aeec70a3ea5e62f94df01eacf38cb7 Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Tue, 11 Jun 2024 14:28:27 -0700 Subject: [PATCH 3/3] Update conformance/ion_literal.ion --- conformance/ion_literal.ion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conformance/ion_literal.ion b/conformance/ion_literal.ion index acbb7ac..54ebe1f 100644 --- a/conformance/ion_literal.ion +++ b/conformance/ion_literal.ion @@ -5,7 +5,7 @@ (ion_1_1 (each (toplevel '#$11' '#$11'::'#$11' '#$11'::1) (toplevel $ion_literal $ion_literal::$ion_literal $ion_literal::1 $ion_literal::$ion_literal::1) - (produces $ion_literal $ion_literal 1 $ion_literal::1))) + (produces $ion_literal $ion_literal 1 $ion_literal::1))) // But the annotation is only recognized at top level. (ion_1_1