Warning, /frameworks/syntax-highlighting/autotests/folding/test.rs.fold is written in an unsupported language. File is not indexed.

0001 // Comment NOTE
0002 <beginfold id='1'>/*</beginfold id='1'> Comment FIXME ALERT
0003         <endfold id='1'>*/</endfold id='1'>
0004 
0005 // Identifiers
0006 hellóñαωΑΩµo!();
0007 HellóñαωΑΩµ::Hello;
0008 'hellóñαωΑΩµo
0009 
0010 pub use self::PathParameters::*;
0011 pub use symbol::<beginfold id='2'>{</beginfold id='2'>Ident, Symbol as Name<endfold id='2'>}</endfold id='2'>;
0012 use serialize::<beginfold id='2'>{</beginfold id='2'>self, Encoder, Decoder<endfold id='2'>}</endfold id='2'>;
0013 use std::u32;
0014 
0015 <beginfold id='3'>#[</beginfold id='3'>derive(Clone, PartialEq, Eq, Hash, Copy)<endfold id='3'>]</endfold id='3'>
0016 
0017 pub struct Lifetime <beginfold id='2'>{</beginfold id='2'>
0018         pub id: NodeId,
0019         pub span: Span,
0020         pub bounds: Vec<PathSegment>
0021 <endfold id='2'>}</endfold id='2'>
0022 
0023 impl fmt::Debug for Lifetime <beginfold id='2'>{</beginfold id='2'>
0024         fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result <beginfold id='2'>{</beginfold id='2'>
0025                 write!(f, "lifetime({}: {})", self.id, pprust::lifetime_to_string(self))
0026         <endfold id='2'>}</endfold id='2'>
0027 <endfold id='2'>}</endfold id='2'>
0028 impl<'a> PartialEq<&'a str> for Path <beginfold id='2'>{</beginfold id='2'>
0029         fn eq(&self, string: &&'a str) -> bool <beginfold id='2'>{</beginfold id='2'>
0030                 self.segments.len() == 1 && self.segments<beginfold id='4'>[</beginfold id='4'>0<endfold id='4'>]</endfold id='4'>.identifier.name == *string
0031         <endfold id='2'>}</endfold id='2'>
0032 <endfold id='2'>}</endfold id='2'>
0033 
0034 enum TraitBoundModifier <beginfold id='2'>{</beginfold id='2'>
0035         None,
0036         Maybe,
0037 <endfold id='2'>}</endfold id='2'>
0038 
0039 union tests <beginfold id='2'>{</beginfold id='2'>
0040         a: i128,
0041         b: isize,
0042 <endfold id='2'>}</endfold id='2'>
0043 
0044 // Self vs self
0045 trait T <beginfold id='2'>{</beginfold id='2'>
0046     type Item;
0047     // `Self` will be whatever type that implements `T`.
0048     fn new() -> Self;
0049     // `Self::Item` will be the type alias in the implementation.
0050     fn f(&self) -> Self::Item;
0051 <endfold id='2'>}</endfold id='2'>
0052 
0053 // Raw identifiers
0054 extern crate foo;
0055 fn main() <beginfold id='2'>{</beginfold id='2'>
0056     foo::r#try();
0057 <endfold id='2'>}</endfold id='2'>
0058 
0059 <beginfold id='3'>#[</beginfold id='3'>valid types<endfold id='3'>]</endfold id='3'>
0060 fn types() <beginfold id='2'>{</beginfold id='2'>
0061         let num = 333_3_;
0062         let num_u8: u8 = 333u8;
0063         let num_u16: u16 = 333u16;
0064         let num_u32: u32 = 333u32;
0065         let num_u64: u64 = 333u64;
0066         let num_u128: u128 = 333u128;
0067         let num_usize: usize = 333usize;
0068         let num_float: f32 = 333.45f32;
0069 
0070         let binary = 0b1_010;
0071         let octal = 0o21535;
0072         let hexadecimal = 0x73A2_F;
0073 
0074         let char1: char = 'a';
0075         let char2: char = '\n';
0076         let char3: char = '\u{123_AF}';
0077 
0078         let byte1: u8 = b'a';
0079         let byte2: u8 = b'\x13';
0080 
0081         let string: str = "hello \n \r \u{123_________fd_} \
0082                                                 bye";
0083         let byte_string: str = b"hello \t \0 \u{123} \b bye";
0084         let raw_string1: str = r"hello \t \b";
0085         let raw_string2: str = r####"hello \n "### bye"########;
0086         let raw_string3: str = br####"hello \n"####;
0087 
0088     // Invalid
0089 
0090         let invalid_binary= 0b1_015;
0091         let invalid_octal = 0o64_92;
0092         let invalid_hexadecimal = 0x7_3AY;
0093 
0094     let invalid_char1: char = '\y';
0095         let invalid_char2: char = '\324';
0096         let invalid_char3: char = '%%';
0097         let invalid_char4: char = '\n\dfd';
0098         let invalid_char5: char = 'aaaaa';
0099         let open_char: char = '&&&;
0100 
0101         let invalid_byte1: u8 = b'ab';
0102         let invalid_byte2: u8 = b'\b';
0103         let invalid_byte2: u8 = b'\u{123}';
0104 
0105         let invalid_string: str = "hello \b \u{_123} \u{1234567} \  bye";
0106 <endfold id='2'>}</endfold id='2'>
0107 
0108 //ControlFlow-specific keywords
0109 fn controlflow(y: Vec<usize>) -> usize <beginfold id='2'>{</beginfold id='2'>
0110     let mut x = 0;
0111     while x < 10 <beginfold id='2'>{</beginfold id='2'>
0112         if x > 5 <beginfold id='2'>{</beginfold id='2'>
0113             x = 1;
0114         <endfold id='2'>}</endfold id='2'>
0115         else <beginfold id='2'>{</beginfold id='2'>
0116             return 5
0117         <endfold id='2'>}</endfold id='2'>
0118     <endfold id='2'>}</endfold id='2'>
0119     loop <beginfold id='2'>{</beginfold id='2'>
0120         x+= 1;
0121         break;
0122     <endfold id='2'>}</endfold id='2'>
0123     for z in y <beginfold id='2'>{</beginfold id='2'>
0124         match z <beginfold id='2'>{</beginfold id='2'>
0125             1 => continue,
0126             _ => x = 2,
0127         <endfold id='2'>}</endfold id='2'>
0128     <endfold id='2'>}</endfold id='2'>
0129     x
0130 <endfold id='2'>}</endfold id='2'>