#compiler-error #rustc #error #compiler #error-message #format #warnings

codemap2-diagnostic

A maintained fork of the codemap-diagnostic crate. Library for displaying compiler error messages, extracted from rustc

1 unstable release

Uses old Rust 2015

0.1.0 May 4, 2023

#617 in Command-line interface

28 downloads per month

MIT/Apache

86KB
1.5K SLoC

CodeMap2 Diagnostic

Documentation

A Rust library for formatting compiler error messages, extracted from rustc and built on the types from the codemap crate.

screenshot

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


lib.rs:

A library for formatting compiler error messages, extracted from rustc and built on the types from the codemap crate.

Example

extern crate codemap2;
extern crate codemap2_diagnostic;
use codemap2::{CodeMap, DefaultFileData};
use codemap2_diagnostic::{ Level, SpanLabel, SpanStyle, Diagnostic, ColorConfig, Emitter };

fn main() {
  let code = "foo + bar";
  let mut codemap = CodeMap::new();
  let file_span = codemap.add_file(DefaultFileData::new("test.rs".to_owned(), code.to_owned())).span;
  let name_span = file_span.subspan(0, 3);

  let label = SpanLabel {
      span: name_span,
      style: SpanStyle::Primary,
      label: Some("undefined variable".to_owned())
  };
  let d = Diagnostic {
      level: Level::Error,
      message: "cannot find value `foo` in this scope".to_owned(),
      code: Some("C000".to_owned()),
      spans: vec![label]
  };

  let mut emitter = Emitter::stderr(ColorConfig::Always, Some(&codemap));
  emitter.emit(&[d]);
}

Dependencies

~0.2–8.5MB
~48K SLoC