about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonathan Turner <jonathandturner@users.noreply.github.com>2016-10-06 08:35:42 -0700
committerGitHub <noreply@github.com>2016-10-06 08:35:42 -0700
commit5dcd71f8abb4b46f3fe0f3dd363261d914f02382 (patch)
treeaaea17e7451e2eb23e738721c8ea4f61103dfd71
parent91106f7cc390434f91ac01070dcae8eecd8d909e (diff)
parentf320004a1b17d14f231410dc8238e425751539f0 (diff)
downloadrust-5dcd71f8abb4b46f3fe0f3dd363261d914f02382.tar.gz
rust-5dcd71f8abb4b46f3fe0f3dd363261d914f02382.zip
Rollup merge of #36932 - michaelwoerister:type-alias-dep-graph-test, r=nikomatsakis
incr.comp.: Add test case for dependency graph of type aliases.

r? @nikomatsakis
-rw-r--r--src/test/compile-fail/dep-graph-type-alias.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/test/compile-fail/dep-graph-type-alias.rs b/src/test/compile-fail/dep-graph-type-alias.rs
new file mode 100644
index 00000000000..80cc9e71c7a
--- /dev/null
+++ b/src/test/compile-fail/dep-graph-type-alias.rs
@@ -0,0 +1,56 @@
+// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+
+// Test that changing what a `type` points to does not go unnoticed.
+
+// compile-flags: -Z query-dep-graph
+
+#![feature(rustc_attrs)]
+#![allow(dead_code)]
+#![allow(unused_variables)]
+
+fn main() { }
+
+
+#[rustc_if_this_changed]
+type TypeAlias = u32;
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+struct Struct {
+    x: TypeAlias,
+    y: u32
+}
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+enum Enum {
+    Variant1(TypeAlias),
+    Variant2(i32)
+}
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+trait Trait {
+    fn method(&self, _: TypeAlias);
+}
+
+struct SomeType;
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+impl SomeType {
+    fn method(&self, _: TypeAlias) {}
+}
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+type TypeAlias2 = TypeAlias;
+
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+fn function(_: TypeAlias) {
+
+}