Skip to content

Commit e7514a6

Browse files
committed
---
yaml --- r: 277694 b: refs/heads/try c: 04f2972 h: refs/heads/master
1 parent 63543d1 commit e7514a6

File tree

444 files changed

+4511
-2708
lines changed

Some content is hidden

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

444 files changed

+4511
-2708
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: 8facc977114dd80be031d2de94d66d87126aab5f
4+
refs/heads/try: 04f2972d14b955a821ef0a76d0b9e64106abef57
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/mk/ctags.mk

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

1616
.PHONY: TAGS.emacs TAGS.vi
1717

18-
CTAGS_LOCATIONS=$(wildcard ${CFG_SRC_DIR}src/lib*)
18+
CTAGS_RUSTC_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
19+
$(wildcard ${CFG_SRC_DIR}src/lib*)) ${CFG_SRC_DIR}src/libtest
1920
CTAGS_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/librust%,, \
2021
$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
2122
$(wildcard ${CFG_SRC_DIR}src/lib*))) ${CFG_SRC_DIR}src/libtest
22-
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse ${CTAGS_LOCATIONS}
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}
2327

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

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

branches/try/mk/debuggers.mk

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

4242

4343
## ALL ##
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)
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))
4851
DEBUGGER_BIN_SCRIPTS_ALL=$(DEBUGGER_BIN_SCRIPTS_GDB) \
4952
$(DEBUGGER_BIN_SCRIPTS_LLDB)
5053
DEBUGGER_BIN_SCRIPTS_ALL_ABS=$(DEBUGGER_BIN_SCRIPTS_GDB_ABS) \

branches/try/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,$(1)),none,$(if $(findstring darwin,$(1)),lldb,gdb))
393+
$(if $(findstring windows-msvc,$(1)),none,all)
394394

395395
STAGES = 0 1 2 3
396396

branches/try/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 = $(word 1,$(1:ccache=))
172+
FIND_COMPILER = $(strip $(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) = '$$(CC_$(1))' \
190+
CFG_COMPILE_C_$(1) = '$$(call FIND_COMPILER,$$(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) = '$$(CXX_$(1))' \
201+
CFG_COMPILE_CXX_$(1) = '$$(call FIND_COMPILER,$$(CXX_$(1)))' \
202202
$$(CXXFLAGS) \
203203
$$(CFG_GCCISH_CFLAGS) \
204204
$$(CFG_GCCISH_CXXFLAGS) \

branches/try/mk/tests.mk

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -616,13 +616,12 @@ 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/ \
626625
--stage-id stage$(1)-$(2) \
627626
--target $(2) \
628627
--host $(3) \
@@ -636,11 +635,11 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
636635
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
637636
--lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
638637
--target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
639-
--cc '$$(CC_$(3))' \
640-
--cxx '$$(CXX_$(3))' \
641-
--cflags "$$(CFG_GCCISH_CFLAGS_$(3))" \
642-
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(3))" \
643-
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(3))" \
638+
--cc '$$(call FIND_COMPILER,$$(CC_$(2)))' \
639+
--cxx '$$(call FIND_COMPILER,$$(CXX_$(2)))' \
640+
--cflags "$$(CFG_GCCISH_CFLAGS_$(2))" \
641+
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(2))" \
642+
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(2))" \
644643
$$(CTEST_TESTARGS)
645644

646645
ifdef CFG_VALGRIND_RPASS
@@ -686,7 +685,7 @@ $(foreach host,$(CFG_HOST), \
686685

687686
define DEF_RUN_COMPILETEST
688687

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

780779
define DEF_RUN_PRETTY_TEST
781780

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

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ 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"));
7473
cmd.arg("--build-base").arg(testdir(build, compiler.host).join(suite));
7574
cmd.arg("--stage-id").arg(format!("stage{}-{}", compiler.stage, target));
7675
cmd.arg("--mode").arg(mode);

branches/try/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") {
220+
if host.contains("windows-msvc") {
221221
// no debugger scripts
222-
} else if host.contains("darwin") {
223-
// lldb debugger scripts
224-
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
225-
0o755);
226-
227-
cp_debugger_script("lldb_rust_formatters.py");
228-
cp_debugger_script("debugger_pretty_printers_common.py");
229222
} else {
223+
cp_debugger_script("debugger_pretty_printers_common.py");
224+
230225
// gdb debugger scripts
231226
install(&build.src.join("src/etc/rust-gdb"), &sysroot.join("bin"),
232227
0o755);
233228

234229
cp_debugger_script("gdb_load_rust_pretty_printers.py");
235230
cp_debugger_script("gdb_rust_pretty_printing.py");
236-
cp_debugger_script("debugger_pretty_printers_common.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");
237237
}
238238
}
239239

branches/try/src/libcore/cell.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,18 @@ 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+
}
235247
}
236248

237249
#[stable(feature = "rust1", since = "1.0.0")]
@@ -455,6 +467,18 @@ impl<T: ?Sized> RefCell<T> {
455467
pub unsafe fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
456468
&self.value
457469
}
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+
}
458482
}
459483

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

branches/try/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 {
36+
pub trait FullOps: Sized {
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/try/src/libcore/num/wrapping.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,15 @@ macro_rules! wrapping_impl {
275275
*self = *self & other;
276276
}
277277
}
278+
279+
#[stable(feature = "wrapping_neg", since = "1.10.0")]
280+
impl Neg for Wrapping<$t> {
281+
type Output = Self;
282+
#[inline(always)]
283+
fn neg(self) -> Self {
284+
Wrapping(0) - self
285+
}
286+
}
278287
)*)
279288
}
280289

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub enum DepNode<D: Clone + Debug> {
8888
ImplOrTraitItems(D),
8989
ItemSignature(D),
9090
FieldTy(D),
91+
SizedConstraint(D),
9192
TraitItemDefIds(D),
9293
InherentImpls(D),
9394
ImplItems(D),
@@ -193,6 +194,7 @@ impl<D: Clone + Debug> DepNode<D> {
193194
ImplOrTraitItems(ref d) => op(d).map(ImplOrTraitItems),
194195
ItemSignature(ref d) => op(d).map(ItemSignature),
195196
FieldTy(ref d) => op(d).map(FieldTy),
197+
SizedConstraint(ref d) => op(d).map(SizedConstraint),
196198
TraitItemDefIds(ref d) => op(d).map(TraitItemDefIds),
197199
InherentImpls(ref d) => op(d).map(InherentImpls),
198200
ImplItems(ref d) => op(d).map(ImplItems),

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

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

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,17 @@ 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+
817828
/// Execute `f` and commit only the region bindings if successful.
818829
/// The function f must be very careful not to leak any non-region
819830
/// variables that get created.

branches/try/src/librustc/lint/builtin.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,18 @@ declare_lint! {
185185
"detects super or self keywords at the beginning of global path"
186186
}
187187

188+
declare_lint! {
189+
pub UNSIZED_IN_TUPLE,
190+
Warn,
191+
"unsized types in the interior of a tuple were erroneously allowed"
192+
}
193+
194+
declare_lint! {
195+
pub OBJECT_UNSAFE_FRAGMENT,
196+
Warn,
197+
"object-unsafe non-principal fragments in object types were erroneously allowed"
198+
}
199+
188200
/// Does nothing as a lint pass, but registers some `Lint`s
189201
/// which are used by other parts of the compiler.
190202
#[derive(Copy, Clone)]
@@ -220,7 +232,9 @@ impl LintPass for HardwiredLints {
220232
TRANSMUTE_FROM_FN_ITEM_TYPES,
221233
OVERLAPPING_INHERENT_IMPLS,
222234
RENAMED_AND_REMOVED_LINTS,
223-
SUPER_OR_SELF_IN_GLOBAL_PATH
235+
SUPER_OR_SELF_IN_GLOBAL_PATH,
236+
UNSIZED_IN_TUPLE,
237+
OBJECT_UNSAFE_FRAGMENT
224238
)
225239
}
226240
}

branches/try/src/librustc/middle/free_region.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ impl FreeRegionMap {
5656
match *predicate {
5757
ty::Predicate::Projection(..) |
5858
ty::Predicate::Trait(..) |
59+
ty::Predicate::Rfc1592(..) |
5960
ty::Predicate::Equate(..) |
6061
ty::Predicate::WellFormed(..) |
6162
ty::Predicate::ObjectSafe(..) |

0 commit comments

Comments
 (0)