[jit] Fix the saving of the 'cfg->ret_var_set' flag when inlining, it was set to...
[mono.git] / mcs / docs / ecma334 / toc.xml
1 <?xml version="1.0"?>
2 <toc>
3   <node number="1" name="Scope"/>
4   <node number="2" name="Conformance"/>
5   <node number="3" name="References"/>
6   <node number="4" name="Definitions"/>
7   <node number="5" name="Notational conventions"/>
8   <node number="6" name="Acronyms and abbreviations"/>
9   <node number="7" name="General description"/>
10   <node number="8" name="Language Overview">
11     <node number="8.1" name="Getting started"/>
12     <node number="8.2" name="Types">
13       <node number="8.2.1" name="Predefined types"/>
14       <node number="8.2.2" name="Conversions"/>
15       <node number="8.2.3" name="Array types"/>
16       <node number="8.2.4" name="Type system unification"/>
17     </node>
18     <node number="8.3" name="Variables and parameters"/>
19     <node number="8.4" name="Automatic memory management"/>
20     <node number="8.5" name="Expressions"/>
21     <node number="8.6" name="Statements"/>
22     <node number="8.7" name="Classes">
23       <node number="8.7.1" name="Constants"/>
24       <node number="8.7.2" name="Fields"/>
25       <node number="8.7.3" name="Methods"/>
26       <node number="8.7.4" name="Properties"/>
27       <node number="8.7.5" name="Events"/>
28       <node number="8.7.6" name="Operators"/>
29       <node number="8.7.7" name="Indexers"/>
30       <node number="8.7.8" name="Instance constructors"/>
31       <node number="8.7.9" name="Destructors"/>
32       <node number="8.7.10" name="Static constructors"/>
33       <node number="8.7.11" name="Inheritance"/>
34     </node>
35     <node number="8.8" name="Structs"/>
36     <node number="8.9" name="Interfaces"/>
37     <node number="8.10" name="Delegates"/>
38     <node number="8.11" name="Enums"/>
39     <node number="8.12" name="Namespaces and assemblies"/>
40     <node number="8.13" name="Versioning"/>
41     <node number="8.14" name="Attributes"/>
42   </node>
43   <node number="9" name="Lexical structure">
44     <node number="9.1" name="Programs"/>
45     <node number="9.2" name="Grammars">
46       <node number="9.2.1" name="Lexical grammar"/>
47       <node number="9.2.2" name="Syntactic grammar"/>
48     </node>
49     <node number="9.3" name="Lexical analysis">
50       <node number="9.3.1" name="Line terminators"/>
51       <node number="9.3.2" name="Comments"/>
52       <node number="9.3.3" name="White space"/>
53     </node>
54     <node number="9.4" name="Tokens">
55       <node number="9.4.1" name="Unicode escape sequences"/>
56       <node number="9.4.2" name="Identifiers"/>
57       <node number="9.4.3" name="Keywords"/>
58       <node number="9.4.4" name="Literals">
59         <node number="9.4.4.1" name="Boolean literals"/>
60         <node number="9.4.4.2" name="Integer literals"/>
61         <node number="9.4.4.3" name="Real literals"/>
62         <node number="9.4.4.4" name="Character literals"/>
63         <node number="9.4.4.5" name="String literals"/>
64         <node number="9.4.4.6" name="The null literal"/>
65       </node>
66       <node number="9.4.5" name="Operators and punctuators"/>
67     </node>
68     <node number="9.5" name="Pre-processing directives">
69       <node number="9.5.1" name="Conditional compilation symbols"/>
70       <node number="9.5.2" name="Pre-processing expressions"/>
71       <node number="9.5.3" name="Declaration directives"/>
72       <node number="9.5.4" name="Conditional compilation directives"/>
73       <node number="9.5.5" name="Diagnostic directives"/>
74       <node number="9.5.6" name="Region control"/>
75       <node number="9.5.7" name="Line directives"/>
76     </node>
77   </node>
78   <node number="10" name="Basic concepts">
79     <node number="10.1" name="Application startup"/>
80     <node number="10.2" name="Application termination"/>
81     <node number="10.3" name="Declarations"/>
82     <node number="10.4" name="Members">
83       <node number="10.4.1" name="Namespace members"/>
84       <node number="10.4.2" name="Struct members"/>
85       <node number="10.4.3" name="Enumeration members"/>
86       <node number="10.4.4" name="Class members"/>
87       <node number="10.4.5" name="Interface members"/>
88       <node number="10.4.6" name="Array members"/>
89       <node number="10.4.7" name="Delegate members"/>
90     </node>
91     <node number="10.5" name="Member access">
92       <node number="10.5.1" name="Declared accessibility"/>
93       <node number="10.5.2" name="Accessibility domains"/>
94       <node number="10.5.3" name="Protected access for instance members"/>
95       <node number="10.5.4" name="Accessibility constraints"/>
96     </node>
97     <node number="10.6" name="Signatures and overloading"/>
98     <node number="10.7" name="Scopes">
99       <node number="10.7.1" name="Name hiding">
100         <node number="10.7.1.1" name="Hiding through nesting"/>
101         <node number="10.7.1.2" name="Hiding through inheritance"/>
102       </node>
103     </node>
104     <node number="10.8" name="Namespace and type names">
105       <node number="10.8.1" name="Fully qualified names"/>
106     </node>
107     <node number="10.9" name="Automatic memory management"/>
108     <node number="10.10" name="Execution order"/>
109   </node>
110   <node number="11" name="Types">
111     <node number="11.1" name="Value types">
112       <node number="11.1.1" name="Default constructors"/>
113       <node number="11.1.2" name="Struct types"/>
114       <node number="11.1.3" name="Simple types"/>
115       <node number="11.1.4" name="Integral types"/>
116       <node number="11.1.5" name="Floating point types"/>
117       <node number="11.1.6" name="The decimal type"/>
118       <node number="11.1.7" name="The bool type"/>
119       <node number="11.1.8" name="Enumeration types"/>
120     </node>
121     <node number="11.2" name="Reference types">
122       <node number="11.2.1" name="Class types"/>
123       <node number="11.2.2" name="The object type"/>
124       <node number="11.2.3" name="The string type"/>
125       <node number="11.2.4" name="Interface types"/>
126       <node number="11.2.5" name="Array types"/>
127       <node number="11.2.6" name="Delegate types"/>
128     </node>
129     <node number="11.3" name="Boxing and unboxing">
130       <node number="11.3.1" name="Boxing conversions"/>
131       <node number="11.3.2" name="Unboxing conversions"/>
132     </node>
133   </node>
134   <node number="12" name="Variables">
135     <node number="12.1" name="Variable categories">
136       <node number="12.1.1" name="Static variables"/>
137       <node number="12.1.2" name="Instance variables">
138         <node number="12.1.2.1" name="Instance variables in classes"/>
139         <node number="12.1.2.2" name="Instance variables in structs"/>
140       </node>
141       <node number="12.1.3" name="Array elements"/>
142       <node number="12.1.4" name="Value parameters"/>
143       <node number="12.1.5" name="Reference parameters"/>
144       <node number="12.1.6" name="Output parameters"/>
145       <node number="12.1.7" name="Local variables"/>
146     </node>
147     <node number="12.2" name="Default values"/>
148     <node number="12.3" name="Definite assignment">
149       <node number="12.3.1" name="Initially assigned variables"/>
150       <node number="12.3.2" name="Initially unassigned variables"/>
151       <node number="12.3.3" name="Precise rules for determining definite assignment">
152         <node number="12.3.3.1" name="General rules for statements"/>
153         <node number="12.3.3.2" name="Block statements, checked, and unchecked statements"/>
154         <node number="12.3.3.3" name="Expression statements"/>
155         <node number="12.3.3.4" name="Declaration statements"/>
156         <node number="12.3.3.5" name="If statements"/>
157         <node number="12.3.3.6" name="Switch statements"/>
158         <node number="12.3.3.7" name="While statements"/>
159         <node number="12.3.3.8" name="Do statements"/>
160         <node number="12.3.3.9" name="For statements"/>
161         <node number="12.3.3.10" name="Break, continue, and goto statements"/>
162         <node number="12.3.3.11" name="Throw statements"/>
163         <node number="12.3.3.12" name="Return statements"/>
164         <node number="12.3.3.13" name="Try-catch statements"/>
165         <node number="12.3.3.14" name="Try-finally statements"/>
166         <node number="12.3.3.15" name="Try-catch-finally statements"/>
167         <node number="12.3.3.16" name="Foreach statements"/>
168         <node number="12.3.3.17" name="Using statements"/>
169         <node number="12.3.3.18" name="Lock statements"/>
170         <node number="12.3.3.19" name="General rules for simple expressions"/>
171         <node number="12.3.3.20" name="General rules for expressions with embedded expressions"/>
172         <node number="12.3.3.21" name="Invocation expressions and object creation expressions"/>
173         <node number="12.3.3.22" name="Simple assignment expressions"/>
174         <node number="12.3.3.23" name="&amp;&amp; expressions"/>
175         <node number="12.3.3.24" name="|| expressions"/>
176         <node number="12.3.3.25" name="! expressions"/>
177         <node number="12.3.3.26" name="?: expressions"/>
178       </node>
179     </node>
180     <node number="12.4" name="Variable references"/>
181     <node number="12.5" name="Atomicity of variable references"/>
182   </node>
183   <node number="13" name="Conversions">
184     <node number="13.1" name="Implicit conversions">
185       <node number="13.1.1" name="Identity conversion"/>
186       <node number="13.1.2" name="Implicit numeric conversions"/>
187       <node number="13.1.3" name="Implicit enumeration conversions"/>
188       <node number="13.1.4" name="Implicit reference conversions"/>
189       <node number="13.1.5" name="Boxing conversions"/>
190       <node number="13.1.6" name="Implicit constant expression conversions"/>
191       <node number="13.1.7" name="User-defined implicit conversions"/>
192     </node>
193     <node number="13.2" name="Explicit conversions">
194       <node number="13.2.1" name="Explicit numeric conversions"/>
195       <node number="13.2.2" name="Explicit enumeration conversions"/>
196       <node number="13.2.3" name="Explicit reference conversions"/>
197       <node number="13.2.4" name="Unboxing conversions"/>
198       <node number="13.2.5" name="User-defined explicit conversions"/>
199     </node>
200     <node number="13.3" name="Standard conversions">
201       <node number="13.3.1" name="Standard implicit conversions"/>
202       <node number="13.3.2" name="Standard explicit conversions"/>
203     </node>
204     <node number="13.4" name="User-defined conversions">
205       <node number="13.4.1" name="Permitted user-defined conversions"/>
206       <node number="13.4.2" name="Evaluation of user-defined conversions"/>
207       <node number="13.4.3" name="User-defined implicit conversions"/>
208       <node number="13.4.4" name="User-defined explicit conversions"/>
209     </node>
210   </node>
211   <node number="14" name="Expressions">
212     <node number="14.1" name="Expression classifications">
213       <node number="14.1.1" name="Values of expressions"/>
214     </node>
215     <node number="14.2" name="Operators">
216       <node number="14.2.1" name="Operator precedence and associativity"/>
217       <node number="14.2.2" name="Operator overloading"/>
218       <node number="14.2.3" name="Unary operator overload resolution"/>
219       <node number="14.2.4" name="Binary operator overload resolution"/>
220       <node number="14.2.5" name="Candidate user-defined operators"/>
221       <node number="14.2.6" name="Numeric promotions">
222         <node number="14.2.6.1" name="Unary numeric promotions"/>
223         <node number="14.2.6.2" name="Binary numeric promotions"/>
224       </node>
225     </node>
226     <node number="14.3" name="Member lookup">
227       <node number="14.3.1" name="Base types"/>
228     </node>
229     <node number="14.4" name="Function members">
230       <node number="14.4.1" name="Argument lists"/>
231       <node number="14.4.2" name="Overload resolution">
232         <node number="14.4.2.1" name="Applicable function member"/>
233         <node number="14.4.2.2" name="Better function member"/>
234         <node number="14.4.2.3" name="Better conversion"/>
235       </node>
236       <node number="14.4.3" name="Function member invocation">
237         <node number="14.4.3.1" name="Invocations on boxed instances"/>
238       </node>
239     </node>
240     <node number="14.5" name="Primary expressions">
241       <node number="14.5.1" name="Literals"/>
242       <node number="14.5.2" name="Simple names">
243         <node number="14.5.2.1" name="Invariant meaning in blocks"/>
244       </node>
245       <node number="14.5.3" name="Parenthesized expressions"/>
246       <node number="14.5.4" name="Member access">
247         <node number="14.5.4.1" name="Identical simple names and type names"/>
248       </node>
249       <node number="14.5.5" name="Invocation expressions">
250         <node number="14.5.5.1" name="Method invocations"/>
251         <node number="14.5.5.2" name="Delegate invocations"/>
252       </node>
253       <node number="14.5.6" name="Element access">
254         <node number="14.5.6.1" name="Array access"/>
255         <node number="14.5.6.2" name="Indexer access"/>
256       </node>
257       <node number="14.5.7" name="This access"/>
258       <node number="14.5.8" name="Base access"/>
259       <node number="14.5.9" name="Postfix increment and decrement operators"/>
260       <node number="14.5.10" name="The new operator">
261         <node number="14.5.10.1" name="Object creation expressions"/>
262         <node number="14.5.10.2" name="Array creation expressions"/>
263         <node number="14.5.10.3" name="Delegate creation expressions"/>
264       </node>
265       <node number="14.5.11" name="The typeof operator"/>
266       <node number="14.5.12" name="The checked and unchecked operators"/>
267     </node>
268     <node number="14.6" name="Unary expressions">
269       <node number="14.6.1" name="Unary plus operator"/>
270       <node number="14.6.2" name="Unary minus operator"/>
271       <node number="14.6.3" name="Logical negation operator"/>
272       <node number="14.6.4" name="Bitwise complement operator"/>
273       <node number="14.6.5" name="Prefix increment and decrement operators"/>
274       <node number="14.6.6" name="Cast expressions"/>
275     </node>
276     <node number="14.7" name="Arithmetic operators">
277       <node number="14.7.1" name="Multiplication operator"/>
278       <node number="14.7.2" name="Division operator"/>
279       <node number="14.7.3" name="Remainder operator"/>
280       <node number="14.7.4" name="Addition operator"/>
281       <node number="14.7.5" name="Subtraction operator"/>
282     </node>
283     <node number="14.8" name="Shift operators"/>
284     <node number="14.9" name="Relational and type-testing operators">
285       <node number="14.9.1" name="Integer comparison operators"/>
286       <node number="14.9.2" name="Floating-point comparison operators"/>
287       <node number="14.9.3" name="Decimal comparison operators"/>
288       <node number="14.9.4" name="Boolean equality operators"/>
289       <node number="14.9.5" name="Enumeration comparison operators"/>
290       <node number="14.9.6" name="Reference type equality operators"/>
291       <node number="14.9.7" name="String equality operators"/>
292       <node number="14.9.8" name="Delegate equality operators"/>
293       <node number="14.9.9" name="The is operator"/>
294       <node number="14.9.10" name="The as operator"/>
295     </node>
296     <node number="14.10" name="Logical operators">
297       <node number="14.10.1" name="Integer logical operators"/>
298       <node number="14.10.2" name="Enumeration logical operators"/>
299       <node number="14.10.3" name="Boolean logical operators"/>
300     </node>
301     <node number="14.11" name="Conditional logical operators">
302       <node number="14.11.1" name="Boolean conditional logical operators"/>
303       <node number="14.11.2" name="User-defined conditional logical operators"/>
304     </node>
305     <node number="14.12" name="Conditional operator"/>
306     <node number="14.13" name="Assignment operators">
307       <node number="14.13.1" name="Simple assignment"/>
308       <node number="14.13.2" name="Compound assignment"/>
309       <node number="14.13.3" name="Event assignment"/>
310     </node>
311     <node number="14.14" name="Expression"/>
312     <node number="14.15" name="Constant expressions"/>
313     <node number="14.16" name="Boolean expressions"/>
314   </node>
315   <node number="15" name="Statements">
316     <node number="15.1" name="End points and reachability"/>
317     <node number="15.2" name="Blocks">
318       <node number="15.2.1" name="Statement lists"/>
319     </node>
320     <node number="15.3" name="The empty statement"/>
321     <node number="15.4" name="Labeled statements"/>
322     <node number="15.5" name="Declaration statements">
323       <node number="15.5.1" name="Local variable declarations"/>
324       <node number="15.5.2" name="Local constant declarations"/>
325     </node>
326     <node number="15.6" name="Expression statements"/>
327     <node number="15.7" name="Selection statements">
328       <node number="15.7.1" name="The if statement"/>
329       <node number="15.7.2" name="The switch statement"/>
330     </node>
331     <node number="15.8" name="Iteration statements">
332       <node number="15.8.1" name="The while statement"/>
333       <node number="15.8.2" name="The do statement"/>
334       <node number="15.8.3" name="The for statement"/>
335       <node number="15.8.4" name="The foreach statement"/>
336     </node>
337     <node number="15.9" name="Jump statements">
338       <node number="15.9.1" name="The break statement"/>
339       <node number="15.9.2" name="The continue statement"/>
340       <node number="15.9.3" name="The goto statement"/>
341       <node number="15.9.4" name="The return statement"/>
342       <node number="15.9.5" name="The throw statement"/>
343     </node>
344     <node number="15.10" name="The try statement"/>
345     <node number="15.11" name="The checked and unchecked statements"/>
346     <node number="15.12" name="The lock statement"/>
347     <node number="15.13" name="The using statement"/>
348   </node>
349   <node number="16" name="Namespaces">
350     <node number="16.1" name="Compilation units"/>
351     <node number="16.2" name="Namespace declarations"/>
352     <node number="16.3" name="Using directives">
353       <node number="16.3.1" name="Using alias directives"/>
354       <node number="16.3.2" name="Using namespace directives"/>
355     </node>
356     <node number="16.4" name="Namespace members"/>
357     <node number="16.5" name="Type declarations"/>
358   </node>
359   <node number="17" name="Classes">
360     <node number="17.1" name="Class declarations">
361       <node number="17.1.1" name="Class modifiers">
362         <node number="17.1.1.1" name="Abstract classes"/>
363         <node number="17.1.1.2" name="Sealed classes"/>
364       </node>
365       <node number="17.1.2" name="Class base specification">
366         <node number="17.1.2.1" name="Base classes"/>
367         <node number="17.1.2.2" name="Interface implementations"/>
368       </node>
369       <node number="17.1.3" name="Class body"/>
370     </node>
371     <node number="17.2" name="Class members">
372       <node number="17.2.1" name="Inheritance"/>
373       <node number="17.2.2" name="The new modifier"/>
374       <node number="17.2.3" name="Access modifiers"/>
375       <node number="17.2.4" name="Constituent types"/>
376       <node number="17.2.5" name="Static and instance members"/>
377       <node number="17.2.6" name="Nested types">
378         <node number="17.2.6.1" name="Fully qualified name"/>
379         <node number="17.2.6.2" name="Declared accessibility"/>
380         <node number="17.2.6.3" name="Hiding"/>
381         <node number="17.2.6.4" name="this access"/>
382         <node number="17.2.6.5" name="Access to private and protected members of the containing type"/>
383       </node>
384       <node number="17.2.7" name="Reserved member names">
385         <node number="17.2.7.1" name="Member Names Reserved for Properties"/>
386         <node number="17.2.7.2" name="Member Names Reserved for Events"/>
387         <node number="17.2.7.3" name="Member Names Reserved for Indexers"/>
388         <node number="17.2.7.4" name="Member Names Reserved for Destructors"/>
389       </node>
390     </node>
391     <node number="17.3" name="Constants"/>
392     <node number="17.4" name="Fields">
393       <node number="17.4.1" name="Static and instance fields"/>
394       <node number="17.4.2" name="Readonly fields">
395         <node number="17.4.2.1" name="Using static readonly fields for constants"/>
396         <node number="17.4.2.2" name="Versioning of constants and static readonly fields"/>
397       </node>
398       <node number="17.4.3" name="Volatile fields"/>
399       <node number="17.4.4" name="Field initialization"/>
400       <node number="17.4.5" name="Variable initializers">
401         <node number="17.4.5.1" name="Static field initialization"/>
402         <node number="17.4.5.2" name="Instance field initialization"/>
403       </node>
404     </node>
405     <node number="17.5" name="Methods">
406       <node number="17.5.1" name="Method parameters">
407         <node number="17.5.1.1" name="Value parameters"/>
408         <node number="17.5.1.2" name="Reference parameters"/>
409         <node number="17.5.1.3" name="Output parameters"/>
410         <node number="17.5.1.4" name="Parameter arrays"/>
411       </node>
412       <node number="17.5.2" name="Static and instance methods"/>
413       <node number="17.5.3" name="Virtual methods"/>
414       <node number="17.5.4" name="Override methods"/>
415       <node number="17.5.5" name="Sealed methods"/>
416       <node number="17.5.6" name="Abstract methods"/>
417       <node number="17.5.7" name="External methods"/>
418       <node number="17.5.8" name="Method body"/>
419       <node number="17.5.9" name="Method overloading"/>
420     </node>
421     <node number="17.6" name="Properties">
422       <node number="17.6.1" name="Static and instance properties"/>
423       <node number="17.6.2" name="Accessors"/>
424       <node number="17.6.3" name="Virtual, sealed, override, and abstract accessors"/>
425     </node>
426     <node number="17.7" name="Events">
427       <node number="17.7.1" name="Field-like events"/>
428       <node number="17.7.2" name="Event accessors"/>
429       <node number="17.7.3" name="Static and instance events"/>
430       <node number="17.7.4" name="Virtual, sealed, override, and abstract accessors"/>
431     </node>
432     <node number="17.8" name="Indexers">
433       <node number="17.8.1" name="Indexer overloading"/>
434     </node>
435     <node number="17.9" name="Operators">
436       <node number="17.9.1" name="Unary operators"/>
437       <node number="17.9.2" name="Binary operators"/>
438       <node number="17.9.3" name="Conversion operators"/>
439     </node>
440     <node number="17.10" name="Instance constructors">
441       <node number="17.10.1" name="Constructor initializers"/>
442       <node number="17.10.2" name="Instance variable initializers"/>
443       <node number="17.10.3" name="Constructor execution"/>
444       <node number="17.10.4" name="Default constructors"/>
445       <node number="17.10.5" name="Private constructors"/>
446       <node number="17.10.6" name="Optional instance constructor parameters"/>
447     </node>
448     <node number="17.11" name="Static constructors"/>
449     <node number="17.12" name="Destructors"/>
450   </node>
451   <node number="18" name="Structs">
452     <node number="18.1" name="Struct declarations">
453       <node number="18.1.1" name="Struct modifiers"/>
454       <node number="18.1.2" name="Struct interfaces"/>
455       <node number="18.1.3" name="Struct body"/>
456     </node>
457     <node number="18.2" name="Struct members"/>
458     <node number="18.3" name="Class and struct differences">
459       <node number="18.3.1" name="Value semantics"/>
460       <node number="18.3.2" name="Inheritance"/>
461       <node number="18.3.3" name="Assignment"/>
462       <node number="18.3.4" name="Default values"/>
463       <node number="18.3.5" name="Boxing and unboxing"/>
464       <node number="18.3.6" name="Meaning of this"/>
465       <node number="18.3.7" name="Field initializers"/>
466       <node number="18.3.8" name="Constructors"/>
467       <node number="18.3.9" name="Destructors"/>
468     </node>
469     <node number="18.4" name="Struct examples">
470       <node number="18.4.1" name="Database integer type"/>
471       <node number="18.4.2" name="Database boolean type"/>
472     </node>
473   </node>
474   <node number="19" name="Arrays">
475     <node number="19.1" name="Array types">
476       <node number="19.1.1" name="The System.Array type"/>
477     </node>
478     <node number="19.2" name="Array creation"/>
479     <node number="19.3" name="Array element access"/>
480     <node number="19.4" name="Array members"/>
481     <node number="19.5" name="Array covariance"/>
482     <node number="19.6" name="Array initializers"/>
483   </node>
484   <node number="20" name="Interfaces">
485     <node number="20.1" name="Interface declarations">
486       <node number="20.1.1" name="Interface modifiers"/>
487       <node number="20.1.2" name="Base interfaces"/>
488       <node number="20.1.3" name="Interface body"/>
489     </node>
490     <node number="20.2" name="Interface members">
491       <node number="20.2.1" name="Interface methods"/>
492       <node number="20.2.2" name="Interface properties"/>
493       <node number="20.2.3" name="Interface events"/>
494       <node number="20.2.4" name="Interface indexers"/>
495       <node number="20.2.5" name="Interface member access"/>
496     </node>
497     <node number="20.3" name="Fully qualified interface member names"/>
498     <node number="20.4" name="Interface implementations">
499       <node number="20.4.1" name="Explicit interface member implementations"/>
500       <node number="20.4.2" name="Interface mapping"/>
501       <node number="20.4.3" name="Interface implementation inheritance"/>
502       <node number="20.4.4" name="Interface re-implementation"/>
503       <node number="20.4.5" name="Abstract classes and interfaces"/>
504     </node>
505   </node>
506   <node number="21" name="Enums">
507     <node number="21.1" name="Enum declarations"/>
508     <node number="21.2" name="Enum modifiers"/>
509     <node number="21.3" name="Enum members"/>
510     <node number="21.4" name="Enum values and operations"/>
511   </node>
512   <node number="22" name="Delegates">
513     <node number="22.1" name="Delegate declarations"/>
514     <node number="22.2" name="Delegate instantiation"/>
515     <node number="22.3" name="Delegate invocation"/>
516   </node>
517   <node number="23" name="Exceptions">
518     <node number="23.1" name="Causes of exceptions"/>
519     <node number="23.2" name="The System.Exception class"/>
520     <node number="23.3" name="How exceptions are handled"/>
521     <node number="23.4" name="Common Exception Classes"/>
522   </node>
523   <node number="24" name="Attributes">
524     <node number="24.1" name="Attribute classes">
525       <node number="24.1.1" name="Attribute usage"/>
526       <node number="24.1.2" name="Positional and named parameters"/>
527       <node number="24.1.3" name="Attribute parameter types"/>
528     </node>
529     <node number="24.2" name="Attribute specification"/>
530     <node number="24.3" name="Attribute instances">
531       <node number="24.3.1" name="Compilation of an attribute"/>
532       <node number="24.3.2" name="Run-time retrieval of an attribute instance"/>
533     </node>
534     <node number="24.4" name="Reserved attributes">
535       <node number="24.4.1" name="The AttributeUsage attribute"/>
536       <node number="24.4.2" name="The Conditional attribute"/>
537       <node number="24.4.3" name="The Obsolete attribute"/>
538     </node>
539   </node>
540   <node number="25" name="Unsafe code">
541     <node number="25.1" name="Unsafe contexts"/>
542     <node number="25.2" name="Pointer types"/>
543     <node number="25.3" name="Fixed and moveable variables"/>
544     <node number="25.4" name="Pointer conversions"/>
545     <node number="25.5" name="Pointers in expressions">
546       <node number="25.5.1" name="Pointer indirection"/>
547       <node number="25.5.2" name="Pointer member access"/>
548       <node number="25.5.3" name="Pointer element access"/>
549       <node number="25.5.4" name="The address-of operator"/>
550       <node number="25.5.5" name="Pointer increment and decrement"/>
551       <node number="25.5.6" name="Pointer arithmetic"/>
552       <node number="25.5.7" name="Pointer comparison"/>
553       <node number="25.5.8" name="The sizeof operator"/>
554     </node>
555     <node number="25.6" name="The fixed statement"/>
556     <node number="25.7" name="Stack allocation"/>
557     <node number="25.8" name="Dynamic memory allocation"/>
558   </node>
559 </toc>