@@ -3864,6 +3864,104 @@ impl SpaceLlama for i32 {
38643864``` 
38653865"## , 
38663866
3867+ E0527 :  r##" 
3868+ The number of elements in an array or slice pattern differed from the number of 
3869+ elements in the array being matched. 
3870+ 
3871+ Example of erroneous code: 
3872+ 
3873+ ```compile_fail,E0527 
3874+ #![feature(slice_patterns)] 
3875+ 
3876+ let r = &[1, 2, 3, 4]; 
3877+ match r { 
3878+     &[a, b] => { // error: pattern requires 2 elements but array 
3879+                  //        has 4 
3880+         println!("a={}, b={}", a, b); 
3881+     } 
3882+ } 
3883+ ``` 
3884+ 
3885+ Ensure that the pattern is consistent with the size of the matched 
3886+ array. Additional elements can be matched with `..`: 
3887+ 
3888+ ``` 
3889+ #![feature(slice_patterns)] 
3890+ 
3891+ let r = &[1, 2, 3, 4]; 
3892+ match r { 
3893+     &[a, b, ..] => { // ok! 
3894+         println!("a={}, b={}", a, b); 
3895+     } 
3896+ } 
3897+ ``` 
3898+ "## , 
3899+ 
3900+ E0528 :  r##" 
3901+ An array or slice pattern required more elements than were present in the 
3902+ matched array. 
3903+ 
3904+ Example of erroneous code: 
3905+ 
3906+ ```compile_fail,E0528 
3907+ #![feature(slice_patterns)] 
3908+ 
3909+ let r = &[1, 2]; 
3910+ match r { 
3911+     &[a, b, c, rest..] => { // error: pattern requires at least 3 
3912+                             //        elements but array has 2 
3913+         println!("a={}, b={}, c={} rest={:?}", a, b, c, rest); 
3914+     } 
3915+ } 
3916+ ``` 
3917+ 
3918+ Ensure that the matched array has at least as many elements as the pattern 
3919+ requires. You can match an arbitrary number of remaining elements with `..`: 
3920+ 
3921+ ``` 
3922+ #![feature(slice_patterns)] 
3923+ 
3924+ let r = &[1, 2, 3, 4, 5]; 
3925+ match r { 
3926+     &[a, b, c, rest..] => { // ok! 
3927+         // prints `a=1, b=2, c=3 rest=[4, 5]` 
3928+         println!("a={}, b={}, c={} rest={:?}", a, b, c, rest); 
3929+     } 
3930+ } 
3931+ ``` 
3932+ "## , 
3933+ 
3934+ E0529 :  r##" 
3935+ An array or slice pattern was matched against some other type. 
3936+ 
3937+ Example of erroneous code: 
3938+ 
3939+ ```compile_fail,E0529 
3940+ #![feature(slice_patterns)] 
3941+ 
3942+ let r: f32 = 1.0; 
3943+ match r { 
3944+     [a, b] => { // error: expected an array or slice, found `f32` 
3945+         println!("a={}, b={}", a, b); 
3946+     } 
3947+ } 
3948+ ``` 
3949+ 
3950+ Ensure that the pattern and the expression being matched on are of consistent 
3951+ types: 
3952+ 
3953+ ``` 
3954+ #![feature(slice_patterns)] 
3955+ 
3956+ let r = [1.0, 2.0]; 
3957+ match r { 
3958+     [a, b] => { // ok! 
3959+         println!("a={}, b={}", a, b); 
3960+     } 
3961+ } 
3962+ ``` 
3963+ "## , 
3964+ 
38673965E0559 :  r##" 
38683966An unknown field was specified into an enum's structure variant. 
38693967
@@ -3985,8 +4083,5 @@ register_diagnostics! {
39854083    E0436 ,  // functional record update requires a struct 
39864084    E0513 ,  // no type for local variable .. 
39874085    E0521 ,  // redundant default implementations of trait 
3988-     E0527 ,  // expected {} elements, found {} 
3989-     E0528 ,  // expected at least {} elements, found {} 
3990-     E0529 ,  // slice pattern expects array or slice, not `{}` 
39914086    E0533 ,  // `{}` does not name a unit variant, unit struct or a constant 
39924087} 
0 commit comments