1
1
//! Checks the licenses of third-party dependencies.
2
2
3
- use cargo_metadata:: { DepKindInfo , Metadata , Package , PackageId } ;
3
+ use cargo_metadata:: { Metadata , Package , PackageId } ;
4
4
use std:: collections:: HashSet ;
5
5
use std:: path:: Path ;
6
6
@@ -191,6 +191,7 @@ const PERMITTED_DEPS_LOCATION: &str = concat!(file!(), ":", line!());
191
191
/// rustc. Please check with the compiler team before adding an entry.
192
192
const PERMITTED_RUSTC_DEPENDENCIES : & [ & str ] = & [
193
193
// tidy-alphabetical-start
194
+ "addr2line" ,
194
195
"adler" ,
195
196
"ahash" ,
196
197
"aho-corasick" ,
@@ -468,6 +469,7 @@ const PERMITTED_CRANELIFT_DEPENDENCIES: &[&str] = &[
468
469
"mach" ,
469
470
"memchr" ,
470
471
"object" ,
472
+ "once_cell" ,
471
473
"proc-macro2" ,
472
474
"quote" ,
473
475
"regalloc2" ,
@@ -668,27 +670,7 @@ fn check_permitted_dependencies(
668
670
let mut deps = HashSet :: new ( ) ;
669
671
for to_check in restricted_dependency_crates {
670
672
let to_check = pkg_from_name ( metadata, to_check) ;
671
- use cargo_platform:: Cfg ;
672
- use std:: str:: FromStr ;
673
- // We don't expect the compiler to ever run on wasm32, so strip
674
- // out those dependencies to avoid polluting the permitted list.
675
- deps_of_filtered ( metadata, & to_check. id , & mut deps, & |dep_kinds| {
676
- dep_kinds. iter ( ) . any ( |dep_kind| {
677
- dep_kind
678
- . target
679
- . as_ref ( )
680
- . map ( |target| {
681
- !target. matches (
682
- "wasm32-unknown-unknown" ,
683
- & [
684
- Cfg :: from_str ( "target_arch=\" wasm32\" " ) . unwrap ( ) ,
685
- Cfg :: from_str ( "target_os=\" unknown\" " ) . unwrap ( ) ,
686
- ] ,
687
- )
688
- } )
689
- . unwrap_or ( true )
690
- } )
691
- } ) ;
673
+ deps_of ( metadata, & to_check. id , & mut deps) ;
692
674
}
693
675
694
676
// Check that the PERMITTED_DEPENDENCIES does not have unused entries.
@@ -740,18 +722,13 @@ fn compute_runtime_crates<'a>(metadata: &'a Metadata) -> HashSet<&'a PackageId>
740
722
let mut result = HashSet :: new ( ) ;
741
723
for name in RUNTIME_CRATES {
742
724
let id = & pkg_from_name ( metadata, name) . id ;
743
- deps_of_filtered ( metadata, id, & mut result, & |_| true ) ;
725
+ deps_of ( metadata, id, & mut result) ;
744
726
}
745
727
result
746
728
}
747
729
748
730
/// Recursively find all dependencies.
749
- fn deps_of_filtered < ' a > (
750
- metadata : & ' a Metadata ,
751
- pkg_id : & ' a PackageId ,
752
- result : & mut HashSet < & ' a PackageId > ,
753
- filter : & dyn Fn ( & [ DepKindInfo ] ) -> bool ,
754
- ) {
731
+ fn deps_of < ' a > ( metadata : & ' a Metadata , pkg_id : & ' a PackageId , result : & mut HashSet < & ' a PackageId > ) {
755
732
if !result. insert ( pkg_id) {
756
733
return ;
757
734
}
@@ -764,9 +741,6 @@ fn deps_of_filtered<'a>(
764
741
. find ( |n| & n. id == pkg_id)
765
742
. unwrap_or_else ( || panic ! ( "could not find `{pkg_id}` in resolve" ) ) ;
766
743
for dep in & node. deps {
767
- if !filter ( & dep. dep_kinds ) {
768
- continue ;
769
- }
770
- deps_of_filtered ( metadata, & dep. pkg , result, filter) ;
744
+ deps_of ( metadata, & dep. pkg , result) ;
771
745
}
772
746
}
0 commit comments