From f4c2b3972466bfc31bc99a440d93fc390f1f1362 Mon Sep 17 00:00:00 2001 From: xiyu Date: Wed, 29 Nov 2023 22:52:33 -0500 Subject: [PATCH] save --- crates/abstractions/vec-like/src/lib.rs | 1 + crates/abstractions/vec-like/src/vec_set.rs | 15 +- .../examples/algorithms/quick-sort.md | 45 +- .../quick-sort/item_valkyrie_rides/lib.md | 8 +- .../expect-files/examples/mnist-classifier.md | 4450 ++++++++++------- .../connected_component.md | 28 +- .../item_valkyrie_rides/digits/eight.md | 4 +- .../item_valkyrie_rides/digits/four.md | 4 +- .../item_valkyrie_rides/digits/nine.md | 4 +- .../item_valkyrie_rides/digits/one.md | 8 +- .../item_valkyrie_rides/digits/three.md | 4 +- .../item_valkyrie_rides/digits/two.md | 4 +- .../item_valkyrie_rides/digits/zero.md | 8 +- .../item_valkyrie_rides/fermi.md | 28 +- .../line_segment_sketch.md | 52 +- .../line_segment_sketch/concave_component.md | 84 +- .../line_segment_sketch/convex_component.md | 4 +- .../line_segment_sketch/convexity.md | 12 +- .../item_valkyrie_rides/major.md | 8 +- .../item_valkyrie_rides/raw_contour.md | 32 +- .../examples/natural-number-game.md | 24 +- .../expect-files/library/core.md | 1558 +----- .../husky-linkage/expect-files/library/std.md | 18 +- .../expect-files/registry/malamute-0.1.md | 45 +- .../expect-files/registry/math-0.1.md | 24 +- .../expect-files/registry/mnist-0.1.md | 164 +- crates/linkage/husky-linkage/src/amazon.rs | 5 +- .../husky-linkage/src/instantiation.rs | 20 +- crates/linkage/husky-linkage/src/jar.rs | 3 +- crates/linkage/husky-linkage/src/linkage.rs | 7 +- crates/linkage/husky-linkage/src/pantheon.rs | 68 +- .../husky-linkage/src/template_argument.rs | 23 +- .../src/template_argument/constant.rs | 7 +- .../husky-linkage/src/template_argument/ty.rs | 9 +- crates/linkage/husky-linkage/src/valkyrie.rs | 60 +- 35 files changed, 3140 insertions(+), 3698 deletions(-) diff --git a/crates/abstractions/vec-like/src/lib.rs b/crates/abstractions/vec-like/src/lib.rs index 48fc5e4836..c0db6803bd 100644 --- a/crates/abstractions/vec-like/src/lib.rs +++ b/crates/abstractions/vec-like/src/lib.rs @@ -1,3 +1,4 @@ +#![feature(impl_trait_in_assoc_type)] mod append_only; pub mod error; mod ordered_small_vec_set; diff --git a/crates/abstractions/vec-like/src/vec_set.rs b/crates/abstractions/vec-like/src/vec_set.rs index 3d1520df6f..3b90a0b76b 100644 --- a/crates/abstractions/vec-like/src/vec_set.rs +++ b/crates/abstractions/vec-like/src/vec_set.rs @@ -6,6 +6,16 @@ pub struct VecSet { data: Vec, } +impl<'a, K> IntoIterator for &'a VecSet { + type Item = &'a K; + + type IntoIter = impl Iterator + 'a; + + fn into_iter(self) -> Self::IntoIter { + self.data.iter() + } +} + impl VecSet { pub fn new_one_elem_set(elem: K) -> Self { Self { data: vec![elem] } @@ -20,10 +30,7 @@ impl Default for VecSet { } } -impl Deref for VecSet -where - K: PartialEq + Eq + Copy, -{ +impl Deref for VecSet { type Target = [K]; fn deref(&self) -> &Self::Target { diff --git a/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort.md b/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort.md index 3d2a8a0a67..2f1a775d61 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort.md +++ b/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort.md @@ -1,36 +1,23 @@ -[ - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 240, - }, +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, + }, }, }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 241, - }, - ), + name: `quick-sort`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/algorithms/quick-sort", ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, }, }, }, -] \ No newline at end of file + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort/item_valkyrie_rides/lib.md b/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort/item_valkyrie_rides/lib.md index 397a778b84..c850bdbeb4 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort/item_valkyrie_rides/lib.md +++ b/crates/linkage/husky-linkage/expect-files/examples/algorithms/quick-sort/item_valkyrie_rides/lib.md @@ -29,7 +29,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -38,7 +38,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -132,7 +132,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -141,7 +141,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier.md index 41939d93ef..8f04b58aa5 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier.md @@ -1,1753 +1,2697 @@ -[ - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 250, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 251, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 252, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 253, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 254, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 255, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 408, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 417, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 418, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 256, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 257, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 262, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 263, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 264, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 265, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 266, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 267, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 268, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 269, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 270, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 419, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 424, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 271, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 272, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 273, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 274, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 275, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 276, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 425, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 426, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 427, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 428, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 429, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 430, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 431, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 432, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 433, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 434, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 435, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 436, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 437, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 438, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 439, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 440, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 441, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 442, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 443, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 444, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 445, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 446, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 447, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 448, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 449, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 281, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 282, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 283, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 284, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 285, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 286, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 287, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 450, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 451, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 452, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 453, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 456, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 288, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 289, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 457, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 464, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 465, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 466, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 467, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 468, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 469, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 290, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 470, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 291, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 292, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 471, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 472, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 293, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 294, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 306, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 310, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 311, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 312, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 316, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 317, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 320, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 321, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 322, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 324, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 328, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 329, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 332, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 334, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 335, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 339, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 343, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 344, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 346, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 347, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: Fugitive( - FugitivePath( - ItemPathId( - Id { - value: 348, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, -] \ No newline at end of file +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + instantiation_map: { + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 184, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 180, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 182, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 2, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 185, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 9, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 193, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 194, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 8, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 194, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 6, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 190, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 4, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 181, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 130, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 1, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + Ritchie( + LinkageTypeRitchie( + Id { + value: 1, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 130, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 7, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 184, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 191, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 181, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 182, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 10, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 183, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 7, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 192, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `mnist-classifier`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/mnist-classifier", + ), + }, + }, + }, + }, + new_linkages: [ + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 130, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 1, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 2, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 181, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 182, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 4, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 181, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 190, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 182, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 191, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 180, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfPlace, + ), + SelfPlace( + Transient, + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 184, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 194, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 6, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 184, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 7, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 194, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 8, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 192, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TraitForTypeItem( + TraitForTypeItemPath( + ItemPathId( + Id { + value: 130, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + SelfType, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 3, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 193, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 5, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 183, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 7, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 178, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + Ritchie( + LinkageTypeRitchie( + Id { + value: 1, + }, + ), + ), + ), + ), + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 185, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 9, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + Linkage { + data: LinkageData::PathLeading { + path: TypeItem( + TypeItemPath( + ItemPathId( + Id { + value: 179, + }, + ), + ), + ), + instantiation: LinkageInstantiation { + symbol_resolutions: [ + ( + Type( + Type { + attrs: HirSymbolAttrs, + variance: None, + disambiguator: 0, + }, + ), + Explicit( + Type( + PathLeading( + LinkageTypePathLeading( + Id { + value: 10, + }, + ), + ), + ), + ), + ), + ( + Type( + SelfLifetime, + ), + SelfLifetime, + ), + ], + separator: Some( + 1, + ), + }, + }, + }, + ], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/connected_component.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/connected_component.md index 18bafde36c..73a651551c 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/connected_component.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/connected_component.md @@ -69,7 +69,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -78,7 +78,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -103,7 +103,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -112,7 +112,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -200,7 +200,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -209,7 +209,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -238,7 +238,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -247,7 +247,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -282,7 +282,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -291,7 +291,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -335,7 +335,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -344,7 +344,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -373,7 +373,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -382,7 +382,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/eight.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/eight.md index cd9939a5b1..03c55e5612 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/eight.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/eight.md @@ -25,7 +25,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -34,7 +34,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/four.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/four.md index 24b690f437..2742cccb44 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/four.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/four.md @@ -41,7 +41,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -50,7 +50,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/nine.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/nine.md index b11a4032a1..80358cc698 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/nine.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/nine.md @@ -21,7 +21,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -30,7 +30,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/one.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/one.md index 0be340f262..52a2875b88 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/one.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/one.md @@ -13,7 +13,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -22,7 +22,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -51,7 +51,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -60,7 +60,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/three.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/three.md index b0ea495a76..a3e261d1ae 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/three.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/three.md @@ -13,7 +13,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -22,7 +22,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/two.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/two.md index 7ab78a6469..b5f7fa098e 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/two.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/two.md @@ -49,7 +49,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -58,7 +58,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/zero.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/zero.md index 335a7a996f..347ffd6403 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/zero.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/digits/zero.md @@ -25,7 +25,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -34,7 +34,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -63,7 +63,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -72,7 +72,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/fermi.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/fermi.md index ffc8722107..154a6ec891 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/fermi.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/fermi.md @@ -21,7 +21,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -30,7 +30,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -59,7 +59,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -68,7 +68,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -97,7 +97,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -106,7 +106,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -141,7 +141,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -150,7 +150,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -206,7 +206,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -215,7 +215,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -253,7 +253,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -262,7 +262,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -300,7 +300,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -309,7 +309,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch.md index ca699e72e9..4847e078cf 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch.md @@ -61,7 +61,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -70,7 +70,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -112,7 +112,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -121,7 +121,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -163,7 +163,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -172,7 +172,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -201,7 +201,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -210,7 +210,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -239,7 +239,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -248,7 +248,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -285,7 +285,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -294,7 +294,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -323,7 +323,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -332,7 +332,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -367,7 +367,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -376,7 +376,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -405,7 +405,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -414,7 +414,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -449,7 +449,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -458,7 +458,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -544,7 +544,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -553,7 +553,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -619,7 +619,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -628,7 +628,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -682,7 +682,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -691,7 +691,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/concave_component.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/concave_component.md index e729704de3..ad63132fb9 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/concave_component.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/concave_component.md @@ -21,7 +21,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -30,7 +30,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -59,7 +59,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -68,7 +68,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -97,7 +97,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -106,7 +106,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -166,7 +166,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -175,7 +175,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -237,7 +237,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -246,7 +246,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -275,7 +275,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -284,7 +284,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -313,7 +313,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -322,7 +322,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -360,7 +360,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -369,7 +369,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -398,7 +398,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -407,7 +407,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -445,7 +445,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -454,7 +454,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -483,7 +483,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -492,7 +492,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -521,7 +521,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -530,7 +530,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -580,7 +580,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -589,7 +589,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -618,7 +618,7 @@ }, }, ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -627,7 +627,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -652,7 +652,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -661,7 +661,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -703,7 +703,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -712,7 +712,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -741,7 +741,7 @@ }, }, ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -750,7 +750,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -788,7 +788,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -797,7 +797,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -826,7 +826,7 @@ }, }, ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -835,7 +835,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -885,7 +885,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -894,7 +894,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -936,7 +936,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -945,7 +945,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convex_component.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convex_component.md index e47f6ef316..bbfd98c503 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convex_component.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convex_component.md @@ -33,7 +33,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TraitForTypeItem( + linkage_item_path: TraitForTypeItem( TraitForTypeItemPath( ItemPathId( Id { @@ -42,7 +42,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convexity.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convexity.md index 9f41064264..ff33da3725 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convexity.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/line_segment_sketch/convexity.md @@ -9,7 +9,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -18,7 +18,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -47,7 +47,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -56,7 +56,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -85,7 +85,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -94,7 +94,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/major.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/major.md index 07803fb2e1..f6af613b65 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/major.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/major.md @@ -13,7 +13,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -22,7 +22,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -60,7 +60,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -69,7 +69,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/raw_contour.md b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/raw_contour.md index 18617ea873..94a6b88a97 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/raw_contour.md +++ b/crates/linkage/husky-linkage/expect-files/examples/mnist-classifier/item_valkyrie_rides/raw_contour.md @@ -117,7 +117,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -126,7 +126,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -168,7 +168,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -177,7 +177,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -214,7 +214,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -223,7 +223,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -258,7 +258,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -267,7 +267,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -302,7 +302,7 @@ }, }, ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -311,7 +311,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -399,7 +399,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -408,7 +408,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -454,7 +454,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -463,7 +463,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( @@ -505,7 +505,7 @@ rides: VecSet { data: [ ValkyrieRide { - linkage_path: TypeItem( + linkage_item_path: TypeItem( TypeItemPath( ItemPathId( Id { @@ -514,7 +514,7 @@ ), ), ), - instantiation: HirInstantiation { + hir_instantiation: HirInstantiation { symbol_map: [ ( Type( diff --git a/crates/linkage/husky-linkage/expect-files/examples/natural-number-game.md b/crates/linkage/husky-linkage/expect-files/examples/natural-number-game.md index 0637a088a0..d843aa844d 100644 --- a/crates/linkage/husky-linkage/expect-files/examples/natural-number-game.md +++ b/crates/linkage/husky-linkage/expect-files/examples/natural-number-game.md @@ -1 +1,23 @@ -[] \ No newline at end of file +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `natural-number-game`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../examples/natural-number-game", + ), + }, + }, + }, + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/library/core.md b/crates/linkage/husky-linkage/expect-files/library/core.md index cd4130c4c2..3abefe5442 100644 --- a/crates/linkage/husky-linkage/expect-files/library/core.md +++ b/crates/linkage/husky-linkage/expect-files/library/core.md @@ -1,1549 +1,17 @@ -[ - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 21, - }, +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, + }, }, }, + name: `core`, + data: PackagePathSource::Library, }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 22, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 23, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 24, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 25, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 26, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 27, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 130, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 34, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 45, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 46, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 47, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 48, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 49, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 50, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 51, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 52, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 53, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 54, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 55, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 56, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 57, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 58, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 131, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 132, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 133, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 134, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 135, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 136, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 137, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 138, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 139, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 140, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 141, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 142, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 143, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 144, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 145, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 146, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 147, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 148, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 149, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 150, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 151, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 152, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 153, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 154, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 155, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 156, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 157, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 158, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 159, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 160, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 161, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 162, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 163, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 164, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 165, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 166, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 167, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 168, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 169, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 170, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 82, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 171, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 172, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 173, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 174, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 175, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 176, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 177, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 178, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 179, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 180, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 181, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 182, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 183, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 184, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 185, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 186, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 187, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 188, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 189, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 190, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 191, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 192, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 193, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 89, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 90, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 92, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 194, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, -] \ No newline at end of file + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/library/std.md b/crates/linkage/husky-linkage/expect-files/library/std.md index 0637a088a0..c43b6cece5 100644 --- a/crates/linkage/husky-linkage/expect-files/library/std.md +++ b/crates/linkage/husky-linkage/expect-files/library/std.md @@ -1 +1,17 @@ -[] \ No newline at end of file +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `std`, + data: PackagePathSource::Library, + }, + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/registry/malamute-0.1.md b/crates/linkage/husky-linkage/expect-files/registry/malamute-0.1.md index 0ce24e9158..dcdf70e621 100644 --- a/crates/linkage/husky-linkage/expect-files/registry/malamute-0.1.md +++ b/crates/linkage/husky-linkage/expect-files/registry/malamute-0.1.md @@ -1,36 +1,23 @@ -[ - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 490, - }, +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, + }, }, }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 491, - }, - ), + name: `malamute`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../registry/malamute-0.1.0", ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, }, }, }, -] \ No newline at end of file + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/registry/math-0.1.md b/crates/linkage/husky-linkage/expect-files/registry/math-0.1.md index 0637a088a0..c09e4d9c8d 100644 --- a/crates/linkage/husky-linkage/expect-files/registry/math-0.1.md +++ b/crates/linkage/husky-linkage/expect-files/registry/math-0.1.md @@ -1 +1,23 @@ -[] \ No newline at end of file +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", + ), + }, + }, + }, + name: `math`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../registry/math-0.1.0", + ), + }, + }, + }, + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/expect-files/registry/mnist-0.1.md b/crates/linkage/husky-linkage/expect-files/registry/mnist-0.1.md index 679c66e1d8..fbc667510a 100644 --- a/crates/linkage/husky-linkage/expect-files/registry/mnist-0.1.md +++ b/crates/linkage/husky-linkage/expect-files/registry/mnist-0.1.md @@ -1,155 +1,23 @@ -[ - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 497, - }, +LinkagePantheon { + package_path: PackagePath { + toolchain: Toolchain { + data: ToolchainData::Local { + library_path: VirtualPath { + _data: RelPathBuf( + "../../../library", ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 508, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeConstructor( - TypePath( - ItemPathId( - Id { - value: 509, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 517, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 518, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 519, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, + }, }, }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 520, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TypeItem( - TypeItemPath( - ItemPathId( - Id { - value: 521, - }, - ), - ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, - }, - }, - }, - Linkage { - data: LinkageData::PathLeading { - path: TraitForTypeItem( - TraitForTypeItemPath( - ItemPathId( - Id { - value: 522, - }, - ), + name: `mnist`, + data: PackagePathSource::Local { + path: VirtualPath { + _data: RelPathBuf( + "../../../registry/mnist-0.1.0", ), - ), - instantiation: LinkageInstantiation { - symbol_resolutions: [], - separator: None, }, }, }, -] \ No newline at end of file + instantiation_map: {}, + new_linkages: [], +} \ No newline at end of file diff --git a/crates/linkage/husky-linkage/src/amazon.rs b/crates/linkage/husky-linkage/src/amazon.rs index 1e57a3d03c..e9bb0eb52c 100644 --- a/crates/linkage/husky-linkage/src/amazon.rs +++ b/crates/linkage/husky-linkage/src/amazon.rs @@ -4,7 +4,10 @@ use husky_vfs::{CratePath, PackagePath}; use vec_like::VecSet; #[salsa::tracked(jar = LinkageJar, return_ref)] -fn package_amazon_linkages(db: &::salsa::Db, package_path: PackagePath) -> VecSet { +pub(crate) fn package_amazon_linkages( + db: &::salsa::Db, + package_path: PackagePath, +) -> VecSet { let mut linkages: VecSet = Default::default(); for &crate_path in package_path.crate_paths(db) { for &module_path in crate_module_paths(db, crate_path) { diff --git a/crates/linkage/husky-linkage/src/instantiation.rs b/crates/linkage/husky-linkage/src/instantiation.rs index 381487e8e8..65502daffc 100644 --- a/crates/linkage/husky-linkage/src/instantiation.rs +++ b/crates/linkage/husky-linkage/src/instantiation.rs @@ -12,21 +12,26 @@ pub struct LinkageInstantiation { } impl LinkageInstantiation { pub(crate) fn from_hir( - instantiation: &HirInstantiation, + hir_instantiation: &HirInstantiation, + linkage_instantiation: Option<&LinkageInstantiation>, db: &::salsa::Db, ) -> LinkageInstantiation { LinkageInstantiation { - symbol_resolutions: instantiation + symbol_resolutions: hir_instantiation .symbol_map() .iter() .map(|&(symbol, resolution)| { ( symbol, - LinkageTermSymbolResolution::from_hir(resolution, db), + LinkageTermSymbolResolution::from_hir( + resolution, + linkage_instantiation, + db, + ), ) }) .collect(), - separator: instantiation.separator(), + separator: hir_instantiation.separator(), } } @@ -46,11 +51,16 @@ pub enum LinkageTermSymbolResolution { } impl LinkageTermSymbolResolution { - fn from_hir(resolution: HirTermSymbolResolution, db: &::salsa::Db) -> Self { + fn from_hir( + resolution: HirTermSymbolResolution, + linkage_instantiation: Option<&LinkageInstantiation>, + db: &::salsa::Db, + ) -> Self { match resolution { HirTermSymbolResolution::Explicit(template_argument) => { LinkageTermSymbolResolution::Explicit(LinkageTemplateArgument::from_hir( template_argument, + linkage_instantiation, db, )) } diff --git a/crates/linkage/husky-linkage/src/jar.rs b/crates/linkage/husky-linkage/src/jar.rs index 8e854cff4d..7e74bccc09 100644 --- a/crates/linkage/husky-linkage/src/jar.rs +++ b/crates/linkage/husky-linkage/src/jar.rs @@ -8,6 +8,7 @@ pub struct LinkageJar( crate::version_stamp::LinkageVersionStamp, crate::template_argument::ty::LinkageTypePathLeading, crate::template_argument::ty::LinkageTypeRitchie, - crate::pantheon::valkyrie_linkage_pantheon, + crate::pantheon::package_valkyrie_linkage_pantheon, crate::valkyrie::item_valkyrie_rides, + crate::valkyrie::linkage_valkyrie_linkages, ); diff --git a/crates/linkage/husky-linkage/src/linkage.rs b/crates/linkage/husky-linkage/src/linkage.rs index 89befaa77c..dcbb38d5dd 100644 --- a/crates/linkage/husky-linkage/src/linkage.rs +++ b/crates/linkage/husky-linkage/src/linkage.rs @@ -3,8 +3,9 @@ use husky_hir_decl::parameter::template::item_hir_template_parameter_stats; use husky_hir_defn::HasHirDefn; use husky_hir_ty::{instantiation::HirInstantiation, HirTemplateArgument, HirTemplateArguments}; -#[salsa::interned(db = LinkageDb, jar = LinkageJar, constructor = new)] +#[salsa::interned(db = LinkageDb, jar = LinkageJar, constructor = pub(crate) new)] pub struct Linkage { + #[return_ref] pub data: LinkageData, } @@ -64,14 +65,14 @@ impl Linkage { pub fn new_item( path: impl Into, - instantiation: &HirInstantiation, + hir_instantiation: &HirInstantiation, db: &::salsa::Db, ) -> Self { Self::new( db, LinkageData::PathLeading { path: LinkageItemPath::try_from_item_path(path.into()).unwrap(), - instantiation: LinkageInstantiation::from_hir(instantiation, db), + instantiation: LinkageInstantiation::from_hir(hir_instantiation, None, db), }, ) } diff --git a/crates/linkage/husky-linkage/src/pantheon.rs b/crates/linkage/husky-linkage/src/pantheon.rs index 0b6fe9850d..23a03f905f 100644 --- a/crates/linkage/husky-linkage/src/pantheon.rs +++ b/crates/linkage/husky-linkage/src/pantheon.rs @@ -1,7 +1,8 @@ -use crate::*; +use crate::{amazon::package_amazon_linkages, valkyrie::linkage_valkyrie_linkages, *}; use fxhash::FxHashMap; use husky_manifest::HasPackageManifest; use husky_vfs::PackagePath; +use vec_like::VecSet; #[salsa::debug_with_db] #[derive(Debug, PartialEq, Eq)] @@ -9,36 +10,42 @@ pub struct LinkagePantheon { package_path: PackagePath, // map each linkage to a package where it's instantiated instantiation_map: FxHashMap, + new_linkages: Vec, } #[salsa::tracked(jar = LinkageJar, return_ref)] -pub(crate) fn valkyrie_linkage_pantheon( +pub(crate) fn package_valkyrie_linkage_pantheon( db: &::salsa::Db, package_path: PackagePath, ) -> LinkagePantheon { let mut pantheon = LinkagePantheon { package_path, instantiation_map: Default::default(), + new_linkages: Default::default(), }; for dep in package_path .package_dependencies(db) .expect("no error at this stage") { - pantheon.merge(valkyrie_linkage_pantheon(db, dep.package_path())) + pantheon.add_valkyrie_linkages_instantiated_by_package(package_valkyrie_linkage_pantheon( + db, + dep.package_path(), + )) + } + let mut bar = 0; + for &linkage in package_amazon_linkages(db, package_path) { + pantheon.try_add_valkyrie_linkages_instantiated_by_linkage(linkage, db) + } + while bar < pantheon.new_linkages.len() { + let new_bar = pantheon.new_linkages.len(); + for i in bar..pantheon.new_linkages.len() { + pantheon.try_add_valkyrie_linkages_instantiated_by_linkage(pantheon.new_linkages[i], db) + } + bar = new_bar } - // todo: add new linkages instantiated here pantheon } -#[test] -fn linkage_pantheon_works() { - let mut db = DB::default(); - db.ast_expect_test_debug_with_db( - |db, package_path| valkyrie_linkage_pantheon(db, package_path), - &AstTestConfig::new("linkage_pantheon"), - ) -} - impl LinkagePantheon { pub fn new_linkages<'a>(&'a self) -> impl Iterator + 'a { self.instantiation_map @@ -48,11 +55,42 @@ impl LinkagePantheon { }) } - fn merge(&mut self, other: &Self) { - for (&linkage, &package_path) in other.instantiation_map.iter() { + fn add_valkyrie_linkages_instantiated_by_package( + &mut self, + other_package_linkage_pantheon: &Self, + ) { + for (&linkage, &package_path) in other_package_linkage_pantheon.instantiation_map.iter() { self.instantiation_map .entry(linkage) .or_insert(package_path); } } + + // do nothing if already instantiated + fn try_add_valkyrie_linkages_instantiated_by_linkage( + &mut self, + linkage: Linkage, + db: &::salsa::Db, + ) { + for &valkyrie_linkage in linkage_valkyrie_linkages(db, linkage) { + match self.instantiation_map.get(&valkyrie_linkage) { + Some(_) => (), + None => self.add_new_linkage(valkyrie_linkage), + } + } + } + + fn add_new_linkage(&mut self, linkage: Linkage) { + self.instantiation_map.insert(linkage, self.package_path); + self.new_linkages.push(linkage) + } +} + +#[test] +fn package_linkage_pantheon_works() { + let mut db = DB::default(); + db.ast_expect_test_debug_with_db( + |db, package_path| package_valkyrie_linkage_pantheon(db, package_path), + &AstTestConfig::new("package_linkage_pantheon"), + ) } diff --git a/crates/linkage/husky-linkage/src/template_argument.rs b/crates/linkage/husky-linkage/src/template_argument.rs index e1685532a0..daab140288 100644 --- a/crates/linkage/husky-linkage/src/template_argument.rs +++ b/crates/linkage/husky-linkage/src/template_argument.rs @@ -18,23 +18,30 @@ pub enum LinkageTemplateArgument { impl LinkageTemplateArgument { pub(crate) fn from_hir_template_arguments( template_arguments: &[HirTemplateArgument], + linkage_instantiation: Option<&LinkageInstantiation>, db: &::salsa::Db, ) -> LinkageTemplateArguments { template_arguments .iter() - .map(|&template_argument| LinkageTemplateArgument::from_hir(template_argument, db)) + .map(|&template_argument| { + LinkageTemplateArgument::from_hir(template_argument, linkage_instantiation, db) + }) .collect() } - pub(crate) fn from_hir(template_argument: HirTemplateArgument, db: &::salsa::Db) -> Self { + pub(crate) fn from_hir( + template_argument: HirTemplateArgument, + linkage_instantiation: Option<&LinkageInstantiation>, + db: &::salsa::Db, + ) -> Self { match template_argument { HirTemplateArgument::Vacant => LinkageTemplateArgument::Vacant, - HirTemplateArgument::Type(hir_ty) => { - LinkageTemplateArgument::Type(LinkageType::from_hir(hir_ty, db)) - } - HirTemplateArgument::Constant(hir_constant) => { - LinkageTemplateArgument::Constant(LinkageConstant::from_hir(hir_constant)) - } + HirTemplateArgument::Type(hir_ty) => LinkageTemplateArgument::Type( + LinkageType::from_hir(hir_ty, linkage_instantiation, db), + ), + HirTemplateArgument::Constant(hir_constant) => LinkageTemplateArgument::Constant( + LinkageConstant::from_hir(hir_constant, linkage_instantiation), + ), HirTemplateArgument::Lifetime(_) => LinkageTemplateArgument::Lifetime, HirTemplateArgument::Place(_) => LinkageTemplateArgument::Place, } diff --git a/crates/linkage/husky-linkage/src/template_argument/constant.rs b/crates/linkage/husky-linkage/src/template_argument/constant.rs index ef3a537ad8..63e6ba43ca 100644 --- a/crates/linkage/husky-linkage/src/template_argument/constant.rs +++ b/crates/linkage/husky-linkage/src/template_argument/constant.rs @@ -28,7 +28,10 @@ pub enum LinkageConstant { } impl LinkageConstant { - pub(crate) fn from_hir(hir_constant: HirConstant) -> LinkageConstant { + pub(crate) fn from_hir( + hir_constant: HirConstant, + linkage_instantiation: Option<&LinkageInstantiation>, + ) -> LinkageConstant { match hir_constant { HirConstant::Unit(value) => LinkageConstant::Unit(value), HirConstant::Bool(value) => LinkageConstant::Bool(value), @@ -51,7 +54,7 @@ impl LinkageConstant { HirConstant::R64(value) => LinkageConstant::R64(value), HirConstant::R128(value) => LinkageConstant::R128(value), HirConstant::RSize(value) => LinkageConstant::RSize(value), - HirConstant::Symbol(_) => unreachable!(), + HirConstant::Symbol(_) => todo!("use linkage instantiation"), } } } diff --git a/crates/linkage/husky-linkage/src/template_argument/ty.rs b/crates/linkage/husky-linkage/src/template_argument/ty.rs index c5767488eb..33aa72ad86 100644 --- a/crates/linkage/husky-linkage/src/template_argument/ty.rs +++ b/crates/linkage/husky-linkage/src/template_argument/ty.rs @@ -22,13 +22,18 @@ pub struct LinkageTypePathLeading { pub struct LinkageTypeRitchie {} impl LinkageType { - pub(super) fn from_hir(hir_ty: HirType, db: &::salsa::Db) -> Self { + pub(super) fn from_hir( + hir_ty: HirType, + linkage_instantiation: Option<&LinkageInstantiation>, + db: &::salsa::Db, + ) -> Self { match hir_ty { HirType::PathLeading(hir_ty) => LinkageTypePathLeading::new( db, hir_ty.ty_path(db), LinkageTemplateArgument::from_hir_template_arguments( hir_ty.template_arguments(db), + linkage_instantiation, db, ), ) @@ -36,7 +41,7 @@ impl LinkageType { HirType::Symbol(_) => unreachable!(), HirType::TypeAssociatedType(_) => unreachable!(), HirType::TraitAssociatedType(_) => unreachable!(), - HirType::Ritchie(_) => todo!(), + HirType::Ritchie(_) => LinkageTypeRitchie::new(db).into(), } } } diff --git a/crates/linkage/husky-linkage/src/valkyrie.rs b/crates/linkage/husky-linkage/src/valkyrie.rs index e62f7026ec..88ff9f4b00 100644 --- a/crates/linkage/husky-linkage/src/valkyrie.rs +++ b/crates/linkage/husky-linkage/src/valkyrie.rs @@ -7,14 +7,35 @@ use husky_hir_eager_expr::{HirEagerExprData, HirEagerExprRegion}; use husky_hir_expr::HirExprRegion; use husky_hir_lazy_expr::{HirLazyExprData, HirLazyExprRegion}; use husky_hir_ty::instantiation::HirInstantiation; +use husky_vfs::PackagePath; use smallvec::ToSmallVec; use vec_like::VecSet; /// can be instantiated to a path leading linkage given LinkageInstantiation #[derive(Debug, PartialEq, Eq)] pub struct ValkyrieRide { - linkage_path: LinkageItemPath, - instantiation: HirInstantiation, + linkage_item_path: LinkageItemPath, + hir_instantiation: HirInstantiation, +} + +impl ValkyrieRide { + fn to_linkage( + &self, + linkage_instantiation: &LinkageInstantiation, + db: &::salsa::Db, + ) -> Linkage { + Linkage::new( + db, + LinkageData::PathLeading { + path: self.linkage_item_path, + instantiation: LinkageInstantiation::from_hir( + &self.hir_instantiation, + Some(linkage_instantiation), + db, + ), + }, + ) + } } #[salsa::debug_with_db] @@ -185,8 +206,8 @@ impl ValkyrieRides { fn try_add_ride(&mut self, linkage_path: LinkageItemPath, instantiation: &HirInstantiation) { if !instantiation.is_empty() { self.rides.insert_move(ValkyrieRide { - linkage_path, - instantiation: instantiation.clone(), + linkage_item_path: linkage_path, + hir_instantiation: instantiation.clone(), }) } } @@ -204,3 +225,34 @@ fn item_valkyrie_rides_works() { &AstTestConfig::new("item_valkyrie_rides"), ) } + +#[salsa::tracked(jar = LinkageJar, return_ref)] +pub(crate) fn linkage_valkyrie_linkages(db: &::salsa::Db, linkage: Linkage) -> VecSet { + match *linkage.data(db) { + LinkageData::Coersion {} => Default::default(), + LinkageData::PathLeading { + path, + ref instantiation, + } => { + let Some(valkyrie_rides) = item_valkyrie_rides(db, *path) else { + return Default::default(); + }; + valkyrie_rides + .rides + .iter() + .map(|ride| ride.to_linkage(instantiation, db)) + .collect() + } + LinkageData::PropsStructField => todo!(), + LinkageData::MemoizedField => todo!(), + LinkageData::Index => todo!(), + LinkageData::Method => todo!(), + } +} + +pub struct PackageValkyrieLinkagesBuilder<'db> { + db: &'db ::salsa::Db, + linkages: VecSet, +} + +impl<'db> PackageValkyrieLinkagesBuilder<'db> {}