# .ARGTYP\_READONLY()

> [HTML Version](argtype_readonly.htm)

_Reorganized August 2025_

**.ARGTYP\_READONLY(argno)    or    .ARGTYP\_READONLY(@arg)**

Indicates whether the specified argument was passed in the form of a variable that can actually receive an updated value.

**Warning**: It is easy to accidentally specify _arg_ when you meant _@arg_, both of which are syntactically correct (assuming _arg_ is the name of an argument in the current context) but have vastly different meaning. To help avoid this mistake, the compiler (as of edit 1065) will treat _arg_ as an error if it matches a current argument name; if you really meant to reference the argument by number, use a literal number or a variable that isn't a current argument. 

**Parameters**

Note that these parameters apply to all of the .ARG... functions.

_argno_  ([Unsigned int](integer-unsigned.md))  \[in\]

The ordinal number of the argument being queried, starting from 1. Note that in the case of [Named Parameters](namedparameters.md), the parameter numbers are determined by the function declaration or subroutine DEFXCALL directive, not necessarily by the order specified in the calling statement. If the _argno_ passed is invalid, the return value of the function will be -1.

_@arg_  (Literal parameter name)  \[in\]

This syntax provides an alternate way to reference the parameter of interest by its name rather than its ordinal number. The concept is similar to that used for XPUTARG _@arg_ : _@arg_ is treated by the compiler as a macro for the argument number corresponding to the argument _arg_ as defined in the function/procedure definition or as retrieved in an SBX using XGETARG(S). 

**Comments**

The return value is a BOOLEAN.  It is logically equivalent to testing the ARGTYP\_READONLY bit in the flags returned by .ARGTYP().

Note that attempting to update a read-only parameter (or one that wasn't even passed), using XPUTARG, is not an error; It just has no effect.

**See Also**

•	[.ARG\_PASSED()](arg_passed().md), particularly the examples which include .ARGTYP\_READONLY. 