# Function rustc_mir_transform::coverage::make_code_region

source ·

    fn make_code_region(
        source_map: &SourceMap,
        file_name: Symbol,
        span: Span,
        body_span: Span
    ) -> Option<CodeRegion>

Expand description

Convert the Span into its file name, start line and column, and end line and column.

Line numbers and column numbers are 1-based. Unlike most column numbers emitted by the compiler, these column numbers are denoted in bytes, because that’s what LLVM’s `llvm-cov` tool expects to see in coverage maps.

Returns `None` if the conversion failed for some reason. This shouldn’t happen, but it’s hard to rule out entirely (especially in the presence of complex macros or other expansions), and if it does happen then skipping a span or function is better than an ICE or `llvm-cov` failure that the user might have no way to avoid.