const (object -- immutableView)

Inputs

Outputs

const is a current stack object immutable-view conversion builtin. It converts the current stack object to an immutable view where valid.

For Ref inputs, only the current stack object changes. The referenced storage and any other references remain unchanged.

Behavior

Example

{} 0 {} [
  value: 7;
  codeLocal: {} () {} codeRef;
  unknownText: 0 ("") dynamic @; # an unknown Text
  [] !codeLocal # a non-NIL Code

  "-- current Ref view only --" printCompilerMessage
  @value printStack _:;
  @value const printStack _:;
  @value printStack _:;
  value printStack _:;
  value const printStack _:;
  @value isConst printStack _:;
  @value const isConst printStack _:;
  value const isConst printStack _:;

  "-- accepted non-Ref inputs are unchanged --" printCompilerMessage
  "hi" const printStack _:;
  unknownText const isConst printStack _:;
  {} () {} codeRef const isConst printStack _:;
  @codeLocal const isConst printStack _:;
  () const isConst printStack _:;

  0
] "main" exportFunction

Expected Output During Compilation

-- current Ref view only --
7 Ref
7 Cref
7 Ref
7 Cref
7 Cref
FALSE
TRUE
TRUE
-- accepted non-Ref inputs are unchanged --
"hi"
TRUE
TRUE
TRUE
FALSE

See also