diff --git a/executable_semantics/testdata/tuple/fail_index.carbon b/executable_semantics/testdata/tuple/fail_index.carbon new file mode 100644 index 000000000000..dadcce14dd3e --- /dev/null +++ b/executable_semantics/testdata/tuple/fail_index.carbon @@ -0,0 +1,17 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// RUN: not executable_semantics %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes=false %s +// RUN: not executable_semantics --trace %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes %s +// AUTOUPDATE: executable_semantics %s +// CHECK: COMPILATION ERROR: {{.*}}/executable_semantics/testdata/tuple/fail_index.carbon:16: index 2 is out of range for type (i32, i32) + +package ExecutableSemanticsTest api; + +fn main() -> i32 { + var x: auto = (0, 1); + return x[2]; +} diff --git a/executable_semantics/testdata/tuple/fail_index_var.carbon b/executable_semantics/testdata/tuple/fail_index_var.carbon new file mode 100644 index 000000000000..6155a9460bb2 --- /dev/null +++ b/executable_semantics/testdata/tuple/fail_index_var.carbon @@ -0,0 +1,18 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// RUN: not executable_semantics %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes=false %s +// RUN: not executable_semantics --trace %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes %s +// AUTOUPDATE: executable_semantics %s +// CHECK: RUNTIME ERROR: {{.*}}/executable_semantics/testdata/tuple/fail_index_var.carbon:17: could not find `index` + +package ExecutableSemanticsTest api; + +fn main() -> i32 { + var x: auto = (0, 1); + var index: i32 = 0; + return x[index]; +} diff --git a/executable_semantics/testdata/tuple/index.carbon b/executable_semantics/testdata/tuple/index.carbon new file mode 100644 index 000000000000..5f648c036165 --- /dev/null +++ b/executable_semantics/testdata/tuple/index.carbon @@ -0,0 +1,17 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// RUN: executable_semantics %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes=false %s +// RUN: executable_semantics --trace %s 2>&1 | \ +// RUN: FileCheck --match-full-lines --allow-unused-prefixes %s +// AUTOUPDATE: executable_semantics %s +// CHECK: result: 0 + +package ExecutableSemanticsTest api; + +fn main() -> i32 { + var x: auto = (0, 1); + return x[0]; +}