about summary refs log tree commit diff
path: root/src/test/pretty
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2016-06-17 10:05:19 +0100
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2016-06-17 10:05:19 +0100
commit9de2de1d217c1af856d8f323d2e36a19da5ff8bb (patch)
treef41a7133560844d37618dda2a0ea716a33f710a0 /src/test/pretty
parentbe203ac258365a2fb85a40314708d26112c40381 (diff)
downloadrust-9de2de1d217c1af856d8f323d2e36a19da5ff8bb.tar.gz
rust-9de2de1d217c1af856d8f323d2e36a19da5ff8bb.zip
Pretty-print attributes on tuple structs and add tests
This adds support to the pretty printer to print attributes
added to tuple struct elements.  Furthermore, it adds a test
that makes sure we will print attributes on all variant data
types.
Diffstat (limited to 'src/test/pretty')
-rw-r--r--src/test/pretty/attr-variant-data.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/test/pretty/attr-variant-data.rs b/src/test/pretty/attr-variant-data.rs
new file mode 100644
index 00000000000..1ffacaa9f5a
--- /dev/null
+++ b/src/test/pretty/attr-variant-data.rs
@@ -0,0 +1,51 @@
+// Copyright 2012 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.
+
+// pp-exact
+// Testing that both the inner item and next outer item are
+// preserved, and that the first outer item parsed in main is not
+// accidentally carried over to each inner function
+
+#![feature(custom_attribute)]
+#![feature(custom_derive)]
+
+#[derive(Serialize, Deserialize)]
+struct X;
+
+#[derive(Serialize, Deserialize)]
+struct WithRef<'a, T: 'a> {
+    #[serde(skip_deserializing)]
+    t: Option<&'a T>,
+    #[serde(serialize_with = "ser_x", deserialize_with = "de_x")]
+    x: X,
+}
+
+#[derive(Serialize, Deserialize)]
+enum EnumWith<T> {
+    Unit,
+    Newtype(
+            #[serde(serialize_with = "ser_x", deserialize_with = "de_x")]
+            X),
+    Tuple(T,
+          #[serde(serialize_with = "ser_x", deserialize_with = "de_x")]
+          X),
+    Struct {
+        t: T,
+        #[serde(serialize_with = "ser_x", deserialize_with = "de_x")]
+        x: X,
+    },
+}
+
+#[derive(Serialize, Deserialize)]
+struct Tuple<T>(T,
+                #[serde(serialize_with = "ser_x", deserialize_with = "de_x")]
+                X);
+
+fn main() { }