Skip to content

Commit f12d72e

Browse files
committed
Auto merge of #8419 - est31:string_interning, r=ehuss
Move string interning to util Code that handles string interning is rather an util functionality than a core functionality.
2 parents 67075be + 836e91c commit f12d72e

39 files changed

+59
-42
lines changed

src/cargo/core/compiler/build_config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::core::compiler::CompileKind;
2-
use crate::core::interning::InternedString;
2+
use crate::util::interning::InternedString;
33
use crate::util::ProcessBuilder;
44
use crate::util::{CargoResult, Config, RustfixDiagnosticServer};
55
use anyhow::bail;

src/cargo/core/compiler/build_context/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ use crate::core::compiler::unit_graph::UnitGraph;
22
use crate::core::compiler::{BuildConfig, CompileKind, Unit};
33
use crate::core::profiles::Profiles;
44
use crate::core::PackageSet;
5-
use crate::core::{InternedString, Workspace};
5+
use crate::core::Workspace;
66
use crate::util::config::Config;
77
use crate::util::errors::CargoResult;
8+
use crate::util::interning::InternedString;
89
use crate::util::Rustc;
910
use std::collections::HashMap;
1011
use std::path::PathBuf;

src/cargo/core/compiler/compile_kind.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
use crate::core::{InternedString, Target};
1+
use crate::core::Target;
22
use crate::util::errors::{CargoResult, CargoResultExt};
3+
use crate::util::interning::InternedString;
34
use crate::util::Config;
45
use anyhow::bail;
56
use serde::Serialize;

src/cargo/core/compiler/fingerprint.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,10 @@ use serde::ser;
323323
use serde::{Deserialize, Serialize};
324324

325325
use crate::core::compiler::unit_graph::UnitDep;
326-
use crate::core::{InternedString, Package};
326+
use crate::core::Package;
327327
use crate::util;
328328
use crate::util::errors::{CargoResult, CargoResultExt};
329+
use crate::util::interning::InternedString;
329330
use crate::util::paths;
330331
use crate::util::{internal, profile};
331332

src/cargo/core/compiler/lto.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::core::compiler::{CompileMode, Context, CrateType, Unit};
2-
use crate::core::interning::InternedString;
32
use crate::core::profiles;
3+
use crate::util::interning::InternedString;
44

55
use crate::util::errors::CargoResult;
66
use std::collections::hash_map::{Entry, HashMap};

src/cargo/core/compiler/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ use self::unit_graph::UnitDep;
4949
pub use crate::core::compiler::unit::{Unit, UnitInterner};
5050
use crate::core::manifest::TargetSourcePath;
5151
use crate::core::profiles::{PanicStrategy, Profile, Strip};
52-
use crate::core::{Edition, Feature, InternedString, PackageId, Target};
52+
use crate::core::{Edition, Feature, PackageId, Target};
5353
use crate::util::errors::{self, CargoResult, CargoResultExt, ProcessError, VerboseError};
54+
use crate::util::interning::InternedString;
5455
use crate::util::machine_message::Message;
5556
use crate::util::{self, machine_message, ProcessBuilder};
5657
use crate::util::{internal, join_paths, paths, profile};

src/cargo/core/compiler/unit.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use crate::core::compiler::{CompileKind, CompileMode, CrateType};
22
use crate::core::manifest::{Target, TargetKind};
3-
use crate::core::{profiles::Profile, InternedString, Package};
3+
use crate::core::{profiles::Profile, Package};
44
use crate::util::hex::short_hash;
5+
use crate::util::interning::InternedString;
56
use crate::util::Config;
67
use std::cell::RefCell;
78
use std::collections::HashSet;

src/cargo/core/compiler/unit_dependencies.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ use crate::core::dependency::DepKind;
2222
use crate::core::profiles::{Profile, Profiles, UnitFor};
2323
use crate::core::resolver::features::{FeaturesFor, ResolvedFeatures};
2424
use crate::core::resolver::Resolve;
25-
use crate::core::{InternedString, Package, PackageId, PackageSet, Target, Workspace};
25+
use crate::core::{Package, PackageId, PackageSet, Target, Workspace};
2626
use crate::ops::resolve_all_features;
27+
use crate::util::interning::InternedString;
2728
use crate::util::Config;
2829
use crate::CargoResult;
2930
use log::trace;

src/cargo/core/compiler/unit_graph.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use crate::core::compiler::Unit;
22
use crate::core::compiler::{CompileKind, CompileMode};
33
use crate::core::profiles::{Profile, UnitFor};
4-
use crate::core::{nightly_features_allowed, InternedString, PackageId, Target};
4+
use crate::core::{nightly_features_allowed, PackageId, Target};
5+
use crate::util::interning::InternedString;
56
use crate::util::CargoResult;
67
use std::collections::HashMap;
78
use std::io::Write;

src/cargo/core/dependency.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ use serde::ser;
66
use serde::Serialize;
77
use std::rc::Rc;
88

9-
use crate::core::interning::InternedString;
109
use crate::core::{PackageId, SourceId, Summary};
1110
use crate::util::errors::{CargoResult, CargoResultExt};
11+
use crate::util::interning::InternedString;
1212
use crate::util::Config;
1313

1414
/// Information about a dependency requested by a Cargo manifest.

src/cargo/core/manifest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ use serde::Serialize;
1111
use url::Url;
1212

1313
use crate::core::compiler::CrateType;
14-
use crate::core::interning::InternedString;
1514
use crate::core::resolver::ResolveBehavior;
1615
use crate::core::{Dependency, PackageId, PackageIdSpec, SourceId, Summary};
1716
use crate::core::{Edition, Feature, Features, WorkspaceConfig};
1817
use crate::util::errors::*;
18+
use crate::util::interning::InternedString;
1919
use crate::util::toml::{TomlManifest, TomlProfiles};
2020
use crate::util::{short_hash, Config, Filesystem};
2121

src/cargo/core/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ pub use self::features::{
33
enable_nightly_features, maybe_allow_nightly_features, nightly_features_allowed,
44
};
55
pub use self::features::{CliUnstable, Edition, Feature, Features};
6-
pub use self::interning::InternedString;
76
pub use self::manifest::{EitherManifest, VirtualManifest};
87
pub use self::manifest::{Manifest, Target, TargetKind};
98
pub use self::package::{Package, PackageSet};
@@ -19,7 +18,6 @@ pub use self::workspace::{Members, Workspace, WorkspaceConfig, WorkspaceRootConf
1918
pub mod compiler;
2019
pub mod dependency;
2120
pub mod features;
22-
mod interning;
2321
pub mod manifest;
2422
pub mod package;
2523
pub mod package_id;

src/cargo/core/package.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ use serde::Serialize;
2020

2121
use crate::core::compiler::{CompileKind, RustcTargetData};
2222
use crate::core::dependency::DepKind;
23-
use crate::core::interning::InternedString;
2423
use crate::core::resolver::{HasDevUnits, Resolve};
2524
use crate::core::source::MaybePackage;
2625
use crate::core::{Dependency, Manifest, PackageId, SourceId, Target};
2726
use crate::core::{FeatureMap, SourceMap, Summary, Workspace};
2827
use crate::ops;
2928
use crate::util::config::PackageCacheLock;
3029
use crate::util::errors::{CargoResult, CargoResultExt, HttpNot200};
30+
use crate::util::interning::InternedString;
3131
use crate::util::network::Retry;
3232
use crate::util::{self, internal, Config, Progress, ProgressStyle};
3333

src/cargo/core/package_id.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ use std::sync::Mutex;
99
use serde::de;
1010
use serde::ser;
1111

12-
use crate::core::interning::InternedString;
1312
use crate::core::source::SourceId;
13+
use crate::util::interning::InternedString;
1414
use crate::util::{CargoResult, ToSemver};
1515

1616
lazy_static::lazy_static! {

src/cargo/core/package_id_spec.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use semver::Version;
55
use serde::{de, ser};
66
use url::Url;
77

8-
use crate::core::interning::InternedString;
98
use crate::core::PackageId;
109
use crate::util::errors::{CargoResult, CargoResultExt};
10+
use crate::util::interning::InternedString;
1111
use crate::util::{validate_package_name, IntoUrl, ToSemver};
1212

1313
/// Some or all of the data required to identify a package:
@@ -274,8 +274,8 @@ impl<'de> de::Deserialize<'de> for PackageIdSpec {
274274
#[cfg(test)]
275275
mod tests {
276276
use super::PackageIdSpec;
277-
use crate::core::interning::InternedString;
278277
use crate::core::{PackageId, SourceId};
278+
use crate::util::interning::InternedString;
279279
use crate::util::ToSemver;
280280
use url::Url;
281281

src/cargo/core/profiles.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::core::compiler::CompileMode;
2-
use crate::core::interning::InternedString;
32
use crate::core::resolver::features::FeaturesFor;
43
use crate::core::{Feature, Features, PackageId, PackageIdSpec, Resolve, Shell};
54
use crate::util::errors::CargoResultExt;
5+
use crate::util::interning::InternedString;
66
use crate::util::toml::{ProfilePackageSpec, StringOrBool, TomlProfile, TomlProfiles, U32OrBool};
77
use crate::util::{closest_msg, config, CargoResult, Config};
88
use anyhow::bail;

src/cargo/core/registry.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ use log::{debug, trace};
55
use semver::VersionReq;
66
use url::Url;
77

8+
use crate::core::PackageSet;
89
use crate::core::{Dependency, PackageId, Source, SourceId, SourceMap, Summary};
9-
use crate::core::{InternedString, PackageSet};
1010
use crate::sources::config::SourceConfigMap;
1111
use crate::util::errors::{CargoResult, CargoResultExt};
12+
use crate::util::interning::InternedString;
1213
use crate::util::{profile, CanonicalUrl, Config};
1314

1415
/// Source of information about a group of packages.

src/cargo/core/resolver/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use std::num::NonZeroU64;
44
use anyhow::format_err;
55
use log::debug;
66

7-
use crate::core::interning::InternedString;
87
use crate::core::{Dependency, PackageId, SourceId, Summary};
8+
use crate::util::interning::InternedString;
99
use crate::util::Graph;
1010

1111
use super::dep_cache::RegistryQueryer;

src/cargo/core/resolver/dep_cache.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ use std::rc::Rc;
1515

1616
use log::debug;
1717

18-
use crate::core::interning::InternedString;
1918
use crate::core::resolver::context::Context;
2019
use crate::core::resolver::errors::describe_path;
2120
use crate::core::{Dependency, FeatureValue, PackageId, PackageIdSpec, Registry, Summary};
2221
use crate::util::errors::{CargoResult, CargoResultExt};
22+
use crate::util::interning::InternedString;
2323

2424
use crate::core::resolver::types::{ConflictReason, DepInfo, FeaturesSet};
2525
use crate::core::resolver::{ActivateResult, ResolveOpts};

src/cargo/core/resolver/encode.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@ use serde::de;
9898
use serde::ser;
9999
use serde::{Deserialize, Serialize};
100100

101-
use crate::core::InternedString;
102101
use crate::core::{Dependency, Package, PackageId, SourceId, Workspace};
103102
use crate::util::errors::{CargoResult, CargoResultExt};
103+
use crate::util::interning::InternedString;
104104
use crate::util::{internal, Graph};
105105

106106
use super::{Resolve, ResolveVersion};

src/cargo/core/resolver/features.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ use crate::core::compiler::{CompileKind, RustcTargetData};
4242
use crate::core::dependency::{DepKind, Dependency};
4343
use crate::core::resolver::types::FeaturesSet;
4444
use crate::core::resolver::{Resolve, ResolveBehavior};
45-
use crate::core::{FeatureValue, InternedString, PackageId, PackageIdSpec, PackageSet, Workspace};
45+
use crate::core::{FeatureValue, PackageId, PackageIdSpec, PackageSet, Workspace};
46+
use crate::util::interning::InternedString;
4647
use crate::util::CargoResult;
4748
use std::collections::{BTreeSet, HashMap, HashSet};
4849
use std::rc::Rc;

src/cargo/core/resolver/resolve.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use super::encode::Metadata;
22
use crate::core::dependency::DepKind;
3-
use crate::core::interning::InternedString;
43
use crate::core::{Dependency, PackageId, PackageIdSpec, Summary, Target};
54
use crate::util::errors::CargoResult;
5+
use crate::util::interning::InternedString;
66
use crate::util::Graph;
77
use std::borrow::Borrow;
88
use std::cmp;

src/cargo/core/resolver/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::features::RequestedFeatures;
2-
use crate::core::interning::InternedString;
32
use crate::core::{Dependency, PackageId, Summary};
43
use crate::util::errors::CargoResult;
4+
use crate::util::interning::InternedString;
55
use crate::util::Config;
66
use std::cmp::Ordering;
77
use std::collections::{BTreeMap, BTreeSet};

src/cargo/core/summary.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use std::rc::Rc;
77

88
use serde::{Serialize, Serializer};
99

10-
use crate::core::interning::InternedString;
1110
use crate::core::{Dependency, PackageId, SourceId};
11+
use crate::util::interning::InternedString;
1212
use semver::Version;
1313

1414
use crate::util::CargoResult;

src/cargo/core/workspace.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ use crate::core::features::Features;
1313
use crate::core::registry::PackageRegistry;
1414
use crate::core::resolver::features::RequestedFeatures;
1515
use crate::core::resolver::ResolveBehavior;
16-
use crate::core::{Dependency, InternedString, PackageId, PackageIdSpec};
16+
use crate::core::{Dependency, PackageId, PackageIdSpec};
1717
use crate::core::{EitherManifest, Package, SourceId, VirtualManifest};
1818
use crate::ops;
1919
use crate::sources::PathSource;
2020
use crate::util::errors::{CargoResult, CargoResultExt, ManifestError};
21+
use crate::util::interning::InternedString;
2122
use crate::util::paths;
2223
use crate::util::toml::{read_manifest, TomlProfiles};
2324
use crate::util::{Config, Filesystem};

src/cargo/ops/cargo_clean.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use crate::core::compiler::{CompileKind, CompileMode, Layout, RustcTargetData};
22
use crate::core::profiles::Profiles;
3-
use crate::core::{InternedString, PackageIdSpec, TargetKind, Workspace};
3+
use crate::core::{PackageIdSpec, TargetKind, Workspace};
44
use crate::ops;
55
use crate::util::errors::{CargoResult, CargoResultExt};
6+
use crate::util::interning::InternedString;
67
use crate::util::paths;
78
use crate::util::Config;
89
use std::fs;

src/cargo/ops/cargo_output_metadata.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use crate::core::compiler::{CompileKind, RustcTargetData};
22
use crate::core::dependency::DepKind;
33
use crate::core::resolver::{HasDevUnits, Resolve, ResolveOpts};
4-
use crate::core::{Dependency, InternedString, Package, PackageId, Workspace};
4+
use crate::core::{Dependency, Package, PackageId, Workspace};
55
use crate::ops::{self, Packages};
6+
use crate::util::interning::InternedString;
67
use crate::util::CargoResult;
78
use cargo_platform::Platform;
89
use serde::Serialize;

src/cargo/ops/tree/graph.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ use crate::core::compiler::{CompileKind, RustcTargetData};
55
use crate::core::dependency::DepKind;
66
use crate::core::resolver::features::{FeaturesFor, RequestedFeatures, ResolvedFeatures};
77
use crate::core::resolver::Resolve;
8-
use crate::core::{
9-
FeatureMap, FeatureValue, InternedString, Package, PackageId, PackageIdSpec, Workspace,
10-
};
8+
use crate::core::{FeatureMap, FeatureValue, Package, PackageId, PackageIdSpec, Workspace};
9+
use crate::util::interning::InternedString;
1110
use crate::util::CargoResult;
1211
use std::collections::{HashMap, HashSet};
1312

src/cargo/sources/registry/index.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@
6767
//! hopefully those are more obvious inline in the code itself.
6868
6969
use crate::core::dependency::Dependency;
70-
use crate::core::{InternedString, PackageId, SourceId, Summary};
70+
use crate::core::{PackageId, SourceId, Summary};
7171
use crate::sources::registry::{RegistryData, RegistryPackage};
72+
use crate::util::interning::InternedString;
7273
use crate::util::paths;
7374
use crate::util::{internal, CargoResult, Config, Filesystem, ToSemver};
7475
use log::info;

src/cargo/sources/registry/local.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
use crate::core::{InternedString, PackageId};
1+
use crate::core::PackageId;
22
use crate::sources::registry::{MaybeLock, RegistryConfig, RegistryData};
33
use crate::util::errors::CargoResult;
4+
use crate::util::interning::InternedString;
45
use crate::util::paths;
56
use crate::util::{Config, Filesystem, Sha256};
67
use std::fs::File;

src/cargo/sources/registry/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,11 @@ use tar::Archive;
173173

174174
use crate::core::dependency::{DepKind, Dependency};
175175
use crate::core::source::MaybePackage;
176-
use crate::core::{InternedString, Package, PackageId, Source, SourceId, Summary};
176+
use crate::core::{Package, PackageId, Source, SourceId, Summary};
177177
use crate::sources::PathSource;
178178
use crate::util::errors::CargoResultExt;
179179
use crate::util::hex;
180+
use crate::util::interning::InternedString;
180181
use crate::util::into_url::IntoUrl;
181182
use crate::util::{restricted_names, CargoResult, Config, Filesystem};
182183

src/cargo/sources/registry/remote.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
use crate::core::{GitReference, InternedString, PackageId, SourceId};
1+
use crate::core::{GitReference, PackageId, SourceId};
22
use crate::sources::git;
33
use crate::sources::registry::MaybeLock;
44
use crate::sources::registry::{
55
RegistryConfig, RegistryData, CRATE_TEMPLATE, LOWER_PREFIX_TEMPLATE, PREFIX_TEMPLATE,
66
VERSION_TEMPLATE,
77
};
88
use crate::util::errors::{CargoResult, CargoResultExt};
9+
use crate::util::interning::InternedString;
910
use crate::util::paths;
1011
use crate::util::{Config, Filesystem, Sha256};
1112
use lazycell::LazyCell;

src/cargo/util/command_prelude.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::core::compiler::{BuildConfig, MessageFormat};
2-
use crate::core::InternedString;
32
use crate::core::Workspace;
43
use crate::ops::{CompileFilter, CompileOptions, NewOptions, Packages, VersionControl};
54
use crate::sources::CRATES_IO_REGISTRY;
65
use crate::util::important_paths::find_root_manifest_for_wd;
6+
use crate::util::interning::InternedString;
77
use crate::util::{paths, toml::TomlProfile, validate_package_name};
88
use crate::util::{
99
print_available_benches, print_available_binaries, print_available_examples,

src/cargo/core/interning.rs renamed to src/cargo/util/interning.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use std::ptr;
1111
use std::str;
1212
use std::sync::Mutex;
1313

14-
pub fn leak(s: String) -> &'static str {
14+
fn leak(s: String) -> &'static str {
1515
Box::leak(s.into_boxed_str())
1616
}
1717

src/cargo/util/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ pub mod graph;
4343
mod hasher;
4444
pub mod hex;
4545
pub mod important_paths;
46+
pub mod interning;
4647
pub mod into_url;
4748
mod into_url_with_base;
4849
pub mod job;

0 commit comments

Comments
 (0)