diff options
Diffstat (limited to 'src/launcher/version.rs')
| -rw-r--r-- | src/launcher/version.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/launcher/version.rs b/src/launcher/version.rs index f857b93..328f0a9 100644 --- a/src/launcher/version.rs +++ b/src/launcher/version.rs @@ -281,7 +281,9 @@ impl VersionList { pub fn get_version_lazy(&self, id: &str) -> VersionResult { self.remote.as_ref() - .map_or_else(|| self.local.versions.get(id).into(), |r| r.versions.get(id).into()) + .map_or(None, |r| r.versions.get(id).map(VersionResult::from)) + .or_else(|| self.local.versions.get(id).map(VersionResult::from)) + .unwrap_or(VersionResult::None) } pub fn get_profile_version_id<'v>(&self, ver: &'v ProfileVersion) -> Option<Cow<'v, str>> { @@ -336,7 +338,7 @@ impl VersionList { let mut inherit = inherit.clone(); loop { - if seen.insert(inherit.clone()) { + if !seen.insert(inherit.clone()) { warn!("Version inheritance loop detected in {}: {} transitively inherits from itself.", ver.id, inherit); return Err(VersionResolveError::InheritanceLoop(inherit)); } |
