Skip to content

Commit c4281db

Browse files
authored
Merge pull request #1833 from ironm00n/fix/table-row-err
fix: table `row` method throwing invalid `row-length-mismatch`
2 parents baae4dd + 3578400 commit c4281db

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/js/trove/table.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,7 @@
837837
'row': runtime.makeMethodN(function(self, ...args) {
838838
// NOTE: Deliberately no arity check
839839
if(headers.length !== args.length) {
840-
throw runtime.ffi.throwRowLengthMismatch(makeTable(headers, []), args);
840+
throw runtime.ffi.throwRowLengthMismatch(headers, args);
841841
}
842842
return makeRow({ headerIndex: headerIndex }, args);
843843
}),

tests/pyret/regression.arr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ import file("./regression/sloppy-list-filter.arr") as _
3333
import file("./regression/import-module-defining-but-not-exporting-data.arr") as _
3434
import file("./regression/render-reason-wrong-op.arr") as _
3535
import file("./regression/table-reduce.arr") as _
36+
import file("./regression/table-row-row-length-mismatch.arr") as _
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import either as E
2+
import error as Err
3+
4+
check:
5+
table = table: foo, bar
6+
row: 1, 2
7+
row: 3, 4
8+
end
9+
10+
cases(E.Either) run-task(lam(): table.row(1) end) block:
11+
| left(_) => false is true
12+
| right(exn) =>
13+
unwrapped = exn-unwrap(exn)
14+
unwrapped satisfies Err.is-row-length-mismatch
15+
16+
unwrapped.render-reason() does-not-raise
17+
end
18+
end
19+

0 commit comments

Comments
 (0)