forked from mirrors/gecko-dev
		
	This pulls syn and quote 1.0, but after talking with heycam it seems ok. --HG-- rename : third_party/rust/proc-macro2/.cargo-checksum.json => third_party/rust/proc-macro2-0.4.27/.cargo-checksum.json rename : third_party/rust/proc-macro2/Cargo.toml => third_party/rust/proc-macro2-0.4.27/Cargo.toml rename : third_party/rust/proc-macro2/README.md => third_party/rust/proc-macro2-0.4.27/README.md rename : third_party/rust/proc-macro2/build.rs => third_party/rust/proc-macro2-0.4.27/build.rs rename : third_party/rust/proc-macro2/src/fallback.rs => third_party/rust/proc-macro2-0.4.27/src/fallback.rs rename : third_party/rust/proc-macro2/src/lib.rs => third_party/rust/proc-macro2-0.4.27/src/lib.rs rename : third_party/rust/proc-macro2/src/strnom.rs => third_party/rust/proc-macro2-0.4.27/src/strnom.rs rename : third_party/rust/proc-macro2/src/wrapper.rs => third_party/rust/proc-macro2-0.4.27/src/wrapper.rs rename : third_party/rust/proc-macro2/tests/marker.rs => third_party/rust/proc-macro2-0.4.27/tests/marker.rs rename : third_party/rust/proc-macro2/tests/test.rs => third_party/rust/proc-macro2-0.4.27/tests/test.rs rename : third_party/rust/quote/.cargo-checksum.json => third_party/rust/quote-0.6.11/.cargo-checksum.json rename : third_party/rust/quote/Cargo.toml => third_party/rust/quote-0.6.11/Cargo.toml rename : third_party/rust/quote/README.md => third_party/rust/quote-0.6.11/README.md rename : third_party/rust/quote/src/ext.rs => third_party/rust/quote-0.6.11/src/ext.rs rename : third_party/rust/quote/src/lib.rs => third_party/rust/quote-0.6.11/src/lib.rs rename : third_party/rust/quote/src/to_tokens.rs => third_party/rust/quote-0.6.11/src/to_tokens.rs rename : third_party/rust/quote/tests/conditional/integer128.rs => third_party/rust/quote-0.6.11/tests/conditional/integer128.rs rename : third_party/rust/quote/tests/test.rs => third_party/rust/quote-0.6.11/tests/test.rs rename : third_party/rust/syn/.cargo-checksum.json => third_party/rust/syn-0.15.30/.cargo-checksum.json rename : third_party/rust/syn/Cargo.toml => third_party/rust/syn-0.15.30/Cargo.toml rename : third_party/rust/syn/README.md => third_party/rust/syn-0.15.30/README.md rename : third_party/rust/syn/build.rs => third_party/rust/syn-0.15.30/build.rs rename : third_party/rust/syn/src/attr.rs => third_party/rust/syn-0.15.30/src/attr.rs rename : third_party/rust/syn/src/buffer.rs => third_party/rust/syn-0.15.30/src/buffer.rs rename : third_party/rust/syn/src/data.rs => third_party/rust/syn-0.15.30/src/data.rs rename : third_party/rust/syn/src/derive.rs => third_party/rust/syn-0.15.30/src/derive.rs rename : third_party/rust/syn/src/error.rs => third_party/rust/syn-0.15.30/src/error.rs rename : third_party/rust/syn/src/export.rs => third_party/rust/syn-0.15.30/src/export.rs rename : third_party/rust/syn/src/expr.rs => third_party/rust/syn-0.15.30/src/expr.rs rename : third_party/rust/syn/src/ext.rs => third_party/rust/syn-0.15.30/src/ext.rs rename : third_party/rust/syn/src/file.rs => third_party/rust/syn-0.15.30/src/file.rs rename : third_party/rust/syn/src/gen/fold.rs => third_party/rust/syn-0.15.30/src/gen/fold.rs rename : third_party/rust/syn/src/gen/visit.rs => third_party/rust/syn-0.15.30/src/gen/visit.rs rename : third_party/rust/syn/src/gen/visit_mut.rs => third_party/rust/syn-0.15.30/src/gen/visit_mut.rs rename : third_party/rust/syn/src/gen_helper.rs => third_party/rust/syn-0.15.30/src/gen_helper.rs rename : third_party/rust/syn/src/generics.rs => third_party/rust/syn-0.15.30/src/generics.rs rename : third_party/rust/syn/src/group.rs => third_party/rust/syn-0.15.30/src/group.rs rename : third_party/rust/syn/src/ident.rs => third_party/rust/syn-0.15.30/src/ident.rs rename : third_party/rust/syn/src/item.rs => third_party/rust/syn-0.15.30/src/item.rs rename : third_party/rust/syn/src/keyword.rs => third_party/rust/syn-0.15.30/src/keyword.rs rename : third_party/rust/syn/src/lib.rs => third_party/rust/syn-0.15.30/src/lib.rs rename : third_party/rust/syn/src/lifetime.rs => third_party/rust/syn-0.15.30/src/lifetime.rs rename : third_party/rust/syn/src/lit.rs => third_party/rust/syn-0.15.30/src/lit.rs rename : third_party/rust/syn/src/lookahead.rs => third_party/rust/syn-0.15.30/src/lookahead.rs rename : third_party/rust/syn/src/mac.rs => third_party/rust/syn-0.15.30/src/mac.rs rename : third_party/rust/syn/src/macros.rs => third_party/rust/syn-0.15.30/src/macros.rs rename : third_party/rust/syn/src/op.rs => third_party/rust/syn-0.15.30/src/op.rs rename : third_party/rust/syn/src/parse.rs => third_party/rust/syn-0.15.30/src/parse.rs rename : third_party/rust/syn/src/parse_macro_input.rs => third_party/rust/syn-0.15.30/src/parse_macro_input.rs rename : third_party/rust/syn/src/parse_quote.rs => third_party/rust/syn-0.15.30/src/parse_quote.rs rename : third_party/rust/syn/src/path.rs => third_party/rust/syn-0.15.30/src/path.rs rename : third_party/rust/syn/src/print.rs => third_party/rust/syn-0.15.30/src/print.rs rename : third_party/rust/syn/src/punctuated.rs => third_party/rust/syn-0.15.30/src/punctuated.rs rename : third_party/rust/syn/src/spanned.rs => third_party/rust/syn-0.15.30/src/spanned.rs rename : third_party/rust/syn/src/thread.rs => third_party/rust/syn-0.15.30/src/thread.rs rename : third_party/rust/syn/src/token.rs => third_party/rust/syn-0.15.30/src/token.rs rename : third_party/rust/syn/src/tt.rs => third_party/rust/syn-0.15.30/src/tt.rs rename : third_party/rust/syn/src/ty.rs => third_party/rust/syn-0.15.30/src/ty.rs rename : third_party/rust/synstructure/.cargo-checksum.json => third_party/rust/synstructure-0.10.1/.cargo-checksum.json rename : third_party/rust/synstructure/Cargo.toml => third_party/rust/synstructure-0.10.1/Cargo.toml rename : third_party/rust/synstructure/README.md => third_party/rust/synstructure-0.10.1/README.md rename : third_party/rust/synstructure/src/lib.rs => third_party/rust/synstructure-0.10.1/src/lib.rs rename : third_party/rust/synstructure/src/macros.rs => third_party/rust/synstructure-0.10.1/src/macros.rs rename : third_party/rust/unicode-xid/.cargo-checksum.json => third_party/rust/unicode-xid-0.1.0/.cargo-checksum.json rename : third_party/rust/unicode-xid/Cargo.toml => third_party/rust/unicode-xid-0.1.0/Cargo.toml rename : third_party/rust/unicode-xid/README.md => third_party/rust/unicode-xid-0.1.0/README.md rename : third_party/rust/unicode-xid/scripts/unicode.py => third_party/rust/unicode-xid-0.1.0/scripts/unicode.py rename : third_party/rust/unicode-xid/src/lib.rs => third_party/rust/unicode-xid-0.1.0/src/lib.rs rename : third_party/rust/unicode-xid/src/tables.rs => third_party/rust/unicode-xid-0.1.0/src/tables.rs rename : third_party/rust/unicode-xid/src/tests.rs => third_party/rust/unicode-xid-0.1.0/src/tests.rs
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
use proc_macro2::*;
 | 
						|
 | 
						|
macro_rules! assert_impl {
 | 
						|
    ($ty:ident is $($marker:ident) and +) => {
 | 
						|
        #[test]
 | 
						|
        #[allow(non_snake_case)]
 | 
						|
        fn $ty() {
 | 
						|
            fn assert_implemented<T: $($marker +)+>() {}
 | 
						|
            assert_implemented::<$ty>();
 | 
						|
        }
 | 
						|
    };
 | 
						|
 | 
						|
    ($ty:ident is not $($marker:ident) or +) => {
 | 
						|
        #[test]
 | 
						|
        #[allow(non_snake_case)]
 | 
						|
        fn $ty() {
 | 
						|
            $(
 | 
						|
                {
 | 
						|
                    // Implemented for types that implement $marker.
 | 
						|
                    trait IsNotImplemented {
 | 
						|
                        fn assert_not_implemented() {}
 | 
						|
                    }
 | 
						|
                    impl<T: $marker> IsNotImplemented for T {}
 | 
						|
 | 
						|
                    // Implemented for the type being tested.
 | 
						|
                    trait IsImplemented {
 | 
						|
                        fn assert_not_implemented() {}
 | 
						|
                    }
 | 
						|
                    impl IsImplemented for $ty {}
 | 
						|
 | 
						|
                    // If $ty does not implement $marker, there is no ambiguity
 | 
						|
                    // in the following trait method call.
 | 
						|
                    <$ty>::assert_not_implemented();
 | 
						|
                }
 | 
						|
            )+
 | 
						|
        }
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
assert_impl!(Delimiter is Send and Sync);
 | 
						|
assert_impl!(Spacing is Send and Sync);
 | 
						|
 | 
						|
assert_impl!(Group is not Send or Sync);
 | 
						|
assert_impl!(Ident is not Send or Sync);
 | 
						|
assert_impl!(LexError is not Send or Sync);
 | 
						|
assert_impl!(Literal is not Send or Sync);
 | 
						|
assert_impl!(Punct is not Send or Sync);
 | 
						|
assert_impl!(Span is not Send or Sync);
 | 
						|
assert_impl!(TokenStream is not Send or Sync);
 | 
						|
assert_impl!(TokenTree is not Send or Sync);
 | 
						|
 | 
						|
#[cfg(procmacro2_semver_exempt)]
 | 
						|
mod semver_exempt {
 | 
						|
    use super::*;
 | 
						|
 | 
						|
    assert_impl!(LineColumn is Send and Sync);
 | 
						|
 | 
						|
    assert_impl!(SourceFile is not Send or Sync);
 | 
						|
}
 |