Exceptions raised reading reader conditionals do not always have access to the ReaderContext object, which means they cannot annotate exceptions with diagnostic line and column information.
#?(:blah)
produces
Traceback (most recent call last):
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 429, in _compile_feature_vec
for k, v in partition(
^^^^
ValueError: not enough values to unpack (expected 2, got 1)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/christopher/Projects/basilisp/src/basilisp/prompt.py", line 94, in _
list(
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1680, in read_str
yield from read(
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1651, in read
expr = _read_next(ctx)
^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1573, in _read_next
return _read_reader_macro(ctx)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1487, in _read_reader_macro
return _read_reader_conditional(ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1413, in _read_reader_conditional
reader_cond = _read_reader_conditional_preserving(ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 1397, in _read_reader_conditional_preserving
return ReaderConditional(feature_list, is_splicing=is_splicing)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 420, in __init__
self._feature_vec = self._compile_feature_vec(form)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christopher/Projects/basilisp/src/basilisp/lang/reader.py", line 443, in _compile_feature_vec
raise SyntaxError(
basilisp.lang.reader.SyntaxError: Reader conditionals must contain an even number of forms
Exceptions raised reading reader conditionals do not always have access to the
ReaderContext
object, which means they cannot annotate exceptions with diagnostic line and column information.produces