156 lines
3.9 KiB
Rust
156 lines
3.9 KiB
Rust
// Test of lots of random stuff.
|
|
// FIXME split this into multiple, self-contained tests.
|
|
|
|
|
|
#[attr1]
|
|
extern crate foo;
|
|
#[attr2]
|
|
#[attr3]
|
|
extern crate foo;
|
|
#[attr1]
|
|
extern crate foo;
|
|
#[attr2]
|
|
#[attr3]
|
|
extern crate foo;
|
|
|
|
use std::cell::*;
|
|
use std::{self, any, ascii, borrow, boxed, char, borrow, boxed, char, borrow,
|
|
borrow, boxed, char, borrow, boxed, char, borrow, boxed, char,
|
|
borrow, boxed, char, borrow, boxed, char, borrow, boxed, char,
|
|
borrow, boxed, char, borrow, boxed, char};
|
|
|
|
mod doc;
|
|
mod other;
|
|
|
|
|
|
// sfdgfffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff
|
|
|
|
fn foo(a: isize, b: u32 /* blah blah */, c: f64) {
|
|
|
|
}
|
|
|
|
fn foo()
|
|
where 'a: 'b,
|
|
for<'a> D<'b>: 'a
|
|
{
|
|
hello!()
|
|
}
|
|
|
|
fn baz<'a: 'b, // comment on 'a
|
|
T: SomsssssssssssssssssssssssssssssssssssssssssssssssssssssseType /* comment on T */>
|
|
(a: A,
|
|
b: B, // comment on b
|
|
c: C)
|
|
-> Bob {
|
|
#[attr1]
|
|
extern crate foo;
|
|
#[attr2]
|
|
#[attr3]
|
|
extern crate foo;
|
|
#[attr1]
|
|
extern crate foo;
|
|
#[attr2]
|
|
#[attr3]
|
|
extern crate foo;
|
|
}
|
|
|
|
#[rustfmt_skip]
|
|
fn qux(a: dadsfa, // Comment 1
|
|
b: sdfasdfa, // Comment 2
|
|
c: dsfdsafa) // Comment 3
|
|
{
|
|
|
|
}
|
|
|
|
/// Blah blah blah.
|
|
impl Bar {
|
|
fn foo(&mut self,
|
|
a: sdfsdfcccccccccccccccccccccccccccccccccccccccccccccccccc, /* commen
|
|
* t on a */
|
|
b: sdfasdfsdfasfs /* closing comment */)
|
|
-> isize {
|
|
}
|
|
|
|
/// Blah blah blah.
|
|
pub fn f2(self) {
|
|
(foo, bar)
|
|
}
|
|
|
|
#[an_attribute]
|
|
fn f3(self) -> Dog {
|
|
}
|
|
}
|
|
|
|
/// The `nodes` and `edges` method each return instantiations of
|
|
/// `Cow<[T]>` to leave implementers the freedom to create
|
|
|
|
/// entirely new vectors or to pass back slices into internally owned
|
|
/// vectors.
|
|
pub trait GraphWalk<'a, N, E> {
|
|
/// Returns all the nodes in this graph.
|
|
fn nodes(&'a self) -> Nodes<'a, N>;
|
|
/// Returns all of the edges in this graph.
|
|
fn edges(&'a self) -> Edges<'a, E>;
|
|
/// The source node for `edge`.
|
|
fn source(&'a self, edge: &E) -> N;
|
|
/// The target node for `edge`.
|
|
fn target(&'a self, edge: &E) -> N;
|
|
}
|
|
|
|
/// A Doc comment
|
|
#[AnAttribute]
|
|
pub struct Foo {
|
|
#[rustfmt_skip]
|
|
f : SomeType, // Comment beside a field
|
|
f: SomeType, // Comment beside a field
|
|
// Comment on a field
|
|
g: SomeOtherType,
|
|
/// A doc comment on a field
|
|
h: AThirdType,
|
|
}
|
|
|
|
struct Bar;
|
|
|
|
// With a where clause and generics.
|
|
pub struct Foo<'a, Y: Baz>
|
|
where X: Whatever
|
|
{
|
|
f: SomeType, // Comment beside a field
|
|
}
|
|
|
|
fn main() {
|
|
for i in 0i32..4 {
|
|
println!("{}", i);
|
|
}
|
|
|
|
|
|
while true {
|
|
hello();
|
|
}
|
|
|
|
let rc = Cell::new(42usize,
|
|
42usize,
|
|
Cell::new(42usize,
|
|
remaining_widthremaining_widthremaining_widthremaining_width),
|
|
42usize);
|
|
let rc = RefCell::new(42usize, remaining_width, remaining_width); // a comment
|
|
let x = "Hello!!!!!!!!! abcd abcd abcd abcd abcd abcd\n abcd abcd abcd abcd abcd abcd abcd \
|
|
abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd \
|
|
abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd \
|
|
abcd";
|
|
}
|
|
|
|
|
|
fn struct_lits() {
|
|
let x = Bar;
|
|
// Comment
|
|
let y = Foo { a: x };
|
|
Foo { a: foo(), b: bar(), ..something };
|
|
Fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { a: foo(),
|
|
b: bar(), };
|
|
Fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { a: foo(),
|
|
b: bar(), };
|
|
|
|
Foo { a: Bar, b: foo() };
|
|
}
|