Skip to content

Commit

Permalink
re-add unqualified class symbol eval line
Browse files Browse the repository at this point in the history
  • Loading branch information
puredanger committed Jan 11, 2024
1 parent 8995ab5 commit 5c2205b
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions content/reference/evaluation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ Strings, numbers, characters, `true`, `false`, `nil` and keywords evaluate to th
A Symbol is _resolved_:

* If it is namespace-qualified, the value is the value of the binding of the global var named by the symbol. It is an error if the reference is to a non-public var in a different namespace.
* If the qualifier names a class or a mapping from symbol to class in the current namespace, and the symbol name is a static field, the value is the value of the static field. Since Clojure 1.12, if the symbol name is a method of the class, the value is a Clojure function that invokes the method.s
* If the qualifier names a class or a mapping from symbol to class in the current namespace, and the symbol name is a static field, the value is the value of the static field. Since Clojure 1.12, if the symbol name is a method of the class, the value is a Clojure function that invokes the method.
* If it is package-qualified, the value is the Java class named by the symbol. It is an error if there is no Class named by the symbol. Since Clojure 1.12, a class name or primitive name ending with one or more `pass:[*]`s resolves to an array class.
* Else, it is not qualified and the first of the following applies:
. If it names a special form it is considered a special form, and must be utilized accordingly.
. If in a local scope (e.g. in a function definition or a let form), a lookup is done to see if it names a local binding (e.g. a function argument or let-bound name). If so, the value is the value of the local binding.
. A lookup is done in the current namespace to see if there is a mapping from the symbol to a class. If so, the symbol is considered to name a Java class object. Note that class names normally denote class objects, but are treated specially in certain special forms, e.g. `.` and `new`.
. A lookup is done in the current namespace to see if there is a mapping from the symbol to a class. If so, the symbol is considered to name a Java class object. Since Clojure 1.12, a class name or primitive name ending with one or more `pass:[*]`s resolves to an array class. Note that class names normally denote class objects, but are treated specially in certain special forms, e.g. `.` and `new`.
. A lookup is done in the current namespace to see if there is a mapping from the symbol to a var. If so, the value is the value of the binding of the var referred-to by the symbol.
. It is an error.
Expand Down

0 comments on commit 5c2205b

Please sign in to comment.