summaryrefslogtreecommitdiffhomepage
path: root/CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
commit263915832993dd12beee10e204f9ebcc6c786ed2 (patch)
tree862e51208a99c35746e574a76564a4532b3a4a49 /CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2
Meta: initial commit of WestCo optimized toolchain.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2')
-rw-r--r--CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp253
1 files changed, 53 insertions, 0 deletions
diff --git a/CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2 b/CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2
new file mode 100644
index 0000000..ad7797f
--- /dev/null
+++ b/CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2
@@ -0,0 +1,53 @@
+#include <iostream>
+#include <string_view>
+#include <utility>
+#include <tuple>
+
+struct custom_struct_with_no_stringize_customization { } custom;
+
+main: () -> int = {
+ a := 2;
+ b: std::optional<int> = ();
+ std::cout << "a = (a)$, b = (b)$\n";
+
+ b = 42;
+ std::cout << "a^2 + b = (a * a + b.value())$\n";
+
+ sv: std::string_view = "my string_view";
+ std::cout << "sv = (sv)$\n";
+
+ osv: std::optional<std::string_view> = ();
+ std::cout << "osv = (osv)$\n";
+ osv = "string literal bound to optional string_view";
+ std::cout << "osv = (osv)$\n";
+
+ var: std::variant<std::monostate, std::string, double> = ();
+ std::cout << "var = (var)$\n";
+ var = "abracadabra";
+ std::cout << "var = (var)$\n";
+ var = 2.71828;
+ std::cout << "var = (var)$\n";
+
+ mypair: std::pair<int, double> = (12, 3.4);
+ std::cout << "mypair = (mypair)$\n";
+
+ tup1: std::tuple<int> = (12);
+ tup2: std::tuple<int, double> = (12, 3.4);
+ tup3: std::tuple<int, double, std::string> = (12, 3.4, "456");
+ std::cout << "tup1 = (tup1)$\n";
+ std::cout << "tup2 = (tup2)$\n";
+ std::cout << "tup3 = (tup3)$\n";
+
+ p: std::pair<std::string_view, std::optional<std::string>> = ("first", std::nullopt);
+ std::cout << "p = (p)$\n";
+
+ t: std::tuple<double, std::optional<std::pair<std::string_view, int>>, std::optional<std::tuple<int, int, int>>> = (3.14, std::nullopt, std::nullopt);
+ std::cout << "t = (t)$\n";
+
+ vv: std::variant<int, std::string, std::pair<int, double> > = ();
+ std::cout << "vv = (vv)$\n";
+ vv = std::make_pair(1,2.3);
+ std::cout << "vv = (vv)$\n";
+
+ std::cout << "custom = (custom)$\n";
+}