@@ -20,45 +20,25 @@ error: scheduled table missing required columns; add these to your struct:
202028 | #[spacetimedb::table(name = scheduled_table_missing_rows, scheduled(scheduled_table_missing_rows_reducer))]
2121   |                                                           ^^^^^^^^^
2222
23- error[E0593]: function is expected to take 2 arguments, but it takes 3 arguments
24-   --> tests/ui/reducers.rs:37:56
25-    |
26- 37 | #[spacetimedb::table(name = scheduled_table, scheduled(scheduled_table_reducer))]
27-    | -------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^---
28-    | |                                                      |
29-    | |                                                      expected function that takes 2 arguments
30-    | required by a bound introduced by this call
31- ...
32- 48 | fn scheduled_table_reducer(_ctx: &ReducerContext, _x: u8, _y: u8) {}
33-    | ----------------------------------------------------------------- takes 3 arguments
34-    |
35-    = note: required for `for<'a> fn(&'a ReducerContext, u8, u8) {scheduled_table_reducer}` to implement `Reducer<'_, (ScheduledTable,)>`
36-    = note: required for `for<'a> fn(&'a ReducerContext, u8, u8) {scheduled_table_reducer}` to implement `ReducerForScheduledTable<'_, ScheduledTable>`
37- note: required by a bound in `scheduled_reducer_typecheck`
38-   --> src/rt.rs
39-    |
40-    | pub const fn scheduled_reducer_typecheck<'de, Row>(_x: impl ReducerForScheduledTable<'de, Row>)
41-    |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `scheduled_reducer_typecheck`
42- 
4323error[E0277]: invalid reducer signature
4424 --> tests/ui/reducers.rs:6:4
4525  |
46- 5 | #[spacetimedb::reducer]
47-   | ----------------------- required by a bound introduced by this call
48- 6 | fn bad_type(_ctx: &ReducerContext, _a: Test) {}
49-   |    ^^^^^^^^ this reducer signature is not valid
50-   |
51-   = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, Test) {bad_type}`
52-   = note:
53-   = note: reducer signatures must match the following pattern:
54-   = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
55-   = note: where each `Ti` type implements `SpacetimeType`.
56-   = note:
26+    5 | #[spacetimedb::reducer]
27+      | ----------------------- required by a bound introduced by this call
28+    6 | fn bad_type(_ctx: &ReducerContext, _a: Test) {}
29+      |    ^^^^^^^^ this reducer signature is not valid
30+      |
31+      = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, Test) {bad_type}`
32+      = note:
33+      = note: reducer signatures must match the following pattern:
34+      = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
35+      = note: where each `Ti` type implements `SpacetimeType`.
36+      = note:
5737note: required by a bound in `register_reducer`
58-  --> src/rt.rs
59-   |
60-   | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
61-   |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
38+     --> src/rt.rs
39+      |
40+      | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
41+      |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
6242
6343error[E0277]: the reducer argument `Test` does not implement `SpacetimeType`
6444 --> tests/ui/reducers.rs:6:40
@@ -82,44 +62,44 @@ error[E0277]: the reducer argument `Test` does not implement `SpacetimeType`
8262error[E0277]: invalid reducer signature
8363 --> tests/ui/reducers.rs:6:4
8464  |
85- 5 | #[spacetimedb::reducer]
86-   | ----------------------- required by a bound introduced by this call
87- 6 | fn bad_type(_ctx: &ReducerContext, _a: Test) {}
88-   |    ^^^^^^^^ this reducer signature is not valid
89-   |
90-   = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, Test) {bad_type}`
91-   = note:
92-   = note: reducer signatures must match the following pattern:
93-   = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
94-   = note: where each `Ti` type implements `SpacetimeType`.
95-   = note:
65+   5 | #[spacetimedb::reducer]
66+     | ----------------------- required by a bound introduced by this call
67+   6 | fn bad_type(_ctx: &ReducerContext, _a: Test) {}
68+     |    ^^^^^^^^ this reducer signature is not valid
69+     |
70+     = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, Test) {bad_type}`
71+     = note:
72+     = note: reducer signatures must match the following pattern:
73+     = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
74+     = note: where each `Ti` type implements `SpacetimeType`.
75+     = note:
9676note: required by a bound in `invoke_reducer`
97-  --> src/rt.rs
98-   |
99-   | pub fn invoke_reducer<'a, A: Args<'a>>(
100-   |        -------------- required by a bound in this function
101-   |     reducer: impl Reducer<'a, A>,
102-   |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
77+    --> src/rt.rs
78+     |
79+     | pub fn invoke_reducer<'a, A: Args<'a>>(
80+     |        -------------- required by a bound in this function
81+     |     reducer: impl Reducer<'a, A>,
82+     |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
10383
10484error[E0277]: invalid reducer signature
10585 --> tests/ui/reducers.rs:9:4
10686  |
107- 8 | #[spacetimedb::reducer]
108-   | ----------------------- required by a bound introduced by this call
109- 9 | fn bad_return_type(_ctx: &ReducerContext) -> Test {
110-   |    ^^^^^^^^^^^^^^^ this reducer signature is not valid
111-   |
112-   = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext) -> Test {bad_return_type}`
113-   = note:
114-   = note: reducer signatures must match the following pattern:
115-   = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
116-   = note: where each `Ti` type implements `SpacetimeType`.
117-   = note:
87+    8 | #[spacetimedb::reducer]
88+      | ----------------------- required by a bound introduced by this call
89+    9 | fn bad_return_type(_ctx: &ReducerContext) -> Test {
90+      |    ^^^^^^^^^^^^^^^ this reducer signature is not valid
91+      |
92+      = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext) -> Test {bad_return_type}`
93+      = note:
94+      = note: reducer signatures must match the following pattern:
95+      = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
96+      = note: where each `Ti` type implements `SpacetimeType`.
97+      = note:
11898note: required by a bound in `register_reducer`
119-  --> src/rt.rs
120-   |
121-   | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
122-   |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
99+     --> src/rt.rs
100+      |
101+      | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
102+      |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
123103
124104error[E0277]: `Test` is not a valid reducer return type
125105 --> tests/ui/reducers.rs:9:46
@@ -135,44 +115,44 @@ error[E0277]: `Test` is not a valid reducer return type
135115error[E0277]: invalid reducer signature
136116 --> tests/ui/reducers.rs:9:4
137117  |
138- 8 | #[spacetimedb::reducer]
139-   | ----------------------- required by a bound introduced by this call
140- 9 | fn bad_return_type(_ctx: &ReducerContext) -> Test {
141-   |    ^^^^^^^^^^^^^^^ this reducer signature is not valid
142-   |
143-   = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext) -> Test {bad_return_type}`
144-   = note:
145-   = note: reducer signatures must match the following pattern:
146-   = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
147-   = note: where each `Ti` type implements `SpacetimeType`.
148-   = note:
149- note: required by a bound in `invoke_reducer`
150-  --> src/rt.rs
151-   |
152-   | pub fn invoke_reducer<'a, A: Args<'a>>(
153-   |        -------------- required by a bound in this function
154-   |     reducer: impl Reducer<'a, A>,
155-   |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
156- 
157- error[E0277]: invalid reducer signature
158-   --> tests/ui/reducers.rs:23:4
159-    |
160- 22 | #[spacetimedb::reducer]
118+  8 | #[spacetimedb::reducer]
161119   | ----------------------- required by a bound introduced by this call
162- 23  | fn missing_ctx(_a: u8) {} 
163-    |    ^^^^^^^^^^^ this reducer signature is not valid
120+  9  | fn bad_return_type(_ctx: &ReducerContext) -> Test { 
121+    |    ^^^^^^^^^^^^^^^  this reducer signature is not valid
164122   |
165-    = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(u8) {missing_ctx }`
123+    = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a>  fn(&'a ReducerContext) -> Test {bad_return_type }`
166124   = note:
167125   = note: reducer signatures must match the following pattern:
168126   = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
169127   = note: where each `Ti` type implements `SpacetimeType`.
170128   = note:
171- note: required by a bound in `register_reducer `
129+ note: required by a bound in `invoke_reducer `
172130  --> src/rt.rs
173131   |
174-    | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
175-    |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
132+    | pub fn invoke_reducer<'a, A: Args<'a>>(
133+    |        -------------- required by a bound in this function
134+    |     reducer: impl Reducer<'a, A>,
135+    |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
136+ 
137+ error[E0277]: invalid reducer signature
138+  --> tests/ui/reducers.rs:23:4
139+   |
140+  22 | #[spacetimedb::reducer]
141+     | ----------------------- required by a bound introduced by this call
142+  23 | fn missing_ctx(_a: u8) {}
143+     |    ^^^^^^^^^^^ this reducer signature is not valid
144+     |
145+     = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(u8) {missing_ctx}`
146+     = note:
147+     = note: reducer signatures must match the following pattern:
148+     = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
149+     = note: where each `Ti` type implements `SpacetimeType`.
150+     = note:
151+ note: required by a bound in `register_reducer`
152+    --> src/rt.rs
153+     |
154+     | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
155+     |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
176156
177157error[E0277]: the first argument of a reducer must be `&ReducerContext`
178158  --> tests/ui/reducers.rs:23:20
@@ -206,24 +186,24 @@ note: required by a bound in `invoke_reducer`
206186   |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
207187
208188error[E0277]: invalid reducer signature
209-    --> tests/ui/reducers.rs:26:4
210-     |
211- 25 | #[spacetimedb::reducer]
212-    | ----------------------- required by a bound introduced by this call
213- 26 | fn ctx_by_val(_ctx: ReducerContext, _a: u8) {}
214-    |    ^^^^^^^^^^ this reducer signature is not valid
215-    |
216-    = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(ReducerContext, u8) {ctx_by_val}`
217-    = note:
218-    = note: reducer signatures must match the following pattern:
219-    = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
220-    = note: where each `Ti` type implements `SpacetimeType`.
221-    = note:
189+  --> tests/ui/reducers.rs:26:4
190+   |
191+   25 | #[spacetimedb::reducer]
192+      | ----------------------- required by a bound introduced by this call
193+   26 | fn ctx_by_val(_ctx: ReducerContext, _a: u8) {}
194+      |    ^^^^^^^^^^ this reducer signature is not valid
195+      |
196+      = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(ReducerContext, u8) {ctx_by_val}`
197+      = note:
198+      = note: reducer signatures must match the following pattern:
199+      = note:     `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`
200+      = note: where each `Ti` type implements `SpacetimeType`.
201+      = note:
222202note: required by a bound in `register_reducer`
223-   --> src/rt.rs
224-    |
225-    | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
226-    |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
203+     --> src/rt.rs
204+      |
205+      | pub fn register_reducer<'a, A: Args<'a>, I: ReducerInfo>(_: impl Reducer<'a, A>) {
206+      |                                                                  ^^^^^^^^^^^^^^ required by this bound in `register_reducer`
227207
228208error[E0277]: the first argument of a reducer must be `&ReducerContext`
229209  --> tests/ui/reducers.rs:26:21
@@ -255,3 +235,23 @@ note: required by a bound in `invoke_reducer`
255235   |        -------------- required by a bound in this function
256236   |     reducer: impl Reducer<'a, A>,
257237   |                   ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`
238+ 
239+ error[E0593]: function is expected to take 2 arguments, but it takes 3 arguments
240+  --> tests/ui/reducers.rs:37:56
241+   |
242+  37 | #[spacetimedb::table(name = scheduled_table, scheduled(scheduled_table_reducer))]
243+     | -------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^---
244+     | |                                                      |
245+     | |                                                      expected function that takes 2 arguments
246+     | required by a bound introduced by this call
247+ ...
248+  48 | fn scheduled_table_reducer(_ctx: &ReducerContext, _x: u8, _y: u8) {}
249+     | ----------------------------------------------------------------- takes 3 arguments
250+     |
251+     = note: required for `for<'a> fn(&'a ReducerContext, u8, u8) {scheduled_table_reducer}` to implement `Reducer<'_, (ScheduledTable,)>`
252+     = note: required for `for<'a> fn(&'a ReducerContext, u8, u8) {scheduled_table_reducer}` to implement `ReducerForScheduledTable<'_, ScheduledTable>`
253+ note: required by a bound in `scheduled_reducer_typecheck`
254+    --> src/rt.rs
255+     |
256+     | pub const fn scheduled_reducer_typecheck<'de, Row>(_x: impl ReducerForScheduledTable<'de, Row>)
257+     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `scheduled_reducer_typecheck`
0 commit comments