Skip to content

Commit a7d89e0

Browse files
committed
define the Unidoc.ConformingTypesGroup and add it to the coding schema
1 parent 68febd3 commit a7d89e0

28 files changed

+271
-180
lines changed

Sources/SwiftinitPages/Sections/GroupSections.swift

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ struct GroupSections
1616
let superforms:[Unidoc.Scalar]?
1717

1818
private(set)
19-
var containing:Unidoc.Group.Extension?
19+
var containing:Unidoc.ExtensionGroup?
2020
private
21-
var extensions:[Unidoc.Group.Extension]
21+
var extensions:[Unidoc.ExtensionGroup]
2222
private
23-
var topics:[Unidoc.Group.Topic]
23+
var topics:[Unidoc.TopicGroup]
2424
private
2525
var other:[(AutomaticHeading, [Unidoc.Scalar])]
2626

@@ -33,9 +33,9 @@ struct GroupSections
3333
init(_ context:IdentifiablePageContext<Unidoc.Scalar>,
3434
requirements:[Unidoc.Scalar]?,
3535
superforms:[Unidoc.Scalar]?,
36-
containing:Unidoc.Group.Extension? = nil,
37-
extensions:[Unidoc.Group.Extension] = [],
38-
topics:[Unidoc.Group.Topic] = [],
36+
containing:Unidoc.ExtensionGroup? = nil,
37+
extensions:[Unidoc.ExtensionGroup] = [],
38+
topics:[Unidoc.TopicGroup] = [],
3939
other:[(AutomaticHeading, [Unidoc.Scalar])] = [],
4040
bias:Unidoc.Scalar?,
4141
mode:Mode?)
@@ -86,13 +86,17 @@ extension GroupSections
8686
generics = .init([])
8787
}
8888

89-
var extensions:[(Unidoc.Group.Extension, Partisanship, Genericness)] = []
89+
var extensions:[(Unidoc.ExtensionGroup, Partisanship, Genericness)] = []
9090
var curated:Set<Unidoc.Scalar> = [self.context.id]
9191

9292
for group:Unidoc.Group in groups
9393
{
9494
switch group
9595
{
96+
case .conformers:
97+
// Unimplemented.
98+
continue
99+
96100
case .extension(let group):
97101
if case group.id? = container
98102
{
@@ -113,7 +117,7 @@ extension GroupSections
113117

114118
extensions.append((group, partisanship, genericness))
115119

116-
case .polygon(let group):
120+
case .polygonal(let group):
117121
guard
118122
let first:Unidoc.Scalar = group.members.first,
119123
let plane:SymbolGraph.Plane = first.plane
@@ -180,7 +184,7 @@ extension GroupSections
180184
extension GroupSections
181185
{
182186
private
183-
func heading(for extension:Unidoc.Group.Extension) -> ExtensionHeading
187+
func heading(for extension:Unidoc.ExtensionGroup) -> ExtensionHeading
184188
{
185189
let display:String
186190
switch (self.bias, self.bias?.edition)
@@ -215,7 +219,7 @@ extension GroupSections:HTML.OutputStreamable
215219
static
216220
func += (html:inout HTML.ContentEncoder, self:Self)
217221
{
218-
for group:Unidoc.Group.Topic in self.topics
222+
for group:Unidoc.TopicGroup in self.topics
219223
{
220224
guard group.members.contains(.scalar(self.context.id))
221225
else
@@ -347,7 +351,7 @@ extension GroupSections:HTML.OutputStreamable
347351
}
348352
}
349353

350-
if let sisters:Unidoc.Group.Extension = self.containing, !sisters.nested.isEmpty
354+
if let sisters:Unidoc.ExtensionGroup = self.containing, !sisters.nested.isEmpty
351355
{
352356
html[.section, { $0.class = "group sisters" }]
353357
{
@@ -361,7 +365,7 @@ extension GroupSections:HTML.OutputStreamable
361365
}
362366
}
363367

364-
for group:Unidoc.Group.Extension in self.extensions where !group.isEmpty
368+
for group:Unidoc.ExtensionGroup in self.extensions where !group.isEmpty
365369
{
366370
html[.section, { $0.class = "group extension" }]
367371
{

Sources/SwiftinitPages/Surfaces/Vertices/Swiftinit.Docs.DeclPage.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ extension Swiftinit.Docs.DeclPage:Swiftinit.VertexPage
235235
}
236236
}
237237

238-
if let containing:Unidoc.Group.Extension = self.groups.containing,
238+
if let containing:Unidoc.ExtensionGroup = self.groups.containing,
239239
let list:ConstraintsList = self.context.constraints(containing.constraints)
240240
{
241241
$0[.details, { $0.open = true }]

Sources/UnidocDB/Volumes/UnidocDatabase.Groups.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ extension UnidocDatabase.Groups
7676
}
7777
documents:
7878
{
79-
$0 += groups.polygons.lazy.map(Unidoc.Group.polygon(_:))
79+
$0 += groups.polygons.lazy.map(Unidoc.Group.polygonal(_:))
8080
$0 += groups.topics.lazy.map(Unidoc.Group.topic(_:))
8181

8282
guard
@@ -87,7 +87,7 @@ extension UnidocDatabase.Groups
8787
return
8888
}
8989

90-
for e:Unidoc.Group.Extension in groups.extensions
90+
for e:Unidoc.ExtensionGroup in groups.extensions
9191
{
9292
$0[Unidoc.Group.CodingKey.self]
9393
{

Sources/UnidocLinker/Curation/Unidoc.Linker.TreeMapper.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ extension Unidoc.Linker.TreeMapper
107107
extension Unidoc.Linker.TreeMapper
108108
{
109109
mutating
110-
func update(with group:Unidoc.Group.Extension)
110+
func update(with group:Unidoc.ExtensionGroup)
111111
{
112112
let tree:Unidoc.Scalar = group.culture
113113

Sources/UnidocLinker/Sema/DroppedPassagesError.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import UnidocDiagnostics
33

44
enum DroppedPassagesError:Equatable, Error
55
{
6-
case fromExtension(Unidoc.Linker.Extension.ID, of:Unidoc.Scalar)
6+
case fromExtension(Unidoc.ExtensionBody.ID, of:Unidoc.Scalar)
77
}
88
extension DroppedPassagesError:Diagnostic
99
{

Sources/UnidocLinker/Sema/ProtocolConformances.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import UnidocDiagnostics
88
struct ProtocolConformances:Sendable
99
{
1010
private
11-
var table:[Unidoc.Scalar: [Unidoc.Linker.ExtensionConditions]]
11+
var table:[Unidoc.Scalar: [Unidoc.ExtensionConditions]]
1212

1313
private
14-
init(table:[Unidoc.Scalar: [Unidoc.Linker.ExtensionConditions]])
14+
init(table:[Unidoc.Scalar: [Unidoc.ExtensionConditions]])
1515
{
1616
self.table = table
1717
}
@@ -21,7 +21,7 @@ extension ProtocolConformances
2121
/// Yields all known conformances to the specified protocol. This subscript returns an empty
2222
/// list if no conformances are known to exist. It can also return more than one conformance
2323
/// if multiple modules declare conformances to the same protocol.
24-
subscript(to protocol:Unidoc.Scalar) -> [Unidoc.Linker.ExtensionConditions]
24+
subscript(to protocol:Unidoc.Scalar) -> [Unidoc.ExtensionConditions]
2525
{
2626
_read
2727
{
@@ -36,7 +36,7 @@ extension ProtocolConformances
3636
extension ProtocolConformances:Sequence
3737
{
3838
func makeIterator()
39-
-> Dictionary<Unidoc.Scalar, [Unidoc.Linker.ExtensionConditions]>.Iterator
39+
-> Dictionary<Unidoc.Scalar, [Unidoc.ExtensionConditions]>.Iterator
4040
{
4141
self.table.makeIterator()
4242
}
@@ -51,15 +51,15 @@ extension ProtocolConformances:ExpressibleByDictionaryLiteral
5151
extension ProtocolConformances
5252
{
5353
init(of subject:Unidoc.Scalar,
54-
conditions:borrowing [Unidoc.Linker.ExtensionConditions],
54+
conditions:borrowing [Unidoc.ExtensionConditions],
5555
extensions:borrowing [SymbolGraph.Extension],
5656
modules:borrowing [SymbolGraph.ModuleContext],
5757
context:inout Unidoc.Linker)
5858
{
5959
self = [:]
6060

6161
for (conditions, `extension`):
62-
(Unidoc.Linker.ExtensionConditions, SymbolGraph.Extension) in zip(
62+
(Unidoc.ExtensionConditions, SymbolGraph.Extension) in zip(
6363
conditions,
6464
extensions)
6565
{
@@ -76,7 +76,7 @@ extension ProtocolConformances
7676
}
7777
}
7878

79-
for i:Dictionary<Unidoc.Scalar, [Unidoc.Linker.ExtensionConditions]>.Index
79+
for i:Dictionary<Unidoc.Scalar, [Unidoc.ExtensionConditions]>.Index
8080
in self.table.indices
8181
{
8282
let `protocol`:Unidoc.Scalar = self.table.keys[i]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
extension Unidoc.ExtensionBody
2+
{
3+
struct ID:Equatable, Hashable, Sendable
4+
{
5+
let index:Int
6+
7+
init(index:Int)
8+
{
9+
self.index = index
10+
}
11+
}
12+
}
13+
extension Unidoc.ExtensionBody.ID:Comparable
14+
{
15+
static
16+
func < (a:Self, b:Self) -> Bool { a.index < b.index }
17+
}
18+
extension Unidoc.ExtensionBody.ID
19+
{
20+
func `in`(_ edition:Unidoc.Edition) -> Unidoc.Group.ID
21+
{
22+
Unidoc.GroupType.extension.id(self.index, in: edition)
23+
}
24+
}

Sources/UnidocLinker/Sema/Unidoc.Linker.Extension.swift renamed to Sources/UnidocLinker/Sema/Unidoc.ExtensionBody.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import UnidocRecords
33

44
extension Unidoc.Linker
55
{
6-
struct Extension:Identifiable, Equatable, Sendable
6+
@available(*, deprecated)
7+
typealias Extension = Unidoc.ExtensionBody
8+
}
9+
extension Unidoc
10+
{
11+
struct ExtensionBody:Identifiable, Equatable, Sendable
712
{
813
let id:ID
914

@@ -35,7 +40,7 @@ extension Unidoc.Linker
3540
}
3641
}
3742
}
38-
extension Unidoc.Linker.Extension
43+
extension Unidoc.ExtensionBody
3944
{
4045
var isEmpty:Bool
4146
{

Sources/UnidocLinker/Sema/Unidoc.Linker.ExtensionConditions.swift renamed to Sources/UnidocLinker/Sema/Unidoc.ExtensionConditions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Signatures
22
import Unidoc
33

4-
extension Unidoc.Linker
4+
extension Unidoc
55
{
66
struct ExtensionConditions:Equatable, Hashable, Sendable
77
{

Sources/UnidocLinker/Sema/Unidoc.Linker.ExtensionSignature.swift renamed to Sources/UnidocLinker/Sema/Unidoc.ExtensionSignature.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Signatures
22
import Unidoc
33

4-
extension Unidoc.Linker
4+
extension Unidoc
55
{
66
struct ExtensionSignature:Equatable, Hashable, Sendable
77
{
@@ -16,11 +16,11 @@ extension Unidoc.Linker
1616
}
1717
}
1818
}
19-
extension Unidoc.Linker.ExtensionSignature
19+
extension Unidoc.ExtensionSignature
2020
{
2121
static
2222
func extends(_ extendee:consuming Unidoc.Scalar,
23-
where conditions:consuming Unidoc.Linker.ExtensionConditions) -> Self
23+
where conditions:consuming Unidoc.ExtensionConditions) -> Self
2424
{
2525
.init(conditions: conditions, extendee: extendee)
2626
}

0 commit comments

Comments
 (0)