Skip to content

Commit 615a110

Browse files
committed
---
yaml --- r: 278103 b: refs/heads/auto c: 10599e4 h: refs/heads/master i: 278101: eacce35 278099: 25f3d3e 278095: 4c5117a
1 parent 6064902 commit 615a110

File tree

459 files changed

+2761
-4721
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

459 files changed

+2761
-4721
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: aa63f54e3752382f59cc68aba8dae0c0d7bdda5a
11+
refs/heads/auto: 10599e464107ccd7628e7189c286073f88b5063b
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/mk/ctags.mk

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,14 @@
1515

1616
.PHONY: TAGS.emacs TAGS.vi
1717

18-
CTAGS_RUSTC_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
19-
$(wildcard ${CFG_SRC_DIR}src/lib*)) ${CFG_SRC_DIR}src/libtest
18+
CTAGS_LOCATIONS=$(wildcard ${CFG_SRC_DIR}src/lib*)
2019
CTAGS_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/librust%,, \
2120
$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
2221
$(wildcard ${CFG_SRC_DIR}src/lib*))) ${CFG_SRC_DIR}src/libtest
23-
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse
24-
25-
TAGS.rustc.emacs:
26-
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
22+
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse ${CTAGS_LOCATIONS}
2723

2824
TAGS.emacs:
29-
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}
30-
31-
TAGS.rustc.vi:
32-
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
25+
ctags -e -f $@ ${CTAGS_OPTS}
3326

3427
TAGS.vi:
35-
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}
28+
ctags -f $@ ${CTAGS_OPTS}

branches/auto/mk/debuggers.mk

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,10 @@ DEBUGGER_BIN_SCRIPTS_LLDB_ABS=\
4141

4242

4343
## ALL ##
44-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=gdb_load_rust_pretty_printers.py \
45-
gdb_rust_pretty_printing.py \
46-
lldb_rust_formatters.py \
47-
debugger_pretty_printers_common.py
48-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=\
49-
$(foreach script,$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL), \
50-
$(CFG_SRC_DIR)src/etc/$(script))
44+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB) \
45+
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB)
46+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS) \
47+
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
5148
DEBUGGER_BIN_SCRIPTS_ALL=$(DEBUGGER_BIN_SCRIPTS_GDB) \
5249
$(DEBUGGER_BIN_SCRIPTS_LLDB)
5350
DEBUGGER_BIN_SCRIPTS_ALL_ABS=$(DEBUGGER_BIN_SCRIPTS_GDB_ABS) \

branches/auto/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ endif
390390
# This 'function' will determine which debugger scripts to copy based on a
391391
# target triple. See debuggers.mk for more information.
392392
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING=\
393-
$(if $(findstring windows-msvc,$(1)),none,all)
393+
$(if $(findstring windows,$(1)),none,$(if $(findstring darwin,$(1)),lldb,gdb))
394394

395395
STAGES = 0 1 2 3
396396

branches/auto/mk/platform.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ ifdef CFG_CCACHE_BASEDIR
169169
export CCACHE_BASEDIR
170170
endif
171171

172-
FIND_COMPILER = $(strip $(1:ccache=))
172+
FIND_COMPILER = $(word 1,$(1:ccache=))
173173

174174
define CFG_MAKE_TOOLCHAIN
175175
# Prepend the tools with their prefix if cross compiling
@@ -187,7 +187,7 @@ define CFG_MAKE_TOOLCHAIN
187187
endif
188188
endif
189189

190-
CFG_COMPILE_C_$(1) = '$$(call FIND_COMPILER,$$(CC_$(1)))' \
190+
CFG_COMPILE_C_$(1) = '$$(CC_$(1))' \
191191
$$(CFLAGS) \
192192
$$(CFG_GCCISH_CFLAGS) \
193193
$$(CFG_GCCISH_CFLAGS_$(1)) \
@@ -198,7 +198,7 @@ define CFG_MAKE_TOOLCHAIN
198198
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
199199
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
200200
$$(call CFG_INSTALL_NAME_$(1),$$(4))
201-
CFG_COMPILE_CXX_$(1) = '$$(call FIND_COMPILER,$$(CXX_$(1)))' \
201+
CFG_COMPILE_CXX_$(1) = '$$(CXX_$(1))' \
202202
$$(CXXFLAGS) \
203203
$$(CFG_GCCISH_CFLAGS) \
204204
$$(CFG_GCCISH_CXXFLAGS) \

branches/auto/mk/tests.mk

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -616,12 +616,13 @@ ifdef CFG_ENABLE_DEBUGINFO_TESTS
616616
CTEST_RUSTC_FLAGS += -g
617617
endif
618618

619-
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) = \
619+
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
620620
--compile-lib-path $$(HLIB$(1)_H_$(3)) \
621621
--run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \
622622
--rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
623623
--rustdoc-path $$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
624624
--llvm-filecheck $(CFG_LLVM_INST_DIR_$(CFG_BUILD))/bin/FileCheck \
625+
--aux-base $$(S)src/test/auxiliary/ \
625626
--stage-id stage$(1)-$(2) \
626627
--target $(2) \
627628
--host $(3) \
@@ -635,8 +636,8 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) = \
635636
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
636637
--lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
637638
--target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
638-
--cc '$$(call FIND_COMPILER,$$(CC_$(2)))' \
639-
--cxx '$$(call FIND_COMPILER,$$(CXX_$(2)))' \
639+
--cc '$$(CC_$(2))' \
640+
--cxx '$$(CXX_$(2))' \
640641
--cflags "$$(CFG_GCCISH_CFLAGS_$(2))" \
641642
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(2))" \
642643
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(2))" \
@@ -685,7 +686,7 @@ $(foreach host,$(CFG_HOST), \
685686

686687
define DEF_RUN_COMPILETEST
687688

688-
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
689+
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
689690
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
690691
--src-base $$(S)src/test/$$(CTEST_SRC_BASE_$(4))/ \
691692
--build-base $(3)/test/$$(CTEST_BUILD_BASE_$(4))/ \
@@ -778,7 +779,7 @@ $(foreach host,$(CFG_HOST), \
778779

779780
define DEF_RUN_PRETTY_TEST
780781

781-
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
782+
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
782783
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
783784
--src-base $$(S)src/test/$$(PRETTY_DIRNAME_$(4))/ \
784785
--build-base $(3)/test/$$(PRETTY_DIRNAME_$(4))/ \

branches/auto/src/bootstrap/build/check.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ pub fn compiletest(build: &Build,
7070
cmd.arg("--rustc-path").arg(build.compiler_path(compiler));
7171
cmd.arg("--rustdoc-path").arg(build.rustdoc(compiler));
7272
cmd.arg("--src-base").arg(build.src.join("src/test").join(suite));
73+
cmd.arg("--aux-base").arg(build.src.join("src/test/auxiliary"));
7374
cmd.arg("--build-base").arg(testdir(build, compiler.host).join(suite));
7475
cmd.arg("--stage-id").arg(format!("stage{}-{}", compiler.stage, target));
7576
cmd.arg("--mode").arg(mode);

branches/auto/src/bootstrap/build/dist.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,23 +217,23 @@ pub fn debugger_scripts(build: &Build,
217217
t!(fs::create_dir_all(&dst));
218218
install(&build.src.join("src/etc/").join(file), &dst, 0o644);
219219
};
220-
if host.contains("windows-msvc") {
220+
if host.contains("windows") {
221221
// no debugger scripts
222-
} else {
223-
cp_debugger_script("debugger_pretty_printers_common.py");
222+
} else if host.contains("darwin") {
223+
// lldb debugger scripts
224+
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
225+
0o755);
224226

227+
cp_debugger_script("lldb_rust_formatters.py");
228+
cp_debugger_script("debugger_pretty_printers_common.py");
229+
} else {
225230
// gdb debugger scripts
226231
install(&build.src.join("src/etc/rust-gdb"), &sysroot.join("bin"),
227232
0o755);
228233

229234
cp_debugger_script("gdb_load_rust_pretty_printers.py");
230235
cp_debugger_script("gdb_rust_pretty_printing.py");
231-
232-
// lldb debugger scripts
233-
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
234-
0o755);
235-
236-
cp_debugger_script("lldb_rust_formatters.py");
236+
cp_debugger_script("debugger_pretty_printers_common.py");
237237
}
238238
}
239239

branches/auto/src/bootstrap/build/job.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub unsafe fn setup() {
5454

5555
// Indicate that when all handles to the job object are gone that all
5656
// process in the object should be killed. Note that this includes our
57-
// entire process tree by default because we've added ourselves and our
57+
// entire process tree by default because we've added ourselves and and our
5858
// children will reside in the job by default.
5959
let mut info = mem::zeroed::<JOBOBJECT_EXTENDED_LIMIT_INFORMATION>();
6060
info.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;

branches/auto/src/doc/reference.md

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,41 +2063,33 @@ arbitrarily complex configurations through nesting.
20632063

20642064
The following configurations must be defined by the implementation:
20652065

2066-
* `target_arch = "..."` - Target CPU architecture, such as `"x86"`,
2067-
`"x86_64"` `"mips"`, `"powerpc"`, `"powerpc64"`, `"arm"`, or
2068-
`"aarch64"`. This value is closely related to the first element of
2069-
the platform target triple, though it is not identical.
2070-
* `target_os = "..."` - Operating system of the target, examples
2071-
include `"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`,
2072-
`"freebsd"`, `"dragonfly"`, `"bitrig"` , `"openbsd"` or
2073-
`"netbsd"`. This value is closely related to the second and third
2074-
element of the platform target triple, though it is not identical.
2066+
* `debug_assertions` - Enabled by default when compiling without optimizations.
2067+
This can be used to enable extra debugging code in development but not in
2068+
production. For example, it controls the behavior of the standard library's
2069+
`debug_assert!` macro.
2070+
* `target_arch = "..."` - Target CPU architecture, such as `"x86"`, `"x86_64"`
2071+
`"mips"`, `"powerpc"`, `"powerpc64"`, `"arm"`, or `"aarch64"`.
2072+
* `target_endian = "..."` - Endianness of the target CPU, either `"little"` or
2073+
`"big"`.
2074+
* `target_env = ".."` - An option provided by the compiler by default
2075+
describing the runtime environment of the target platform. Some examples of
2076+
this are `musl` for builds targeting the MUSL libc implementation, `msvc` for
2077+
Windows builds targeting MSVC, and `gnu` frequently the rest of the time. This
2078+
option may also be blank on some platforms.
20752079
* `target_family = "..."` - Operating system family of the target, e. g.
20762080
`"unix"` or `"windows"`. The value of this configuration option is defined
20772081
as a configuration itself, like `unix` or `windows`.
2078-
* `unix` - See `target_family`.
2079-
* `windows` - See `target_family`.
2080-
* `target_env = ".."` - Further disambiguates the target platform with
2081-
information about the ABI/libc. Presently this value is either
2082-
`"gnu"`, `"msvc"`, `"musl"`, or the empty string. For historical
2083-
reasons this value has only been defined as non-empty when needed
2084-
for disambiguation. Thus on many GNU platforms this value will be
2085-
empty. This value is closely related to the fourth element of the
2086-
platform target triple, though it is not identical. For example,
2087-
embedded ABIs such as `gnueabihf` will simply define `target_env` as
2088-
`"gnu"`.
2089-
* `target_endian = "..."` - Endianness of the target CPU, either `"little"` or
2090-
`"big"`.
2082+
* `target_os = "..."` - Operating system of the target, examples include
2083+
`"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`, `"freebsd"`, `"dragonfly"`,
2084+
`"bitrig"` , `"openbsd"` or `"netbsd"`.
20912085
* `target_pointer_width = "..."` - Target pointer width in bits. This is set
20922086
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
20932087
64-bit pointers.
20942088
* `target_vendor = "..."` - Vendor of the target, for example `apple`, `pc`, or
20952089
simply `"unknown"`.
20962090
* `test` - Enabled when compiling the test harness (using the `--test` flag).
2097-
* `debug_assertions` - Enabled by default when compiling without optimizations.
2098-
This can be used to enable extra debugging code in development but not in
2099-
production. For example, it controls the behavior of the standard library's
2100-
`debug_assert!` macro.
2091+
* `unix` - See `target_family`.
2092+
* `windows` - See `target_family`.
21012093

21022094
You can also set another attribute based on a `cfg` variable with `cfg_attr`:
21032095

branches/auto/src/libcollections/slice.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,8 @@ impl<T> [T] {
419419
///
420420
/// ```rust
421421
/// let v = &[1, 2, 3, 4, 5];
422-
/// for chunk in v.chunks(2) {
423-
/// println!("{:?}", chunk);
422+
/// for win in v.chunks(2) {
423+
/// println!("{:?}", win);
424424
/// }
425425
/// ```
426426
#[stable(feature = "rust1", since = "1.0.0")]

branches/auto/src/libcore/cell.rs

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -232,18 +232,6 @@ impl<T:Copy> Cell<T> {
232232
pub fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
233233
&self.value
234234
}
235-
236-
/// Returns a mutable reference to the underlying data.
237-
///
238-
/// This call borrows `Cell` mutably (at compile-time) which guarantees
239-
/// that we possess the only reference.
240-
#[inline]
241-
#[unstable(feature = "cell_get_mut", issue = "33444")]
242-
pub fn get_mut(&mut self) -> &mut T {
243-
unsafe {
244-
&mut *self.value.get()
245-
}
246-
}
247235
}
248236

249237
#[stable(feature = "rust1", since = "1.0.0")]
@@ -467,18 +455,6 @@ impl<T: ?Sized> RefCell<T> {
467455
pub unsafe fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
468456
&self.value
469457
}
470-
471-
/// Returns a mutable reference to the underlying data.
472-
///
473-
/// This call borrows `RefCell` mutably (at compile-time) so there is no
474-
/// need for dynamic checks.
475-
#[inline]
476-
#[unstable(feature = "cell_get_mut", issue="33444")]
477-
pub fn get_mut(&mut self) -> &mut T {
478-
unsafe {
479-
&mut *self.value.get()
480-
}
481-
}
482458
}
483459

484460
#[stable(feature = "rust1", since = "1.0.0")]

branches/auto/src/libcore/iter/iterator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ pub trait Iterator {
214214
/// Like most indexing operations, the count starts from zero, so `nth(0)`
215215
/// returns the first value, `nth(1)` the second, and so on.
216216
///
217-
/// `nth()` will return `None` if `n` is greater than or equal to the length of the
217+
/// `nth()` will return `None` if `n` is larger than the length of the
218218
/// iterator.
219219
///
220220
/// # Examples
@@ -237,7 +237,7 @@ pub trait Iterator {
237237
/// assert_eq!(iter.nth(1), None);
238238
/// ```
239239
///
240-
/// Returning `None` if there are less than `n + 1` elements:
240+
/// Returning `None` if there are less than `n` elements:
241241
///
242242
/// ```
243243
/// let a = [1, 2, 3];

branches/auto/src/libcore/num/bignum.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use mem;
3333
use intrinsics;
3434

3535
/// Arithmetic operations required by bignums.
36-
pub trait FullOps: Sized {
36+
pub trait FullOps {
3737
/// Returns `(carry', v')` such that `carry' * 2^W + v' = self + other + carry`,
3838
/// where `W` is the number of bits in `Self`.
3939
fn full_add(self, other: Self, carry: bool) -> (bool /*carry*/, Self);

branches/auto/src/libcore/num/mod.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,6 @@ use slice::SliceExt;
3737
/// `wrapping_add`, or through the `Wrapping<T>` type, which says that
3838
/// all standard arithmetic operations on the underlying value are
3939
/// intended to have wrapping semantics.
40-
///
41-
/// # Examples
42-
///
43-
/// ```
44-
/// use std::num::Wrapping;
45-
///
46-
/// let zero = Wrapping(0u32);
47-
/// let one = Wrapping(1u32);
48-
///
49-
/// assert_eq!(std::u32::MAX, (zero - one).0);
50-
/// ```
5140
#[stable(feature = "rust1", since = "1.0.0")]
5241
#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default, Hash)]
5342
pub struct Wrapping<T>(#[stable(feature = "rust1", since = "1.0.0")] pub T);

branches/auto/src/librustc/dep_graph/dep_node.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ pub enum DepNode<D: Clone + Debug> {
8888
ImplOrTraitItems(D),
8989
ItemSignature(D),
9090
FieldTy(D),
91-
SizedConstraint(D),
9291
TraitItemDefIds(D),
9392
InherentImpls(D),
9493
ImplItems(D),
@@ -194,7 +193,6 @@ impl<D: Clone + Debug> DepNode<D> {
194193
ImplOrTraitItems(ref d) => op(d).map(ImplOrTraitItems),
195194
ItemSignature(ref d) => op(d).map(ItemSignature),
196195
FieldTy(ref d) => op(d).map(FieldTy),
197-
SizedConstraint(ref d) => op(d).map(SizedConstraint),
198196
TraitItemDefIds(ref d) => op(d).map(TraitItemDefIds),
199197
InherentImpls(ref d) => op(d).map(InherentImpls),
200198
ImplItems(ref d) => op(d).map(ImplItems),

branches/auto/src/librustc/dep_graph/thread.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,6 @@ pub fn main(swap_in: Receiver<Vec<DepMessage>>,
176176
DepMessage::Query => query_out.send(edges.query()).unwrap(),
177177
}
178178
}
179-
if let Err(_) = swap_out.send(messages) {
180-
// the receiver must have been dropped already
181-
break;
182-
}
179+
swap_out.send(messages).unwrap();
183180
}
184181
}

branches/auto/src/librustc/infer/mod.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -814,17 +814,6 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
814814
r
815815
}
816816

817-
// Execute `f` in a snapshot, and commit the bindings it creates
818-
pub fn in_snapshot<T, F>(&self, f: F) -> T where
819-
F: FnOnce(&CombinedSnapshot) -> T
820-
{
821-
debug!("in_snapshot()");
822-
let snapshot = self.start_snapshot();
823-
let r = f(&snapshot);
824-
self.commit_from(snapshot);
825-
r
826-
}
827-
828817
/// Execute `f` and commit only the region bindings if successful.
829818
/// The function f must be very careful not to leak any non-region
830819
/// variables that get created.

0 commit comments

Comments
 (0)