@@ -3075,3 +3075,77 @@ error[E0277]: the size for values of type `T` cannot be known at compilation tim
3075
3075
let renderer = Renderer :: plain ( ) ;
3076
3076
assert_data_eq ! ( renderer. render( input_new) , expected) ;
3077
3077
}
3078
+
3079
+ #[ test]
3080
+ fn message_before_primary_snippet ( ) {
3081
+ let source = r#"struct Thing {
3082
+ a0: Foo,
3083
+ a1: Foo,
3084
+ a2: Foo,
3085
+ a3: Foo,
3086
+ a4: Foo,
3087
+ a5: Foo,
3088
+ a6: Foo,
3089
+ a7: Foo,
3090
+ a8: Foo,
3091
+ a9: Foo,
3092
+ }
3093
+
3094
+ struct Foo {
3095
+ field: Field,
3096
+ }
3097
+
3098
+ struct Field;
3099
+
3100
+ impl Foo {
3101
+ fn bar(&self) {}
3102
+ }
3103
+
3104
+ fn bar(t: Thing) {
3105
+ t.bar();
3106
+ t.field;
3107
+ }
3108
+
3109
+ fn main() {}
3110
+ "# ;
3111
+
3112
+ let input = & [ Group :: with_title (
3113
+ Level :: ERROR
3114
+ . title ( "no field `field` on type `Thing`" )
3115
+ . id ( "E0609" ) ,
3116
+ )
3117
+ . element ( Level :: NOTE . message ( "a `Title` then a `Message`!?!?" ) )
3118
+ . element (
3119
+ Snippet :: source ( source)
3120
+ . path ( "$DIR/too-many-field-suggestions.rs" )
3121
+ . annotation (
3122
+ AnnotationKind :: Primary
3123
+ . span ( 270 ..275 )
3124
+ . label ( "unknown field" ) ,
3125
+ ) ,
3126
+ ) ] ;
3127
+
3128
+ let expected_ascii = str![ [ r#"
3129
+ error[E0609]: no field `field` on type `Thing`
3130
+ |
3131
+ = note: a `Title` then a `Message`!?!?
3132
+ --> $DIR/too-many-field-suggestions.rs:26:7
3133
+ |
3134
+ LL | t.field;
3135
+ | ^^^^^ unknown field
3136
+ "# ] ] ;
3137
+ let renderer = Renderer :: plain ( ) . anonymized_line_numbers ( true ) ;
3138
+ assert_data_eq ! ( renderer. render( input) , expected_ascii) ;
3139
+
3140
+ let expected_unicode = str![ [ r#"
3141
+ error[E0609]: no field `field` on type `Thing`
3142
+ │
3143
+ ├ note: a `Title` then a `Message`!?!?
3144
+ ╭▸ $DIR/too-many-field-suggestions.rs:26:7
3145
+ │
3146
+ LL │ t.field;
3147
+ ╰╴ ━━━━━ unknown field
3148
+ "# ] ] ;
3149
+ let renderer = renderer. theme ( OutputTheme :: Unicode ) ;
3150
+ assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
3151
+ }
0 commit comments