File tree Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Original file line number Diff line number Diff line change @@ -2168,12 +2168,14 @@ fn on_stderr_line_inner(
21682168 rendered : String ,
21692169 #[ serde( flatten, borrow) ]
21702170 other : std:: collections:: BTreeMap < Cow < ' a , str > , serde_json:: Value > ,
2171- code : Option < DiagnosticCode > ,
2171+ code : Option < DiagnosticCode < ' a > > ,
21722172 }
21732173
21742174 #[ derive( serde:: Deserialize , serde:: Serialize ) ]
2175- struct DiagnosticCode {
2175+ struct DiagnosticCode < ' a > {
21762176 code : String ,
2177+ #[ serde( flatten, borrow) ]
2178+ other : std:: collections:: BTreeMap < Cow < ' a , str > , serde_json:: Value > ,
21772179 }
21782180
21792181 if let Ok ( mut error) =
Original file line number Diff line number Diff line change @@ -4455,6 +4455,47 @@ fn json_artifact_includes_executable_for_library_tests() {
44554455 . run ( ) ;
44564456}
44574457
4458+ #[ cargo_test]
4459+ fn json_diagnostic_includes_explanation ( ) {
4460+ let p = project ( )
4461+ . file (
4462+ "src/main.rs" ,
4463+ "fn main() { const OH_NO: &'static mut usize = &mut 1; }" ,
4464+ )
4465+ . build ( ) ;
4466+
4467+ p. cargo ( "check --message-format=json" )
4468+ . with_stdout_data (
4469+ str![ [ r#"
4470+ [
4471+ {
4472+ "manifest_path": "[ROOT]/foo/Cargo.toml",
4473+ "message": {
4474+ "$message_type": "diagnostic",
4475+ "children": "{...}",
4476+ "code": {
4477+ "code": "E0764",
4478+ "explanation": "{...}"
4479+ },
4480+ "level": "error",
4481+ "message": "{...}",
4482+ "rendered": "{...}",
4483+ "spans": "{...}"
4484+ },
4485+ "package_id": "{...}",
4486+ "reason": "compiler-message",
4487+ "target": "{...}"
4488+ },
4489+ "{...}"
4490+ ]
4491+ "# ] ]
4492+ . is_json ( )
4493+ . against_jsonlines ( ) ,
4494+ )
4495+ . with_status ( 101 )
4496+ . run ( ) ;
4497+ }
4498+
44584499#[ cargo_test]
44594500fn json_artifact_includes_executable_for_integration_tests ( ) {
44604501 let p = project ( )
You can’t perform that action at this time.
0 commit comments