fn with_source_text_and_range<T>( sm: &SourceMap, sp: Range<BytePos>, f: impl for<'a> FnOnce(&'a str, Range<usize>) -> T, ) -> Option<T>