Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
1e1aad2
Inline the splatted_callee function
teor2345 Jul 21, 2026
9f9fb37
Refactor splat using custom enums (with stubs)
teor2345 Jul 28, 2026
f88563c
Make splatted FnPtr calls work (rather than ICE)
teor2345 Jul 28, 2026
f3e2153
don't force intronsic results into memory
RalfJung Aug 3, 2026
9a5b317
Merge pull request #5240 from RalfJung/less-force-alloc
RalfJung Aug 3, 2026
9ff75a7
make `DefiningTy` independent of borrowck
lcnr Aug 3, 2026
df4b2ec
Prepare for merging from rust-lang/rust
RalfJung Aug 5, 2026
9950e2c
Merge ref '7218ebe93668' from rust-lang/rust
RalfJung Aug 5, 2026
e6a0fa2
fmt
RalfJung Aug 5, 2026
efc7c74
remove readdir_r now that we no longer need it
RalfJung Aug 5, 2026
ec46f10
fix priroda build
RalfJung Aug 5, 2026
393e0ad
Merge pull request #5243 from rust-lang/rustup-2026-08-05
RalfJung Aug 5, 2026
50ad30b
[Priroda] Extract CLI command result rendering
moabo3li Jul 29, 2026
049c9da
[Priroda] Add initial DAP frontend selection
moabo3li Jul 29, 2026
7b174e3
[Priroda] Add DAP UI fixtures
moabo3li Jul 29, 2026
1544ae7
[Priroda] Split debugger frontends into modules
moabo3li Jul 29, 2026
a6a7a9d
[Priroda] Add minimal DAP initialize handshake
moabo3li Jul 29, 2026
0158e09
[Priroda] Add DAP initialized and launch handshake
moabo3li Jul 31, 2026
5e8f7b9
[Priroda] Handle DAP configurationDone startup request
moabo3li Jul 31, 2026
8cb2e7c
[Priroda] Handle DAP threads request
moabo3li Jul 31, 2026
5a29686
[Priroda] Handle DAP stackTrace request
moabo3li Aug 1, 2026
2d7ddb6
[Priroda] Add core debugger stop-at-first-user-location
moabo3li Aug 1, 2026
dc71376
[Priroda] Wire DAP to interpreter lifecycle and stopped event
moabo3li Aug 1, 2026
84ec755
[Priroda] Report current DAP stack frame
moabo3li Aug 1, 2026
abef458
[Priroda] Add DAP locals scope and variables
moabo3li Aug 1, 2026
d233df9
[Priroda] Add bounded DAP source-line stepping demo
moabo3li Aug 2, 2026
cb35d76
[Priroda] Return Continue instead of Exit for unsupported DAP requests
moabo3li Aug 2, 2026
f1fb454
[Priroda] Document DAP prototype in README
moabo3li Aug 2, 2026
afd33c8
[Priroda] Translate interpreter exits into DAP events
moabo3li Aug 2, 2026
dc93370
[Priroda] Track DAP lifecycle state and validate request ids
moabo3li Aug 2, 2026
51dbde5
[Priroda] Add DAP negative protocol fixtures
moabo3li Aug 2, 2026
00c51d4
[Priroda] Use bug! for dispatch-guaranteed DAP invariants
moabo3li Aug 2, 2026
f32ac7c
[Priroda] Resolve macro-backed spans to their callsite
moabo3li Aug 2, 2026
1f184d7
[Priroda] Handle DAP continue request
moabo3li Aug 2, 2026
affac58
[Priroda] Handle DAP setBreakpoints request
moabo3li Aug 2, 2026
042a542
[Priroda] Advertise single-thread execution + unbounded loop
moabo3li Aug 2, 2026
adb5bb2
[Priroda] Normalise DAP Content-Length in test output
moabo3li Aug 3, 2026
8427cb5
Add regression test for associated type outlives bound at call site
zakrad Aug 5, 2026
a0c286e
[Priroda] render interpreter errors via InterpError::to_string
moabo3li Aug 5, 2026
195fd93
[Priroda] exhaustively list every DAP Command in dispatch and display
moabo3li Aug 5, 2026
e0bf0c7
[Priroda] route DAP request arguments into handlers, add setBreakpoin…
moabo3li Aug 5, 2026
b723b12
[Priroda] fill DAP Locals scope source position from current frame
moabo3li Aug 5, 2026
66470f5
[Priroda] rework DAP dispatch return type for bubble-up rejections
moabo3li Aug 5, 2026
2237402
[Priroda] drop redundant termination guards in DAP handlers
moabo3li Aug 5, 2026
66e0a9e
[Priroda] bubble predicate failures through HandlerError
moabo3li Aug 5, 2026
a17c6d5
[Priroda] pass thread_id by value into require_thread_id
moabo3li Aug 5, 2026
ed18aea
[Priroda] centralize DAP response sends in run_requests
moabo3li Aug 5, 2026
b3cafb3
Merge pull request #5241 from moabo3li/priroda-dap-startup
oli-obk Aug 5, 2026
2d66ef1
Lookup exported statics when encountering an unsupported imported static
hkalbasi Jul 26, 2026
51c49ff
Merge pull request #5230 from hkalbasi/push-ruquxrvxyplk
RalfJung Aug 5, 2026
a44d862
Prepare for merging from rust-lang/rust
Aug 6, 2026
d83cfa3
Merge ref 'f73951df0a55' from rust-lang/rust
Aug 6, 2026
6ea57af
Snapshot test for `./x fix compiler`
Zalathar Aug 6, 2026
938bf98
Inline and remove constructors from `check::Rustc`
Zalathar Aug 5, 2026
43bc042
Merge pull request #5245 from rust-lang/rustup-2026-08-06
RalfJung Aug 6, 2026
b344260
Store and use an explicit CheckKind in `check::Rustc`
Zalathar Aug 5, 2026
fd7e845
Add documentation and maintainer for L4Re target
farao Jan 9, 2026
5bb8d31
Add aarch64 architecture for L4Re target
farao Jan 9, 2026
225ca5f
platform-support/netbsd.md: No longer mention 8.x, due to EoL.
he32 Aug 6, 2026
0d75b8c
fix ICE in `suggest_add_reference_to_arg` for non-callable items
im-lunex Aug 6, 2026
140d4cb
delegation: add support for wrapping of the return value with `From::…
aerooneqq Aug 6, 2026
dec9493
[Priroda] CI: add clippy check for priroda
moabo3li Aug 6, 2026
f2dd932
L4Re: Repair build and move to rustc linking
farao Jul 13, 2026
d68ddd0
Merge pull request #5246 from moabo3li/push-kxrmpxvsomnl
oli-obk Aug 6, 2026
c1af195
cleanup `DefiningTy::new`
lcnr Aug 4, 2026
b326732
make the c_variadic region late bound
lcnr Aug 4, 2026
8bb9f27
refactor handling of target features in Session
RalfJung Aug 4, 2026
78de456
derive(Diagnostic): link to proper docs
RalfJung Aug 6, 2026
a1b86a7
codegen: classify localized MSVC linker progress as linker_info
rabindra789 Aug 3, 2026
6253cca
rename 'forbidden' target features to 'internal-only'
RalfJung Aug 5, 2026
e5004d0
ensure that we never toggle internal target features via the attribute
RalfJung Aug 5, 2026
b9ad974
Fix FutureDropPoll shim for by-move async closures
KR-bluejay Aug 6, 2026
162cba5
dlopen Offload
sgasho Aug 6, 2026
bedd9ea
Rollup merge of #150885 - farao:main, r=saethlin,joboet
jhpratt Aug 7, 2026
d3565b3
Rollup merge of #159643 - teor2345:splat-fn-ptr, r=folkertdev
jhpratt Aug 7, 2026
be9111b
Rollup merge of #160433 - aerooneqq:delegation-return-wrapping-3, r=p…
jhpratt Aug 7, 2026
246e40d
Rollup merge of #160530 - RalfJung:internal-target-features, r=nnethe…
jhpratt Aug 7, 2026
02593e8
Rollup merge of #160606 - Zalathar:check-kind, r=Kobzol
jhpratt Aug 7, 2026
a873826
Rollup merge of #160628 - im-lunex:fix_#160591, r=JohnTitor
jhpratt Aug 7, 2026
8cf68fc
Rollup merge of #160634 - RalfJung:miri, r=RalfJung
jhpratt Aug 7, 2026
0f7accf
Rollup merge of #158904 - KR-bluejay:issue-142559-fix, r=oli-obk
jhpratt Aug 7, 2026
ff4445e
Rollup merge of #160335 - sgasho:dlopen_offload, r=ZuseZ4
jhpratt Aug 7, 2026
bf43dd7
Rollup merge of #160445 - rabindra789:fix/msvc-localized-linker-outpu…
jhpratt Aug 7, 2026
e35645e
Rollup merge of #160504 - lcnr:borrowck-cleanup, r=oli-obk
jhpratt Aug 7, 2026
b7dbee6
Rollup merge of #160587 - zakrad:regr-test-63253, r=JohnTitor
jhpratt Aug 7, 2026
91c8596
Rollup merge of #160625 - he32:update-netbsd-doc, r=nnethercote
jhpratt Aug 7, 2026
a996a4d
Rollup merge of #160636 - RalfJung:derive-diagnostic, r=mejrs
jhpratt Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion compiler/rustc_ast_lowering/src/asm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
match asm::InlineAsmClobberAbi::parse(
asm_arch,
&self.tcx.sess.target,
&self.tcx.sess.unstable_target_features,
&self.tcx.sess.internal_target_features,
*abi_name,
) {
Ok(abi) => {
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast_lowering/src/delegation/generics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -662,10 +662,10 @@ impl<'hir> LoweringContext<'_, 'hir> {
p.def_id.to_def_id(),
);

self.create_resolved_path(res, p.name.ident(), p.span)
self.create_resolved_qpath(res, p.name.ident(), p.span)
}

pub(super) fn create_resolved_path(
pub(super) fn create_resolved_qpath(
&mut self,
res: Res,
ident: Ident,
Expand Down
11 changes: 9 additions & 2 deletions compiler/rustc_ast_lowering/src/delegation/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
};

let ident = Ident::new(kw::SelfUpper, span);
let path = self.create_resolved_path(res, ident, span);
let path = self.create_resolved_qpath(res, ident, span);

// FIXME(fn_delegation): add default `..` for all other fields.
let initializer = hir::ExprKind::Struct(
Expand All @@ -454,7 +454,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
hir::StructTailExpr::None,
);

self.arena.alloc(self.mk_expr(initializer, span))
let expr = self.mk_expr(initializer, span);

let path = self.make_lang_item_qpath(hir::LangItem::FromFn, span, None);
let path = self.arena.alloc(self.mk_expr(hir::ExprKind::Path(path), span));

let call = hir::ExprKind::Call(path, self.arena.alloc_slice(&[expr]));

self.arena.alloc(self.mk_expr(call, span))
} else {
self.arena.alloc(call)
};
Expand Down
51 changes: 43 additions & 8 deletions compiler/rustc_ast_lowering/src/delegation/resolution.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ use hir::def::DefKind;
use rustc_ast::{self as ast, Delegation, DelegationSource, NodeId};
use rustc_data_structures::fx::{FxHashSet, FxIndexSet};
use rustc_hir as hir;
use rustc_middle::ty::Ty;
use rustc_middle::ty::{Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitor};
use rustc_middle::{span_bug, ty};
use rustc_span::def_id::{DefId, LocalDefId};
use rustc_span::{ErrorGuaranteed, Span, kw};
use rustc_span::{ErrorGuaranteed, Span};

use crate::delegation::generics::GenericsGenerationResults;
use crate::delegation::resolution::resolver::DelegationResolver;
Expand All @@ -31,7 +31,7 @@ pub(super) struct ParamInfo {
pub splatted: Option<u8>,
}

#[derive(Default)]
#[derive(Default, Debug)]
pub(super) struct SigMapping {
pub map_return: bool,
pub arguments_to_map: FxIndexSet<usize>,
Expand Down Expand Up @@ -254,17 +254,52 @@ impl<'tcx> DelegationResolver<'_, 'tcx> {
}

if self.can_perform_self_mapping(delegation, parent)? {
// FIXME(fn_delegation): support heuristics for mapping of complex
// return types: `Self` -> `Box<Arc<Rc<Self>>>`
mapping.map_return = sig.output().is_param(0);
/// Finds `Self` generic param only in ADT or references, so we avoid cases like
/// `Self::Item` which will return true if `output.contains(...)` will be used.
struct SelfFinder;

impl<'tcx> TypeVisitor<TyCtxt<'tcx>> for SelfFinder {
type Result = ControlFlow<()>;

fn visit_ty(&mut self, t: Ty<'tcx>) -> Self::Result {
match t.kind() {
ty::Adt(_, args) => {
if args
.iter()
.flat_map(|arg| arg.as_type())
.any(|type_arg| type_arg.is_self_param())
{
return ControlFlow::Break(());
}

t.super_visit_with(self)
}
ty::Ref(_, ref_t, _) => {
if ref_t.is_self_param() {
return ControlFlow::Break(());
}

t.super_visit_with(self)
}
_ => ControlFlow::Continue(()),
}
}
}

impl SelfFinder {
fn contains_self(t: Ty<'_>) -> bool {
t.is_self_param() || t.visit_with(&mut SelfFinder).is_break()
}
}

mapping.map_return = SelfFinder::contains_self(sig.output());

let self_param = Ty::new_param(self.tcx(), 0, kw::SelfUpper);
let arguments_to_map = sig
.inputs()
.iter()
.enumerate()
.skip(1) // Already checked above.
.filter_map(|(idx, param)| param.contains(self_param).then_some(idx));
.filter_map(|(idx, &param)| SelfFinder::contains_self(param).then_some(idx));

mapping.arguments_to_map.extend(arguments_to_map);
}
Expand Down
Loading
Loading