Skip to content

Commit 67c665c

Browse files
committed
Allow is constraints on wildcarded parameters and locals
Closes #1166
1 parent d252cea commit 67c665c

17 files changed

+166
-33
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,4 @@ venv/*
3737
# VSCode workspace directory
3838
.vscode/
3939
buildh2.bat
40+
gen_version.bat
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
print: (r: _ is std::regular) = {
3+
std::cout << "satisfies std::regular\n";
4+
}
5+
6+
print: (_) = {
7+
std::cout << "fallback\n";
8+
}
9+
10+
irregular: type = {}
11+
12+
main: () = {
13+
print(42);
14+
print(irregular());
15+
16+
ok : _ is std::regular = 42;
17+
//err: _ is std::regular = irregular();
18+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
satisfies std::regular
2+
fallback

regression-tests/test-results/clang-12-c++20/pure2-type-constraints.cpp.output

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
satisfies std::regular
2+
fallback

regression-tests/test-results/gcc-10-c++20/pure2-type-constraints.cpp.output

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
satisfies std::regular
2+
fallback

regression-tests/test-results/gcc-14-c++2b/pure2-type-constraints.cpp.output

Whitespace-only changes.

regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.execution

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,26 @@ Running tests_10_escapes:
99
08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results
1010
09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o-
1111
10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b
12-
11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo
12+
11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo
13+
1314

15+
bar result_expr: $1 expected_results
16+
1417

15-
bar result_expr: $1 expected_results
1618

19+
12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo
20+
1721

22+
bar result_expr: $1-$2 expected_results foo-
23+
13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo
24+
1825

19-
12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo
20-
21-
22-
bar result_expr: $1-$2 expected_results foo-
23-
13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo
24-
25-
26-
bar result_expr: $1-$2 expected_results
27-
26+
bar result_expr: $1-$2 expected_results
27+
2828

2929
-b
30-
14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foobar result_expr: $1 expected_results
31-
15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foobar result_expr: $1-$2 expected_results o-
30+
14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foobar result_expr: $1 expected_results
31+
15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foobar result_expr: $1-$2 expected_results o-
3232
16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foobar result_expr: $1-$2 expected_results -b
3333
17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo
3434
bar result_expr: $& expected_results foo
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
satisfies std::regular
2+
fallback

0 commit comments

Comments
 (0)