Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
A type specification determines the specified type of a declaration.
-
as-auto-object = "as" "new" class-type-name as-type = "as" type-spec type-spec = fixed-length-string-spec / type-expression fixed-length-string-spec = "string" "*" string-length string-length = constant-name / INTEGER constant-name = simple-name-expression
-
Static Semantics
§ The specified type of an <as-auto-object> element is the specified type of its <class-type-name> element.
§ The specified type of an <as-auto-object> element MUST be a named class.
§ The instancing mode of the specified type of an <as-auto-object> MUST NOT be Public Not Creatable unless that type is defined in the same project as that which contains the module containing the <as-auto-object> element.
§ The specified type of an <as-type> is the specified type of its <type-spec> element.
§ The specified type of a <type-spec> is the specified type of its constituent element.
§ The specified type of a <fixed-length-string-spec> is String*n where n is the data value of its <string-length> element.
§ The specified type of a <type-expression> is the declared type referenced by the < type-expression>.
§ A <constant-name> that is an element of a <string-length> MUST reference an explicitly-declared constant data value that is Let-coercible to the declared type Long.
§ The data value of a <string-length> element is the data value of its <INTEGER> element or the data value referenced by its <constant-name> Let-coerced to declared type Long.
§ The data value of a <string-length> element MUST be less than or equal to 65,526.
§ The <simple-name-expression> element of <constant-name> MUST be classified as a value.