message: fix: ensure that inclusive slice bounds are numbers
  Fixes
  We need to put a `+` unary op at the front to avoid string concatenation when
  adding `1`. Also add a space after the `+` when it would otherwise create `++`.
diff: @@ -25,11 +25,11 @@ describe('slice', () => {
  });
  it('changes inclusive slices with a literal float end of range to exclusive by inserting `+ 1`', () => {
  - check(`a[0..2.0]`, `a.slice(0, 2.0 + 1 || undefined);`);
  + check(`a[0..2.0]`, `a.slice(0, +2.0 + 1 || undefined);`);
  });
  it('changes inclusive slices with a variable end of range to exclusive by inserting `+ 1`', () => {
  - check(`a[0..b]`, `a.slice(0, b + 1 || undefined);`);
  + check(`a[0..b]`, `a.slice(0, +b + 1 || undefined);`);
  });
  it('changes slices with no begin or end of the range to a bare call to `.slice`', () => {
  @@ -53,6 +53,23 @@ describe('slice', () => {
  `);
  });
  + it('properly handles string bounds in an inclusive range', () => {
  + validate(`
  + a = [1, 2, 3, 4, 5]
  + start = '1'
  + end = '3'
  + o = a[start..end]
  + `, [2, 3, 4]);
  + });
  +
  + it('does not generate a preincrement operator when adding `+` to an inclusive end', () => {
  + check(`
  + a[start..+end]
  + `, `
  + a.slice(start, + +end + 1 || undefined);
  + `);
  + });
  +
  it('handles an exclusive splice with both bounds specified', () => {
  check(`
  a[b...c] = d
  