Skip to content

Commit f69749f

Browse files
authored
Add TableDefinition dynamic subscript for better compiler errors (#123)
* Add `TableDefinition` dynamic subscript for better compiler error messages * wip
1 parent 388c255 commit f69749f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Sources/StructuredQueriesCore/TableDefinition.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,15 @@ extension TableDefinition {
1515
public var queryFragment: QueryFragment {
1616
Self.allColumns.map(\.queryFragment).joined(separator: ", ")
1717
}
18+
19+
// NB: Without this identity subscript, a more confusing error is produced for missing columns:
20+
//
21+
// > Referencing subscript 'subscript(dynamicMember:)' on 'TableDefinition' requires that 'T'
22+
// > conform to 'TableDraft'
23+
@_disfavoredOverload
24+
public subscript<Member>(
25+
dynamicMember keyPath: KeyPath<Self, Member>
26+
) -> Member {
27+
self[keyPath: keyPath]
28+
}
1829
}

0 commit comments

Comments
 (0)