File tree Expand file tree Collapse file tree 5 files changed +24
-13
lines changed
Expand file tree Collapse file tree 5 files changed +24
-13
lines changed Original file line number Diff line number Diff line change @@ -44,12 +44,13 @@ extension DatabaseMacro: MemberMacro {
4444 }
4545 }
4646
47- for (name, variable) in variables {
48- guard let queryMacro = variable. queryMacroInputsIfIsQuery ( in: context) else { continue }
47+ for variable in variables. values {
48+ guard let queryMacro = variable. queryMacroInputsIfIsQuery ( in: context) ,
49+ let typeName = variable. typeName? . removingQuerySuffix ( ) else { continue }
4950
5051 let ( statement, diagnostics) = compiler. compile (
5152 query: queryMacro. source,
52- named: name . removingQuerySuffix ( ) ,
53+ named: typeName ,
5354 inputType: queryMacro. inputName,
5455 outputType: queryMacro. outputName
5556 )
Original file line number Diff line number Diff line change @@ -12,6 +12,16 @@ import SwiftSyntaxBuilder
1212import SwiftSyntaxMacros
1313
1414extension VariableDeclSyntax {
15+ /// The variables type name.
16+ var typeName : String ? {
17+ for binding in bindings {
18+ guard let someOrAny = binding. typeAnnotation? . type. as ( SomeOrAnyTypeSyntax . self) ,
19+ let name = someOrAny. constraint. as ( IdentifierTypeSyntax . self) ? . name. text else { continue }
20+ return name
21+ }
22+ return nil
23+ }
24+
1525 /// Searchs the variable decl for the `@Query` macro and gets the input
1626 /// arguments and performs any validation.
1727 func queryMacroInputsIfIsQuery( in context: some MacroExpansionContext ) -> (
Original file line number Diff line number Diff line change @@ -142,10 +142,10 @@ struct DatabaseValueAdapterTests {
142142 @Database
143143 struct TestDB {
144144 @Query ( " INSERT INTO hasValues VALUES (?, ?) " )
145- var insert : InsertDatabaseQuery
145+ var insert : any InsertQuery
146146
147147 @Query ( " SELECT * FROM hasValues " )
148- var all : AllDatabaseQuery
148+ var all : any AllQuery
149149
150150 static var migrations : [ String ] {
151151 return [
Original file line number Diff line number Diff line change @@ -43,10 +43,10 @@ struct SQLAnyTests {
4343 @Database
4444 struct AnyDB {
4545 @Query ( " INSERT INTO foo (bar) VALUES (?) " )
46- var insertFoo : InsertFooDatabaseQuery
46+ var insertFoo : any InsertFooQuery
4747
4848 @Query ( " SELECT * FROM foo " )
49- var selectFoos : SelectFoosDatabaseQuery
49+ var selectFoos : any SelectFoosQuery
5050
5151 static var migrations : [ String ] {
5252 return [ " CREATE TABLE foo (bar ANY); " ]
Original file line number Diff line number Diff line change @@ -12,22 +12,22 @@ import Otter
1212@Database
1313struct TestDB {
1414 @Query ( " SELECT * FROM foo " )
15- var selectFoos : SelectFoosDatabaseQuery
15+ var selectFoos : any SelectFoosQuery
1616
1717 @Query ( " SELECT * FROM foo WHERE bar = ? " )
18- var selectFoo : SelectFooDatabaseQuery
18+ var selectFoo : any SelectFooQuery
1919
2020 @Query ( " INSERT INTO foo (bar) VALUES (?) " )
21- var insertFoo : InsertFooDatabaseQuery
21+ var insertFoo : any InsertFooQuery
2222
2323 @Query ( " INSERT INTO baz (qux) VALUES (?) " )
24- var insertBaz : InsertBazDatabaseQuery
24+ var insertBaz : any InsertBazQuery
2525
2626 @Query ( " SELECT foo.*, baz.* FROM foo LEFT OUTER JOIN baz ON foo.bar = baz.qux " )
27- var selectFooAndBaz : SelectFooAndBazDatabaseQuery
27+ var selectFooAndBaz : any SelectFooAndBazQuery
2828
2929 @Query ( " SELECT foo.*, baz.* FROM foo INNER JOIN baz ON foo.bar = baz.qux " )
30- var selectFooAndBazNotOptional : SelectFooAndBazNotOptionalDatabaseQuery
30+ var selectFooAndBazNotOptional : any SelectFooAndBazNotOptionalQuery
3131
3232 static var migrations : [ String ] {
3333 return [
You can’t perform that action at this time.
0 commit comments