Skip to content

Commit 6f5cbe2

Browse files
committed
Added QueryKind::Normalized, and used it in cargo-add
1 parent 4b1fc88 commit 6f5cbe2

File tree

5 files changed

+8
-1
lines changed

5 files changed

+8
-1
lines changed

crates/resolver-tests/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ pub fn resolve_with_config_raw(
113113
let matched = match kind {
114114
QueryKind::Exact => dep.matches(summary),
115115
QueryKind::Fuzzy => true,
116+
QueryKind::Normalized => true,
116117
};
117118
if matched {
118119
self.used.insert(summary.package_id());

src/cargo/sources/directory.rs

+1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ impl<'cfg> Source for DirectorySource<'cfg> {
109109
let matches = packages.filter(|pkg| match kind {
110110
QueryKind::Exact => dep.matches(pkg.summary()),
111111
QueryKind::Fuzzy => true,
112+
QueryKind::Normalized => dep.matches(pkg.summary()),
112113
});
113114
for summary in matches.map(|pkg| pkg.summary().clone()) {
114115
f(IndexSummary::Candidate(summary));

src/cargo/sources/path.rs

+1
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ impl<'cfg> Source for PathSource<'cfg> {
555555
let matched = match kind {
556556
QueryKind::Exact => dep.matches(s),
557557
QueryKind::Fuzzy => true,
558+
QueryKind::Normalized => dep.matches(s),
558559
};
559560
if matched {
560561
f(IndexSummary::Candidate(s.clone()))

src/cargo/sources/registry/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,7 @@ impl<'cfg> Source for RegistrySource<'cfg> {
793793
let matched = match kind {
794794
QueryKind::Exact => dep.matches(s.as_summary()),
795795
QueryKind::Fuzzy => true,
796+
QueryKind::Normalized => true,
796797
};
797798
if !matched {
798799
return;
@@ -831,7 +832,7 @@ impl<'cfg> Source for RegistrySource<'cfg> {
831832
return Poll::Ready(Ok(()));
832833
}
833834
let mut any_pending = false;
834-
if kind == QueryKind::Fuzzy {
835+
if kind == QueryKind::Fuzzy || kind == QueryKind::Normalized {
835836
// Attempt to handle misspellings by searching for a chain of related
836837
// names to the original name. The resolver will later
837838
// reject any candidates that have the wrong name, and with this it'll

src/cargo/sources/source.rs

+3
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ pub enum QueryKind {
180180
/// whereas an `Registry` source may return dependencies that have the same
181181
/// canonicalization.
182182
Fuzzy,
183+
/// Match a denpendency in all ways and will normalize the package name.
184+
/// Each source defines what normalizing means.
185+
Normalized,
183186
}
184187

185188
/// A download status that represents if a [`Package`] has already been

0 commit comments

Comments
 (0)