Skip to content

error raised when trying to ns-resolve a macro #720

@ikappaki

Description

@ikappaki

basilisp throws and error when trying to ns-resolve a macro, e.g. if

ValueError: Namespace must be specified in Symbol if

to reproduce

  1. Open up a REPL
  2. try to ns-resolve 'if in the current ns, a ValueError is thrown
basilisp.user=> (ns-resolve *ns* 'if)
Traceback (most recent call last):
  File "C:\src\basilisp\src\basilisp\cli.py", line 306, in repl
    result = eval_str(lsrc, ctx, ns, eof)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\src\basilisp\src\basilisp\cli.py", line 52, in eval_str
    last = compiler.compile_and_exec_form(form, ctx, ns)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\src\basilisp\src\basilisp\lang\compiler\__init__.py", line 165, in compile_and_exec_form
    return getattr(ns.module, final_wrapped_name)()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<REPL Input>", line 1, in __lisp_expr___67
  File "C:\src\basilisp\src\basilisp\lang\runtime.py", line 1872, in resolve_var
    return Var.find(resolve_alias(s, ns))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\src\basilisp\src\basilisp\lang\runtime.py", line 431, in find
    ns = Maybe(ns_qualified_sym.ns).or_else_raise(
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\src\basilisp\src\basilisp\util.py", line 52, in or_else_raise
    raise raise_fn()
ValueError: Namespace must be specified in Symbol if

The expectation is to return nil.

In clojure

user=> (ns-resolve *ns* 'if)
nil

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions