a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
5 lines
1.5 KiB
XML
5 lines
1.5 KiB
XML
<?xml version="1.0"?>
|
|
<clause number="24.3.1" title="Compilation of an attribute">
|
|
<paragraph>The compilation of an attribute with attribute class T, <non_terminal where="24.2">positional-argument-list</non_terminal> P and <non_terminal where="24.2">named-argument-list</non_terminal> N, consists of the following steps: <list><list_item> Follow the compile-time processing steps for compiling an <non_terminal where="14.5.10.1">object-creation-expression</non_terminal> of the form new T(P). These steps either result in a compile-time error, or determine an instance constructor on T that can be invoked at run-time. Call this instance constructor C. </list_item><list_item> If C does not have public accessibility, then a compile-time error occurs. </list_item><list_item> For each <non_terminal where="24.2">named-argument</non_terminal> Arg in N: </list_item><list><list_item> Let Name be the identifier of the <non_terminal where="24.2">named-argument</non_terminal> Arg. </list_item><list_item> Name must identify a non-static read-write public field or property on T. If T has no such field or property, then a compile-time error occurs. </list_item></list><list_item> Keep the following information for run-time instantiation of the attribute: the attribute class T, the instance constructor C on T, the <non_terminal where="24.2">positional-argument-list</non_terminal> P and the <non_terminal where="24.2">named-argument-list</non_terminal> N. </list_item></list></paragraph>
|
|
</clause>
|