Feedback
diff --git a/pkgs/package_config/lib/src/package_config_impl.dart b/pkgs/package_config/lib/src/package_config_impl.dart index 86f31db..64bc50a 100644 --- a/pkgs/package_config/lib/src/package_config_impl.dart +++ b/pkgs/package_config/lib/src/package_config_impl.dart
@@ -384,9 +384,9 @@ SimplePackage? packageOf(Uri file); } -class _TrielikePackageTreeHelper { +class _PackageTrieNode { SimplePackage? package; - Map<String, _TrielikePackageTreeHelper> map = {}; + Map<String, _PackageTrieNode> map = {}; } /// Packages of a package configuration ordered by root path. @@ -402,7 +402,7 @@ /// root path. /// Entire other packages are allowed inside a package's root. class TrielikePackageTree implements PackageTree { - final Map<String, _TrielikePackageTreeHelper> _map = {}; + final Map<String, _PackageTrieNode> _map = {}; /// A list of all packages. final List<SimplePackage> _packages = []; @@ -414,10 +414,10 @@ } } - bool _checkConflict(_TrielikePackageTreeHelper currentMapHelper, + bool _checkConflict(_PackageTrieNode currentTrieNode, SimplePackage newPackage, void Function(Object error) onError) { - if (currentMapHelper.package != null) { - var existingPackage = currentMapHelper.package!; + if (currentTrieNode.package != null) { + var existingPackage = currentTrieNode.package!; // Trying to add package that is inside the existing package. // 1) If it's an exact match it's not allowed (i.e. the roots can't be // the same). @@ -465,23 +465,23 @@ /// The packages are added in order of their root path. void add(SimplePackage newPackage, void Function(Object error) onError) { var root = newPackage.root; - var currentMapHelper = _map[root.scheme] ??= _TrielikePackageTreeHelper(); - if (_checkConflict(currentMapHelper, newPackage, onError)) return; + var currentTrieNode = _map[root.scheme] ??= _PackageTrieNode(); + if (_checkConflict(currentTrieNode, newPackage, onError)) return; var segments = root.pathSegments; for (var i = 0; i < segments.length - 1; i++) { var path = segments[i]; - currentMapHelper = - currentMapHelper.map[path] ??= _TrielikePackageTreeHelper(); - if (_checkConflict(currentMapHelper, newPackage, onError)) return; + currentTrieNode = + currentTrieNode.map[path] ??= _PackageTrieNode(); + if (_checkConflict(currentTrieNode, newPackage, onError)) return; } - currentMapHelper.package = newPackage; + currentTrieNode.package = newPackage; _packages.add(newPackage); } - bool _isMatch(String path, _TrielikePackageTreeHelper currentMapHelper, + bool _isMatch(String path, _PackageTrieNode currentTrieNode, List<SimplePackage> potential) { - if (currentMapHelper.package != null) { - var currentPackage = currentMapHelper.package!; + if (currentTrieNode.package != null) { + var currentPackage = currentTrieNode.package!; var currentPackageRootLength = currentPackage.root.toString().length; if (path.length == currentPackageRootLength) return true; var currentPackageUriRoot = currentPackage.packageUriRoot.toString(); @@ -497,21 +497,21 @@ @override SimplePackage? packageOf(Uri file) { - var currentMapHelper = _map[file.scheme]; - if (currentMapHelper == null) return null; + var currentTrieNode = _map[file.scheme]; + if (currentTrieNode == null) return null; var path = file.toString(); var potential = <SimplePackage>[]; - if (_isMatch(path, currentMapHelper, potential)) { - return currentMapHelper.package; + if (_isMatch(path, currentTrieNode, potential)) { + return currentTrieNode.package; } var segments = file.pathSegments; for (var i = 0; i < segments.length - 1; i++) { var segment = segments[i]; - currentMapHelper = currentMapHelper!.map[segment]; - if (currentMapHelper == null) break; - if (_isMatch(path, currentMapHelper, potential)) { - return currentMapHelper.package; + currentTrieNode = currentTrieNode!.map[segment]; + if (currentTrieNode == null) break; + if (_isMatch(path, currentTrieNode, potential)) { + return currentTrieNode.package; } } if (potential.isEmpty) return null;