New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stabilize feature `macro_at_most_once_rep` #56245

Merged
merged 8 commits into from Nov 29, 2018

Conversation

Projects
None yet
8 participants
@mark-i-m
Contributor

mark-i-m commented Nov 26, 2018

a.k.a. ? Kleene operator 馃帀

cc #48075

r? @Centril

@mark-i-m mark-i-m force-pushed the mark-i-m:stabilize_ques_kleene branch from 127e792 to 6e4ff45 Nov 26, 2018

@Centril

Pending tests, everything except a comment looks good. :)

Show resolved Hide resolved src/libsyntax/ext/tt/quoted.rs
@mark-i-m

This comment has been minimized.

Contributor

mark-i-m commented Nov 26, 2018

Woah, you're fast.

Thanks!

@mark-i-m

This comment has been minimized.

Contributor

mark-i-m commented Nov 26, 2018

Travis is passing, so i guess we just wait for FCP in 4 days?

@Centril

This comment has been minimized.

Contributor

Centril commented Nov 26, 2018

@mark-i-m I don't have r+ myself so maybe @petrochenkov or @eddyb could r+; we could also wait those 4 days but I wouldn't mind just merging now. ^.^

@mark-i-m

This comment has been minimized.

Contributor

mark-i-m commented Nov 26, 2018

Oh, it's interesting that rust-highfive bot didn't complain.

r? @petrochenkov

@petrochenkov

This comment has been minimized.

Contributor

petrochenkov commented Nov 26, 2018

@bors r+

@bors

This comment has been minimized.

Contributor

bors commented Nov 26, 2018

馃搶 Commit ec66fe7 has been approved by petrochenkov

@bors

This comment was marked as resolved.

Contributor

bors commented Nov 27, 2018

鈽旓笍 The latest upstream changes (presumably #55402) made this pull request unmergeable. Please resolve the merge conflicts.

@mark-i-m mark-i-m force-pushed the mark-i-m:stabilize_ques_kleene branch from ec66fe7 to aeede9e Nov 27, 2018

@rust-highfive

This comment was marked as resolved.

Collaborator

rust-highfive commented Nov 27, 2018

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:1eff35cd:start=1543346745266454500,finish=1543346747630103427,duration=2363648927
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-5.0
---
[00:46:23] .................................................................................................... 2700/5062
[00:46:26] .................................................................................................... 2800/5062
[00:46:29] .................................................................................................... 2900/5062
[00:46:32] .................................................................................................... 3000/5062
[00:46:36] ............................................................F.......i............................... 3100/5062
[00:46:42] ...............................ii..i..ii............................................................ 3300/5062
[00:46:46] .................................................................................................... 3400/5062
[00:46:49] .................................................................................................... 3500/5062
[00:46:52] ............ii...................................................................................... 3600/5062
---
[00:47:34] 43 error: unexpected end of macro invocation
[00:47:34] -   --> $DIR/macro-at-most-once-rep-2018.rs:41:15
[00:47:34] +   --> $DIR/macro-at-most-once-rep-2018.rs:39:15
[00:47:34] 45    |
[00:47:34] 46 LL | macro_rules! barplus {
[00:47:34] 47    | -------------------- when calling this macro
[00:47:34] 77    |     ^^^^^^^^^^^ missing tokens in macro arguments
[00:47:34] 78 
[00:47:34] 79 error: unexpected end of macro invocation
[00:47:34] -   --> $DIR/macro-at-most-once-rep-2018.rs:46:14
[00:47:34] -   --> $DIR/macro-at-most-once-rep-2018.rs:46:14
[00:47:34] +   --> $DIR/macro-at-most-once-rep-2018.rs:46:15
[00:47:34] 81    |
[00:47:34] 82 LL | macro_rules! barstar {
[00:47:34] 83    | -------------------- when calling this macro
[00:47:34] 
[00:47:34] The actual stderr differed from the expected stderr.
[00:47:34] The actual stderr differed from the expected stderr.
[00:47:34] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-at-most-once-rep-2018/macro-at-most-once-rep-2018.stderr
[00:47:34] To update references, rerun the tests and pass the `--bless` flag
[00:47:34] To only update this specific test, also pass `--test-args macros/macro-at-most-once-rep-2018.rs`
[00:47:34] error: 1 errors occurred comparing output.
[00:47:34] status: exit code: 1
[00:47:34] status: exit code: 1
[00:47:34] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-at-most-once-rep-2018/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-at-most-once-rep-2018/auxiliary" "-A" "unused"
[00:47:34] ------------------------------------------
[00:47:34] 
[00:47:34] ------------------------------------------
[00:47:34] stderr:
[00:47:34] stderr:
[00:47:34] ------------------------------------------
[00:47:34] {"message":"the `?` macro repetition operator does not take a separator","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":634,"byte_end":635,"line_start":20,"line_end":20,"column_start":10,"column_end":11,"is_primary":true,"text":[{"text":"    ($(a),?) => {}; //~ERROR the `?` macro repetition operator","highlight_start":10,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: the `?` macro repetition operator does not take a separator\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:20:10\n   |\nLL |     ($(a),?) => {}; //~ERROR the `?` macro repetition operator\n   |          ^\n\n"}
[00:47:34] {"message":"no rules expected the token `?`","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":890,"byte_end":891,"line_start":34,"line_end":34,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":"    foo!(a?); //~ ERROR no rules expected the token `?`","highlight_start":11,"highlight_end":12}],"label":"no rules expected this token in macro call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":565,"byte_end":581,"line_start":15,"line_end":15,"column_start":1,"column_end":17,"is_primary":false,"text":[{"text":"macro_rules! foo {","highlight_start":1,"highlight_end":17}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: no rules expected the token `?`\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:34:11\n   |\nLL | macro_rules! foo {\n   | ---------------- when lumn_start":11,"column_end":12,"is_primary":true,"text":[{"text":"    foo!(a?a?a); //~ ERROR no rules expected the token `?`","highlight_start":11,"highlight_end":12}],"label":"no rules expected this token in macro call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":565,"byte_end":581,"line_start":15,"line_end":15,"column_start":1,"column_end":17,"is_primary":false,"text":[{"text":"macro_rules! foo {","highlight_start":1,"highlight_end":17}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: no rules expected the token `?`\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:36:11\n   |\nLL | macro_rules! foo {\n   | ---------------- when calling this macro\n...\nLL |     foo!(a?a?a); //~ ERROR no rules expected the token `?`\n   |           ^ no rules expected this token in macro call\n\n"}
[00:47:34] {"message":"unexpected end of macro invocation","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":1057,"byte_end":1068,"line_start":38,"line_end":38,"column_start":5,"column_end":16,"is_primary":true,"text":[{"text":"    barplus!(); //~ERROR unexpected end of macro invocation","highlight_start":5,"highlight_end":16}],"label":"missing tokens in macro arguments","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":691,"byte_end":711,"line_start":23,"line_end":23,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barplus {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: unexpected end of macro invocation\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:38:5\n   |\nLL | macro_rules! barplus {\n   | -------------------- when calling this macro\n...\nLL |     barplus!(); //~ERROR unexpected end of macro invocation\n   |     ^^^^^^^^^^^ missing tokens in macro arguments\n\n"}
[00:47:34] {"message":"unexpected end of macro invocation","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":1127,"byte_end":1127,"line_start":39,"line_end":39,"column_start":15,"column_end":15,"is_primary":true,"text":[{"text":"    barplus!(a); //~ERROR unexpected end of macro invocation","highlight_start":15,"highlight_end":15}],"label":"missing tokens in macro arguments","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":691,"byte_end":711,"line_start":23,"line_end":23,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barplus {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: unexpected end of macro invocation\n  --> /checko,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":765,"byte_end":785,"line_start":27,"line_end":27,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barstar {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: unexpected end of macro invocation\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:45:5\n   |\nLL | macro_rules! barstar {\n   | -------------------- when calling this macro\n...\nLL |     barstar!(); //~ERROR unexpected end of macro invocation\n   |     ^^^^^^^^^^^ missing tokens in macro arguments\n\n"}
[00:47:34] {"message":"unexpected end of macro invocation","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":1405,"byte_end":1405,"line_start":46,"line_end":46,"column_start":15,"column_end":15,"is_primary":true,"text":[{"text":"    barstar!(a); //~ERROR unexpected end of macro invocation","highlight_start":15,"highlight_end":15}],"label":"missing tokens in macro arguments","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":765,"byte_end":785,"line_start":27,"line_end":27,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barstar {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: unexpected end of macro invocation\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:46:15\n   |\nLL | macro_rules! barstar {\n   | -------------------- when calling this macro\n...\nLL |     barstar!(a); //~ERROR unexpected end of macro invocation\n   |               ^ missing tokens in macro arguments\n\n"}
[00:47:34] {"message":"no rules expected the token `?`","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":1466,"byte_end":1467,"line_start":47,"line_end":47,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":"    barstar!(a?); //~ ERROR no rules expected the token `?`","highlight_start":15,"highlight_end":16}],"label":"no rules expected this token in macro call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":765,"byte_end":785,"line_start":27,"line_end":27,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barstar {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: no rules expected the token `?`\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:47:15\n   |\nLL | macro_rules! barstar {\n   | -------------------- when calling this macro\n...\nLL |     barstar!(a?); //~ ERROR no rules expected the token `?`\n   |               ^ no rules expected this token in macro call\n\n"}
[00:47:34] {"message":"no rules expected the token `?`","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":1526,"byte_end":1527,"line_start":48,"line_end":48,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":"    barstar!(a?a); //~ ERROR no rules expected the token `?`","highlight_start":15,"highlight_end":16}],"label":"no rules expected this token in macro call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs","byte_start":765,"byte_end":785,"line_start":27,"line_end":27,"column_start":1,"column_end":21,"is_primary":false,"text":[{"text":"macro_rules! barstar {","highlight_start":1,"highlight_end":21}],"label":"when calling this macro","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: no rules expected the token `?`\n  --> /checkout/src/test/ui/macros/macro-at-most-once-rep-2018.rs:48:15\n   |\nLL | macro_rules! barstar {\n   | -------------------- when calling this macro\n...\nLL |     barstar!(a?a); //~ ERROR no rules expected the token `?`\n   |               ^ no rules expected this token in macro call\n\n"}
[00:47:34] {"message":"aborting due to 12 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 12 previous errors\n\n"}
[00:47:34] ------------------------------------------
[00:47:34] 
[00:47:34] thread '[ui] ui/macros/macro-at-most-once-rep-2018.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3282:9
[00:47:34] note: Run with `RUST_BACKTRACE=1` for a backtrace.
---
[00:47:34] 
[00:47:34] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:503:22
[00:47:34] 
[00:47:34] 
[00:47:34] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-5.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "5.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[00:47:34] 
[00:47:34] 
[00:47:34] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[00:47:34] Build completed unsuccessfully in 0:03:48
[00:47:34] Build completed unsuccessfully in 0:03:48
[00:47:34] Makefile:58: recipe for target 'check' failed
[00:47:34] make: *** [check] Error 1
ores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0c61cdb7
travis_time:start:0c61cdb7
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:12bf83aa
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@Mark-Simulacrum

This comment has been minimized.

Member

Mark-Simulacrum commented Nov 28, 2018

@bors r+ p=1 to avoid rebasing

@bors

This comment has been minimized.

Contributor

bors commented Nov 28, 2018

馃搶 Commit 5d77173 has been approved by Mark-Simulacrum

@alexcrichton

This comment has been minimized.

Member

alexcrichton commented Nov 28, 2018

@bors: r+

@bors

This comment has been minimized.

Contributor

bors commented Nov 28, 2018

馃挕 This pull request was already approved, no need to approve it again.

@bors

This comment has been minimized.

Contributor

bors commented Nov 28, 2018

馃搶 Commit 5d77173 has been approved by alexcrichton

@bors

This comment has been minimized.

Contributor

bors commented Nov 28, 2018

鈱涳笍 Testing commit 5d77173 with merge 3c973eb...

bors added a commit that referenced this pull request Nov 28, 2018

Auto merge of #56245 - mark-i-m:stabilize_ques_kleene, r=alexcrichton
Stabilize feature `macro_at_most_once_rep`

a.k.a. `?` Kleene operator 馃帀

cc #48075

r? @Centril

@RalfJung RalfJung referenced this pull request Nov 28, 2018

Merged

Update LLVM #56313

@pietroalbini

This comment has been minimized.

Member

pietroalbini commented Nov 28, 2018

@bors retry

Yielding priority to #56313, which fixes a bad nightly regression.

pietroalbini added a commit to pietroalbini/rust that referenced this pull request Nov 28, 2018

Rollup merge of rust-lang#56245 - mark-i-m:stabilize_ques_kleene, r=a鈥
鈥excrichton

Stabilize feature `macro_at_most_once_rep`

a.k.a. `?` Kleene operator 馃帀

cc rust-lang#48075

r? @Centril

pietroalbini added a commit to pietroalbini/rust that referenced this pull request Nov 28, 2018

Rollup merge of rust-lang#56245 - mark-i-m:stabilize_ques_kleene, r=a鈥
鈥excrichton

Stabilize feature `macro_at_most_once_rep`

a.k.a. `?` Kleene operator 馃帀

cc rust-lang#48075

r? @Centril

bors added a commit that referenced this pull request Nov 28, 2018

Auto merge of #56325 - pietroalbini:rollup, r=pietroalbini
Rollup of 29 pull requests

Successful merges:

 - #55391 (bootstrap: clean up a few clippy findings)
 - #55821 (Use sort_by_cached_key when the key function is not trivial/free)
 - #56014 (add test for issue #21335)
 - #56021 (avoid features_untracked)
 - #56023 (atomic::Ordering: Get rid of misleading parts of intro)
 - #56044 (Drop partially bound function parameters in the expected order)
 - #56080 (Reduce the amount of bold text at doc.rlo)
 - #56090 (Overhaul `FileSearch` and `SearchPaths`)
 - #56114 (Enclose type in backticks for "non-exhaustive patterns" error)
 - #56124 (Fix small doc mistake on std::io::read::read_to_end)
 - #56127 (Update an outdated comment in mir building)
 - #56131 (Assorted tweaks)
 - #56148 (Add rustc-guide as a submodule)
 - #56149 (Make std::os::unix/linux::fs::MetadataExt::a/m/ctime* documentation clearer)
 - #56165 (drop glue takes in mutable references, it should reflect that in its type)
 - #56205 (Fix ICE with feature self_struct_ctor)
 - #56216 (Add TryFrom<&[T]> for [T; $N] where T: Copy)
 - #56220 (Suggest appropriate place for lifetime when declared after type arguments)
 - #56223 (Make JSON output from -Zprofile-json valid)
 - #56236 (Remove unsafe `unsafe` inner function.)
 - #56245 (Stabilize feature `macro_at_most_once_rep`)
 - #56255 (Update outdated code comments in StringReader)
 - #56257 (rustc-guide has moved to rust-lang/)
 - #56268 (Reuse the `P` in `InvocationCollector::fold_{,opt_}expr`.)
 - #56273 (Add missing doc link)
 - #56285 (move stage0.txt to toplevel directory)
 - #56289 (Fix small typo in comment of thread::stack_size)
 - #56294 (Fix a typo in the documentation of std::ffi)
 - #56300 (Fix alignment of stores to scalar pair)

Failed merges:

r? @ghost
@bors

This comment has been minimized.

Contributor

bors commented Nov 29, 2018

鈱涳笍 Testing commit 5d77173 with merge 5a03532...

bors added a commit that referenced this pull request Nov 29, 2018

Auto merge of #56245 - mark-i-m:stabilize_ques_kleene, r=alexcrichton
Stabilize feature `macro_at_most_once_rep`

a.k.a. `?` Kleene operator 馃帀

cc #48075

r? @Centril
@bors

This comment has been minimized.

Contributor

bors commented Nov 29, 2018

鈽锔 Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 5a03532 to master...

@bors bors merged commit 5d77173 into rust-lang:master Nov 29, 2018

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details

@mark-i-m mark-i-m referenced this pull request Nov 29, 2018

Closed

tracking issue for `?` macro repetition #48075

6 of 6 tasks complete
@mark-i-m

This comment has been minimized.

Contributor

mark-i-m commented Nov 29, 2018

@Centril Should this have had the relnotes tag?

@Centril

This comment has been minimized.

Contributor

Centril commented Nov 29, 2018

@mark-i-m oh weird; I thought I added the relnotes tag... :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment