Skip to content

Commit 8e30d4a

Browse files
authored
Merge pull request #115 from willcrichton/dev
Update to nightly-2026-05-01
2 parents 76e98cc + c2df623 commit 8e30d4a

18 files changed

Lines changed: 245 additions & 341 deletions

File tree

Cargo.lock

Lines changed: 205 additions & 312 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ exclude = ["ide/src/tests/mock_project"]
44
resolver = "2"
55

66
[workspace.dependencies]
7-
rustc_plugin = "=0.14.2-nightly-2025-08-20"
8-
rustc_utils = {version = "=0.14.2-nightly-2025-08-20", features = ["indexical"]}
7+
rustc_plugin = "=0.15.0-nightly-2026-05-01"
8+
rustc_utils = {version = "=0.15.0-nightly-2026-05-01", features = ["indexical"]}
99
indexical = {version = "0.9.3", default-features = false, features = ["rustc"]}
1010

1111
[profile.bench]

crates/flowistry/examples/example.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ extern crate rustc_interface;
2222
extern crate rustc_middle;
2323
extern crate rustc_span;
2424

25-
use std::process::Command;
26-
2725
use flowistry::infoflow::Direction;
2826
use rustc_borrowck::consumers::BodyWithBorrowckFacts;
2927
use rustc_hir::{BodyId, ItemKind};

crates/flowistry/src/infoflow/analysis.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ impl<'a, 'tcx> Analysis<'tcx> for FlowAnalysis<'a, 'tcx> {
259259
}
260260

261261
fn apply_primary_statement_effect(
262-
&mut self,
262+
&self,
263263
state: &mut Self::Domain,
264264
statement: &Statement<'tcx>,
265265
location: Location,
@@ -271,7 +271,7 @@ impl<'a, 'tcx> Analysis<'tcx> for FlowAnalysis<'a, 'tcx> {
271271
}
272272

273273
fn apply_primary_terminator_effect<'mir>(
274-
&mut self,
274+
&self,
275275
state: &mut Self::Domain,
276276
terminator: &'mir Terminator<'tcx>,
277277
location: Location,
@@ -292,7 +292,7 @@ impl<'a, 'tcx> Analysis<'tcx> for FlowAnalysis<'a, 'tcx> {
292292
}
293293

294294
fn apply_call_return_effect(
295-
&mut self,
295+
&self,
296296
_state: &mut Self::Domain,
297297
_block: BasicBlock,
298298
_return_places: CallReturnPlaces<'_, 'tcx>,

crates/flowistry/src/infoflow/mutation.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ where
184184

185185
match &terminator.kind {
186186
TerminatorKind::Call {
187-
/*func,*/ // TODO: deal with func
187+
func,
188188
args,
189189
destination,
190190
..
@@ -211,6 +211,12 @@ where
211211
arg_inputs.clone()
212212
};
213213

214+
if let Some((def_id, _)) = func.const_fn_def()
215+
&& tcx.def_path_str(def_id) == "std::boxed::box_assume_init_into_vec_unsafe"
216+
{
217+
// TODO: we need to fix this case to fix vec_read...
218+
}
219+
214220
let mut mutations = vec![Mutation {
215221
mutated: *destination,
216222
inputs,

crates/flowistry/src/lib.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,7 @@
3434
3535
#![feature(
3636
rustc_private, // for rustc internals
37-
box_patterns, // for conciseness
38-
associated_type_defaults, // for crate::indexed::Indexed
3937
min_specialization, // for rustc_index::newtype_index
40-
type_alias_impl_trait, // for impl Trait in trait definition, eg crate::mir::utils
41-
trait_alias,
42-
negative_impls,
4338
)]
4439
#![allow(
4540
clippy::single_match,

crates/flowistry/src/mir/aliases.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Alias analysis to determine the points-to set of a reference.
22
3-
use std::{hash::Hash, time::Instant};
3+
use std::time::Instant;
44

55
use log::{debug, info};
66
use rustc_borrowck::consumers::BodyWithBorrowckFacts;

crates/flowistry/src/mir/engine.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub fn iterate_to_fixpoint<'tcx, A: Analysis<'tcx>>(
5454
_tcx: TyCtxt<'tcx>,
5555
body: &Body<'tcx>,
5656
location_domain: Rc<LocationOrArgDomain>,
57-
mut analysis: A,
57+
analysis: A,
5858
) -> AnalysisResults<'tcx, A> {
5959
let bottom_value = analysis.bottom_value(body);
6060

crates/flowistry/src/mir/utils.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc_middle::{
66
mir::*,
77
ty::{GenericArgKind, RegionKind, RegionVid, Ty, TyCtxt},
88
};
9-
use rustc_span::source_map::Spanned;
9+
use rustc_span::Spanned;
1010
use rustc_utils::{BodyExt, OperandExt, PlaceExt};
1111

1212
use crate::extensions::{MutabilityMode, is_extension_active};
@@ -32,8 +32,8 @@ pub fn arg_mut_ptrs<'tcx>(
3232
.flat_map(|(i, place)| {
3333
place
3434
.interior_pointers(tcx, body, def_id)
35-
.into_iter()
36-
.flat_map(|(_, places)| {
35+
.into_values()
36+
.flat_map(|places| {
3737
places
3838
.into_iter()
3939
.filter_map(|(place, mutability)| match mutability {
@@ -101,8 +101,8 @@ impl<'a, 'tcx> AsyncHack<'a, 'tcx> {
101101
Some(context_ty) => {
102102
self
103103
.tcx
104-
.erase_regions(place.ty(&self.body.local_decls, self.tcx).ty)
105-
== self.tcx.erase_regions(context_ty)
104+
.erase_and_anonymize_regions(place.ty(&self.body.local_decls, self.tcx).ty)
105+
== self.tcx.erase_and_anonymize_regions(context_ty)
106106
}
107107
None => false,
108108
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
fn main() {
2+
let x = 1;
3+
let y = Box::new(x);
4+
let z = *y;
5+
`(z)`;
6+
}

0 commit comments

Comments
 (0)