@@ -11,7 +11,7 @@ use ops::FilterRule;
1111use serde:: { Deserialize , Serialize } ;
1212use toml_edit:: easy as toml;
1313
14- use crate :: core:: compiler:: Freshness ;
14+ use crate :: core:: compiler:: { DirtyReason , Freshness } ;
1515use crate :: core:: Target ;
1616use crate :: core:: { Dependency , FeatureValue , Package , PackageId , QueryKind , Source , SourceId } ;
1717use crate :: ops:: { self , CompileFilter , CompileOptions } ;
@@ -170,7 +170,7 @@ impl InstallTracker {
170170 // Check if any tracked exe's are already installed.
171171 let duplicates = self . find_duplicates ( dst, & exes) ;
172172 if force || duplicates. is_empty ( ) {
173- return Ok ( ( Freshness :: Dirty ( None ) , duplicates) ) ;
173+ return Ok ( ( Freshness :: Dirty ( Some ( DirtyReason :: Forced ) ) , duplicates) ) ;
174174 }
175175 // Check if all duplicates come from packages of the same name. If
176176 // there are duplicates from other packages, then --force will be
@@ -200,7 +200,7 @@ impl InstallTracker {
200200 let source_id = pkg. package_id ( ) . source_id ( ) ;
201201 if source_id. is_path ( ) {
202202 // `cargo install --path ...` is always rebuilt.
203- return Ok ( ( Freshness :: Dirty ( None ) , duplicates) ) ;
203+ return Ok ( ( Freshness :: Dirty ( Some ( DirtyReason :: Forced ) ) , duplicates) ) ;
204204 }
205205 let is_up_to_date = |dupe_pkg_id| {
206206 let info = self
@@ -224,7 +224,7 @@ impl InstallTracker {
224224 if matching_duplicates. iter ( ) . all ( is_up_to_date) {
225225 Ok ( ( Freshness :: Fresh , duplicates) )
226226 } else {
227- Ok ( ( Freshness :: Dirty ( None ) , duplicates) )
227+ Ok ( ( Freshness :: Dirty ( Some ( DirtyReason :: Forced ) ) , duplicates) )
228228 }
229229 } else {
230230 // Format the error message.
0 commit comments