Rollup merge of #120230 - Urgau:for_scope-single-scope, r=michaelwoerister
Assert that a single scope is passed to `for_scope` Addresses https://github.com/rust-lang/rust/pull/118518#issuecomment-1903680468 r? ``@michaelwoerister``
This commit is contained in:
commit
55d5ea321a
@ -1510,16 +1510,25 @@ pub trait RemapFileNameExt {
|
|||||||
where
|
where
|
||||||
Self: 'a;
|
Self: 'a;
|
||||||
|
|
||||||
fn for_scope(&self, sess: &Session, scopes: RemapPathScopeComponents) -> Self::Output<'_>;
|
/// Returns a possibly remapped filename based on the passed scope and remap cli options.
|
||||||
|
///
|
||||||
|
/// One and only one scope should be passed to this method. For anything related to
|
||||||
|
/// "codegen" see the [`RemapFileNameExt::for_codegen`] method.
|
||||||
|
fn for_scope(&self, sess: &Session, scope: RemapPathScopeComponents) -> Self::Output<'_>;
|
||||||
|
|
||||||
|
/// Return a possibly remapped filename, to be used in "codegen" related parts.
|
||||||
fn for_codegen(&self, sess: &Session) -> Self::Output<'_>;
|
fn for_codegen(&self, sess: &Session) -> Self::Output<'_>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RemapFileNameExt for rustc_span::FileName {
|
impl RemapFileNameExt for rustc_span::FileName {
|
||||||
type Output<'a> = rustc_span::FileNameDisplay<'a>;
|
type Output<'a> = rustc_span::FileNameDisplay<'a>;
|
||||||
|
|
||||||
fn for_scope(&self, sess: &Session, scopes: RemapPathScopeComponents) -> Self::Output<'_> {
|
fn for_scope(&self, sess: &Session, scope: RemapPathScopeComponents) -> Self::Output<'_> {
|
||||||
if sess.opts.unstable_opts.remap_path_scope.contains(scopes) {
|
assert!(
|
||||||
|
scope.bits().count_ones() == 1,
|
||||||
|
"one and only one scope should be passed to for_scope"
|
||||||
|
);
|
||||||
|
if sess.opts.unstable_opts.remap_path_scope.contains(scope) {
|
||||||
self.prefer_remapped_unconditionaly()
|
self.prefer_remapped_unconditionaly()
|
||||||
} else {
|
} else {
|
||||||
self.prefer_local()
|
self.prefer_local()
|
||||||
@ -1538,8 +1547,12 @@ impl RemapFileNameExt for rustc_span::FileName {
|
|||||||
impl RemapFileNameExt for rustc_span::RealFileName {
|
impl RemapFileNameExt for rustc_span::RealFileName {
|
||||||
type Output<'a> = &'a Path;
|
type Output<'a> = &'a Path;
|
||||||
|
|
||||||
fn for_scope(&self, sess: &Session, scopes: RemapPathScopeComponents) -> Self::Output<'_> {
|
fn for_scope(&self, sess: &Session, scope: RemapPathScopeComponents) -> Self::Output<'_> {
|
||||||
if sess.opts.unstable_opts.remap_path_scope.contains(scopes) {
|
assert!(
|
||||||
|
scope.bits().count_ones() == 1,
|
||||||
|
"one and only one scope should be passed to for_scope"
|
||||||
|
);
|
||||||
|
if sess.opts.unstable_opts.remap_path_scope.contains(scope) {
|
||||||
self.remapped_path_if_available()
|
self.remapped_path_if_available()
|
||||||
} else {
|
} else {
|
||||||
self.local_path_if_available()
|
self.local_path_if_available()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user