@@ -420,10 +420,7 @@ top_level_options!(
420420 lint_cap: Option <lint:: Level > [ TRACKED ] ,
421421 describe_lints: bool [ UNTRACKED ] ,
422422 output_types: OutputTypes [ TRACKED ] ,
423- // FIXME(mw): We track this for now but it actually doesn't make too
424- // much sense: The search path can stay the same while the
425- // things discovered there might have changed on disk.
426- search_paths: SearchPaths [ TRACKED ] ,
423+ search_paths: SearchPaths [ UNTRACKED ] ,
427424 libs: Vec <( String , Option <String >, Option <cstore:: NativeLibraryKind >) > [ TRACKED ] ,
428425 maybe_sysroot: Option <PathBuf > [ TRACKED ] ,
429426
@@ -442,10 +439,7 @@ top_level_options!(
442439 // version of `debugging_opts.borrowck`, which is just a plain string.
443440 borrowck_mode: BorrowckMode [ UNTRACKED ] ,
444441 cg: CodegenOptions [ TRACKED ] ,
445- // FIXME(mw): We track this for now but it actually doesn't make too
446- // much sense: The value of this option can stay the same
447- // while the files they refer to might have changed on disk.
448- externs: Externs [ TRACKED ] ,
442+ externs: Externs [ UNTRACKED ] ,
449443 crate_name: Option <String > [ TRACKED ] ,
450444 // An optional name to use as the crate for std during std injection,
451445 // written `extern crate std = "name"`. Default to "std". Used by
@@ -2141,13 +2135,12 @@ impl fmt::Display for CrateType {
21412135mod dep_tracking {
21422136 use lint;
21432137 use middle:: cstore;
2144- use session:: search_paths:: { PathKind , SearchPaths } ;
21452138 use std:: collections:: BTreeMap ;
21462139 use std:: hash:: Hash ;
21472140 use std:: path:: PathBuf ;
21482141 use std:: collections:: hash_map:: DefaultHasher ;
21492142 use super :: { Passes , CrateType , OptLevel , DebugInfoLevel , Lto ,
2150- OutputTypes , Externs , ErrorOutputType , Sanitizer , Epoch } ;
2143+ OutputTypes , ErrorOutputType , Sanitizer , Epoch } ;
21512144 use syntax:: feature_gate:: UnstableFeatures ;
21522145 use rustc_back:: { PanicStrategy , RelroLevel } ;
21532146
@@ -2204,7 +2197,6 @@ mod dep_tracking {
22042197 impl_dep_tracking_hash_via_hash ! ( Lto ) ;
22052198 impl_dep_tracking_hash_via_hash ! ( DebugInfoLevel ) ;
22062199 impl_dep_tracking_hash_via_hash ! ( UnstableFeatures ) ;
2207- impl_dep_tracking_hash_via_hash ! ( Externs ) ;
22082200 impl_dep_tracking_hash_via_hash ! ( OutputTypes ) ;
22092201 impl_dep_tracking_hash_via_hash ! ( cstore:: NativeLibraryKind ) ;
22102202 impl_dep_tracking_hash_via_hash ! ( Sanitizer ) ;
@@ -2218,15 +2210,6 @@ mod dep_tracking {
22182210 impl_dep_tracking_hash_for_sortable_vec_of ! ( ( String , Option <String >,
22192211 Option <cstore:: NativeLibraryKind >) ) ;
22202212 impl_dep_tracking_hash_for_sortable_vec_of ! ( ( String , u64 ) ) ;
2221- impl DepTrackingHash for SearchPaths {
2222- fn hash ( & self , hasher : & mut DefaultHasher , _: ErrorOutputType ) {
2223- let mut elems: Vec < _ > = self
2224- . iter ( PathKind :: All )
2225- . collect ( ) ;
2226- elems. sort ( ) ;
2227- Hash :: hash ( & elems, hasher) ;
2228- }
2229- }
22302213
22312214 impl < T1 , T2 > DepTrackingHash for ( T1 , T2 )
22322215 where T1 : DepTrackingHash ,
@@ -2413,43 +2396,6 @@ mod tests {
24132396 assert_eq ! ( v1. dep_tracking_hash( ) , v1. clone( ) . dep_tracking_hash( ) ) ;
24142397 }
24152398
2416- #[ test]
2417- fn test_externs_tracking_hash_different_values ( ) {
2418- let mut v1 = super :: basic_options ( ) ;
2419- let mut v2 = super :: basic_options ( ) ;
2420- let mut v3 = super :: basic_options ( ) ;
2421-
2422- v1. externs = Externs :: new ( mk_map ( vec ! [
2423- ( String :: from( "a" ) , mk_set( vec![ String :: from( "b" ) ,
2424- String :: from( "c" ) ] ) ) ,
2425- ( String :: from( "d" ) , mk_set( vec![ String :: from( "e" ) ,
2426- String :: from( "f" ) ] ) ) ,
2427- ] ) ) ;
2428-
2429- v2. externs = Externs :: new ( mk_map ( vec ! [
2430- ( String :: from( "a" ) , mk_set( vec![ String :: from( "b" ) ,
2431- String :: from( "c" ) ] ) ) ,
2432- ( String :: from( "X" ) , mk_set( vec![ String :: from( "e" ) ,
2433- String :: from( "f" ) ] ) ) ,
2434- ] ) ) ;
2435-
2436- v3. externs = Externs :: new ( mk_map ( vec ! [
2437- ( String :: from( "a" ) , mk_set( vec![ String :: from( "b" ) ,
2438- String :: from( "c" ) ] ) ) ,
2439- ( String :: from( "d" ) , mk_set( vec![ String :: from( "X" ) ,
2440- String :: from( "f" ) ] ) ) ,
2441- ] ) ) ;
2442-
2443- assert ! ( v1. dep_tracking_hash( ) != v2. dep_tracking_hash( ) ) ;
2444- assert ! ( v1. dep_tracking_hash( ) != v3. dep_tracking_hash( ) ) ;
2445- assert ! ( v2. dep_tracking_hash( ) != v3. dep_tracking_hash( ) ) ;
2446-
2447- // Check clone
2448- assert_eq ! ( v1. dep_tracking_hash( ) , v1. clone( ) . dep_tracking_hash( ) ) ;
2449- assert_eq ! ( v2. dep_tracking_hash( ) , v2. clone( ) . dep_tracking_hash( ) ) ;
2450- assert_eq ! ( v3. dep_tracking_hash( ) , v3. clone( ) . dep_tracking_hash( ) ) ;
2451- }
2452-
24532399 #[ test]
24542400 fn test_externs_tracking_hash_different_construction_order ( ) {
24552401 let mut v1 = super :: basic_options ( ) ;
@@ -2540,69 +2486,6 @@ mod tests {
25402486 assert_eq ! ( v2. dep_tracking_hash( ) , v2. clone( ) . dep_tracking_hash( ) ) ;
25412487 }
25422488
2543- #[ test]
2544- fn test_search_paths_tracking_hash_different_values ( ) {
2545- let mut v1 = super :: basic_options ( ) ;
2546- let mut v2 = super :: basic_options ( ) ;
2547- let mut v3 = super :: basic_options ( ) ;
2548- let mut v4 = super :: basic_options ( ) ;
2549- let mut v5 = super :: basic_options ( ) ;
2550-
2551- // Reference
2552- v1. search_paths . add_path ( "native=abc" , super :: ErrorOutputType :: Json ( false ) ) ;
2553- v1. search_paths . add_path ( "crate=def" , super :: ErrorOutputType :: Json ( false ) ) ;
2554- v1. search_paths . add_path ( "dependency=ghi" , super :: ErrorOutputType :: Json ( false ) ) ;
2555- v1. search_paths . add_path ( "framework=jkl" , super :: ErrorOutputType :: Json ( false ) ) ;
2556- v1. search_paths . add_path ( "all=mno" , super :: ErrorOutputType :: Json ( false ) ) ;
2557-
2558- // Native changed
2559- v2. search_paths . add_path ( "native=XXX" , super :: ErrorOutputType :: Json ( false ) ) ;
2560- v2. search_paths . add_path ( "crate=def" , super :: ErrorOutputType :: Json ( false ) ) ;
2561- v2. search_paths . add_path ( "dependency=ghi" , super :: ErrorOutputType :: Json ( false ) ) ;
2562- v2. search_paths . add_path ( "framework=jkl" , super :: ErrorOutputType :: Json ( false ) ) ;
2563- v2. search_paths . add_path ( "all=mno" , super :: ErrorOutputType :: Json ( false ) ) ;
2564-
2565- // Crate changed
2566- v2. search_paths . add_path ( "native=abc" , super :: ErrorOutputType :: Json ( false ) ) ;
2567- v2. search_paths . add_path ( "crate=XXX" , super :: ErrorOutputType :: Json ( false ) ) ;
2568- v2. search_paths . add_path ( "dependency=ghi" , super :: ErrorOutputType :: Json ( false ) ) ;
2569- v2. search_paths . add_path ( "framework=jkl" , super :: ErrorOutputType :: Json ( false ) ) ;
2570- v2. search_paths . add_path ( "all=mno" , super :: ErrorOutputType :: Json ( false ) ) ;
2571-
2572- // Dependency changed
2573- v3. search_paths . add_path ( "native=abc" , super :: ErrorOutputType :: Json ( false ) ) ;
2574- v3. search_paths . add_path ( "crate=def" , super :: ErrorOutputType :: Json ( false ) ) ;
2575- v3. search_paths . add_path ( "dependency=XXX" , super :: ErrorOutputType :: Json ( false ) ) ;
2576- v3. search_paths . add_path ( "framework=jkl" , super :: ErrorOutputType :: Json ( false ) ) ;
2577- v3. search_paths . add_path ( "all=mno" , super :: ErrorOutputType :: Json ( false ) ) ;
2578-
2579- // Framework changed
2580- v4. search_paths . add_path ( "native=abc" , super :: ErrorOutputType :: Json ( false ) ) ;
2581- v4. search_paths . add_path ( "crate=def" , super :: ErrorOutputType :: Json ( false ) ) ;
2582- v4. search_paths . add_path ( "dependency=ghi" , super :: ErrorOutputType :: Json ( false ) ) ;
2583- v4. search_paths . add_path ( "framework=XXX" , super :: ErrorOutputType :: Json ( false ) ) ;
2584- v4. search_paths . add_path ( "all=mno" , super :: ErrorOutputType :: Json ( false ) ) ;
2585-
2586- // All changed
2587- v5. search_paths . add_path ( "native=abc" , super :: ErrorOutputType :: Json ( false ) ) ;
2588- v5. search_paths . add_path ( "crate=def" , super :: ErrorOutputType :: Json ( false ) ) ;
2589- v5. search_paths . add_path ( "dependency=ghi" , super :: ErrorOutputType :: Json ( false ) ) ;
2590- v5. search_paths . add_path ( "framework=jkl" , super :: ErrorOutputType :: Json ( false ) ) ;
2591- v5. search_paths . add_path ( "all=XXX" , super :: ErrorOutputType :: Json ( false ) ) ;
2592-
2593- assert ! ( v1. dep_tracking_hash( ) != v2. dep_tracking_hash( ) ) ;
2594- assert ! ( v1. dep_tracking_hash( ) != v3. dep_tracking_hash( ) ) ;
2595- assert ! ( v1. dep_tracking_hash( ) != v4. dep_tracking_hash( ) ) ;
2596- assert ! ( v1. dep_tracking_hash( ) != v5. dep_tracking_hash( ) ) ;
2597-
2598- // Check clone
2599- assert_eq ! ( v1. dep_tracking_hash( ) , v1. clone( ) . dep_tracking_hash( ) ) ;
2600- assert_eq ! ( v2. dep_tracking_hash( ) , v2. clone( ) . dep_tracking_hash( ) ) ;
2601- assert_eq ! ( v3. dep_tracking_hash( ) , v3. clone( ) . dep_tracking_hash( ) ) ;
2602- assert_eq ! ( v4. dep_tracking_hash( ) , v4. clone( ) . dep_tracking_hash( ) ) ;
2603- assert_eq ! ( v5. dep_tracking_hash( ) , v5. clone( ) . dep_tracking_hash( ) ) ;
2604- }
2605-
26062489 #[ test]
26072490 fn test_search_paths_tracking_hash_different_order ( ) {
26082491 let mut v1 = super :: basic_options ( ) ;
0 commit comments