Skip to content

Commit ce3a898

Browse files
committed
---
yaml --- r: 141221 b: refs/heads/try2 c: d930b2c h: refs/heads/master i: 141219: d7fd1d6 v: v3
1 parent 62720f1 commit ce3a898

File tree

10 files changed

+107
-90
lines changed

10 files changed

+107
-90
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 264c84b892f531f968b1ab9c9b8e15f2c66cf524
8+
refs/heads/try2: d930b2cafba3784e0a2dde608f2c6eddcc285a39
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/configure

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -665,12 +665,16 @@ make_dir rt
665665
for t in $CFG_TARGET_TRIPLES
666666
do
667667
make_dir rt/$t
668-
for i in \
669-
isaac linenoise sync test \
670-
arch/i386 arch/x86_64 arch/arm arch/mips \
671-
libuv libuv/src/ares libuv/src/eio libuv/src/ev
668+
for s in 0 1 2 3
672669
do
673-
make_dir rt/$t/$i
670+
make_dir rt/$t/stage$s
671+
for i in \
672+
isaac linenoise sync test \
673+
arch/i386 arch/x86_64 arch/arm arch/mips \
674+
libuv libuv/src/ares libuv/src/eio libuv/src/ev
675+
do
676+
make_dir rt/$t/stage$s/$i
677+
done
674678
done
675679
done
676680

branches/try2/mk/rt.mk

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,19 @@ ifneq ($(strip $(findstring snap,$(MAKECMDGOALS))),)
4141
SNAP_DEFINES=-DRUST_SNAPSHOT
4242
endif
4343

44-
4544
define DEF_RUNTIME_TARGETS
4645

4746
######################################################################
4847
# Runtime (C++) library variables
4948
######################################################################
5049

51-
RUNTIME_CXXS_$(1) := \
50+
# $(1) is the target triple
51+
# $(2) is the stage number
52+
53+
RUNTIME_CFLAGS_$(1)_$(2) = -D_RUST_STAGE$(2)
54+
RUNTIME_CXXFLAGS_$(1)_$(2) = -D_RUST_STAGE$(2)
55+
56+
RUNTIME_CXXS_$(1)_$(2) := \
5257
rt/sync/timer.cpp \
5358
rt/sync/lock_and_signal.cpp \
5459
rt/sync/rust_thread.cpp \
@@ -83,70 +88,70 @@ RUNTIME_CXXS_$(1) := \
8388
rt/rust_android_dummy.cpp \
8489
rt/rust_test_helpers.cpp
8590

86-
RUNTIME_CS_$(1) := rt/linenoise/linenoise.c rt/linenoise/utf8.c
91+
RUNTIME_CS_$(1)_$(2) := rt/linenoise/linenoise.c rt/linenoise/utf8.c
8792

88-
RUNTIME_S_$(1) := rt/arch/$$(HOST_$(1))/_context.S \
89-
rt/arch/$$(HOST_$(1))/ccall.S \
90-
rt/arch/$$(HOST_$(1))/record_sp.S
93+
RUNTIME_S_$(1)_$(2) := rt/arch/$$(HOST_$(1))/_context.S \
94+
rt/arch/$$(HOST_$(1))/ccall.S \
95+
rt/arch/$$(HOST_$(1))/record_sp.S
9196

9297
ifeq ($$(CFG_WINDOWSY_$(1)), 1)
93-
LIBUV_OSTYPE_$(1) := win
94-
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
98+
LIBUV_OSTYPE_$(1)_$(2) := win
99+
LIBUV_LIB_$(1)_$(2) := rt/$(1)/stage$(2)/libuv/libuv.a
95100
else ifeq ($(OSTYPE_$(1)), apple-darwin)
96-
LIBUV_OSTYPE_$(1) := mac
97-
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
101+
LIBUV_OSTYPE_$(1)_$(2) := mac
102+
LIBUV_LIB_$(1)_$(2) := rt/$(1)/stage$(2)/libuv/libuv.a
98103
else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
99-
LIBUV_OSTYPE_$(1) := unix/freebsd
100-
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
104+
LIBUV_OSTYPE_$(1)_$(2) := unix/freebsd
105+
LIBUV_LIB_$(1)_$(2) := rt/$(1)/stage$(2)/libuv/libuv.a
101106
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
102-
LIBUV_OSTYPE_$(1) := unix/android
103-
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
107+
LIBUV_OSTYPE_$(1)_$(2) := unix/android
108+
LIBUV_LIB_$(1)_$(2) := rt/$(1)/stage$(2)/libuv/libuv.a
104109
else
105-
LIBUV_OSTYPE_$(1) := unix/linux
106-
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
110+
LIBUV_OSTYPE_$(1)_$(2) := unix/linux
111+
LIBUV_LIB_$(1)_$(2) := rt/$(1)/stage$(2)/libuv/libuv.a
107112
endif
108113

109-
RUNTIME_DEF_$(1) := rt/rustrt$(CFG_DEF_SUFFIX_$(1))
110-
RUNTIME_INCS_$(1) := -I $$(S)src/rt -I $$(S)src/rt/isaac -I $$(S)src/rt/uthash \
114+
RUNTIME_DEF_$(1)_$(2) := rt/rustrt$(CFG_DEF_SUFFIX_$(1))
115+
RUNTIME_INCS_$(1)_$(2) := -I $$(S)src/rt -I $$(S)src/rt/isaac -I $$(S)src/rt/uthash \
111116
-I $$(S)src/rt/arch/$$(HOST_$(1)) \
112117
-I $$(S)src/rt/linenoise \
113118
-I $$(S)src/libuv/include
114-
RUNTIME_OBJS_$(1) := $$(RUNTIME_CXXS_$(1):rt/%.cpp=rt/$(1)/%.o) \
115-
$$(RUNTIME_CS_$(1):rt/%.c=rt/$(1)/%.o) \
116-
$$(RUNTIME_S_$(1):rt/%.S=rt/$(1)/%.o)
117-
ALL_OBJ_FILES += $$(RUNTIME_OBJS_$(1))
119+
RUNTIME_OBJS_$(1)_$(2) := $$(RUNTIME_CXXS_$(1)_$(2):rt/%.cpp=rt/$(1)/stage$(2)/%.o) \
120+
$$(RUNTIME_CS_$(1)_$(2):rt/%.c=rt/$(1)/stage$(2)/%.o) \
121+
$$(RUNTIME_S_$(1)_$(2):rt/%.S=rt/$(1)/stage$(2)/%.o)
122+
ALL_OBJ_FILES += $$(RUNTIME_OBJS_$(1)_$(2))
118123

119-
MORESTACK_OBJ_$(1) := rt/$(1)/arch/$$(HOST_$(1))/morestack.o
120-
ALL_OBJ_FILES += $$(MORESTACK_OBJS_$(1))
124+
MORESTACK_OBJ_$(1)_$(2) := rt/$(1)/stage$(2)/arch/$$(HOST_$(1))/morestack.o
125+
ALL_OBJ_FILES += $$(MORESTACK_OBJS_$(1)_$(2))
121126

122-
RUNTIME_LIBS_$(1) := $$(LIBUV_LIB_$(1))
127+
RUNTIME_LIBS_$(1)_$(2) := $$(LIBUV_LIB_$(1)_$(2))
123128

124-
rt/$(1)/%.o: rt/%.cpp $$(MKFILE_DEPS)
129+
rt/$(1)/stage$(2)/%.o: rt/%.cpp $$(MKFILE_DEPS)
125130
@$$(call E, compile: $$@)
126-
$$(Q)$$(call CFG_COMPILE_CXX_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
127-
$$(SNAP_DEFINES)) $$<
131+
$$(Q)$$(call CFG_COMPILE_CXX_$(1), $$@, $$(RUNTIME_INCS_$(1)_$(2)) \
132+
$$(SNAP_DEFINES) $$(RUNTIME_CXXFLAGS_$(1)_$(2))) $$<
128133

129-
rt/$(1)/%.o: rt/%.c $$(MKFILE_DEPS)
134+
rt/$(1)/stage$(2)/%.o: rt/%.c $$(MKFILE_DEPS)
130135
@$$(call E, compile: $$@)
131-
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
132-
$$(SNAP_DEFINES)) $$<
136+
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1)_$(2)) \
137+
$$(SNAP_DEFINES) $$(RUNTIME_CFLAGS_$(1)_$(2))) $$<
133138

134-
rt/$(1)/%.o: rt/%.S $$(MKFILE_DEPS) \
139+
rt/$(1)/stage$(2)/%.o: rt/%.S $$(MKFILE_DEPS) \
135140
$$(LLVM_CONFIG_$$(CFG_BUILD_TRIPLE))
136141
@$$(call E, compile: $$@)
137142
$$(Q)$$(call CFG_ASSEMBLE_$(1),$$@,$$<)
138143

139-
rt/$(1)/arch/$$(HOST_$(1))/libmorestack.a: $$(MORESTACK_OBJ_$(1))
144+
rt/$(1)/stage$(2)/arch/$$(HOST_$(1))/libmorestack.a: $$(MORESTACK_OBJ_$(1)_$(2))
140145
@$$(call E, link: $$@)
141146
$$(Q)$(AR_$(1)) rcs $$@ $$<
142147

143-
rt/$(1)/$(CFG_RUNTIME_$(1)): $$(RUNTIME_OBJS_$(1)) $$(MKFILE_DEPS) \
144-
$$(RUNTIME_DEF_$(1)) \
145-
$$(RUNTIME_LIBS_$(1))
148+
rt/$(1)/stage$(2)/$(CFG_RUNTIME_$(1)): $$(RUNTIME_OBJS_$(1)_$(2)) $$(MKFILE_DEPS) \
149+
$$(RUNTIME_DEF_$(1)_$(2)) \
150+
$$(RUNTIME_LIBS_$(1)_$(2))
146151
@$$(call E, link: $$@)
147-
$$(Q)$$(call CFG_LINK_CXX_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \
148-
$$(CFG_GCCISH_POST_LIB_FLAGS_$(1)) $$(RUNTIME_LIBS_$(1)) \
149-
$$(CFG_LIBUV_LINK_FLAGS_$(1)),$$(RUNTIME_DEF_$(1)),$$(CFG_RUNTIME_$(1)))
152+
$$(Q)$$(call CFG_LINK_CXX_$(1),$$@, $$(RUNTIME_OBJS_$(1)_$(2)) \
153+
$$(CFG_GCCISH_POST_LIB_FLAGS_$(1)) $$(RUNTIME_LIBS_$(1)_$(2)) \
154+
$$(CFG_LIBUV_LINK_FLAGS_$(1)),$$(RUNTIME_DEF_$(1)_$(2)),$$(CFG_RUNTIME_$(1)))
150155

151156
# FIXME: For some reason libuv's makefiles can't figure out the
152157
# correct definition of CC on the mingw I'm using, so we are
@@ -165,32 +170,32 @@ endif
165170

166171
# XXX: Shouldn't need platform-specific conditions here
167172
ifdef CFG_WINDOWSY_$(1)
168-
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
173+
$$(LIBUV_LIB_$(1)_$(2)): $$(LIBUV_DEPS)
169174
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
170-
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
175+
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/stage$(2)/libuv" \
171176
OS=mingw \
172177
V=$$(VERBOSE)
173178
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
174-
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
179+
$$(LIBUV_LIB_$(1)_$(2)): $$(LIBUV_DEPS)
175180
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
176181
CFLAGS="$$(CFG_GCCISH_CFLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
177182
LDFLAGS="$$(CFG_GCCISH_LINK_FLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1)))" \
178183
CC="$$(CC_$(1))" \
179184
CXX="$$(CXX_$(1))" \
180185
AR="$$(AR_$(1))" \
181186
BUILDTYPE=Release \
182-
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
187+
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/stage$(2)/libuv" \
183188
host=android OS=linux \
184189
V=$$(VERBOSE)
185190
else
186-
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
191+
$$(LIBUV_LIB_$(1)_$(2)): $$(LIBUV_DEPS)
187192
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
188193
CFLAGS="$$(CFG_GCCISH_CFLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
189194
LDFLAGS="$$(CFG_GCCISH_LINK_FLAGS) $$(LIBUV_FLAGS_$$(HOST_$(1)))" \
190195
CC="$$(CC_$(1))" \
191196
CXX="$$(CXX_$(1))" \
192197
AR="$$(AR_$(1))" \
193-
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
198+
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/stage$(2)/libuv" \
194199
V=$$(VERBOSE)
195200
endif
196201

@@ -229,5 +234,6 @@ endif
229234
endef
230235

231236
# Instantiate template for all stages
232-
$(foreach target,$(CFG_TARGET_TRIPLES), \
233-
$(eval $(call DEF_RUNTIME_TARGETS,$(target))))
237+
$(foreach stage,$(STAGES), \
238+
$(foreach target,$(CFG_TARGET_TRIPLES), \
239+
$(eval $(call DEF_RUNTIME_TARGETS,$(target),$(stage)))))

branches/try2/mk/target.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
define TARGET_STAGE_N
1919

2020
$$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a: \
21-
rt/$(2)/arch/$$(HOST_$(2))/libmorestack.a \
21+
rt/$(2)/stage$(1)/arch/$$(HOST_$(2))/libmorestack.a \
2222
| $$(TLIB$(1)_T_$(2)_H_$(3))/
2323
@$$(call E, cp: $$@)
2424
$$(Q)cp $$< $$@
2525

2626
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME_$(2)): \
27-
rt/$(2)/$(CFG_RUNTIME_$(2)) \
27+
rt/$(2)/stage$(1)/$(CFG_RUNTIME_$(2)) \
2828
| $$(TLIB$(1)_T_$(2)_H_$(3))/
2929
@$$(call E, cp: $$@)
3030
$$(Q)cp $$< $$@

branches/try2/src/libextra/arc.rs

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ pub impl<'self> Condvar<'self> {
107107
****************************************************************************/
108108

109109
/// An atomically reference counted wrapper for shared immutable state.
110-
struct ARC<T> { x: UnsafeAtomicRcBox<T> }
110+
pub struct ARC<T> { x: UnsafeAtomicRcBox<T> }
111111

112112
/// Create an atomically reference counted wrapper.
113113
pub fn ARC<T:Const + Owned>(data: T) -> ARC<T> {
@@ -118,29 +118,22 @@ pub fn ARC<T:Const + Owned>(data: T) -> ARC<T> {
118118
* Access the underlying data in an atomically reference counted
119119
* wrapper.
120120
*/
121-
pub fn get<'a, T:Const + Owned>(rc: &'a ARC<T>) -> &'a T {
122-
rc.get()
123-
}
124-
125-
impl<T:Const+Owned> ARC<T> {
126-
pub fn get<'a>(&'a self) -> &'a T {
121+
pub impl<T:Const+Owned> ARC<T> {
122+
fn get<'a>(&'a self) -> &'a T {
127123
unsafe { &*self.x.get_immut() }
128124
}
129125
}
126+
130127
/**
131128
* Duplicate an atomically reference counted wrapper.
132129
*
133130
* The resulting two `arc` objects will point to the same underlying data
134131
* object. However, one of the `arc` objects can be sent to another task,
135132
* allowing them to share the underlying data.
136133
*/
137-
pub fn clone<T:Const + Owned>(rc: &ARC<T>) -> ARC<T> {
138-
ARC { x: rc.x.clone() }
139-
}
140-
141134
impl<T:Const + Owned> Clone for ARC<T> {
142135
fn clone(&self) -> ARC<T> {
143-
clone(self)
136+
ARC { x: self.x.clone() }
144137
}
145138
}
146139

@@ -512,34 +505,31 @@ pub impl<'self, T:Const + Owned> RWReadMode<'self, T> {
512505
#[cfg(test)]
513506
mod tests {
514507
use core::prelude::*;
515-
508+
use core::cell::Cell;
516509
use arc::*;
517510
use arc;
518511

519-
use core::cell::Cell;
520-
use core::task;
521-
522512
#[test]
523513
fn manually_share_arc() {
524514
let v = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
525-
let arc_v = arc::ARC(v);
515+
let arc_v = ARC(v);
526516

527517
let (p, c) = comm::stream();
528518

529519
do task::spawn() || {
530520
let p = comm::PortSet::new();
531521
c.send(p.chan());
532522

533-
let arc_v = p.recv();
523+
let arc_v : ARC<~[int]> = p.recv();
534524

535-
let v = copy *arc::get::<~[int]>(&arc_v);
525+
let v = copy (*arc_v.get());
536526
assert_eq!(v[3], 4);
537527
};
538528

539529
let c = p.recv();
540-
c.send(arc::clone(&arc_v));
530+
c.send(arc_v.clone());
541531

542-
assert_eq!((*arc::get(&arc_v))[2], 3);
532+
assert_eq!(arc_v.get()[2], 3);
543533
assert_eq!(arc_v.get()[4], 5);
544534

545535
info!(arc_v);

branches/try2/src/librustc/front/config.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,10 @@ fn fold_block(
136136
) -> ast::blk_ {
137137
let filtered_stmts =
138138
b.stmts.filter_mapped(|a| filter_stmt(cx, *a));
139+
let filtered_view_items =
140+
b.view_items.filter_mapped(|a| filter_view_item(cx, *a));
139141
ast::blk_ {
140-
view_items: /*bad*/copy b.view_items,
142+
view_items: vec::map(filtered_view_items, |x| fld.fold_view_item(*x)),
141143
stmts: vec::map(filtered_stmts, |x| fld.fold_stmt(*x)),
142144
expr: b.expr.map(|x| fld.fold_expr(*x)),
143145
id: b.id,

branches/try2/src/test/bench/graph500-bfs.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// xfail-pretty
22

3-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
3+
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
44
// file at the top-level directory of this distribution and at
55
// http://rust-lang.org/COPYRIGHT.
66
//
@@ -234,7 +234,7 @@ fn pbfs(graph: &arc::ARC<graph>, key: node_id) -> bfs_result {
234234
black(node_id)
235235
};
236236

237-
let graph_vec = arc::get(graph); // FIXME #3387 requires this temp
237+
let graph_vec = graph.get(); // FIXME #3387 requires this temp
238238
let mut colors = do vec::from_fn(graph_vec.len()) |i| {
239239
if i as node_id == key {
240240
gray(key)
@@ -266,13 +266,13 @@ fn pbfs(graph: &arc::ARC<graph>, key: node_id) -> bfs_result {
266266

267267
let color = arc::ARC(colors);
268268

269-
let color_vec = arc::get(&color); // FIXME #3387 requires this temp
269+
let color_vec = color.get(); // FIXME #3387 requires this temp
270270
colors = do par::mapi(*color_vec) {
271-
let colors = arc::clone(&color);
272-
let graph = arc::clone(graph);
271+
let colors = color.clone();
272+
let graph = graph.clone();
273273
let result: ~fn(x: uint, y: &color) -> color = |i, c| {
274-
let colors = arc::get(&colors);
275-
let graph = arc::get(&graph);
274+
let colors = colors.get();
275+
let graph = graph.get();
276276
match *c {
277277
white => {
278278
let i = i as node_id;

branches/try2/src/test/compile-fail/no-capture-arc.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -18,11 +18,11 @@ fn main() {
1818
let arc_v = arc::ARC(v);
1919

2020
do task::spawn() {
21-
let v = *arc::get(&arc_v);
21+
let v = arc_v.get();
2222
assert_eq!(v[3], 4);
2323
};
2424

25-
assert_eq!((*arc::get(&arc_v))[2], 3);
25+
assert_eq!((arc_v.get())[2], 3);
2626

2727
info!(arc_v);
2828
}

branches/try2/src/test/compile-fail/no-reuse-move-arc.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -16,11 +16,11 @@ fn main() {
1616
let arc_v = arc::ARC(v);
1717

1818
do task::spawn() { //~ NOTE `arc_v` moved into closure environment here
19-
let v = *arc::get(&arc_v);
19+
let v = arc_v.get();
2020
assert_eq!(v[3], 4);
2121
};
2222

23-
assert!((*arc::get(&arc_v))[2] == 3); //~ ERROR use of moved value: `arc_v`
23+
assert_eq!((arc_v.get())[2], 3); //~ ERROR use of moved value: `arc_v`
2424

2525
info!(arc_v);
2626
}

0 commit comments

Comments
 (0)