diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..063c234a --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: c09304758c0c50000213c25ed311e647 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..b9bb96f8 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +spec.ferrocene.dev diff --git a/_sources/associated-items.rst.txt b/_sources/associated-items.rst.txt new file mode 100644 index 00000000..c4683bb2 --- /dev/null +++ b/_sources/associated-items.rst.txt @@ -0,0 +1,218 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_l21tjqjkkaa0: + +Associated Items +================ + +.. rubric:: Syntax + +.. syntax:: + + AssociatedItem ::= + OuterAttributeOrDoc* (AssociatedItemWithVisibility | TerminatedMacroInvocation) + + AssociatedItemWithVisibility ::= + VisibilityModifier? ( + ConstantDeclaration + | FunctionDeclaration + | TypeAliasDeclaration + ) + +.. rubric:: Legality Rules + +:dp:`fls_ckzd25qd213t` +An :t:`associated item` is an :t:`item` that appears within an +:t:`implementation` or a :t:`trait`. + +:dp:`fls_5y6ae0xqux57` +An :t:`associated constant` is a :t:`constant` that appears as an +:t:`associated item`. + +:dp:`fls_lj7492aq7fzo` +An :t:`associated function` is a :t:`function` that appears as an +:t:`associated item`. + +:dp:`fls_8cz4rdrklaj4` +An :t:`associated type` is a :t:`type alias` that appears as an +:t:`associated item`. + +:dp:`fls_w8nu8suy7t5` +An :t:`associated type` shall not be used in the :t:`path expression` of a +:t:`struct expression`. + +:dp:`fls_wasocqdnuzd1` +An :t:`associated type` with a :s:`TypeBoundList` shall appear only as an +:t:`associated trait type`. + +:dp:`fls_PeD0DzjK57be` +A :t:`generic associated type` is an :t:`associated type` with +:t:`[generic parameter]s`. + +:dp:`fls_3foYUch29ZtF` +A :t:`lifetime parameter` of a :t:`generic associated type` requires a +:t:`bound` of the form ``T: 'lifetime``, where ``T`` is a :t:`type parameter` +or :c:`Self` and ``'lifetime`` is the :t:`lifetime parameter`, when + +* :dp:`fls_SnQc0zZS57Cz` + The :t:`generic associated type` is used in an :t:`associated function` of + the same :t:`trait`, and + +* :dp:`fls_6Z05BK2JSzpP` + The corresponding :t:`lifetime argument` in the use is not the ``'static`` + :t:`lifetime` and has either an explicit :t:`bound` or an :t:`implicit bound` + that constrains the :t:`type parameter`, and + +* :dp:`fls_AtItgS1UvwiX` + The intersection of all such uses is not empty. + +:dp:`fls_l3iwn56n1uz8` +An :t:`associated implementation constant` is an :t:`associated constant` that +appears within an :t:`implementation`. + +:dp:`fls_4ftfefcotb4g` +An :t:`associated implementation constant` shall have a :t:`constant +initializer`. + +:dp:`fls_qb5qpfe0uwk` +An :t:`associated implementation function` is an :t:`associated function` that +appears within an :t:`implementation`. + +:dp:`fls_1zlkeb6fz10j` +An :t:`associated implementation function` shall have a :t:`function body`. + +:dp:`fls_tw8u0cc5867l` +An :t:`associated implementation type` is an :t:`associated type` that appears +within an :t:`implementation`. + +:dp:`fls_bx7931x4155h` +An :t:`associated implementation type` shall have an :t:`initialization type`. + +:dp:`fls_bnTcCbDvdp94` +An :t:`associated trait item` is an :t:`associated item` that appears +within a :t:`trait`. + +:dp:`fls_N3cdn4lCZ2Bf` +An :t:`associated trait implementation item` is an :t:`associated item` that +appears within a :t:`trait implementation`. + +:dp:`fls_x564isbhobym` +An :t:`associated trait constant` is an :t:`associated constant` that appears +within a :t:`trait`. + +:dp:`fls_b6nns7oqvdpm` +An :t:`associated trait function` is an :t:`associated function` that appears +within a :t:`trait`. + +:dp:`fls_2TRwCz38kuRz` +An :t:`associated trait function` shall not be subject to :t:`keyword` ``const``. + +:dp:`fls_WnsVATJvUdza` +Every occurrence of an :t:`impl trait type` in the :t:`return type` of an +:t:`associated trait function` is equivalent to referring to a new +anonymous :t:`associated trait type` of the :t:`implemented trait`. + +:dp:`fls_yyhebj4qyk34` +An :t:`associated trait type` is an :t:`associated type` that appears within +a :t:`trait`. + +:dp:`fls_kl9p3ycl5mzf` +An :t:`associated trait type` shall not have an :t:`initialization type`. + +:dp:`fls_a5prbmuruma4` +An :t:`associated trait type` has an implicit :std:`core::marker::Sized` +:t:`bound`. + +:dp:`fls_vp2ov6ykueue` +An :t:`associated trait type` of the form + +.. code-block:: rust + + trait T { + type X: Bound; + } + +:dp:`fls_5uf74nvdm64o` +is equivalent to a :t:`where clause` of the following form: + +.. code-block:: rust + + trait T where Self::X: Bound { + type X; + } + +:dp:`fls_amWtS80fPtza` +An :t:`associated trait implementation function` is an :t:`associated function` +that appears within a :t:`trait implementation`. + +:dp:`fls_Cu8FWrisrqz1` +Every occurrence of an :t:`impl trait type` in the :t:`return type` of an +:t:`associated trait implementation function` is equivalent to referring to the +corresponding :t:`associated trait type` of the corresponding :t:`associated +trait function`. + +:dp:`fls_oy92gzxgc273` +A :t:`method` is an :t:`associated function` with a :t:`self parameter`. + +:dp:`fls_WXnCWfJGoQx3` +The type of a :t:`self parameter` shall be one of the following: + +* :dp:`fls_OaszUw4IFobz` + A :t:`type specification` resolving to the :t:`implementing type` of the + related :t:`implementation`, or + +* :dp:`fls_Wd2FZRomB5yn` + ``&T`` where ``T`` is one of the :t:`[type]s` listed in this enumeration, + or + +* :dp:`fls_lcEyToYIlcmf` + ``&mut T`` where ``T`` is one of the :t:`[type]s` listed in this + enumeration, or + +* :dp:`fls_IKSPR7ZQMErU` + :std:`core::pin::Pin ` where ``T`` is one of the the :t:`[type]s` listed in this + enumeration. + +:dp:`fls_oHxzyaiT7Qm6` +The :t:`visibility modifier` of an :t:`associated trait item` or :t:`associated +trait implementation item` is rejected, but may still be consumed by +:t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Greeter { + const MAX_GREETINGS: i32; + + fn greet(self, message: &str); + } + + struct Implementor { + delivered_greetings: i32 + } + + impl Greeter for Implementor { + const MAX_GREETINGS: i32 = 42; + + fn greet(mut self, message: &str) { + if self.delivered_greetings < Self::MAX_GREETINGS { + self.delivered_greetings += 1; + println!("{}", message); + } + } + } + +:dp:`fls_znfADVeOvXHD` +Generic associated type with lifetime bound. + +.. code-block:: rust + + trait LendingIterator { + type Item<'x> where Self: 'x; + + fn next<'a>(&'a mut self) -> Self::Item<'a>; + } diff --git a/_sources/attributes.rst.txt b/_sources/attributes.rst.txt new file mode 100644 index 00000000..78c193ac --- /dev/null +++ b/_sources/attributes.rst.txt @@ -0,0 +1,2084 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_gvwd0kf72jt: + +Attributes +========== + +.. rubric:: Syntax + +.. syntax:: + + InnerAttributeOrDoc ::= + InnerAttribute + | InnerBuiltinAttribute + | InnerBlockDoc + | InnerLineDoc + + InnerAttribute ::= + $$#![$$ AttributeContent $$]$$ + + OuterAttributeOrDoc ::= + OuterAttribute + | OuterBuiltinAttribute + | OuterBlockDoc + | OuterLineDoc + + OuterAttribute ::= + $$#[$$ AttributeContent $$]$$ + + AttributeContent ::= + SimplePath AttributeInput? + + AttributeInput ::= + $$($$ TokenTree* $$)$$ + | $$=$$ Expression + + AttributeContentList ::= + AttributeContent (, AttributeContent)* ,? + +.. rubric:: Legality Rules + +:dp:`fls_rnzxj1t0hehl` +An :t:`attribute` is a general, free-form metadatum that is interpreted based on +its :t:`name`, convention, language, and tool. + +:dp:`fls_yd0ehw5csaur` +An :t:`inner attribute` is an :t:`attribute` that applies to an enclosing +:t:`item`. + +:dp:`fls_8o6vmzbw1b1j` +An :t:`outer attribute` is an :t:`attribute` that applies to a subsequent +:t:`item`. + +:dp:`fls_9TMRVlQwAdTB` +An :t:`attribute content` is a :t:`construct` that provides the content of +an :t:`attribute`. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg[target_os = "linux"]] + mod linux_only_module { + #![allow(unused_variables)] + + let unused = (); + } + +.. _fls_i52cujixq9qs: + +Attribute Properties +-------------------- + +.. rubric:: Legality Rules + +:dp:`fls_p4potvq7x532` +An :t:`active attribute` is an :t:`attribute` that is removed from the :t:`item` +it decorates. + +:dp:`fls_xk7lb2g02sy7` +An :t:`inert attribute` is an :t:`attribute` that remains with the :t:`item` +it decorates. + +:dp:`fls_q8wl7pidx2za` +The following :t:`[attribute]s` are :t:`[active attribute]s`: + +* :dp:`fls_jottio69o9e7` + :t:`[Attribute macro]s`. + +* :dp:`fls_gzyx9lfi5pvd` + :t:`Attribute` :c:`cfg`. + +* :dp:`fls_elsfqsiqor1y` + :t:`Attribute` :c:`cfg_attr`. + +:dp:`fls_4xu1rwecd9au` +:t:`Attribute` :c:`test` is an :t:`inert attribute` when compiling for testing +purposes, otherwise it is an :t:`active attribute`. + +:dp:`fls_n3737i320qum` +All remaining :t:`[attribute]s` are :t:`[inert attribute]s`. + +.. _fls_ahmnqhm8anlb: + +Built-in Attributes +------------------- + +.. rubric:: Syntax + +.. syntax:: + + InnerBuiltinAttribute ::= + $$#![$$ BuiltinAttributeContent $$]$$ + + OuterBuiltinAttribute ::= + $$#[$$ BuiltinAttributeContent $$]$$ + + BuiltinAttributeContent ::= + AutomaticallyDerivedContent + | CfgAttrContent + | CfgContent + | ColdContent + | CrateNameContent + | CrateTypeContent + | DeriveContent + | DocContent + | ExportNameContent + | GlobalAllocatorContent + | InlineContent + | IgnoreContent + | LinkContent + | LinkNameContent + | LinkSectionContent + | LinkOrdinalContent + | MacroExportContent + | MacroUseContent + | NoBinutilsContent + | NoImplicitPreludeContent + | NoLinkContent + | NoMainContent + | NoMangleContent + | NonExhaustiveContent + | NoStdContent + | PanicHandlerContent + | PathContent + | ProcMacroAttributeContent + | ProcMacroContent + | ProcMacroDeriveContent + | RecursionLimitContent + | ReprContent + | ShouldPanicContent + | TargetFeatureContent + | TestContent + | TrackCallerContent + | TypeLengthLimitContent + | UsedContent + | WindowsSubsystemContent + +.. rubric:: Legality Rules + +:dp:`fls_92tqo8uas8kd` +A :t:`built-in attribute` is a language-defined :t:`attribute`. + +:dp:`fls_bxucstrfcco8` +The following :t:`[built-in attribute]s` are :dt:`[code generation attribute]s`: + +* :dp:`fls_wle815gb9ai2` + :t:`Attribute` :c:`cold`. + +* :dp:`fls_tvn08dtuilue` + :t:`Attribute` :c:`inline`. + +* :dp:`fls_q4c023zdsfgn` + :t:`Attribute` :c:`no_builtins`. + +* :dp:`fls_xtu3p0kzwn7b` + :t:`Attribute` :c:`target_feature`. + +* :dp:`fls_gxxbf6eag3et` + :t:`Attribute` :c:`track_caller`. + +:dp:`fls_87o6n9et9jio` +The following :t:`[built-in attribute]s` are +:dt:`[conditional compilation attribute]s`: + +* :dp:`fls_ui0i3rpt5v5u` + :t:`Attribute` :c:`cfg`. + +* :dp:`fls_6utorag4adlv` + :t:`Attribute` :c:`cfg_attr`. + +:dp:`fls_d8spdkjzp496` +The following :t:`[built-in attribute]s` are :dt:`[derivation attribute]s`: + +* :dp:`fls_vidbcv25dyud` + :t:`Attribute` :c:`automatically_derived`. + +* :dp:`fls_d0298bmlyuu4` + :t:`Attribute` :c:`derive`. + +:dp:`fls_dtb3t5ht5ngf` +The following :t:`[built-in attribute]s` are :dt:`[diagnostics attribute]s`: + +* :dp:`fls_c5n4gzgs79vv` + :t:`Attribute` ``allow``. + +* :dp:`fls_xheohvupr8kb` + :t:`Attribute` ``deny``. + +* :dp:`fls_s5z2q5pl14p4` + :t:`Attribute` ``deprecated``. + +* :dp:`fls_5ko0q9jnxv5a` + :t:`Attribute` ``forbid``. + +* :dp:`fls_rgjf5ibhurda` + :t:`Attribute` ``must_use``. + +* :dp:`fls_29y8icoou1gx` + :t:`Attribute` ``warn``. + +:dp:`fls_3fxhz0olhbcy` +The following :t:`[built-in attribute]s` are :dt:`[documentation attribute]s`: + +* :dp:`fls_oexj0952o05u` + :t:`Attribute` :c:`doc`. + +:dp:`fls_q579e97n1m8j` +The following :t:`[built-in attribute]s` are +:dt:`[foreign function interface attribute]s`: + +* :dp:`fls_sn43rofpq6ld` + :t:`Attribute` :c:`crate_name`. + +* :dp:`fls_56d70gkmin4p` + :t:`Attribute` :c:`crate_type`. + +* :dp:`fls_mgb1xipm0qwo` + :t:`Attribute` :c:`export_name`. + +* :dp:`fls_rmhlssasdtkj` + :t:`Attribute` :c:`link`. + +* :dp:`fls_josaywt6g3rq` + :t:`Attribute` :c:`link_name`. + +* :dp:`fls_qk4vkn42c2jh` + :t:`Attribute` :c:`link_section`. + +* :dp:`fls_f21azsygoovw` + :t:`Attribute` :c:`no_link`. + +* :dp:`fls_4d31lwzblg91` + :t:`Attribute` :c:`no_main`. + +* :dp:`fls_muucfla1s8yn` + :t:`Attribute` :c:`no_mangle`. + +* :dp:`fls_wbdtpntjr95w` + :t:`Attribute` :c:`repr`. + +* :dp:`fls_lglwcbsvi9yj` + :t:`Attribute` :c:`used`. + +:dp:`fls_1gyg8hfb13n7` +The following :t:`[built-in attribute]s` are :dt:`[limits attribute]s`: + +* :dp:`fls_6005g57evfbp` + :t:`Attribute` :c:`recursion_limit`. + +* :dp:`fls_3y4o8kq58dt8` + :t:`Attribute` :c:`type_length_limit`. + +:dp:`fls_vsix3pqf519x` +The following :t:`[built-in attribute]s` are :dt:`[macro attribute]s`: + +* :dp:`fls_c8uqw8p0qrh5` + :t:`Attribute` :c:`macro_export`. + +* :dp:`fls_b3jobjxmqppy` + :t:`Attribute` :c:`macro_use`. + +* :dp:`fls_xyhoxm30i7wn` + :t:`Attribute` :c:`proc_macro`. + +* :dp:`fls_nowfw1ffhupd` + :t:`Attribute` :c:`proc_macro_attribute`. + +* :dp:`fls_5i27houut1mu` + :t:`Attribute` :c:`proc_macro_derive`. + +:dp:`fls_1v9p4vr1nszn` +The following :t:`[built-in attribute]s` are :dt:`[modules attribute]s`: + +* :dp:`fls_jvkgtnulrqgh` + :t:`Attribute` :c:`path`. + +:dp:`fls_k9p2xrs3dotn` +The following :t:`[built-in attribute]s` are :dt:`[prelude attribute]s`: + +* :dp:`fls_73n30xdcx8e` + :t:`Attribute` :c:`no_implicit_prelude`. + +* :dp:`fls_e7zusnfka5dt` + :t:`Attribute` :c:`no_std`. + +:dp:`fls_85ul6x76ew9` +The following :t:`[built-in attribute]s` are :dt:`[runtime attribute]s`: + +* :dp:`fls_xkhm1sht2ju5` + :t:`Attribute` :c:`global_allocator`. + +* :dp:`fls_w9za4moh6gb3` + :t:`Attribute` :c:`panic_handler`. + +* :dp:`fls_3vubhygy9jje` + :t:`Attribute` :c:`windows_subsystem`. + +:dp:`fls_mhaplbf40j02` +The following :t:`[built-in attribute]s` are :dt:`[testing attribute]s`: + +* :dp:`fls_23huzf3c4arx` + :t:`Attribute` :c:`ignore`. + +* :dp:`fls_i63y9xnnwq2z` + :t:`Attribute` :c:`should_panic`. + +* :dp:`fls_yic8ksed28no` + :t:`Attribute` :c:`test`. + +:dp:`fls_p1ugiol1e5v5` +The following :t:`[built-in attribute]s` are :dt:`[type attribute]s`: + +* :dp:`fls_7xh2iphiteam` + :t:`Attribute` :c:`non_exhaustive`. + +.. _fls_h4k49eadninz: + +Code Generation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_kpwbpp5hc00s: + +Attribute ``cold`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ColdContent ::= + $$cold$$ + +.. rubric:: Legality Rules + +:dp:`fls_x860jl4103p` +:t:`Attribute` :c:`cold` shall apply to :t:`[function]s`. + +:dp:`fls_8zdexi5lgm2f` +:t:`Attribute` :dc:`cold` indicates that its related :t:`function` is unlikely +to be called. + +.. rubric:: Examples + +.. code-block:: rust + + #[cold] + fn rarely_called_function () {} + +.. _fls_ypio6boj3pwf: + +Attribute ``inline`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + InlineContent ::= + $$inline$$ InlineHint? + + InlineHint ::= + $$($$ ($$always$$ | $$never$$) $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_jwyhky49ssup` +:t:`Attribute` :c:`inline` shall apply to :t:`[closure expression]s` and +:t:`[function]s`. + +:dp:`fls_s7bf7tf9206d` +:t:`Attribute` :dc:`inline` marks its related :t:`function` as :dt:`inlined`. +The process of replacing a :t:`call expression` to an :t:`inlined` :t:`function` +with the :t:`function body` is referred to as :dt:`inlining`. + +:dp:`fls_930o6urn669w` +:t:`Attribute` :c:`inline` without an :s:`InlineHint` suggests to a tool that +:t:`inlining` should be performed. + +:dp:`fls_z7ufiqqujgdh` +:t:`Attribute` :c:`inline` with :s:`InlineHint` ``always`` suggests to a tool +that :t:`inlining` should always be performed. + +:dp:`fls_f0n4g5uky9tp` +:t:`Attribute` :c:`inline` with :s:`InlineHint` ``never`` suggests to a tool +that :t:`inlining` should never be performed. + +:dp:`fls_r3p4din7rjz8` +A tool is not obliged to perform :t:`inlining`. + +.. rubric:: Examples + +.. code-block:: rust + + #[inline] + fn suggests_inlining() {} + + #[inline(always)] + fn requests_consistent_inlining() {} + + #[inline(never)] + fn requests_suppressed_inlining() {} + +.. _fls_zakwockktml8: + +Attribute ``no_builtins`` +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoBinutilsContent ::= + $$no_builtins$$ + +.. rubric:: Legality Rules + +:dp:`fls_x36c6j1ivbvp` +:t:`Attribute` :c:`no_builtins` shall apply to the :t:`crate root module`. + +:dp:`fls_k2k10qtn6f0g` +:t:`Attribute` :dc:`no_builtins` prevents the tool from replacing certain code +patterns with calls to intrinsic functions. + +.. rubric:: Examples + +.. syntax:: + + $$#![no_builtins]$$ + +.. _fls_spdmit5fy7el: + +Attribute ``target_feature`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TargetFeatureContent ::= + $$target_feature$$ $$($$ $$enable$$ $$=$$ $$"$$ FeatureList $$"$$ $$)$$ + + FeatureList ::= + Feature (, Feature)* + + Feature ::= + $$adx$$ + | $$aes$$ + | $$avx$$ + | $$avx2$$ + | $$bmi1$$ + | $$bmi2$$ + | $$fma$$ + | $$fxsr$$ + | $$lzcnt$$ + | $$pclmulqdq$$ + | $$popcnt$$ + | $$rdrand$$ + | $$rdseed$$ + | $$sha$$ + | $$sse$$ + | $$sse2$$ + | $$sse3$$ + | $$sse4.1$$ + | $$sse4.2$$ + | $$ssse3$$ + | $$xsave$$ + | $$xsavec$$ + | $$xsaveopt$$ + | $$xsaves$$ + +.. rubric:: Legality Rules + +:dp:`fls_3qj3jvmtxvx6` +:t:`Attribute` :c:`target_feature` shall apply to :t:`[unsafe function]s`. + +:dp:`fls_agpkz1v3c281` +:t:`Attribute` :dc:`target_feature` enables target architecture features for its +related :t:`function`. + +:dp:`fls_91b7nd6qslsb` +The target architecture features are as follows: + +.. list-table:: + + * - :dp:`fls_yz4itbk700ot` + - **Feature** + - **implicitly enables** + - **Description** + * - :dp:`fls_pdyotoq8uqi2` + - adx + - + - Intel Multi-Precision Add-Cary Instruction Extensions + * - :dp:`fls_vdbjoy6gbk7l` + - aes + - sse2 + - Advanced Encryption Standard + * - :dp:`fls_k3szii6nviza` + - avx + - sse4.2 + - Advanced Vector Extensions + * - :dp:`fls_xsdkkfgv0pz6` + - avx2 + - avx + - Advanced Vector Extensions 2 + * - :dp:`fls_eglaup5zyfsk` + - bmi1 + - + - Bit Manipulation Instruction Sets + * - :dp:`fls_tkayqh7li81o` + - bmi2 + - + - Bit Manipulation Instruction Sets 2 + * - :dp:`fls_vv8o31s0zmli` + - fma + - avx + - Three-operand fused multiply-add + * - :dp:`fls_g0762ekvl2ah` + - fxsr + - + - Save and restore x87 FPU, MMX technology, and SSE state + * - :dp:`fls_406ltkru11tk` + - lzcnt + - + - Leading zeros count + * - :dp:`fls_4mhyvwj8pbpk` + - pclmulqdq + - sse2 + - Packed carry-less multiplication quadword + * - :dp:`fls_ijsmqk7pgyiz` + - popcnt + - + - Count of bits set to 1 + * - :dp:`fls_a1jggfetycxh` + - rdrand + - + - Read random number + * - :dp:`fls_rmbadmoeaoxu` + - rdseed + - + - Read random seed + * - :dp:`fls_f9ydn049isbv` + - sha + - sse2 + - Secure Hash Algorithm + * - :dp:`fls_7c31e21g6bdj` + - sse + - + - Streaming SIMD Extensions + * - :dp:`fls_6d5a375j2775` + - sse2 + - sse + - Streaming SIMD Extensions 2 + * - :dp:`fls_xthidh2nyrno` + - sse3 + - sse2 + - Streaming SIMD Extensions 3 + * - :dp:`fls_w02pk6kf9w9e` + - sse4.1 + - sse3 + - Streaming SIMD Extensions 4.1 + * - :dp:`fls_lzl1gpco3osx` + - sse4.2. + - sse4.1 + - Streaming SIMD Extensions 4.2 + * - :dp:`fls_9x2on8w44k4f` + - ssse3 + - sse3 + - Supplemental Streaming SIMD Extensions 3 + * - :dp:`fls_rilqwazchfpp` + - xsave + - + - Save processor extended status + * - :dp:`fls_f0of1395z9pn` + - xsavec + - + - Save processor extended status with compaction + * - :dp:`fls_v9gf6selc17l` + - xsaveopt + - + - Save processor extended states optimized + * - :dp:`fls_jyb5s2r8w1po` + - xsaves + - + - Save processor extended states supervizor + +.. rubric:: Undefined Behavior + +:dp:`fls_xx51fjkbgg5g` +It is undefined behavior to execute a program compiled with target architecture +features that are not supported. + +.. rubric:: Examples + +.. code-block:: rust + + #[target_feature(enable="bmi1,sse4.1")] + fn requires_target_architecture_features () {} + +.. _fls_6qj249hphj1s: + +Attribute ``track_caller`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TrackCallerContent ::= + $$track_caller$$ + +.. rubric:: Legality Rules + +:dp:`fls_h8yepgchjxv9` +:t:`Attribute` :c:`track_caller` shall apply to :t:`non-[main function]s` with +:t:`ABI` "Rust". + +:dp:`fls_w1pxtzp7acty` +:t:`Attribute` :dc:`track_caller` allows the :t:`function body` of its +related :t:`function` to obtain a :std:`core::panic::Location` which indicates +the topmost untracked caller that ultimately led to the invocation of the +:t:`function`. + +:dp:`fls_zch43jpetmdu` +A tool is not required to implement this indication in an effective manner. + +:dp:`fls_y1e258p4rby5` +When applied to an :t:`associated trait function`, :t:`attribute` +:c:`track_caller` applies to all :t:`[associated function]s` of the +:t:`implemented trait`. If the :t:`associated trait function` has a default +:t:`implementation`, then the :t:`attribute` applies to all overriding +:t:`[function]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_vkz8t751gfhk` +It is undefined behavior when :t:`attribute` :c:`track_caller` applies to an +:t:`external function` but does not apply to all linked :t:`[implementation]s`. + +:dp:`fls_ddg0u5lej74x` +It is undefined behavior when :t:`attribute` :c:`track_caller` is applied to +an :t:`exported function` but the :t:`external function` it links to is missing +the :t:`attribute`. + +.. rubric:: Examples + +.. code-block:: rust + + #[track_caller] + fn who_called_me () {} + +.. _fls_cdx9zb1yxcc8: + +Conditional Compilation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_fymvsy6ig99a: + +Attribute ``cfg`` +^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CfgContent ::= + $$cfg$$ $$($$ ConfigurationPredicate $$)$$ + + ConfigurationPredicate ::= + ConfigurationOption + | ConfigurationPredicateAll + | ConfigurationPredicateAny + | ConfigurationPredicateNot + + ConfigurationOption ::= + ConfigurationOptionName ConfigurationOptionValue? + + ConfigurationOptionName ::= + Identifier + + ConfigurationOptionValue ::= + $$=$$ StringLiteral + + ConfigurationPredicateAll ::= + $$all$$ $$($$ ConfigurationPredicateList? $$)$$ + + ConfigurationPredicateAny ::= + $$any$$ $$($$ ConfigurationPredicateList? $$)$$ + + ConfigurationPredicateNot ::= + $$not$$ $$($$ ConfigurationPredicate $$)$$ + + ConfigurationPredicateList ::= + ConfigurationPredicate ($$,$$ ConfigurationPredicate)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_xrjp7xw9jutz` +:t:`Attribute` :dc:`cfg` enables :t:`conditional compilation`. + +:dp:`fls_l96kyix5xsof` +A :t:`configuration predicate` is a :t:`construct` that evaluates statically +to either ``true`` or ``false``, and controls :t:`conditional compilation`. + +:dp:`fls_y1MUhnKCxK6T` +An :t:`all configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ALL. + +:dp:`fls_tncxxsyutppf` +An :t:`all configuration predicate` evaluates statically to ``true`` when either +all nested configuration predicates evaluate to ``true``, or there are no nested +configuration predicates. + +:dp:`fls_Rp73YEE3aFdI` +An :t:`any configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ANY. + +:dp:`fls_m0zxktz168e0` +An :t:`any configuration predicate` evaluates statically to ``true`` when any +nested configuration predicate evaluates to ``true``. + +:dp:`fls_XsxeOd32JI8x` +A :t:`not configuration predicate` is a :t:`configuration predicate` that +negates the Boolean :t:`value` of its nested :t:`configuration predicate`. + +:dp:`fls_tvsadfy9uibu` +A :t:`not configuration predicate` evaluates statically to ``true`` when its +nested configuration predicate evaluates to ``false``. + +:dp:`fls_jbl9xyynjo0g` +The :t:`evaluation` of a configuration option is tool-defined. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg(all(unix, target_pointer_width = "32"))] + fn on_32bit_unix() {} + +.. _fls_dd9xh3wdjudo: + +Attribute ``cfg_attr`` +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CfgAttrContent ::= + $$cfg_attr$$ $$($$ ConfigurationPredicate $$,$$ AttributeContentList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_r66jhict6rlq` +:t:`Attribute` :dc:`cfg_attr` enables :t:`conditional compilation`. + +:dp:`fls_rzw12sagm585` +An :t:`attribute` :c:`cfg_attr` where the related +:t:`configuration predicate` evaluates to ``true`` is replaced with a new +:t:`attribute` for each :s:`AttributeContent` enumerated in the +:t:`[attribute]'s` :s:`AttributeContentList`. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg_attr(windows, path="windows.rs")] + mod os; + +.. _fls_wednba84zi3y: + +Derivation Attributes +~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_bqw87nz4qbrb: + +Attribute ``automatically_derived`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + AutomaticallyDerivedContent ::= + $$automatically_derived$$ + +.. rubric:: Legality Rules + +:dp:`fls_5u1e0lkt0ab1` +:t:`Attribute` :dc:`automatically_derived` is automatically added to +:t:`[implementation]s` that are created by :t:`attribute` :c:`derive` for +:t:`[built-in trait]s`. + +.. _fls_r6gj1p4gajnq: + +Attribute ``derive`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + DeriveContent ::= + $$derive$$ $$($$ SimplePathList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_4btm6zwf445a` +:t:`Attribute` :c:`derive` shall apply to :t:`[abstract data type]s`. + +:dp:`fls_pjmbmj2b35y8` +:t:`Attribute` :dc:`derive` lists :t:`[derive macro]s` for automatic +implementation by a tool. + +.. rubric:: Examples + +.. code-block:: rust + + #[derive(PartialEq)] + struct S { + field: T + } + +:dp:`fls_xtty2ino4vwc` +Attribute ``derive`` causes trait :std:`core::cmp::PartialEq` to be +automatically implemented for struct ``S`` as follows: + +.. code-block:: rust + + impl core::cmp::PartialEq for S { + fn eq(&self, other: &S) -> bool { + self.field == other.field + } + + fn ne(&self, other: &S) -> bool { + self.field != other.field + } + } + +.. _fls_t2590yyvclgb: + +Diagnostics Attributes +~~~~~~~~~~~~~~~~~~~~~~ + +.. informational-section:: + +:dp:`fls_ghumzt9ybtit` +Diagnostic :t:`[attribute]s` are related to linting, and are not defined in +this document. + +.. _fls_8wcliky2svcs: + +Documentation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_63v1fqedzwfd: + +Attribute ``doc`` +^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + DocContent ::= + $$doc$$ DocInput + + DocInput ::= + $$=$$ MacroInvocation + | $$=$$ StringLiteral + | $$($$ TokenTree* $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_1ee9qjcgbwme` +:t:`Attribute` :dc:`doc` associates documentation with a :t:`construct`. + +.. rubric:: Examples + +.. code-block:: rust + + #![doc = "This is a doc comment written as an attribute."] + +.. _fls_pgp7ezcc9lh8: + +Foreign Function Interface Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_sun645voqex6: + +Attribute ``crate_name`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CrateNameContent ::= + $$crate_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_tsdk8jyajcg` +:t:`Attribute` :c:`crate_name` shall apply to the :t:`crate root module`. + +:dp:`fls_6riphqysh0gd` +:t:`Attribute` :dc:`crate_name` shall specify the name of the related +:t:`crate`. + +.. rubric:: Examples + +.. code-block:: rust + + #![crate_name = "factories"] + +.. _fls_ujig607lmwbm: + +Attribute ``crate_type`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CrateTypeContent ::= + $$crate_type$$ $$=$$ $$"$$ CrateType $$"$$ + + CrateType ::= + $$bin$$ + | $$cdylib$$ + | $$dylib$$ + | $$lib$$ + | $$proc-macro$$ + | $$rlib$$ + | $$staticlib$$ + +.. rubric:: Legality Rules + +:dp:`fls_2i2g55nqqpc1` +:t:`Attribute` :c:`crate_type` shall apply to the :t:`crate root module`. + +:dp:`fls_1zziddjuzjeq` +:t:`Attribute` :dc:`crate_type` shall specify the linkage :t:`type` of the +:t:`crate` it appears in. + +.. rubric:: Examples + +.. code-block:: rust + + #![crate_type = "cdylib"] + +.. _fls_olzilmy8n0nl: + +Attribute ``export_name`` +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ExportNameContent ::= + $$export_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_r3fwpuuaoeie` +:t:`Attribute` :c:`export_name` shall apply to :t:`[function]s` and +:t:`[static]s`. + +:dp:`fls_spwr6gf7kpds` +:t:`Attribute` :dc:`export_name` shall specify the exported symbol of the +related :t:`function` or :t:`static`. + +.. rubric:: Examples + +.. code-block:: rust + + #[export_name = "exported_symbol"] + pub fn rust_name() {} + +.. _fls_o0f9ae22ug1x: + +Attribute ``link`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkContent ::= + $$link$$ $$($$ LinkOption $$)$$ + + LinkOption ::= + NativeLibraryName + | NativeLibraryNameWithKind + | WebAssemblyModuleName + + NativeLibraryName ::= + $$name$$ $$=$$ StringLiteral + + NativeLibraryNameWithKind ::= + NativeLibraryName , NativeLibrayKind + + WebAssemblyModuleName ::= + $$wasm_import_module$$ $$=$$ StringLiteral + + NativeLibrayKind ::= + $$kind$$ $$=$$ " NativeLibrayKindType " + + NativeLibrayKindType ::= + $$dylib$$ + | $$raw-dylib$$ + | $$framework$$ + | $$static$$ + +.. rubric:: Legality Rules + +:dp:`fls_yslpkdngo8hj` +:t:`Attribute` :c:`link` shall apply to :t:`[external block]s`. + +:dp:`fls_6rohnk4swj6c` +:t:`Attribute` :dc:`link` shall specify the name of a native library that a tool +should link with. + +:dp:`fls_o83pf3bcrzma` +The following native library kinds are available: + +.. list-table:: + + * - :dp:`fls_5541q1qoxdpf` + - **Native Library Kind** + - **Description** + * - :dp:`fls_wpqawdpevkj6` + - dylib + - Dynamic library + * - :dp:`fls_HPl6poXGiAqV` + - raw-dylib + - Dynamic library + * - :dp:`fls_h9dfs6kzmobp` + - framework + - macOS framework + * - :dp:`fls_3a3r4jf7hzqr` + - static + - Static library + +:dp:`fls_1tdheukgm6ai` +When :t:`attribute` :c:`link` appears without a native library kind, its native +library kind defaults to ``dylib``. Native library kind framework is only valid +on macOS targets. + +:dp:`fls_3i9ijypnh8nx` +If :t:`attribute` :c:`link` appears without a WebAssembly module name, then the +WebAssembly module name defaults to ``env``. + +:dp:`fls_iDjcQczFQknm` +When :t:`attribute` :c:`link` appears with ``raw-dylib`` as the native library +kind, the supplied name must include the file extension. + +:dp:`fls_rcERq1PfKPJI` +When :t:`attribute` :c:`link` appears with ``raw-dylib`` as the native library +kind, the :t:`[external function]s` and :t:`[external static]s` of the related +:t:`external block` shall not be subject to :t:`attribute` :c:`no_mangle`. + +.. rubric:: Examples + +.. code-block:: rust + + #[link(name = "CoreFoundation", kind = "framework")] + extern {} + +.. _fls_p44fky7fifc: + +Attribute ``link_name`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkNameContent ::= + $$link_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_g09jhukl0ez2` +:t:`Attribute` :c:`link_name` shall apply to :t:`[external function]s` and +:t:`[external static]s`. + +:dp:`fls_d00wni4edi8f` +:t:`Attribute` :dc:`link_name` shall specify the linking symbol of the related +:t:`external function` or :t:`external static`. + +:dp:`fls_0Athv8KFA5FO` +:t:`Attribute` :c:`link_name` shall not be applied to :t:`[external function]s` +and :t:`[external static]s` that are annotated with :t:`Attribute` +:c:`link_ordinal`. + +.. rubric:: Examples + +.. code-block:: rust + + extern { + #[link_name = "linking_symbol"] + pub fn rust_name() {} + } + +.. _fls_hffpo88r61rh: + +Attribute ``link_section`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkSectionContent ::= + $$link_section$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_5loqzajiz34m` +:t:`Attribute` :c:`link_section` shall apply to :t:`[function]s` and +:t:`[static]s`. + +:dp:`fls_cyxk12wuicml` +:t:`Attribute` :dc:`link_section` specifies the object file section where the +symbol of the related :t:`function` or :t:`static` will be placed. + +.. rubric:: Examples + +.. code-block:: rust + + #[link_section = ".example_section"] + pub static THE_ANSWER: u32 = 42; + +.. _fls_Obik2w9gvhLN: + +Attribute ``link_ordinal`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkOrdinalContent ::= + $$link_ordinal$$ $$($$ DecimalLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_fuv29BIqcawW` +:t:`Attribute` :c:`link_ordinal` shall apply to :t:`[external function]s` and +:t:`[external static]s`. + +:dp:`fls_qh5sXG4znAXa` +The related :t:`extern block` of the :t:`[external function]` or +:t:`[external static]` shall be subject to :t:`attribute` :c:`link` with +``raw-dylib`` as the native library kind. + +:dp:`fls_ASnJJiXWGlKI` +:t:`Attribute` :dc:`link_ordinal` shall specify the linking symbol of the +related :t:`external function` or :t:`external static` by ordinal number. + +.. rubric:: Examples + +.. code-block:: rust + + #[link(name = "lib.dll", kind = "raw-dylib")] + extern "system" { + #[link_ordinal(16)] + fn function(); + } + +.. _fls_ch9nkxkloozv: + +Attribute ``no_link`` +^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoLinkContent ::= + $$no_link$$ + +.. rubric:: Legality Rules + +:dp:`fls_ayhn6g6sgt3h` +:t:`Attribute` :c:`no_link` shall apply to :t:`[crate import]s`. + +:dp:`fls_76ox8n3eef5` +:t:`Attribute` :dc:`no_link` indicates that the imported external :t:`crate` +will not be linked into the resulting binary or library. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_link] + extern crate do_not_link; + +.. _fls_fh27ljezn3qz: + +Attribute ``no_main`` +^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoMainContent ::= + $$no_main$$ + +.. rubric:: Legality Rules + +:dp:`fls_84a9k0fzmnfk` +:t:`Attribute` :c:`no_main` shall apply to the :t:`crate root module`. + +:dp:`fls_6qig3s3qpj0i` +:t:`Attribute` :dc:`no_main` indicates that the symbols of the +:t:`main function` will not be present in a binary. + +.. rubric:: Examples + +.. code-block:: rust + + #![no_main] + +.. _fls_mvd7nz8k3wcy: + +Attribute ``no_mangle`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoMangleContent ::= + $$no_mangle$$ + +.. rubric:: Legality Rules + +:dp:`fls_q5swm5meafmx` +:t:`Attribute` :c:`no_mangle` has no effect on :t:`[construct]s` other than +:t:`[function]s` and :t:`[static]s`. + +:dp:`fls_esaew4fqk8mm` +:t:`Attribute` :dc:`no_mangle` indicates that the :t:`name` of the related +:t:`function` or :t:`static` will be used as the symbol for that :t:`function` +or :t:`static`. + +:dp:`fls_lvnclpxbye9u` +:t:`Attribute` :c:`no_mangle` causes the related :t:`function` or :t:`static` to +be publicly exported from the produced library or object file. + +:dp:`fls_VKuSiswPMll7` +An :t:`exported function` is a :t:`function` subject to :t:`attribute` +:c:`no_mangle`. + +:dp:`fls_I029Rvr5BX5P` +An :t:`exported static` is a :t:`static` subject to :t:`attribute` +:c:`no_mangle`. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_mangle] + pub fn symbol_name() {} + +.. _fls_aibb2quva4mn: + +Attribute ``repr`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ReprContent ::= + $$repr$$ $$($$ Representation $$)$$ + + Representation ::= + RepresentationKind Alignment? + + RepresentationKind ::= + PrimitiveRepresentation + | $$C$$ + | $$Rust$$ + | $$transparent$$ + + Alignment ::= + AlignmentDecrease + | AlignmentIncrease + + PrimitiveRepresentation ::= + $$i8$$ + | $$i16$$ + | $$i32$$ + | $$i64$$ + | $$i128$$ + | $$isize$$ + | $$u8$$ + | $$u16$$ + | $$u32$$ + | $$u64$$ + | $$u128$$ + | $$usize$$ + + AlignmentDecrease ::= + $$packed$$ + + AlignmentIncrease ::= + $$align$$ $$($$ DecimalLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_vetjq9sw84qc` +:t:`Attribute` :c:`repr` shall apply to :t:`[abstract data type]s`. + +:dp:`fls_is2esjz1sy36` +:t:`Attribute` :dc:`repr` shall indicate the :t:`type representation` of the +related :t:`type`. + +.. rubric:: Examples + +.. code-block:: rust + + #[repr(C, align(8))] + struct c_struct { + first_field: i16, + second_field: i8 + } + +.. _fls_7skf24auayqy: + +Attribute ``used`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + UsedContent ::= + $$used$$ + +.. rubric:: Legality Rules + +:dp:`fls_s4ii078wgpk` +:t:`Attribute` :c:`used` shall apply to :t:`[static]s`. + +:dp:`fls_k293nzcffks4` +:t:`Attribute` :dc:`used` forces a tool to keep the related :t:`static` in the +output object file even if the :t:`static` is not used or referenced by other +:t:`[item]s` in the :t:`crate`. + +.. rubric:: Examples + +.. code-block:: rust + + #[used] + pub static THE_ANSWER: u32 = 42; + +.. _fls_cjq792yj6vft: + +Limits Attributes +~~~~~~~~~~~~~~~~~ + +.. _fls_u2hzlzpzh7yy: + +Attribute ``recursion_limit`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RecursionLimitContent ::= + $$recursion_limit$$ $$=$$ $$"$$ DecimalLiteral $$"$$ + +.. rubric:: Legality Rules + +:dp:`fls_o55cxc67sya7` +:t:`Attribute` :c:`recursion_limit` shall apply to the :t:`crate root module`. + +:dp:`fls_o9p8fa8zhe15` +:t:`Attribute` :dc:`recursion_limit` sets the maximum depth of +:t:`macro expansion` and :t:`auto-dereferencing`. + +.. rubric:: Examples + +.. code-block:: rust + + #![recursion_limit = "42"] + +.. _fls_tdjjuwbr7mkg: + +Attribute ``type_length_limit`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TypeLengthLimitContent ::= + $$type_length_limit$$ $$=$$ $$"$$ DecimalLiteral $$"$$ + +.. rubric:: Legality Rules + +:dp:`fls_dfnkzj8ob3uq` +:t:`Attribute` :c:`type_length_limit` shall apply to the +:t:`crate root module`. + +:dp:`fls_61vt1r8g51nh` +:t:`Attribute` :dc:`type_length_limit` sets the maximum number of +:t:`[generic substitution]s` for :t:`[type parameter]s` when constructing a +:t:`concrete type`. + +.. rubric:: Examples + +.. code-block:: rust + + #![type_length_limit = "42"] + +.. _fls_2084b06dr0wz: + +Macros Attributes +~~~~~~~~~~~~~~~~~ + +.. _fls_e0a96eb6ux3y: + +Attribute ``macro_export`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + MacroExportContent ::= + $$macro_export$$ + +.. rubric:: Legality Rules + +:dp:`fls_3ma7zkk6john` +:t:`Attribute` :c:`macro_export` shall apply to :t:`[declarative macro]s`. + +:dp:`fls_h26iw5wh4lla` +:t:`Attribute` :dc:`macro_export` changes the :t:`visibility` of the related +:t:`declarative macro` to :t:`public visibility` and introduces the :t:`name` +of the :t:`declarative macro` into the :t:`item scope` of the +:t:`crate root module`. + +.. rubric:: Examples + +.. code-block:: rust + + #[macro_export] + macro_rules! m { + () => {}; + } + +.. _fls_qxjy0f758x5s: + +Attribute ``macro_use`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + MacroUseContent ::= + $$macro_use$$ ImportedMacroList? + + ImportedMacroList ::= + $$($$ IdentifierList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_uua0nthq9id` +:t:`Attribute` :c:`macro_use` shall apply to :t:`[crate import]s` and +:t:`[module]s`. + +:dp:`fls_oq4kyo5z5tj5` +An :s:`ImportedMacroList` enumerates macros-to-import. A macro-to-import shall +be subject to attribute :c:`macro_export`. + +:dp:`fls_skexvtpbjknn` +When applied to a :t:`crate import`, :t:`attribute` :dc:`macro_use` +imports from the related :t:`crate` either: + +* :dp:`fls_v03924dr0u0z` + The enumerated macros-to-import, or + +* :dp:`fls_eha2hoey857x` + If no macros-to-import have been specified, all :t:`[macro]s` subject to + :t:`attribute` :c:`macro_export`. + +:dp:`fls_p6jlgmn2sg7j` +When applied to a :t:`module`, :t:`attribute` :c:`macro_use` extends the +:t:`textual macro scope` of the related :t:`macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[macro_use(first_macro, second_macro)] + extern crate macros; + #[macro_use] + mod module {} + +.. _fls_qkmkev85o5jf: + +Attribute ``proc_macro`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ProcMacroContent ::= + $$proc_macro$$ + +.. rubric:: Legality Rules + +:dp:`fls_u48dtmh97g` +:t:`Attribute` :c:`proc_macro` shall apply to public :t:`[function]s` in the +:t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_t4ez0zg1m569` +:t:`Attribute` :dc:`proc_macro` turns the related :t:`function` into a +:t:`function-like macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro] + pub fn make_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_ejhlylrcajo: + +Attribute ``proc_macro_attribute`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. syntax:: + + ProcMacroAttributeContent ::= + $$proc_macro_attribute$$ + +.. rubric:: Legality Rules + +:dp:`fls_huznzmkuhdky` +:t:`Attribute` :c:`proc_macro_attribute` shall apply to public :t:`[function]s` +in the :t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_gc3ly8fsodf1` +:t:`Attribute` :dc:`proc_macro_attribute` turns the related :t:`function` into +an :t:`attribute macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_attribute] + pub fn output_and_return_item + (attr: TokenStream, item: TokenStream) -> TokenStream + { + println!("attr: \"{}\"", attr.to_string()); + println!("item: \"{}\"", item.to_string()); + item + } + +.. _fls_q6qecp6e413: + +Attribute ``proc_macro_derive`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ProcMacroDeriveContent ::= + $$proc_macro_derive$$ $$($$ DeriveName ($$,$$ HelperAttributeList)? $$)$$ + + DeriveName ::= + Name + + HelperAttributeList ::= + $$attributes$$ $$($$ IdentifierList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_l82yswg0k3px` +:t:`Attribute` :c:`proc_macro_derive` shall apply to public :t:`[function]s` in +the :t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_ir9i4i2x5gyx` +:t:`Attribute` :dc:`proc_macro_derive` turns the related :t:`function` into a +:t:`derive macro`, where :s:`DeriveName` defines the :t:`name` of the +:t:`derive macro` available to :t:`attribute` :c:`derive`. + +:dp:`fls_NydVxyb43TH6` +The :s:`HelperAttributeList` declares the :t:`[derive helper attribute]s` of +the :t:`derive macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_derive(Answer, attributes(marker))] + pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + + #[derive(Answer)] + struct S { + #[marker] field: () + } + +.. _fls_7bb5ua4g06k8: + +Modules Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_1zbaajz5prpn: + +Attribute ``path`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + PathContent ::= + $$path$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_lht4pcezmbxw` +:t:`Attribute` :c:`path` shall apply to :t:`[module]s`. + +:dp:`fls_qb6anohvc03k` +:t:`Attribute` :dc:`path` specifies the :dt:`module path` of the respective +:t:`module` as a :t:`string literal`. + +:dp:`fls_18tcecx4p2wp` +A tool is free to define the format of a :t:`module path`. + +.. rubric:: Examples + +.. code-block:: rust + + #[path = "path/to/inline_module"] + mod inline_module { + #[path = "path/to/outline_module"] + mod outline_module; + } + +.. _fls_go457hpaf7ov: + +Prelude Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_iikmhqsp1r5a: + +Attribute ``no_implicit_prelude`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoImplicitPreludeContent ::= + $$no_implicit_prelude$$ + +.. rubric:: Legality Rules + +:dp:`fls_tki5k5uo74gw` +The :t:`inner attribute` version of :t:`attribute` :c:`no_implicit_prelude` +shall apply to the :t:`crate root module` or to :t:`[module]s`. + +:dp:`fls_cmrqxc5oax4r` +The :t:`outer attribute` version of :t:`attribute` :c:`no_implicit_prelude` +shall apply to :t:`[module]s`. + +:dp:`fls_c7v2hbdb7g2d` +:t:`Attribute` :dc:`no_implicit_prelude` prevents the import of the +:t:`external prelude`, the standard library :t:`prelude`, and the tool +:t:`prelude`. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_implicit_prelude] + mod module {} + +.. _fls_9xnaxd7qbakp: + +Attribute ``no_std`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoStdContent ::= + $$no_std$$ + +.. rubric:: Legality Rules + +:dp:`fls_qnxihxsvkyf6` +:t:`Attribute` :c:`no_std` shall apply to the :t:`crate root module`. + +:dp:`fls_kxav9vw59ts4` +:t:`Attribute` :dc:`no_std` has the following effects: + +* :dp:`fls_ve1shwjq09pl` + Prevents the import of the standard library :t:`prelude`. + +* :dp:`fls_wgwsn7laoju7` + Imports the :t:`core prelude`. + +* :dp:`fls_lxkd6hdboav4` + Imports all :t:`[declarative macro]s` subject to :t:`attribute` + :c:`macro_export` of the ``core`` :t:`crate` into the :t:`macro_use prelude`. + +.. rubric:: Examples + +.. code-block:: rust + + #![no_std] + +.. _fls_nbbvukrdngev: + +Runtime Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_fs0lcfllamj: + +Attribute ``global_allocator`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + GlobalAllocatorContent ::= + $$global_allocator$$ + +.. rubric:: Legality Rules + +:dp:`fls_5b8aewlgeon8` +:t:`Attribute` :c:`global_allocator` shall apply to :t:`[static]s` whose +:t:`[type]s` implement the :std:`core::alloc::GlobalAlloc` :t:`trait`. + +:dp:`fls_homoidh8mu1r` +:t:`Attribute` :dc:`global_allocator` sets the global allocator to the related +:t:`static`. + +.. rubric:: Examples + +.. code-block:: rust + + #[global_allocator] + pub static THE_ANSWER: u32 = 42; + +.. _fls_ls5eryuoxlp9: + +Attribute ``panic_handler`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + PanicHandlerContent ::= + $$panic_handler$$ + +.. rubric:: Legality Rules + +:dp:`fls_ryz8qy1wdnma` +:t:`Attribute` :c:`panic_handler` shall apply to :t:`[function]s` with the +following restrictions: + +* :dp:`fls_ncyod5gegMqL` + It lacks :t:`[function qualifier]s`, + +* :dp:`fls_jzIHzPkJqVm8` + Its :t:`ABI` is Rust, + +* :dp:`fls_qXii07xWRUoT` + It lacks :t:`[generic parameter]s`, + +* :dp:`fls_ZEjvn4mmfSct` + It has a single :t:`function parameter` whose :t:`type` is ``&`` + :std:`core::panic::PanicInfo`, + +* :dp:`fls_iWPw0QFE5TrP` + It has the :t:`never type` as its :t:`return type`, + +* :dp:`fls_WirXqd7UV4M0` + It lacks a :t:`where clause`, + +* :dp:`fls_5CGTQTuT0I5v` + It has a :t:`function body`. + +:dp:`fls_8gqun8lma9wz` +:t:`Attribute` :dc:`panic_handler` indicates that its related :t:`function` +defines the behavior of :t:`[panic]s`. + +:dp:`fls_ka66jcu8gir7` +A :t:`crate` graph shall contain exactly one :t:`function` subject to +:t:`attribute` :c:`panic_handler`. + +.. rubric:: Examples + +.. code-block:: rust + + #[panic_handler] + fn panic(info: &core::panic::PanicInfo) -> ! {} + +.. _fls_1l4mnlfk5rr2: + +Attribute ``windows_subsystem`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + WindowsSubsystemContent ::= + $$windows_subsystem$$ $$=$$ $$"$$ SubsystemKind $$"$$ + + SubsystemKind ::= + $$console$$ + | $$windows$$ + +.. rubric:: Legality Rules + +:dp:`fls_7mzjahvdzpy5` +:t:`Attribute` :c:`windows_subsystem` shall apply to the :t:`crate root module` +of a :t:`binary crate`. + +:dp:`fls_t3c0t3lcnebk` +:t:`Attribute` :dc:`windows_subsystem` specifies the subsystem on Windows. + +:dp:`fls_go7pfkgpjk2t` +If :t:`attribute` :c:`windows_subsystem` is missing, the subsystem of the +related :t:`binary crate` defaults to ``console``. + +.. rubric:: Examples + +.. code-block:: rust + + #![windows_subsystem = "console"] + +.. _fls_riyi0gy48fxw: + +Testing Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_x849a4u7h82j: + +Attribute ``ignore`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + IgnoreContent ::= + $$ignore$$ IgnoreReason? + + IgnoreReason ::= + $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_qmdylxse9yhu` +:t:`Attribute` :c:`ignore` shall apply to :t:`[testing function]s`. + +:dp:`fls_9m8e59fc1tyh` +:t:`Attribute` :dc:`ignore` prevents the execution of its related +:t:`testing function`. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + #[ignore = "not implemented yet"] + fn unit_testing_function() {} + +.. _fls_aes2d94g12b9: + +Attribute ``should_panic`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ShouldPanicContent ::= + $$should_panic$$ ExpectedPanicMessage? + + ExpectedPanicMessage ::= + $$($$ $$expected$$ $$=$$ StringLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_w7dq8gnzel36` +:t:`Attribute` :c:`should_panic` shall apply to :t:`[testing function]s`. + +:dp:`fls_bm5x846zfnb8` +:t:`Attribute` :dc:`should_panic` indicates that for the related +:t:`testing function` to pass, it should :t:`panic`. + +:dp:`fls_bcoq5aus8nkr` +If :s:`ExpectedPanicMessage` is specified, then the related +:t:`testing function` passes only when the :t:`panic` message contains the +:s:`ExpectedPanicMessage`. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + #[should_panic(expected = "did not get meaning of life")] + fn test_meaning_of_life() { + assert_eq!(meaning_of_life(), 42, "did not get meaning of life"); + } + +.. _fls_dv2j1fvvnk1t: + +Attribute ``test`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TestContent ::= + $$test$$ + +.. rubric:: Legality Rules + +:dp:`fls_o2elhg5w1rj9` +:t:`Attribute` :c:`test` shall apply to :t:`[function]s` that: + +* :dp:`fls_ert22u8rvkxt` + Is not an :t:`async function`, and + +* :dp:`fls_c9ckjrq6emdj` + Is not an :t:`unsafe function`, and + +* :dp:`fls_4uykzqpq6svl` + Lacks :t:`[generic parameter]s`, and + +* :dp:`fls_aqzd30s267pt` + Lacks :t:`[function parameter]s`, and + +* :dp:`fls_n3hjhh3d7tyx` + Its :t:`return type` is the :t:`unit type`. + +:dp:`fls_ze6cs75y9aft` +:t:`Attribute` :dc:`test` indicates that the respective :t:`function` is a +:dt:`testing function`. + +:dp:`fls_pcs0prrh23y3` +A :t:`testing function` that returns the :t:`unit type` passes when it +terminates and does not :t:`panic`. + +:dp:`fls_niky8lbkvej9` +A :t:`testing function` that returns ``core::result::Result<(), E>`` passes when +it returns ``core::result::Result::OK(())``. + +:dp:`fls_qfuntdm2g184` +A :t:`testing function` that does not terminate shall pass and fail according to +the tool. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + fn test_the_thing() -> core::result::Result<()> { + let input = create_input()?; + do_the_thing(&input)?; + core::result::Result::Ok(()); + } + +.. _fls_r3zwgf9sg1xp: + +Type Attributes +~~~~~~~~~~~~~~~ + +.. _fls_9tmvuqrmk3ug: + +Attribute ``non_exhaustive`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NonExhaustiveContent ::= + $$non_exhaustive$$ + +.. rubric:: Legality Rules + +:dp:`fls_szvrd79cgzsg` +:t:`Attribute` :c:`non_exhaustive` shall apply to :t:`[enum type]s`, +:t:`[enum variant]s`, and :t:`[struct type]s`. + +:dp:`fls_1of56vl2ewq0` +:t:`Attribute` :dc:`non_exhaustive` indicates that the related +:t:`abstract data type` or :t:`enum variant` may have more :t:`[field]s` or +:t:`[enum variant]s` added in the future. A :t:`type` subject to :t:`attribute` +:c:`non_exhaustive` is referred to as a :dt:`non-exhaustive type`. + +:dp:`fls_hkyzdmmdyoin` +A :t:`non-exhaustive type` shall not be constructed outside of its defining +:t:`crate`. + +:dp:`fls_7b0fvwrmz0mh` +An :t:`enum variant` subject to :t:`attribute` :c:`non_exhaustive` is referred +to as a :dt:`non-exhaustive variant`. + +:dp:`fls_oqfrg9tqgaj8` +A :t:`non-exhaustive variant` shall not be constructed outside of its defining +:t:`crate`. + +:dp:`fls_aql3c89840ix` +:t:`Pattern matching` a :t:`non-exhaustive variant` shall require a +:t:`struct pattern` with a :t:`rest pattern` outside its defining :t:`crate`. + +:dp:`fls_cez7yxfc376c` +:t:`Pattern matching` a :t:`non-exhaustive variant` does not contribute towards +the exhaustiveness of :t:`[match arm]s`. + +.. rubric:: Examples + +.. code-block:: rust + + #[non_exhaustive] + enum enum_with_future_variants { + Variant + } + + enum enum_variants_with_future_fields { + #[non_exhaustive] Send { from: u32, to: u32 }, + #[non_exhaustive] Quit + } + + #[non_exhaustive] + struct struct_with_future_fields { + field: u32 + } + diff --git a/_sources/concurrency.rst.txt b/_sources/concurrency.rst.txt new file mode 100644 index 00000000..aa6a0f8a --- /dev/null +++ b/_sources/concurrency.rst.txt @@ -0,0 +1,145 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_3v733mnewssy: + +Concurrency +=========== + +:dp:`fls_opt7v0mopxc8` +The Rust programming language provides features for concurrent programming +without :t:`[data race]s`, whose rules are presented in this chapter. + +.. rubric:: Legality Rules + +:dp:`fls_tx4b8r6i93n4` +A :t:`data race` is a scenario where two or more threads access a shared memory +location concurrently without any synchronization, where one of the accesses is +a modification. + +.. rubric:: Undefined Behavior + +:dp:`fls_isypweqewe78` +It is undefined behavior if two or more threads engage in a :t:`data race`. + +.. _fls_eiw4by8z75di: + +Send and Sync +------------- + +.. rubric:: Legality Rules + +:dp:`fls_n5l17mlglq11` +The Rust programming language provides the :std:`core::marker::Send` and +:std:`core::marker::Sync` :t:`[trait]s` for preventing data races at the +:t:`type` level. + +:dp:`fls_2jujsujpjp3w` +A :t:`send type` is a :t:`type` that implements the :std:`core::marker::Send` +:t:`trait`. + +:dp:`fls_cax6fe4em23k` +An :t:`abstract data type` automatically implements the +:std:`core::marker::Send` :t:`trait` if the :t:`[type]s` of all its +:t:`[field]s` are :t:`[send type]s`. + +:dp:`fls_4ypqdehn7b0v` +A :t:`send type` shall have :t:`[value]s` that are safe to transfer across +thread boundaries. + +:dp:`fls_dekskhk4g895` +A :t:`sync type` is a :t:`type` that implements the :std:`core::marker::Sync` +:t:`trait`. + +:dp:`fls_y0iqr5ibnbfe` +An :t:`abstract data type` automatically implements the +:std:`core::marker::Sync` :t:`trait` if the :t:`[type]s` of all its +:t:`[field]s` are :t:`[sync type]s`. + +:dp:`fls_zgemofbs5q2x` +A :t:`sync type` shall have :t:`[value]s` that are allowed to be shared across +multiple threads at any given time without incurring data races. + +.. _fls_vyc9vcuamlph: + +Atomics +------- + +.. rubric:: Legality Rules + +:dp:`fls_3pjla9s93mhd` +An :t:`atomic type` is a :t:`type` defined in :t:`module` +:std:`core::sync::atomic`. :t:`[Atomic type]s` provide primitive shared-memory +communication between threads. + +:dp:`fls_wn4ynaio8u47` +:t:`[Atomic type]s` are related to :t:`[type]s` as follows: + +.. list-table:: + + * - :dp:`fls_q7mn6pdd8bix` + - **Type** + - **Atomic Type** + * - :dp:`fls_jx0784jzxy00` + - :c:`bool` + - :std:`core::sync::atomic::AtomicBool` + * - :dp:`fls_vzuwnpx7mt08` + - :c:`i8` + - :std:`core::sync::atomic::AtomicI8` + * - :dp:`fls_cpcd0vexfbhj` + - :c:`i16` + - :std:`core::sync::atomic::AtomicI16` + * - :dp:`fls_jt7rfq9atbiv` + - :c:`i32` + - :std:`core::sync::atomic::AtomicI32` + * - :dp:`fls_2hqmfwswc6k` + - :c:`i64` + - :std:`core::sync::atomic::AtomicI64` + * - :dp:`fls_5ab2sw3gwmt3` + - :c:`isize` + - :std:`core::sync::atomic::AtomicIsize` + * - :dp:`fls_w2mw833g28eb` + - ``*mut T`` + - :std:`core::sync::atomic::AtomicPtr` + * - :dp:`fls_mjq1l1y0vmz4` + - :c:`u8` + - :std:`core::sync::atomic::AtomicU8` + * - :dp:`fls_906978wtss6n` + - :c:`u16` + - :std:`core::sync::atomic::AtomicU16` + * - :dp:`fls_4urmnh4mfehl` + - :c:`u32` + - :std:`core::sync::atomic::AtomicU32` + * - :dp:`fls_2qkrcd5eovpe` + - :c:`u64` + - :std:`core::sync::atomic::AtomicU64` + * - :dp:`fls_cry1e78gp19q` + - :c:`usize` + - :std:`core::sync::atomic::AtomicUsize` + +.. _fls_mtuwzinpfvkl: + +Asynchronous Computation +------------------------ + +.. rubric:: Legality Rules + +:dp:`fls_g40xp4andj5g` +The Rust programming language provides asynchronous computation through +:t:`module` :std:`core::task` and the :std:`core::future::Future` :t:`trait`. + +:dp:`fls_fte085hi1yqj` +A :t:`future` represents a :t:`value` of a :t:`type` that implements the +:std:`core::future::Future` :t:`trait` which may not have finished computing +yet. + +:dp:`fls_7muubin2wn1v` +The computed :t:`value` of a :t:`future` is obtained by using an +:t:`await expression` or by invoking :std:`core::future::Future::poll`. + +:dp:`fls_ftzey2156ha` +:std:`core::future::Future::poll` shall not be invoked on a :t:`future` that has +already returned :std:`core::task::Poll::Ready`. + diff --git a/_sources/entities-and-resolution.rst.txt b/_sources/entities-and-resolution.rst.txt new file mode 100644 index 00000000..5307db6b --- /dev/null +++ b/_sources/entities-and-resolution.rst.txt @@ -0,0 +1,1860 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_gdeyap4or1db: + +Entities and Resolution +======================= + +.. _fls_151r19d7xbgz: + +Entities +-------- + +.. rubric:: Syntax + +.. syntax:: + + Name ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_x7j6wcigqt7u` +An :t:`entity` is a :t:`construct` that can be referred to within program text, +usually via a :t:`field access expression` or a :t:`path`. + +:dp:`fls_40d2g0hvq2il` +A :t:`name` is an :t:`identifier` that refers to an :t:`entity`. + +:dp:`fls_lcca91wjwnpx` +A :t:`declaration` is a :t:`construct` that introduces a :t:`name` for an +:t:`entity`. + +:dp:`fls_94l2d7ti0hjw` +An :t:`explicitly declared entity` is an :t:`entity` that has a +:t:`declaration`. The following :t:`entities ` are +:t:`explicitly declared entities `: + +* :dp:`fls_kvdqmo8gmdxi` + :t:`[Associated item]s`, + +* :dp:`fls_b3cdg74utyvo` + :t:`[Binding]s`, + +* :dp:`fls_njcmeqxzvfsa` + :t:`[Constant]s`, + +* :dp:`fls_63ul8sgf6dgr` + :t:`[Declarative macro]s`, + +* :dp:`fls_6hxf0rn9j1sr` + :t:`[Enum type]s`, + +* :dp:`fls_2qitjk5ssaau` + :t:`[Enum variant]s`, + +* :dp:`fls_4li2c5qc31c7` + :t:`[Field]s`, + +* :dp:`fls_nq8n7w2s3bja` + :t:`[Function]s`, + +* :dp:`fls_jv7qi34flit0` + :t:`[Generic parameter]s`, + +* :dp:`fls_rutlgmzh3tnz` + :t:`[Implementation]s`, + +* :dp:`fls_1owx5ch7sidm` + :t:`[Label]s`, + +* :dp:`fls_8ldy7lec9bcd` + :t:`[Module]s`, + +* :dp:`fls_3mt2p4ssqt0a` + :t:`[Static]s`, + +* :dp:`fls_qqwu3e98lktb` + :t:`[Struct type]s`, + +* :dp:`fls_fup6984lxdfy` + :t:`[Trait]s`, + +* :dp:`fls_ji9iem1c7ekq` + :t:`[Type alias]es`, + +* :dp:`fls_v7w8ptbyxv9w` + :t:`[Union type]s`. + +:dp:`fls_ig1l38gpy5gy` +An :t:`implicitly declared entity` is an :t:`entity` that lacks an explicit +:t:`declaration`. The following :t:`entities ` are +:t:`implicitly declared entities `: + +* :dp:`fls_ed0t6u7fo3fi` + :t:`[Built-in attribute]s`. + +* :dp:`fls_gjps01c8l6aa` + :t:`Language prelude` :t:`entities `. + +.. _fls_jdknpu3kf865: + +Visibility +---------- + +.. rubric:: Syntax + +.. syntax:: + + VisibilityModifier ::= + CratePublicModifier + | SelfPublicModifier + | SimplePathPublicModifier + | SimplePublicModifier + | SuperPublicModifier + + CratePublicModifier ::= + $$pub$$ $$($$ $$crate$$ $$)$$ + + SelfPublicModifier ::= + $$pub$$ $$($$ $$self$$ $$)$$ + + SimplePathPublicModifier ::= + $$pub$$ $$($$ $$in$$ SimplePath $$)$$ + + SimplePublicModifier ::= + $$pub$$ + + SuperPublicModifier ::= + $$pub$$ $$($$ $$super$$ $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_7kpepal8ghuj` +:t:`Visibility` is a property of :t:`[field]s` and :t:`[item]s` that determines +which :t:`[module]s` can refer to the :t:`name` of the :t:`field` or :t:`item`. + +:dp:`fls_qo0itr5il1kk` +:t:`Public visibility` is a kind of :t:`visibility` that allows for a :t:`name` +to be referred to from arbitrary :t:`module` ``M`` as long as the ancestor +:t:`[module]s` of the related :t:`entity` can be referred to from ``M``. + +:dp:`fls_knjruq5wppv` +:t:`Private visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to only by the current :t:`module` of the :t:`entity`, and its +descendant :t:`[module]s`. + +:dp:`fls_t7i4n19qdgn4` +A :t:`visibility modifier` sets the :t:`visibility` of a :t:`name`. + +:dp:`fls_aa4f3rvir9lm` +A :t:`crate public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the current :t:`crate` only. + +:dp:`fls_tnh7o3pb4e22` +A :t:`self public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`private visibility`. A :t:`self public modifier` is equivalent +to a :t:`simple path public modifier` where the :t:`simple path` denotes +:t:`keyword` ``self``. + +:dp:`fls_yymgpyi67dty` +A :t:`simple path public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the provided :t:`simple path` only. + +:dp:`fls_hc121mxknq03` +The :t:`simple path` of a :t:`simple path public modifier` shall start +with a :t:`path segment` expressed by either :t:`keyword` ``crate``, +:t:`keyword` ``self``, or :t:`keyword` ``super``. + +:dp:`fls_icztzxjpm1du` +The :t:`simple path` of a :t:`simple path public modifier` shall resolve to +an ancestor :t:`module` of the current :t:`module` or the current :t:`module` +itself. + +:dp:`fls_np8aghofjqhm` +A :t:`simple public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility`. + +:dp:`fls_quzvhzpr0124` +A :t:`super public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the parent :t:`module` only. A +:t:`super public modifier` is equivalent to a :t:`simple path public modifier` +where the :t:`simple path` denotes :t:`keyword` ``super``. + +:dp:`fls_utgjx6l5zwfl` +An external :t:`item`, a :t:`field`, or an :t:`item` that appears without a +:t:`visibility modifier` has :t:`private visibility` by default. + +:dp:`fls_jifg2st5bfd6` +An :t:`associated item` of a :t:`trait` has the same :t:`visibility` as the +:t:`trait`. + +:dp:`fls_dm0xr424ine1` +An :t:`enum variant` and its :t:`[field]s` have the same :t:`visibility` as the +containing :t:`enum type`. + +.. rubric:: Examples + +.. code-block:: rust + + pub mod outer_module { + pub mod inner_module { + pub(crate) fn crate_visible_function() {} + + pub(self) fn inner_module_visible_function() {} + + pub(super) fn outer_module_visible_function() {} + + pub fn visible_function() {} + + fn caller() { + crate_visible_function(); + inner_module_visible_function(); + visible_function(); + } + } + + fn caller() { + inner_module::crate_visible_function(); + inner_module::outer_module_visible_function(); + inner_module::visible_function(); + } + } + + fn caller() { + outer_module::inner_module::crate_visible_function(); + outer_module::inner_module::visible_function(); + } + +.. _fls_9i5msiuuyihf: + +Paths +----- + +.. rubric:: Syntax + +.. syntax:: + + SimplePath ::= + $$::$$? SimplePathSegment ($$::$$ SimplePathSegment)* + + SimplePathSegment ::= + Identifier + | $$crate$$ + | $$$crate$$ + | $$self$$ + | $$super$$ + + SimplePathList ::= + SimplePath ($$,$$ SimplePath)* $$,$$? + + QualifiedType ::= + $$<$$ TypeSpecification QualifyingTrait? $$>$$ + + QualifyingTrait ::= + $$as$$ TypePath + + UnqualifiedPathExpression ::= + $$::$$? PathExpressionSegment ($$::$$ PathExpressionSegment)* + + PathExpressionSegment ::= + PathSegment ($$::$$ GenericArgumentList)? + + PathSegment ::= + SimplePathSegment + | $$Self$$ + + QualifiedPathExpression ::= + QualifiedType ($$::$$ PathExpressionSegment)+ + + TypePath ::= + $$::$$? TypePathSegment ($$::$$ TypePathSegment)* + + TypePathSegment ::= + PathSegment $$::$$? (GenericArgumentList | QualifiedFnTrait)? + + QualifiedFnTrait ::= + $$($$ TypeSpecificationList? $$)$$ ReturnType? + + QualifiedTypePath ::= + QualifiedType ($$::$$ TypePathSegment)+ + +.. rubric:: Legality Rules + +:dp:`fls_klcltwcwrw6i` +A :t:`path` is a sequence of :t:`[path segment]s` logically separated by +:t:`namespace qualifier` ``::`` that resolves to an :t:`entity`. + +:dp:`fls_y1z7kougmahd` +A :t:`path segment` is an element of a :t:`path`. + +:dp:`fls_8q8nqfpSz7Ly` +A :t:`path` is subject to :t:`path resolution`. + +:dp:`fls_opn5n5t2mo3m` +If a :t:`path segment` is expressed as either :t:`keyword` ``crate``, +:t:`keyword` ``$crate``, :t:`keyword` ``self``, or :t:`keyword` ``Self``, then +the :t:`path segment` shall be the first :t:`path segment` of a :t:`path`. + +:dp:`fls_774uryecc2sx` +A :t:`path` that starts with a :t:`path segment` that is expressed as +:t:`keyword` ``$crate`` shall appear only within a :t:`macro transcriber`. + +:dp:`fls_7k88ypcgaoff` +If a :t:`path segment` is expressed as :t:`keyword` ``super``, then the +:t:`path segment` shall either be the first :t:`path segment` of a :t:`path`, +or the previous :t:`path segment` of the :t:`path` shall also be expressed as +:t:`keyword` ``super``. + +:dp:`fls_7kb6ltajgiou` +A :t:`global path` is a :t:`path` that starts with :t:`namespace qualifier` +``::``. + +:dp:`fls_n77icl6idazp` +A :t:`simple path` is a :t:`path` whose :t:`[path segment]s` consist of either +:t:`[identifier]s` or certain :t:`[keyword]s` as defined in the syntax rules +above. + +:dp:`fls_YnUsdSM4x9eq` +A :dt:`path prefix` is a :t:`path` with its last :t:`path segment` and +:t:`namespace qualifier` ``::`` stripped. + +:dp:`fls_iuzvtr3oax1o` +If a :t:`simple path` appears in a :t:`use import` and starts with a +:t:`path segment` expressed as either :t:`keyword` ``crate``, :t:`keyword` +``$crate``, :t:`keyword` ``self``, or :t:`keyword` ``super``, then the +:t:`path` shall be the :t:`simple path prefix` of a :t:`glob import` or a +:t:`nesting import`, or the :t:`simple path` of a :t:`simple import`. + +:dp:`fls_cw006jhlboa` +If a :t:`simple path` appears in a :t:`use import` and starts with a +:t:`path segment` expressed as :t:`keyword` ``self``, then the :t:`path` shall +be part of the :s:`UseImportContent` of a :t:`nesting import` as long as the +:t:`path` is a :t:`single segment path`. + +:dp:`fls_kv5bpq8rf1j9` +A :t:`simple path` is subject to :t:`simple path resolution`. + +:dp:`fls_chtj3hcfe3ap` +A :t:`single segment path` is a :t:`path` consisting of exactly one +:t:`path segment`. + +:dp:`fls_wm61yeclairz` +A :t:`multi segment path` is a :t:`path` consisting of more than one +:t:`path segment`. + +:dp:`fls_nRgjCLYZL3iX` +An :t:`unqualified path expression` is a :t:`path expression` without a :t:`qualified type`. + +:dp:`fls_tvvycup09b51` +A :t:`path expression` is subject to :t:`path expression resolution`. + +:dp:`fls_h2zikgmazoxx` +A :t:`type path` is a :t:`path` that acts as a :t:`type specification`. + +:dp:`fls_nj7s6xmzx55f` +A :t:`type path` is subject to :t:`type path resolution`. + +:dp:`fls_e65q3iz50j6a` +A :t:`qualifying trait` is a :t:`trait` that imposes a restriction on a +:t:`qualified type`. + +:dp:`fls_Ai1jN5a8h3Dz` +A :t:`qualifying trait` shall resolve to a :t:`trait`. + +:dp:`fls_ybv0tdu7dnj5` +A :t:`qualified type` is a :t:`type` that is restricted to a set of +:t:`[implementation]s` that exhibit :t:`implementation conformance` to a +:t:`qualifying trait`. + +:dp:`fls_qkYF2J7GVah8` +A :t:`qualified type` shall resolve to a :t:`type`. + +:dp:`fls_QjNQbQhUcRTT` +A :t:`qualified type` shall implement its related :t:`qualifying trait`. + +:dp:`fls_7sm3206va03c` +A :t:`qualified path expression` is a :t:`path expression` that resolves +through a :t:`qualified type`. + +:dp:`fls_huynsyx13gsz` +A :t:`qualified type path` is a :t:`type path` that resolves through a +:t:`qualified type`. + +:dp:`fls_RZvIsApi4WQm` +An :t:`associated type projection` is a :t:`qualified type path` of the form +``::associated_type``, where ``type`` is a :t:`type`, ``trait`` +is a :t:`qualifying trait`, and ``associated type`` is an :t:`associated type`. + +:dp:`fls_f1ciozzetj5a` +A :dt:`qualified fn trait` is a :t:`construct` that refers to the +:std:`core::ops::Fn`, :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` +:t:`trait`. + +:dp:`fls_cy7vza3flqi9` +If a :t:`path` contains a :t:`path segment` with a :t:`qualified fn trait`, +then the :t:`path segment` shall be the last :t:`path segment` of the +:t:`path`. + +.. rubric:: Examples + +:dp:`fls_cul31g1kkz5c` +The following is a simple path. See :p:`14.2. ` for the +declaration of ``crate_visible_function``. + +.. code-block:: rust + + crate::outer_module::inner_module::crate_visible_function(); + +:dp:`fls_no853u27p4f3` +The following is an :t:`unqualified path expression`` with a generic argument. + +.. code-block:: rust + + Vec::::with_capacity(42); + +:dp:`fls_28c21rzc6rsp` +The following is a type path with a generic argument. + +.. code-block:: rust + + std::boxed::Box size>; + + struct S; + impl S { + fn f() { println!("f of S"); } + } + trait T { + fn f() { println!("f of T"); } + } + impl T for S {} + +:dp:`fls_4s2n95h4rd1q` +The following is a :t:`qualified path expression`. The :t:`call expression` +invokes the :t:`associated function` of ``S``'s :t:`trait implementation` of +:t:`trait` ``T``. + +.. code-block:: rust + + ::f(); + +:dp:`fls_ojdntg5i79pb` +The following is a :t:`qualified type path`. It resolves to the :t:`associated +type` of ``S``'s :t:`trait implementation` of :t:`trait` ``T``. + +.. code-block:: rust + + type T = ::Assoc; + + +.. _fls_izl8iuhoz9e0: + +Scopes +------ + +.. rubric:: Legality Rules + +:dp:`fls_5x5xykocwyiy` +A :t:`scope` is a region of program text where an :t:`entity` can be referred +to. An :t:`entity` is :t:`in scope` when it can be referred to. + +.. _fls_6ozthochxz1i: + +Binding Scopes +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ncg9etb3x7k0` +A :t:`binding scope` is a :t:`scope` for :t:`[binding]s`. + +:dp:`fls_u52mx4xw8zod` +The :t:`binding` of a :t:`closure parameter` is :t:`in scope` within the +related :t:`closure body`. + +:dp:`fls_t9mk8kasobea` +The :t:`binding` of a :t:`function parameter` is :t:`in scope` within the +related :t:`function body`. + +:dp:`fls_h9cvs854ae34` +The :t:`binding` of a :t:`for loop` or a :t:`while let loop` is :t:`in scope` +within the related :t:`loop body`. + +:dp:`fls_vl1qk0odouyb` +The :t:`binding` of an :t:`if let expression` is :t:`in scope` within the +related :t:`block expression`. + +:dp:`fls_74nk389rk075` +The :t:`binding` of a :t:`let statement` is :t:`in scope` after the related +:t:`let statement`, until the end of the :t:`block expression` where the +related :t:`let statement` appears. + +:dp:`fls_xbnki64un70v` +The :t:`binding` of a :t:`match arm` is :t:`in scope` within its related +:t:`[expression]s` and related :t:`match arm guard`. + +.. _fls_ftphlagzd2te: + +Generic Parameter Scope +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_amoh8r4gghyj` +A :t:`generic parameter scope` is a :t:`scope` for :t:`[generic parameter]s`. + +:dp:`fls_6o38qhbna46z` +A :t:`generic parameter` is :t:`in scope` of a :s:`GenericParameterList`. + +:dp:`fls_jqevvpndxzdz` +A :t:`generic parameter` of an :t:`enum type` is :t:`in scope` within the +related :t:`[enum variant]s` and :t:`where clause`. + +:dp:`fls_t9ztg017itkp` +A :t:`generic parameter` of a :t:`function pointer type` is :t:`in scope` +within the related :t:`type specification`. + +:dp:`fls_pmo939jw9m1m` +A :t:`generic parameter` of an :t:`implementation` is :t:`in scope` within the +related :t:`implementation body` and :t:`where clause`. + +:dp:`fls_67dtv1z3arbl` +A :t:`generic parameter` of a :t:`struct type` is :t:`in scope` within the +related :t:`[field]s` and :t:`where clause`. + +:dp:`fls_y8j4isk9libl` +A :t:`generic parameter` of a :t:`trait` is :t:`in scope` within the related +:t:`trait body` and :t:`where clause`. + +:dp:`fls_ow5ih7q3xxfx` +A :t:`generic parameter` of a :t:`trait bound` is :t:`in scope` within the +related :t:`[generic parameter]s` or the related :t:`type path`. + +:dp:`fls_h9rpwxpz72v0` +A :t:`generic parameter` of a :t:`type alias` is :t:`in scope` within the +related :t:`initialization type` and :t:`where clause`. + +:dp:`fls_3qm3vh97bvpb` +A :t:`generic parameter` of a :t:`type bound predicate` is :t:`in scope` within +the related :s:`TypeBoundList`. + +:dp:`fls_xuxbpv5b2ym9` +A :t:`generic parameter` of a :t:`union type` is :t:`in scope` within the +related :t:`[field]s` and :t:`where clause`. + +:dp:`fls_95z5mytvfjia` +A :t:`generic parameter` is not :t:`in scope` within nested :t:`[item]s`, +except within :t:`[associated item]s`. + +.. _fls_m0z7omni9hp0: + +Item Scope +~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_p5o243hhe1y3` +An :t:`item scope` is a :t:`scope` for :t:`[item]s`. + +:dp:`fls_huvo0mp2i6fb` +An :t:`item` declared within the :t:`block expression` of an +:t:`expression-with-block` is :t:`in scope` within the related +:t:`block expression`. + +:dp:`fls_x8r0oppuc1t6` +An :t:`item` declared within a :t:`module` is :t:`in scope` within the +related :t:`module`. Such an :t:`item` is not :t:`in scope` within nested +:t:`[module]s`. + +.. _fls_769b4p8v3cwu: + +Label Scope +~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_96kczd4zhpco` +A :t:`label scope` is a :t:`scope` for :t:`[label]s`. + +:dp:`fls_8sevg1sa82h4` +A :t:`label` is :t:`in scope` within the :t:`block expression` of the related +:t:`loop expression`. + +:dp:`fls_ep5smja1rxdv` +A :t:`label` is not :t:`in scope` within nested :t:`[async block]s`, +:t:`[closure expression]s`, :t:`[constant context]s`, and :t:`[item]s`. + +.. _fls_kgbi26212eof: + +Self Scope +~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kgt81m4f72ne` +A :t:`Self scope` is a :t:`scope` for :c:`Self`. + +:dp:`fls_kxdwq4b136tl` +:c:`Self` of an :t:`enum type` is :t:`in scope` within the related +:t:`[enum variant]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_nf4g82gi12ij` +:c:`Self` of an :t:`implementation` is :t:`in scope` within the related +:t:`[generic parameter]s`, :t:`implementation body`, and :t:`where clause`. + +:dp:`fls_dy4gyepebe7b` +:c:`Self` of a :t:`struct type` is :t:`in scope` within the related +:t:`[field]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_cha4ddwfqwvj` +:c:`Self` of a :t:`trait` is :t:`in scope` within the related +:t:`[generic parameter]s`, :t:`trait body`, and :t:`where clause`. + +:dp:`fls_ql4i021ut2n8` +:c:`Self` of a :t:`union type` is :t:`in scope` within the related +:t:`[field]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_mj9vlxnf44oi` +:c:`Self` is not :t:`in scope` within :t:`[attribute]s`. + +.. _fls_octf6sf7yso: + +Textual Macro Scope +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_xkh8cqubhxad` +A :t:`textual macro scope` is a :t:`scope` for :t:`[declarative macro]s`. + +:dp:`fls_iec3otx863yp` +A :t:`declarative macro` is :t:`in scope` after the related :t:`macro` +declaration, until the end of the :t:`block expression` or the enclosing +:t:`module` where the :t:`macro` declaration appears. + +:dp:`fls_cbfuh9y87y6i` +If the :t:`textual macro scope` is introduced by a :t:`module` and the +:t:`module` is subject to :t:`attribute` :c:`macro_use`, then the +:t:`textual macro scope` extends until the end of the :t:`scope` introduced by +the enclosing :t:`block expression` or :t:`module`. + +.. _fls_lnpyb285qdiy: + +Scope Hierarchy +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4o7vfo6v39l7` +The :t:`scope hierarchy` reflects the nesting of :t:`[scope]s` as introduced +by :t:`[scoping construct]s`. An inner :t:`scope` introduced by a nested +:t:`scoping construct` is the child of an outer :t:`scope` introduced by an +enclosing :t:`scoping construct`. + +:dp:`fls_ns4eog3od4kw` +A :dt:`scoping construct` is a :t:`construct` that introduces :t:`[scope]s` +into the :t:`scope hierarchy`. The following :t:`[construct]s` are +:t:`[scoping construct]s`: + +* :dp:`fls_kqmykyzdb1k6` + :t:`[Block expression]s`, + +* :dp:`fls_g86d5v14sxxv` + :t:`[Closure expression]s`, + +* :dp:`fls_ldwencd8zp9a` + :t:`[Declarative macro]s`, + +* :dp:`fls_jz7hgkvocc9r` + :t:`Enum type` :t:`[declaration]s`, + +* :dp:`fls_p4g8sxba7at9` + :t:`Function` :t:`[declaration]s`, + +* :dp:`fls_d1cp5pt5wn0z` + :t:`Function pointer type` :t:`specifications `, + +* :dp:`fls_ibmm8y748z4` + :t:`[If let expression]s`, + +* :dp:`fls_39011vsy2vxx` + :t:`Implementation` :t:`[declaration]s`, + +* :dp:`fls_m81hyd154yun` + :t:`[Let statement]s`, + +* :dp:`fls_fvgzmsaox4z3` + :t:`[Loop expression]s`, + +* :dp:`fls_rj8uld11o1br` + :t:`[Match arm]s`, + +* :dp:`fls_hyp4dnpqe620` + :t:`Module` :t:`[declaration]s`, + +* :dp:`fls_zgied4qysk2a` + :t:`Struct type` :t:`[declaration]s`, + +* :dp:`fls_cn6dzmrxdp1w` + :t:`[Trait bound]s`, + +* :dp:`fls_9n7m0tv7w2np` + :t:`Trait` :t:`[declaration]s`, + +* :dp:`fls_sj2ivbf2l2dp` + :t:`Type alias` :t:`[declaration]s`, + +* :dp:`fls_cejfio3ddy0j` + :t:`[Type bound predicate]s`, + +* :dp:`fls_j3rot386teec` + :t:`Union type` :t:`[declaration]s`. + +:dp:`fls_nuobrpnymym1` +A :t:`closure expression` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_r0x9sw7dwnww` +A :t:`declarative macro` introduces a :t:`textual macro scope` into the +:t:`scope hierarchy`. + +:dp:`fls_ve7svuy7xvh0` +The :t:`declaration` of an :t:`enum type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_pvfqhtts3qsa` +The :t:`declaration` of a :t:`function` introduces a :t:`binding scope` and a +:t:`generic parameter scope` into the :t:`scope hierarchy`. + +:dp:`fls_9k9hourczbv7` +The :t:`type specification` of a :t:`function pointer type` introduces a +:t:`generic parameter scope` into the :t:`scope hierarchy`. + +:dp:`fls_p6wiuhkeypzs` +An :t:`if let expression` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_34usianesmf6` +The :t:`declaration` of an :t:`implementation` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_n1a41d8i0rot` +A :t:`let statement` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_amhi3d9dd3i3` +A :t:`for loop expression` or a :t:`while let loop expression` introduces a +:t:`binding scope` and a :t:`label scope` into the :t:`scope hierarchy`. + +:dp:`fls_nu8xj3vza55j` +An :t:`infinite loop expression` or a :t:`while loop expression` introduces a +:t:`label scope` into the :t:`scope hierarchy`. + +:dp:`fls_fiyj50u6cg2n` +A :t:`match arm` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_azjx3y5yezoi` +The :t:`declaration` of a :t:`module` introduces an :t:`item scope` into the +:t:`scope hierarchy`. + +:dp:`fls_puly43s4x360` +The :t:`declaration` of a :t:`struct type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_pxtlu7ud6w2h` +The :t:`declaration` of a :t:`trait` introduces a :t:`generic parameter scope` +and a :t:`Self scope` into the :t:`scope hierarchy`. + +:dp:`fls_ddxxt11u0yal` +A :t:`trait bound` introduces a :t:`generic parameter scope` into the +:t:`scope hierarchy`. + +:dp:`fls_qofr9vme46wp` +The :t:`declaration` of a :t:`type alias` introduces a +:t:`generic parameter scope`. + +:dp:`fls_gjvfty9m84a9` +A :t:`type bound predicate` introduces a :t:`generic parameter scope` into the +:t:`scope hierarchy`. + +:dp:`fls_xr9wors6oa7w` +The :t:`declaration` of a :t:`union type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +.. _fls_dq403wq5yrs: + +Namespaces +---------- + +.. rubric:: Legality Rules + +:dp:`fls_1d4jm61qnt4l` +A :t:`namespace` is a logical grouping of :t:`[name]s` such that the occurrence +of a :t:`name` in one :t:`namespace` does not conflict with an occurrence of +the same :t:`name` in another :t:`namespace`. + +:dp:`fls_avsua7bho205` +:t:`[Name]s` are segregated into one of five :t:`[namespace]s` based on the +kind of :t:`entity` the :t:`name` refers to. + +:dp:`fls_9e3xeza853wx` +A :dt:`label namespace` contains :t:`[label]s`. + +:dp:`fls_w625tk3ogdui` +A :dt:`lifetime namespace` contains the :t:`[name]s` of +:t:`[lifetime parameter]s`. + +:dp:`fls_crwfafrmydr7` +A :dt:`macro namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_t8fcpm8ldv1y` + :t:`[Attribute macro]s`, + +* :dp:`fls_7pkex797rkeu` + :t:`[Built-in attribute]s`, + +* :dp:`fls_v32f2evgqt5q` + :t:`[Declarative macro]s`, + +* :dp:`fls_f6yrzwu6yi30` + :t:`[Derive macro]s`, + +* :dp:`fls_nk0swexy2ztm` + :t:`[Function-like macro]s`. + +:dp:`fls_ckptn88o6lla` +A :dt:`type namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_3ma5v1fop98p` + :t:`[Associated type]s`, + +* :dp:`fls_nj7sep7ht7lg` + :c:`bool` :t:`[type]s`, + +* :dp:`fls_g8h6t5x6yprm` + :t:`[Enum type]s`, + +* :dp:`fls_2l1o7vqfr4m7` + :t:`[Enum variant]s`, + +* :dp:`fls_6q8rjv1jmu84` + :t:`[Module]s`, + +* :dp:`fls_lx2tx1jt8t3a` + :t:`[Numeric type]s`, + +* :dp:`fls_mo00df28t7c1` + :c:`Self`, + +* :dp:`fls_8o3izim4zf8t` + :t:`[Struct type]s`, + +* :dp:`fls_fweohszgbuj4` + :t:`[Textual type]s`, + +* :dp:`fls_ry02dzisxz3h` + :t:`[Trait]s`, + +* :dp:`fls_dcz1bxjjfsq` + :t:`[Type alias]es`, + +* :dp:`fls_wt9kgsi6n6ep` + :t:`[Type parameter]s`, + +* :dp:`fls_w29t5njbe46s` + :t:`[Union type]s`. + +:dp:`fls_u1533bngb0yv` +A :dt:`value namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_e8v4g45v5ry2` + :t:`[Associated constant]s`, + +* :dp:`fls_pq8bzav84q3z` + :t:`[Associated function]s`, + +* :dp:`fls_ttr6v8ca4av0` + :t:`[Binding]s`, + +* :dp:`fls_aivi97hhfxy2` + :t:`[Constant]s`, + +* :dp:`fls_pie4ltdtzkl3` + :t:`[Constant parameter]s`, + +* :dp:`fls_qmf7lk6h96sv` + :t:`Enum variant` constructors, + +* :dp:`fls_ufp3btk8pet5` + :t:`[Function]s`, + +* :dp:`fls_t3bnpkfazw4z` + :c:`Self` constructors, + +* :dp:`fls_y0shlli54n5y` + :t:`[Static]s`, + +* :dp:`fls_tghgxcju5u2t` + :t:`Struct` constructors. + +:dp:`fls_yesesxynpq6s` +The :t:`[name]s` of the following kinds of :t:`entities ` are not part +of any :t:`namespace`: + +* :dp:`fls_40o8y6exr3df` + :t:`[Enum field]s`, + +* :dp:`fls_y76o5ug7dtv` + :t:`[Struct field]s`, + +* :dp:`fls_3np518s1su4w` + :t:`[Union field]s`. + +.. _fls_ld0ize96cm6m: + +Preludes +-------- + +.. rubric:: Legality Rules + +:dp:`fls_po4gw6t2ptwu` +A :t:`prelude` is a collection of :t:`entities ` that are automatically +brought :t:`in scope` of every :t:`module` in a :t:`crate`. Such +:t:`entities ` are referred to as +:t:`prelude entities `. The :t:`name` of a :t:`prelude entity` +is referred to as a :t:`prelude name`. + +:dp:`fls_n4102qskkmz2` +The :dt:`core prelude` is a :t:`prelude` that brings :t:`in scope` of every +:t:`module` all re-exported :t:`entities ` from the +:std:`core::prelude::rust_2021` :t:`module`. + +:dp:`fls_atvnwly4w8g2` +An :dt:`external prelude` is a :t:`prelude` that brings :t:`in scope` of the +:t:`crate root module` the :t:`entities ` of the :t:`[crate]s` imported +using external :t:`[crate import]s` or supplied by a tool. If the external +:t:`crate import` uses a :t:`renaming`, then the :t:`identifier` of the +:t:`renaming` is instead added to the :t:`external prelude`. The core +:t:`crate` is always added to the :t:`external prelude` unless the :t:`crate +root` is subject to :t:`attribute` ``no_core``. + +:dp:`fls_pbc7ktlu0pl` +The :dt:`language prelude` is a :t:`prelude` that brings :t:`in scope` of every +:t:`module` the following :t:`entities `: + +* :dp:`fls_frjv68kqqxfh` + Boolean type :c:`bool`. + +* :dp:`fls_rf6a2ae3y7vu` + :t:`[Built-in attribute]s`. + +* :dp:`fls_sxnnkzmuvexa` + :t:`[Floating-point type]s` :c:`f32` and :c:`f64`. + +* :dp:`fls_qsyorqjkdh2t` + :t:`[Integer type]s` :c:`i8`, :c:`i16`, :c:`i32`, :c:`i64`, :c:`i128`, + :c:`isize`, :c:`u8`, :c:`u16`, :c:`u32`, :c:`u64`, :c:`u128`, and :c:`usize`. + +* :dp:`fls_aolj6abvp9sa` + :t:`[Textual type]s` :c:`char` and :c:`str`. + +:dp:`fls_of4n3vv15l5z` +The :dt:`macro_use prelude` is a :t:`prelude` that brings :t:`in scope` of the +:t:`crate root module` the :t:`entities ` of :t:`[macro]s` from +external :t:`[crate]s` that were imported using an external :t:`crate import`. + +.. _fls_9gprp17h6t1q: + +Use Imports +----------- + +.. rubric:: Syntax + +.. syntax:: + + UseImport ::= + $$use$$ UseImportContent $$;$$ + + UseImportContent ::= + GlobImport + | NestingImport + | SimpleImport + + GlobImport ::= + SimplePathPrefix? $$*$$ + + NestingImport ::= + SimplePathPrefix? $${$$ UseImportContentList? $$}$$ + + SimpleImport ::= + SimplePath Renaming? + + SimplePathPrefix ::= + SimplePath? $$::$$ + + UseImportContentList ::= + UseImportContent ($$,$$ UseImportContent)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_lyw4t098sxrj` +A :t:`use import` brings :t:`entities ` :t:`in scope` within the +:t:`block expression` of an :t:`expression-with-block` or :t:`module` where the +:t:`use import` resides. + +:dp:`fls_sxo1jb25pl8a` +A :t:`simple path prefix` is the leading :t:`simple path` of a :t:`glob import` +or a :t:`nesting import`. + +:dp:`fls_WAA4WmohGu6T` +An :dt:`import path prefix` is the fully constructed :t:`path` prefix of a +:t:`use import`. An :t:`import path prefix` for a given +:t:`simple import` or :t:`glob import` is constructed as follows: + +#. :dp:`fls_IPYvldMqduf4` + Start the :t:`import path prefix` as follows: + + * :dp:`fls_MOXId37fcNPY` + If the :t:`use import` is a :t:`simple import` then start with the + :t:`[path segment]s` of the :t:`simple import`'s :t:`simple path` + :t:`path prefix`. + + * :dp:`fls_2UyFcB6Our1v` + If the :t:`use import` is a :t:`glob import` then start with the + :t:`[path segment]s` of the :t:`glob import`'s :t:`simple path prefix`. + + * :dp:`fls_irdKqoYzBM0M` + If the :t:`use import` is a :t:`nesting import` then start with the + :t:`[path segment]s` of the :t:`nesting import`'s :t:`simple path prefix`. + +#. :dp:`fls_gAWsqibl4GLq` + Then if the current :t:`use import` is the child of a :t:`nesting import`, + prepend the :t:`nesting import`'s :t:`simple path prefix` to the + :t:`import path prefix`. Repeat this step with the :t:`nesting import` as + the current :t:`use import`. + +:dp:`fls_2bkcn83smy2y` +A :t:`simple import` is a :t:`use import` that brings all :t:`entities ` +it refers to into scope, optionally with a different +:t:`name` than they are declared with by using a :t:`renaming`. + +:dp:`fls_v3a6y2ze44v2` +A :t:`glob import` is a :t:`use import` that brings all :t:`entities ` +exported by the :t:`module` or :t:`enum` its :t:`import path prefix` resolves to +into :t:`scope`. + +:dp:`fls_JHU0ersYB6eL` +An :t:`import path prefix` shall resolve to a :t:`module` or :t:`enum`. + +:dp:`fls_jlNKxkuhsvX4` +A :t:`glob import` brings :t:`[name]s` into :t:`scope` as follows: + +* :dp:`fls_q0KFfNALMslq` + If the :t:`import path prefix` resolves to a :t:`module`, bring all + :t:`[name]s` in the :t:`module` that are visible from the location of the + :t:`glob import` into :t:`scope`. + +* :dp:`fls_Hy17LzOFGfOp` + If the :t:`import path prefix` resolves to an :t:`enum`, bring the + :t:`[name]s` of all of the :t:`enum`'s :t:`[enum variant]s` into :t:`scope`. + +:dp:`fls_90hQvSh7Bfyg` +A :dt:`simple import path` is the :t:`path` constructed by appending the last +:t:`path segment` of a :t:`simple import`'s :t:`simple path` to the +:t:`import path prefix`. + +:dp:`fls_wRmvtgQkFA6w` +A :t:`simple import` brings :t:`[name]s` into :t:`scope` as follows: + +* :dp:`fls_kz2Gij5wHXnl` + If the :t:`simple path` is keyword ``self`` and: + + * :dp:`fls_yY58pFpkig9o` + The :t:`simple import` is in a :t:`nesting import`, then bring the + :t:`entity` in :t:`type namespace` that the :t:`import path prefix` resolves + to into :t:`scope`. + + * :dp:`fls_ar03D5rxjzy0` + Otherwise bring the containing :t:`module` into :t:`scope`. + +* :dp:`fls_ce73bg0BqV1X` + Otherwise bring all :t:`entities ` that the :t:`simple import path` + resolves to that are visible from the location of the + :t:`simple import` into :t:`scope`. + +:dp:`fls_FILuR3pfwjw3` +An :t:`Entity` imported by a :t:`simple import` subject to a +:t:`renaming` with :t:`identifier` is brought into :t:`scope` under the +:t:`name` declared by the :t:`renaming`. + +:dp:`fls_iQOgxNihUEr7` +A :t:`trait` imported by a :t:`simple import` subject to a +:t:`renaming` with character underscore ``_`` is added into :t:`scope` without +a :t:`name`. + +:dp:`fls_ldr7tsuqw34s` +A :t:`nesting import` is a :t:`use import` that provides a common +:t:`simple path prefix` for its nested :t:`[use import]s`. + +:dp:`fls_iNUBX5fJAI1N` +A :t:`glob import` outside of a :t:`nesting import` without a :t:`simple path +prefix` is rejected, but may still be consumed by :t:`[macro]s`. + +:dp:`fls_RUiFQ17bmRLt` +A :t:`simple import` with a :t:`simple path` with a single :t:`path segment` of +keyword ``self`` shall be subject to the following: + +* :dp:`fls_hv3xT2CjZuxc` + It shall either appear in a :t:`nesting import` with a non-empty + :t:`import path prefix`, or + +* :dp:`fls_Pxc0Ts8Y7pfW` + It shall be subject to a :t:`renaming`. + +:dp:`fls_wB3fVglLOqbZ` +It is a static error if two :t:`[glob import]s` import the same :t:`name` in the +same :t:`namespace` but refer to different :t:`entities ` if the +:t:`name` is used or :t:`shadowed `. + +:dp:`fls_zmYSBW995kSN` +If two :t:`[glob import]s` import the same :t:`entity` under the same :t:`name`, +the :t:`visibility` of the :t:`name` is the most permissive one. + +.. rubric:: Examples + +:dp:`fls_5dlnffim6fso` +The following is a glob import. See :p:`14.2. ` +for the declaration of modules and functions. The imported functions +are ``create_visible_function``, ``outer_module_visible_function``, +``visible_function``. + +.. code-block:: rust + + use outer_module::inner_module::*; + +:dp:`fls_9rhflreuubhq` +The following is a renaming import. The imported function is +``visible_function`` under the name ``f``. + +.. code-block:: rust + + use outer_module::inner_module::visible_function as f; + +:dp:`fls_s86dgrdpl1w4` +The following is a selective import. The imported functions are +``crate_visible_function`` and ``visible_function``. + +.. code-block:: rust + + use outer_module::inner_module + {crate_visible_function, visible_function} + +.. rubric:: Legality Rules + +.. _fls_ydmnb7qnmzzq: + +Shadowing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_ob0riinmitkl` +:t:`Shadowing` is a property of :t:`[name]s`. A :t:`name` is said to be +:t:`shadowed` when another :t:`name` with the same characters is introduced +in the same :t:`scope` within the same :t:`namespace`, effectively hiding it. +A :t:`name` cannot be referred to by any means once it is :t:`shadowed`. + +:dp:`fls_fslg89a70e3n` +No :t:`name` shall be :t:`shadowed` except for + +* :dp:`fls_hp3f4r3399kt` + :t:`[Prelude name]s`, + +* :dp:`fls_z8qjpskt13yq` + The :t:`[name]s` of :t:`[macro]s` within :t:`textual macro scope`, + +* :dp:`fls_i0gp1y38lr73` + The :t:`[name]s` of :t:`[variable]s`. + +:dp:`fls_7pif12rt4s4s` +A :t:`prelude name` shadows other :t:`[prelude name]s` depending on which +:t:`[prelude]s` are included in a :t:`module`. The order of shadowing is as +follows, where a later :t:`prelude name` shadows earlier :t:`prelude name`: + +#. :dp:`fls_are9qz67p7b6` + :t:`Language prelude` :t:`names `. + +#. :dp:`fls_4tis5syofyg0` + Standard library :t:`prelude` :t:`names `. + +#. :dp:`fls_u0tsnkhacr06` + :t:`macro_use prelude` :t:`names `. + +#. :dp:`fls_iaklf84guczc` + Tool :t:`prelude` :t:`names `. + +#. :dp:`fls_a0zovslu2v4u` + :t:`External prelude` :t:`names `. + +.. _fls_40xoego2thsp: + +Resolution +---------- + +.. rubric:: Legality Rules + +:dp:`fls_ho4kem1slcxg` +:t:`Resolution` is the process of finding a unique interpretation for a +:t:`field access expression`, a :t:`method call expression`, a :t:`call +expression` or a :t:`path`. + +:dp:`fls_7le2vcdbtxbq` +A :t:`construct` that is being resolved is said to be :t:`under resolution`. + +:dp:`fls_x3alg07yd7hx` +A :t:`dereference type` is either a :t:`reference type` or a :t:`type` that +implements the :std:`core::ops::Deref` :t:`trait`. + +:dp:`fls_4hulwazdu20i` +A :t:`dereference type chain` is a sequence of :t:`[dereference type]s`. A +:t:`dereference type chain` starts with an initial :t:`dereference type`. From +then on, the :t:`dereference type chain` continues as follows: + +* :dp:`fls_ptocwx5p25lj` + If the previous :t:`dereference type` is a :t:`reference type`, then the + :t:`dereference type chain` continues with the inner :t:`type` of the + previous :t:`dereference type`. + +* :dp:`fls_ygam5nisv98c` + Otherwise the :t:`dereference type chain` continues with :t:`type` + :std:`core::ops::Deref::Target` of the previous :t:`dereference type`. + +.. _fls_xcwfotmq2e5d: + +Field Resolution +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_1nxknwjdp0am` +:t:`Field resolution` is a form of :t:`resolution` that applies to a +:t:`field access expression`. + +:dp:`fls_j1bip4w30q8` +A :dt:`candidate container type` is the :t:`type` of the :t:`container operand` +of a :t:`field access expression` :t:`under resolution`. + +:dp:`fls_jrk3gzqvqr8e` +A :dt:`candidate container type chain` is a sequence of +:t:`[candidate container type]s`. The :t:`candidate container type chain` +starts with the :t:`type` of the :t:`container operand` of the +:t:`field access expression` :t:`under resolution`. From then on, the +:t:`candidate container type chain` is treated as a +:t:`dereference type chain`. + +:dp:`fls_asn20qx16sr6` +A :dt:`candidate field` is a :t:`field` of a :t:`candidate container type` +that is visible from the location of the :t:`field access expression` +:t:`under resolution`. + +:dp:`fls_jzoon4x89zp7` +A :dt:`candidate indexed field` is a :t:`candidate field` whose position in the +:t:`type` of the :t:`container operand` matches the index of an +:t:`indexed field selector`. + +:dp:`fls_r80pixfoe5hk` +A :dt:`candidate named field` is a :t:`candidate field` whose :t:`name` matches +the characters of a :t:`named field selector`. + +:dp:`fls_40oa0j6aiop3` +:t:`Field resolution` of a :t:`field access expression` with an +:t:`indexed field selector` proceeds as follows: + +#. :dp:`fls_2bp1zs7qaz7o` + For each :t:`candidate container type` of the + :t:`candidate container type chain` + + #. :dp:`fls_s14fegwhwnc8` + Try to locate a :t:`candidate indexed field` of the + :t:`candidate container type`. + + #. :dp:`fls_tfjm27ydiake` + If such a :t:`candidate indexed field` exists and is visible at the point + of the :t:`field access expression`, then the :t:`field access expression` + resolves to that :t:`candidate indexed field` and :t:`field resolution` + stops. + +:dp:`fls_p6hgoqo0kcx` +:t:`Field resolution` of a :t:`field access expression` with a +:t:`named field selector` proceeds as follows: + +#. :dp:`fls_e7sj392ohvbd` + For each :t:`candidate container type` of the + :t:`candidate container type chain` + + #. :dp:`fls_z6qt9obbhhcg` + Try to locate a :t:`candidate named field` of the + :t:`candidate container type`. + + #. :dp:`fls_ljnjxex3u5o` + If such a :t:`candidate named field` exists and is visible at the point + of the :t:`field access expression`, then the :t:`field access expression` + resolves to that :t:`candidate named field` and :t:`field resolution` + stops. + +:dp:`fls_nm06mru40tyg` +A :t:`field access expression` shall resolve to exactly one :t:`field`. + +.. _fls_wqazkzle0ix9: + +Method Resolution +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_e5a5z5yht26l` +:t:`Method resolution` is a kind of :t:`resolution` that applies to a +:t:`method call expression`. + +:dp:`fls_mbdS0xiNlj92` +A :dt:`receiver type` is the :t:`type` of the :t:`receiver operand` +of a :t:`method call expression`. + +:dp:`fls_z80ylmlu1f3q` +A :dt:`candidate receiver type` is the :t:`type` of the :t:`receiver operand` +of a :t:`method call expression` :t:`under resolution`. + +:dp:`fls_e1029pvq706h` +A :dt:`candidate receiver type chain` is a sequence of +:t:`[candidate receiver type]s`. The :t:`candidate receiver type chain` starts +with the :t:`type` of the :t:`receiver operand` of the +:t:`method call expression` :t:`under resolution`. From then on, the +:t:`candidate receiver type chain` is treated as a :t:`dereference type chain`. + +:dp:`fls_w3ik83d43fr1` +A :dt:`candidate method` is a method of a :t:`candidate receiver type` that +is visible from the location of the :t:`method call expression` +:t:`under resolution`. + +:dp:`fls_pybv4krsvktv` +:t:`Method resolution` proceeds as follows: + +#. :dp:`fls_m2njj6no0p1i` + For each :t:`candidate receiver type` of the + :t:`candidate receiver type chain` + + #. :dp:`fls_16l2q1wpcnbp` + Perform :t:`method resolution receiver candidate lookup` for the + :t:`candidate receiver type`. + + #. :dp:`fls_fcnahkqxomuo` + If the last :t:`candidate receiver type` is an :t:`array type`, then + perform :t:`method resolution receiver candidate lookup` for a + :t:`slice type` where the :t:`slice type` has the same :t:`element type` + as the :t:`array type`. + +:dp:`fls_ii0fdpekn1qt` +:dt:`Method resolution receiver candidate lookup` for a :t:`receiver type` +proceeds as follows: + +#. :dp:`fls_ohjmxhbw3nx3` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`receiver type`. + +#. :dp:`fls_lgpdicxxwq13` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`immutable borrow` of the :t:`receiver type`. + +#. :dp:`fls_ugl3x4y3lli2` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`mutable borrow` of the :t:`receiver type`. + +:dp:`fls_bb4cbmvui8fk` +:dt:`Method resolution implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_5wny1yxbyuz0` + Perform :t:`method resolution inherent implementation candidate lookup` for + the :t:`receiver type`. + +#. :dp:`fls_gsc8pt4tlsqv` + Perform :t:`method resolution trait implementation candidate lookup` for the + :t:`receiver type`. + +:dp:`fls_tfglce1wuq5q` +:dt:`Method resolution inherent implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_64bfcn9okeve` + Construct the :t:`dereference type chain` for the :t:`receiver type`. + +#. :dp:`fls_om90v9re8b2l` + For each :t:`dereference type` in the :t:`dereference type chain` + + #. :dp:`fls_bsf4hy9x7c2e` + For each :t:`inherent implementation` in the set of + :t:`[inherent implementation]s` of the :t:`dereference type` where the + :t:`implementing type` :t:`unifies ` with the + :t:`dereference type` + + #. :dp:`fls_cnn5hkf1z5q4` + Try to locate a :t:`candidate method` in the :t:`inherent + implementation`, where the :t:`type` of the :t:`self parameter` + :t:`unifies ` with the :t:`receiver type`. + + #. :dp:`fls_j9ho6xc2fj0w` + If such a :t:`candidate method` exists, then the + :t:`method call expression` resolves to that :t:`candidate method` and + :t:`method resolution` stops. + +:dp:`fls_1y94elgpg0uk` +:dt:`Method resolution trait implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_npsdxrtcslcf` + Construct the :t:`dereference type chain` for the :t:`receiver type`. + +#. :dp:`fls_yv5l823lwdsv` + For each :t:`dereference type` in the :t:`dereference type chain` + + #. :dp:`fls_ckdoyvbaybe0` + For each :t:`trait implementation` of the :t:`dereference type` where the + :t:`implemented trait` is :t:`in scope` + + #. :dp:`fls_1azkiu20r0e4` + Try to locate a :t:`candidate method` in the + :t:`trait implementation`, where the :t:`type` of the + :t:`self parameter` :t:`unifies ` with the :t:`receiver type`. + + #. :dp:`fls_ose5m4bhkg57` + If such a :t:`candidate method` exists, then the + :t:`method call expression` resolves to that :t:`candidate method` and + :t:`method resolution` stops. + +:dp:`fls_jw2yv23cduu4` +A :t:`method call expression` shall resolve to exactly one :t:`method`. + +.. _fls_TelBKNKodx3d: + +Call Resolution +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ZjJ7y9r6QQMW` +:t:`Call resolution` is a form of :t:`resolution` that applies to a +:t:`call expression`. + +:dp:`fls_zBSloU2Gjv7x` +A :dt:`candidate callee type` is the :t:`type` of the :t:`call operand` +of a :t:`call expression` :t:`under resolution`. + +:dp:`fls_XBakDylF7aOG` +A :dt:`candidate callee type chain` is a sequence of :t:`[candidate callee type]s`. +The :t:`candidate callee type chain` starts with the :t:`type` of the :t:`call +operand` of the:t:`call expression` :t:`under resolution`. From then on, the +:t:`candidate callee type chain` is treated as a :t:`dereference type chain`. + +:dp:`fls_kzovwqIw7ghc` +:t:`Call resolution` of a :t:`call expression` proceeds as follows: + +#. :dp:`fls_4iBdtE0Ji4Tf` + For each :t:`candidate callee type` of the + :t:`candidate callee type chain` + + #. :dp:`fls_TWR5GIUxPcaJ` + If the :t:`candidate callee type` is a :t:`callee type`, then the :t:`callee + type` of the :t:`call expression` is that :t:`candidate callee type` and + :t:`call resolution` stops. + +.. _fls_i6qzga6dyaee: + +Path Resolution +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_8slvisr3jfja` +:t:`Path resolution` is a form of :t:`resolution` that applies to a :t:`path`. + +:dp:`fls_nmev0tnzgw35` +:t:`Path resolution` resolves a :t:`path` by resolving individual +:t:`[path segment]s` in sequence, starting from the leftmost :t:`path segment`. + +:dp:`fls_p23q1ob2qitz` +A :t:`path segment` shall resolve to exactly one :t:`entity`. + +:dp:`fls_e9rv8dfa0arl` +A :dt:`candidate direct entity` is an :t:`entity` that is visible from the +location of a :t:`path` :t:`under resolution` and is located by first examining +:t:`[textual macro scope]s`, followed by examining the :t:`scope hierarchy` +from the innermost :t:`scope` enclosing the :t:`path` to the outermost +:t:`scope`, followed by examining :t:`[prelude]s`. + +:dp:`fls_yule33qm1ok` +A :dt:`candidate external prelude entity` is an :t:`entity` that is visible +from the location of a :t:`path` :t:`under resolution` and is located by +examining the :t:`external prelude`. + +:dp:`fls_7xmhm2lf2h8f` +A :dt:`candidate selected entity` is an :t:`entity` that is visible from +the location of a :t:`path` :t:`under resolution` and is located within a +:t:`resolution context`. + +:dp:`fls_ec4wo8odusqp` +A :dt:`namespace context` is a set of :t:`[namespace]s` where the :t:`[name]s` +of :t:`candidate selected entities ` reside. + +:dp:`fls_9tedg9lpewqa` +A :dt:`resolution context` is a set of :t:`entities ` that informs +:t:`path resolution` by restricting the number of +:t:`candidate selected entities `. + +:dp:`fls_mvymlhp7192e` +The resolution of the leftmost :t:`path segment` of a :t:`path` proceeds as +follows: + +* :dp:`fls_cs485plo4z49` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``crate``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the current :t:`crate`. + +* :dp:`fls_yrpem8vhxpr5` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``$crate``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the :t:`crate` that declares + the :t:`macro` that is being expanded. + +* :dp:`fls_ri50nc2dg7c4` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``self``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the current :t:`module`. + +* :dp:`fls_to52oma1bvx3` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``Self``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is + + * :dp:`fls_kpn2y7xb3s8q` + The :t:`entity` of the :t:`abstract data type`, if the :t:`path` appears + within an :t:`abstract data type`, or + + * :dp:`fls_z71op1vdnazq` + The :t:`entity` of the :t:`implementing type`, if the :t:`path` appears + within an :t:`implementation`, or + + * :dp:`fls_2km29ekj9464` + The :t:`entity` of the :t:`trait`, if the :t:`path` appears within a + :t:`trait`. + +* :dp:`fls_l2y464skbuta` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``super``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + current :t:`module`. + +* :dp:`fls_n2x13sg5szbl` + If the leftmost :t:`path segment` is an :t:`identifier`, then + + * :dp:`fls_53kd7eb1qzuz` + If the :t:`path` is a :t:`global path`, then try to find a + :t:`candidate external prelude entity` whose :t:`name` matches the + characters of the leftmost :t:`path segment`. What the leftmost + :t:`path segment` resolves to and its :t:`resolution context` is that + :t:`candidate external prelude entity`. + + * :dp:`fls_3spnlz9tqnhj` + Otherwise try to find a :t:`candidate direct entity` whose :t:`name` + matches the characters of the leftmost :t:`path segment` and + + * :dp:`fls_Mt6xKI08viYw` + If the :t:`candidate direct entity` is a :t:`module`, and the + :t:`namespace context` is the :t:`type namespace` or the :t:`path` has + more than one :t:`[path segment]s`, and the :t:`identifier` is a :t:`name` + of a :t:`type` of the :t:`language prelude`, then resolution of the + leftmost :t:`path segment` and its :t:`resolution context` is the + :t:`type` of the :t:`language prelude`. + + * :dp:`fls_7hK059djudGN` + Otherwise the resolution of the leftmost :t:`path segment` and its + :t:`resolution context` is that :t:`candidate direct entity`. + +* :dp:`fls_lxa7uhmdoy9d` + If the leftmost :t:`path segment` starts with a :t:`qualified type`, then + + * :dp:`fls_EcaZauRXEGcs` + The leftmost :t:`path segment` resolves to the :t:`qualified type`, and + + * :dp:`fls_xujlscsir05f` + If the :t:`qualified type` is subject to a :t:`qualifying trait`, then the + :t:`resolution context` of the leftmost :t:`path segment` consists of the + :t:`entities ` of all :t:`[implementation]s` of the + :t:`qualified type` that implement the :t:`qualifying trait`. + + * :dp:`fls_wypnvfklnmc1` + Otherwise the :t:`resolution context` of the leftmost :t:`path segment` + consists of the :t:`entity` of the :t:`qualified type`, the + :t:`entities ` of all its :t:`[inherent implementation]s`, and the + :t:`entities ` of all its :t:`[trait implementation]s` of + :t:`[trait]s` that are :t:`in scope`. + +:dp:`fls_zi46lmwsn4rg` +The resolution of the rightmost :t:`path segment` is determined based on the +:t:`path resolution` kind, where the :t:`name` of the +:t:`candidate selected entity` is restricted by the :t:`namespace context`. + +:dp:`fls_bATFGtxjKq0B` +It is a static error if the leftmost :t:`path segment` is an :t:`identifier` +introduced by the :t:`external prelude` that is also :t:`shadowed `. + +.. _fls_bbso3c45kr9z: + +Simple Path Resolution +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_uml24jw5jo7a` +:t:`Simple path resolution` is a kind of :t:`path resolution` that applies to +a :t:`simple path`. + +:dp:`fls_59wd7loxst43` +The :t:`namespace context` of :t:`simple path resolution` is determined as +follows: + +* :dp:`fls_mk0ufkeggot6` + If the :t:`simple path` is part of an :t:`attribute` or a + :t:`macro invocation`, then the :t:`namespace context` is the + :t:`macro namespace`. + +* :dp:`fls_ayv8okec9fwb` + If the :t:`simple path` is part of a :t:`use import`, then the + :t:`namespace context` consists of the :t:`macro namespace`, the + :t:`type namespace`, and the :t:`value namespace`. + +* :dp:`fls_ppoc6wcplab6` + If the :t:`simple path` is part of a :t:`visibility modifier`, then the + :t:`namespace context` consists of the :t:`type namespace`. + +:dp:`fls_dc0yv4306p82` +The leftmost :t:`path segment` of a :t:`simple path` is resolved using general +:t:`path resolution`. The remaining :t:`[path segment]s` are resolved in +left-to-right order, as follows: + +* :dp:`fls_jhivcca0xcqj` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_tfsgutcpube2` + Otherwise try to find a :t:`candidate selected entity` whose :t:`name` + matches the characters of the current :t:`path segment` within the previous + :t:`[path segment]'s` :t:`resolution context`, where if the current + :t:`path segment` is not the rightmost :t:`path segment`, the + :t:`resolution context` is restricted to the :t:`entities ` of + :t:`[module]s`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +.. _fls_o9u2h5m17kpz: + +Path Expression Resolution +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_akjlqm3a2lb1` +:t:`Path expression resolution` is a form of :t:`path resolution` that applies +to a :t:`unqualified path expression`. + +:dp:`fls_xyzdajtf4u2t` +The :t:`namespace context` of :t:`path expression resolution` is the +:t:`value namespace`. + +:dp:`fls_d45vu3iazi3` +The leftmost :t:`path segment` of a :t:`unqualified path expression` is resolved using +general :t:`path resolution`. The remaining :t:`[path segment]s` are resolved +in left-to-right order, as follows: + +* :dp:`fls_9pjhok9rctty` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_2wbpr9lvz5yq` + If the current :t:`path segment` is the rightmost :t:`path segment`, then + + * :dp:`fls_u5nyv6ii1g2l` + If the previous :t:`[path segment]'s` :t:`resolution context` is an + :t:`enum type`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment`, where + the :t:`resolution context` is restricted to the :t:`entities ` of + the :t:`[enum variant]s` of that :t:`enum type`. What the current + :t:`path segment` resolves to and its :t:`resolution context` is that + :t:`candidate selected entity`. + + * :dp:`fls_bscg48os5otx` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_qbmp0blpoxx9` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait` or a :t:`type`, then perform + :t:`path expression resolution implementation candidate lookup` for the + current :t:`path segment` and that :t:`trait` or :t:`type`. + +* :dp:`fls_ydni5laqv6gp` + Otherwise + + * :dp:`fls_lsxbl6ep3150` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`, where the :t:`resolution context` is restricted to the + :t:`entities ` whose :t:`[name]s` reside in the + :t:`type namespace`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_x1n7w8w6lwm` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`trait`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` of that :t:`trait`. + What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_v1h4frnbqruu` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`type`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`type`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` from its + :t:`[inherent implementation]s`, and the :t:`entities ` of all its + :t:`[trait implementation]s` of :t:`[trait]s` that are :t:`in scope`. What + the current :t:`path segment` resolves to and its :t:`resolution context` + is that :t:`candidate selected entity`. + +:dp:`fls_utfpnwlo0v99` +:dt:`Path expression resolution implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_1p8ocf1w5bp4` + Perform + :t:`path expression resolution inherent implementation candidate lookup` for + the :t:`path segment` and the :t:`trait` or :t:`type`. + +#. :dp:`fls_qb5yo7j5gnvf` + Perform + :t:`path expression resolution trait implementation candidate lookup` for + the :t:`path segment` and the :t:`trait` or :t:`type`. + +:dp:`fls_o1g0forw6xw` +:dt:`Path expression resolution inherent implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_bcqe13q696zg` + For each :t:`inherent implementation` in the set of + :t:`[inherent implementation]s` of the :t:`trait` or :t:`type` where the + :t:`implementing type` :t:`unifies ` with the :t:`trait` or :t:`type` + + #. :dp:`fls_3sceutaqpqha` + Try to locate a visible :t:`constant` or a visible :t:`function` in the + :t:`inherent implementation` whose :t:`name` matches the characters of + the :t:`path segment`. + + #. :dp:`fls_6q9cwqlvxmd1` + If such a :t:`constant` or :t:`function` exists, then the + :t:`path segment` resolves to that :t:`constant` or :t:`function` and + :t:`path expression resolution` stops. + +:dp:`fls_qeym3vbi36iv` +:dt:`Path expression resolution trait implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_8x0pqwpm80sj` + For each :t:`trait implementation` of the :t:`trait` or :t:`type` where the + :t:`implemented trait` is :t:`in scope` + + #. :dp:`fls_pp09gmrnasjp` + Try to locate a visible :t:`constant` or a visible :t:`function` in the + :t:`trait implementation` whose :t:`name` matches the characters of the + :t:`path segment`. + + #. :dp:`fls_q0jt6n2j1hsx` + If such a :t:`constant` or :t:`function` exists, then the + :t:`path segment` resolves to that :t:`constant` or :t:`function` and + :t:`path expression resolution` stops. + +.. _fls_1h0olpc7vbui: + +Type Path Resolution +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_2zuncql8ir5k` +:t:`Type path resolution` is a form of :t:`path resolution` that applies to +a :t:`type path`. + +:dp:`fls_bv5cj918dqqe` +The :t:`namespace context` of :t:`type path resolution` is the +:t:`type namespace`. + +:dp:`fls_bsakzuteuh5s` +The leftmost :t:`path segment` of a :t:`type path` is resolved using general +:t:`path resolution`. The remaining :t:`[path segment]s` are resolved in +left-to-right order, as follows: + +* :dp:`fls_j1ewjisx0mc2` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_o4snu1him277` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +* :dp:`fls_goe8q52toik2` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait`, then try to find a :t:`candidate selected entity` whose :t:`name` + matches the characters of the current :t:`path segment` within that + :t:`trait`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` of that :t:`trait`. + What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +* :dp:`fls_4rs35f6ydckj` + If the previous :t:`[path segment]'s` :t:`resolution context` is a :t:`type`, + then try to find a :t:`candidate selected entity` whose :t:`name` matches + the characters of the current :t:`path segment` within that :t:`type`, + where the :t:`resolution context` is restricted to the :t:`entities ` + of all :t:`[associated item]s` from its :t:`[inherent implementation]s`, and + the :t:`entities ` of all its :t:`[trait implementation]s` of + :t:`[trait]s` that are :t:`in scope`. What the current :t:`path segment` + resolves to and its :t:`resolution context` is that + :t:`candidate selected entity`. + +* :dp:`fls_jh4db1p7or0x` + If the current :t:`path segment` has a :t:`qualified fn trait`, then the + current :t:`path segment` shall resolve to either the :std:`core::ops::Fn`, + :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` :t:`trait`. diff --git a/_sources/exceptions-and-errors.rst.txt b/_sources/exceptions-and-errors.rst.txt new file mode 100644 index 00000000..d9b354fc --- /dev/null +++ b/_sources/exceptions-and-errors.rst.txt @@ -0,0 +1,87 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_dzq9cdz4ibsz: + +Exceptions and Errors +===================== + +.. rubric:: Legality Rules + +:dp:`fls_vsk4vhnuiyyz` +The Rust programming language lacks exceptions and exception handlers. Instead, +the language uses the following tiered error handling scheme: + +* :dp:`fls_ebangxc36t74` + A possibly absent :t:`value` is usually represented using :t:`enum` + :std:`core::option::Option`. + +* :dp:`fls_ckeitwiv326r` + The result of a possibly erroneous computation is usually represented using + :t:`enum` :std:`core::result::Result`. + +* :dp:`fls_eg0orgibg98m` + Erroneous behavior is signaled using :t:`macro` :std:`core::panic`. + +:dp:`fls_ko1x0gp9e7y3` +:t:`Enum` :std:`core::option::Option` indicates whether a :t:`value` is +either present using :std:`core::option::Option::Some` or absent using +:std:`core::option::Option::None`. + +:dp:`fls_gwu4cn4ziabe` +:t:`Enum` :std:`core::result::Result` indicates whether a computation completed +successfully and produced a :t:`value` using :std:`core::result::Result::Ok` or +the computation failed with an error using :std:`core::result::Result::Err`. + +.. _fls_k02nt1m5fq1z: + +Panic +----- + +.. rubric:: Legality Rules + +:dp:`fls_a554v4n0khye` +A :t:`panic` is an abnormal program state caused by invoking :t:`macro` +:std:`core::panic`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_i9njhpte5l0t` +Invoking :t:`macro` :std:`core::panic` has the following runtime effects: + +#. :dp:`fls_n6q7bksyn1m` + Control flow halts the execution of the current thread. + +#. :dp:`fls_xmtt04lw517w` + Control flow of the current thread resumes execution by invoking the + :t:`function` subject to :t:`attribute` :c:`panic_handler`. + +.. rubric:: Examples + +.. code-block:: rust + + panic!("This was a terrible mistake!"); + +.. _fls_hi1iz0gbnksi: + +Abort +----- + +.. rubric:: Legality Rules + +:dp:`fls_9a1izu3omkbn` +:t:`Abort` is the immediate termination of a program. + +.. rubric:: Dynamic Semantics + +:dp:`fls_iq6olct3rw4u` +:t:`Abort` has the following runtime effects: + +#. :dp:`fls_wd2q6ft9yzrg` + Control flow halts the execution of all threads. + +#. :dp:`fls_7bnrbjb0pq5n` + The program terminates. + diff --git a/_sources/expressions.rst.txt b/_sources/expressions.rst.txt new file mode 100644 index 00000000..063a50ff --- /dev/null +++ b/_sources/expressions.rst.txt @@ -0,0 +1,5070 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_ckvjj4tt1hh2: + +Expressions +=========== + +.. rubric:: Syntax + +.. syntax:: + + Expression ::= + ExpressionWithBlock + | ExpressionWithoutBlock + + ExpressionWithBlock ::= + OuterAttributeOrDoc* ( + AsyncBlockExpression + | BlockExpression + | IfExpression + | IfLetExpression + | LoopExpression + | MatchExpression + | UnsafeBlockExpression + | NamedBlockExpression + ) + + ExpressionWithoutBlock ::= + OuterAttributeOrDoc* ( + ArrayExpression + | AwaitExpression + | BreakExpression + | CallExpression + | ClosureExpression + | ContinueExpression + | FieldAccessExpression + | IndexExpression + | LiteralExpression + | MethodCallExpression + | MacroInvocation + | OperatorExpression + | ParenthesizedExpression + | PathExpression + | RangeExpression + | ReturnExpression + | StructExpression + | TupleExpression + | UnderscoreExpression + ) + + ExpressionList ::= + Expression ($$,$$ Expression)* $$,$$? + + Operand ::= + Expression + + LeftOperand ::= + Operand + + RightOperand ::= + Operand + +:dp:`fls_pwut2jbmk66k` +A :ds:`SubjectExpression` is any expression in category :s:`Expression`, except +:s:`StructExpression`. + +:dp:`fls_361q9ljc6ybz` +A :ds:`SubjectLetExpression` is any expression in category +:s:`SubjectExpression`, except :s:`LazyBooleanExpression`. + +.. rubric:: Legality Rules + +:dp:`fls_h5o6tgul4yor` +An :t:`expression` is a :t:`construct` that produces a :t:`value`, and may have +side effects at run-time. + +:dp:`fls_xmklb3070sp` +An :t:`expression-with-block` is an :t:`expression` whose structure involves a +:t:`block expression`. + +:dp:`fls_p15oeage4j0e` +An :t:`expression-without-block` is an :t:`expression` whose structure does not +involve a :t:`block expression`. + +:dp:`fls_gwgttltgjma4` +An :t:`operand` is an :t:`expression` nested within an :t:`expression`. + +:dp:`fls_1r29rtnjlkql` +A :t:`left operand` is an :t:`operand` that appears on the left-hand side of a +:t:`binary operator`. + +:dp:`fls_qxdpyf4u3hbz` +A :t:`right operand` is an :t:`operand` that appears on the right-hand side of a +:t:`binary operator`. + +:dp:`fls_2j132xueobfv` +A :t:`subject expression` is an :t:`expression` that controls :t:`[for loop]s`, +:t:`[if expression]s`, and :t:`[match expression]s`. + +:dp:`fls_a243nclqqjlu` +A :t:`subject let expression` is an :t:`expression` that controls +:t:`[if let expression]s` and :t:`[while let loop]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1223lwh4nq49` +:t:`Evaluation` is the process by which an :t:`expression` achieves its runtime +effects. + +.. _fls_isyftqu120l: + +Expression Classification +------------------------- + +.. _fls_3ut3biyra4r9: + +Assignee Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_oqj7s9fi3j3j` +An :t:`assignee expression` is an :t:`expression` that appears as the +:t:`left operand` of an :t:`assignment expression`. The following +:t:`[expression]s` are :t:`[assignee expression]s`: + +* :dp:`fls_skopz71arbwa` + :t:`[Place expression]s`, + +* :dp:`fls_vxrg6preh46x` + :t:`[Underscore expression]s`, + +* :dp:`fls_yso6dmog0an2` + :t:`[Array expression]s` of :t:`[assignee expression]s`, + +* :dp:`fls_1tsdlpgkgb2u` + :t:`[Struct expression]s` of :t:`[assignee expression]s`. + +* :dp:`fls_hier3b8knpuq` + :t:`[Tuple expression]s` of :t:`[assignee expression]s`, + +* :dp:`fls_horl3qcfdb0k` + :t:`[Tuple struct call expression]s` of :t:`[assignee expression]s`, + +:dp:`fls_1smb3tj9pxsq` +:t:`[Parenthesized expression]s` are allowed to appear anywhere in +:t:`[assignee expression]s`. + +.. _fls_66m4rnbssgig: + +Constant Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_1ji7368ieg0b` +A :t:`constant expression` is an :t:`expression` that can be evaluated +statically. The following :t:`[construct]s` are :t:`[constant expression]s` as +long as their :t:`[operand]s` are also :t:`[constant expression]s` and do not +involve :t:`[type]s` that require :t:`destruction`: + +* :dp:`fls_y6ore0iwx7e0` + :t:`[Arithmetic expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_xguga84v3j8u` + :t:`[Array expression]s`, + +* :dp:`fls_idxf02p7jogu` + :t:`[Assignment expression]s`, + +* :dp:`fls_6z45ss502alt` + :t:`[Bit expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_wqs0792nud4e` + :t:`[Block expression]s`, + +* :dp:`fls_490a1b74fut6` + :t:`[Call expression]s` where the callee is a :t:`constant function`, + +* :dp:`fls_8nyu6phm1nji` + :t:`[Closure expression]s` that do not :t:`capture `, + +* :dp:`fls_8wux08bmpse` + :t:`[Comparison expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_v1bnk7neb82a` + :t:`[Compound assignment expression]s`, + +* :dp:`fls_6fq6bvxxvhsr` + :t:`[Constant parameter]s`, + +* :dp:`fls_to4e7imq2c0w` + :t:`[Dereference expression]s` when the :t:`operand` is not of a + :t:`raw pointer type`, + +* :dp:`fls_krtbrpwf3mh0` + :t:`[Expression statement]s`, + +* :dp:`fls_3etom5uu8y4u` + :t:`[Field access expression]s` that do not invoke the :std:`core::ops::Deref` + :t:`trait`, + +* :dp:`fls_qls0wj8bmupz` + :t:`[If expression]s`, + +* :dp:`fls_b5fraqx07wuo` + :t:`[If let expression]s`, + +* :dp:`fls_6g7c1kjrmfnr` + :t:`[Immutable borrow expression]s` where the borrowed :t:`type` is not + subject to :t:`interior mutability`. + +* :dp:`fls_rpapnm3afan8` + :t:`[Index expression]s`, + +* :dp:`fls_fc62yaqyjpl2` + :t:`[Infinite loop expression]s`, + +* :dp:`fls_kwg8a351vc7` + :t:`[Lazy boolean expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_7mjv1xd45qr4` + :t:`[Let statement]s`, + +* :dp:`fls_g7hoyfqy9mu1` + :t:`[Literal expression]s`, + +* :dp:`fls_br4g7qwfczig` + :t:`[Match expression]s`, + +* :dp:`fls_w4lpq9bs8tsc` + :t:`[Method call expression]s` where the callee is a :t:`constant function` or + do not invoke the :std:`core::ops::Deref` :t:`trait`, + +* :dp:`fls_y1ezabo61nyk` + :t:`[Negation expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_6tb74n6lu0wf` + :t:`[Parenthesized expression]s`, + +* :dp:`fls_axwrv7b3zt55` + :t:`[Path expression]s` that resolve to :t:`[associated constant]s`, + :t:`[constant]s`, :t:`[constant parameter]s`, :t:`[function]s`, + :t:`[static]s`, :t:`[tuple struct]s`, and :t:`[unit struct]s`, + +* :dp:`fls_3bucpdj828bq` + :t:`[Range expression]s`, + +* :dp:`fls_hkbwa8xx2fwx` + :t:`[Shared borrow]s` that do not involve :t:`[type]s` with + :t:`interior mutability`, + +* :dp:`fls_fobs8ebt7dhc` + :t:`[Struct expression]s`, + +* :dp:`fls_dyo3o1h3keqr` + :t:`[Tuple expression]s`, + +* :dp:`fls_e0a1e8ddph7` + :t:`[Type cast expression]s` that are not :t:`[pointer-to-address cast]s`, + :t:`[function-pointer-to-address cast]s`, and :t:`[unsized coercion]s` that + involve a :t:`trait object type`, + +* :dp:`fls_zcuzhw7qkzkr` + :t:`[Unsafe block expression]s`, + +* :dp:`fls_pbpzkfo1fgtz` + :t:`[While let loop expression]s`, + +* :dp:`fls_qvofy4wkql0s` + :t:`[While loop expression]s`. + +:dp:`fls_3i7efddbsmn0` +An :t:`expression` is not considered a :t:`constant expression` when it +explicitly invokes an :t:`associated trait function` or uses +:t:`[arithmetic operator]s` of non-builtin :t:`[type]s` that invoke +:std:`core::ops` :t:`[trait]s`. + +:dp:`fls_9mrrosm8jnn7` +An :t:`arithmetic expression` that operates with :t:`[floating-point value]s` is +not considered a :t:`constant expression` when it appears inside the +:t:`function body` of a :t:`constant function`. + +:dp:`fls_fmqar6o1bwqk` +It is a static error if the :t:`size operand` of an +:t:`array repetition constructor` or an :t:`array type` depends on +:t:`[generic parameter]s`. + +:dp:`fls_kjhma680hz3g` +A :t:`constant context` is a :t:`construct` that requires a +:t:`constant expression`. The following :t:`[construct]s` are +:t:`[constant context]s`: + +* :dp:`fls_ljc6jq5ksbcs` + The :t:`constant initializer` of an :t:`associated constant` or a + :t:`constant`, + +* :dp:`fls_3of516eo0kkx` + The :t:`constant argument` for a :t:`constant parameter`, + +* :dp:`fls_yiks5bvojncc` + The default :t:`value` of a :t:`constant parameter`, + +* :dp:`fls_66m2hwkju0vv` + The :t:`discriminant initializer` of an :t:`enum variant`, + +* :dp:`fls_fsn32kmwg65u` + The :t:`size operand` of an :t:`array repetition constructor`, + +* :dp:`fls_j6kffhbxdm7o` + The :t:`size operand` of an :t:`array type`, + +* :dp:`fls_ib8p7dfwddx2` + The :t:`static initializer` of a :t:`static`. + +:dp:`fls_ox6sgl9n43g2` +It is a static error to create a :t:`mutable reference` in a +:t:`constant context`. + +:dp:`fls_od0h3v40kjp6` +An invocation of the :std:`core::ptr::addr_of` :t:`macro` expands to a +:t:`constant expression` allowed in any :t:`constant context` and +:t:`constant function`, subject to the same restrictions as a +:t:`immutable borrow expression`. + +:dp:`fls_6sc556tz4oxd` +An invocation of the :std:`core::panic` :t:`macro` expands to a +:t:`constant expression` allowed in any :t:`constant context` and +:t:`constant function`, as long as the :t:`macro` is either invoked without +arguments, or with a single :t:`string literal` that does not +:t:`capture ` formatting arguments. + +:dp:`fls_b1vfpvsdv38` +A :t:`constant expression` is evaluated statically whenever its :t:`value` is +needed. + +:dp:`fls_b46nyamfqxdu` +The :t:`evaluation` of a :t:`constant expression` that results in +:t:`arithmetic overflow` :t:`[panic]s`. + +:dp:`fls_ms9vey2wymqp` +It is a static error if a :t:`constant expression` either :t:`[panic]s` or +control reaches the invocation of :t:`macro` :std:`core::panic`. + +:dp:`fls_XopG4yS9Q4q1` +It is a static error if the evaluation of a :t:`constant expression` results in +a :t:`value` that is unaligned. + +.. rubric:: Dynamic Semantics + +:dp:`fls_tg0kya5125jt` +The invocation of a :t:`constant function` follows the dynamic semantics of a +:t:`non-[constant function]` invocation. + +.. _fls_zJOAmSr3Dbqk: + +Diverging Expressions +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_oth9vFtcb9l4` +A :t:`diverging expression` is an :t:`expression` whose :t:`evaluation` causes +program flow to diverge from the normal :t:`evaluation` order. + +:dp:`fls_cmBVodJMjZi7` +:t:`[Diverging expression]s` are: + +* :dp:`fls_xsOgdiIzysP1` + :t:`[Break expression]s`, + +* :dp:`fls_xqxdHziqgWf5` + :t:`[Return expression]s`, + +* :dp:`fls_fU91m6DCB0ip` + :t:`[Loop expression]s` that are not the target of any + :t:`[break expression]s`, + +* :dp:`fls_4wDpAHhnWZAB` + :t:`[Call expression]s` and :t:`[method call expression]s` if the :t:`return + type` of the :t:`call operand` is the :t:`never type`, + +* :dp:`fls_7HA5UThwjbQj` + Invocations of the :std:`core::panic` :t:`macro`, + +* :dp:`fls_pdDr8Lk1GQ0T` + Any :t:`expression` whose :t:`evaluation` requires the :t:`evaluation` of a + diverging :t:`subexpression` on all reachable control flow paths. + +.. _fls_6ydylimiv553: + +Place Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_qbrcg3cl9td` +A :t:`place expression` is an :t:`expression` that represents a memory +location. The following :t:`[expression]s` are :t:`[place expression]s`: + +* :dp:`fls_jpmhibm4omm7` + :t:`[Dereference expression]s`, + +* :dp:`fls_none1dykbn8c` + :t:`[Field access expression]s`, + +* :dp:`fls_lj7x5dgbmg9i` + :t:`[Index expression]s`, + +* :dp:`fls_anzidgx02lly` + :t:`[Parenthesized expression]s` where the :t:`operand` is a + :t:`place expression`, + +* :dp:`fls_ya05djl1d154` + :t:`[Path expression]s` that resolve to a :t:`static` or a :t:`variable`. + +* :dp:`fls_gv4M0DE3OMwk` + A :t:`temporary`. + +:dp:`fls_ku38h562vfyl` +A :t:`mutable place expression` is a :t:`place expression` whose memory +location can be modified. The following :t:`[place expression]s` are +:t:`[mutable place expression]s`: + +* :dp:`fls_1tq2o2huda9l` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` implements the + :std:`core::ops::DerefMut` :t:`trait`, + +* :dp:`fls_6b4rwkrc1ap6` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` is a + :t:`mutable raw pointer type`, + +* :dp:`fls_s4bhrpykzmm7` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` is a + :t:`mutable reference type`, + +* :dp:`fls_xm0gm2q27x2e` + A :t:`field access expression` where the :t:`container operand` is a + :t:`mutable place expression`, + +* :dp:`fls_bt50fltfqcvn` + An :t:`index expression` whose :t:`type` implements the + :std:`core::ops::IndexMut` :t:`trait`, + +* :dp:`fls_Sgfxp186GMvz` + :t:`[Parenthesized expression]s` where the :t:`operand` is a + :t:`mutable place expression`, + +* :dp:`fls_ilaqmj3hc5uv` + A :t:`path expression` that resolves to a :t:`mutable static`, + +* :dp:`fls_m0gbw9myylv2` + A :t:`path expression` that resolves to a :t:`mutable variable` that is not + currently borrowed, + +* :dp:`fls_dcm3yr3y9y0a` + A :t:`temporary`. + +:dp:`fls_cPEMHZtPkctX` +An :t:`immutable place expression` is a :t:`place expression` whose memory +location cannot be modified. All :t:`[place expression]s` that are not +:t:`[mutable place expression]s` are :t:`[immutable place expression]s`. + +:dp:`fls_4vxi1ji93dxb` +A :t:`place expression context` is a :t:`construct` that may evaluate its +:t:`operand` as a memory location. + +:dp:`fls_fzsrdrHnndRd` +The following :t:`[construct]s` are :t:`[place expression context]s`: + +* :dp:`fls_ZED5wJQVO6nf` + The :t:`assignee operand` of an :t:`assignment expression` or a + :t:`compound assignment expression`, + +* :dp:`fls_Ufz9W5vyZkv3` + The :t:`operand` of a :t:`borrow expression`, + +* :dp:`fls_KxWIzoh9WwK7` + The :t:`operand` of a :t:`dereference expression`, + +* :dp:`fls_oV9Hd6OiFAZX` + The :t:`container operand` of a :t:`field access expression`, + +* :dp:`fls_NnGiNsH6Zgmp` + The initialization :t:`expression` of a :t:`let statement`, + +* :dp:`fls_jLZlxIHr4w2v` + The :t:`operand` of an :t:`implicit borrow`, + +* :dp:`fls_giZ7w1G02JSg` + The :t:`indexed operand` of an :t:`index expression`, + +* :dp:`fls_5yXuTLQOQ3cc` + The :t:`subject let expression` of an :t:`if let expression` or a + :t:`while let loop expression`, + +* :dp:`fls_nman7mJVSQlm` + The :t:`subject expression` of a :t:`match expression`, + +* :dp:`fls_JBfZuFDQg3mU` + The :t:`base initializer` of a :t:`struct expression`. + +:dp:`fls_wxGAOWEVT77u` +A :t:`mutable place expression context` is a :t:`place expression context` that +may evaluate its :t:`operand` as a mutable memory location. The following +:t:`[construct]s` are :t:`[mutable place expression context]s`: + +* :dp:`fls_qytgkbhqr5ln` + The :t:`indexed operand` of an :t:`index expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_5gy92rsi2mqm` + The :t:`assignee operand` of an :t:`assignment expression` or a + :t:`compound assignment expression`, + +* :dp:`fls_u80htrnr2ebz` + The :t:`operand` of a mutable :t:`borrow expression`, + +* :dp:`fls_o0feajus3jtu` + The :t:`operand` of a :t:`dereference expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_ffjx1d5dseo4` + The :t:`container operand` of :t:`field access expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_9r7dopqf1nzl` + The :t:`subject let expression` of an :t:`if let expression` or a + :t:`while let loop expression`, + +* :dp:`fls_o76QXHyrrJPG` + The :t:`operand` of a mutable :t:`implicit borrow`, + +* :dp:`fls_ka5b87tkf8t6` + The initialization :t:`expression` of a :t:`let statement`, + +* :dp:`fls_brwv1zwu37e8` + The :t:`subject expression` of a :t:`match expression`, + +:dp:`fls_4axr4V0icdBP` +A :t:`place expression` that is evaluated in a :t:`value expression context` +or bound :t:`by value` in a :t:`pattern` denotes the :t:`value` held in the +memory location of the :t:`place expression`. Such an evaluation is subject to +:t:`[passing convention]s`. + +.. _fls_e7zgqroy2qxn: + +Value Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_7q4hrt6yfr9b` +A :t:`value expression` is an :t:`expression` that represents a :t:`value`. +All :t:`[expression]s` that are not :t:`[place expression]s` are +:t:`[value expression]s`. + +:dp:`fls_pB6xlp4uAg37` +A :t:`value expression context` is an expression context that is not a +:t:`place expression context`. + +:dp:`fls_8uhfwqurbyqf` +The evaluation of a :t:`value expression` in a :t:`place expression context` +shall evaluate the :t:`value expression` as a :t:`temporary` and then use the +:t:`temporary` in the :t:`place expression context`. + +.. _fls_h0dvogc64tfh: + +Literal Expressions +------------------- + +.. rubric:: Syntax + +.. syntax:: + + LiteralExpression ::= + Literal + +.. rubric:: Legality Rules + +:dp:`fls_rbwwczom3agt` +A :t:`literal expression` is an :t:`expression` that denotes a :t:`literal`. + +:dp:`fls_w30su9x4q13r` +The :t:`type` of a :t:`literal expression` is the :t:`type` of the corresponding +:t:`literal`. + +:dp:`fls_wdpbg5xzgmwu` +The :t:`value` of a :t:`literal expression` is the :t:`value` of the +corresponding :t:`literal`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g061yzws1m45` +The :t:`evaluation` of a :t:`literal expression` has no effect. + +.. rubric:: Examples + +.. code-block:: rust + + 5 + 'a' + "hello" + +.. _fls_6l60b5hwnjbm: + +Path Expressions +---------------- + +.. rubric:: Syntax + +.. syntax:: + + PathExpression ::= + UnqualifiedPathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_gvanx4874ycy` +A :t:`path expression` is an :t:`expression` that denotes a :t:`path`. + +:dp:`fls_EOkrcIj9CuhV` +A :t:`path expression` shall resolve to either a :t:`constant parameter`, a +:t:`constant`, a :t:`function`, a :t:`static`, a :t:`tuple enum variant`, a +:t:`tuple struct`, a :t:`unit enum variant`, a :t:`unit struct`, or a +:t:`variable`. + +:dp:`fls_gz67ju6l7uhn` +A :t:`path expression` that resolves to a :t:`mutable static` shall require +:t:`unsafe context`. + +:dp:`fls_cjywisyiyti6` +The :t:`type` of a :t:`path expression` is the :t:`type` of the :t:`entity` that +it resolved to. + +:dp:`fls_5ifai8nkp5ek` +The :t:`value` of a :t:`path expression` is the :t:`entity` that it resolved to. + +.. rubric:: Examples + +.. code-block:: rust + + globals::STATIC_VARIABLE + Vec::::push + +.. _fls_hndm19t57wby: + +Block Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + BlockExpression ::= + $${$$ + InnerAttributeOrDoc* + StatementList + $$}$$ + + StatementList ::= + Statement* Expression? + +.. rubric:: Legality Rules + +:dp:`fls_nf65p0l0v0gr` +A :t:`block expression` is an :t:`expression` that sequences :t:`[expression]s` +and :t:`[statement]s`. + +:dp:`fls_tn3hj7k2lliu` +A :t:`tail expression` is the last :t:`expression` within a :t:`block +expression`. + +:dp:`fls_DfCne8YWevLE` +When the remaining :t:`[lexical element]s` of a :s:`StatementList` match either +an :s:`Expression` or :s:`Statement` they are interpreted as an :s:`Expression`. + +:dp:`fls_u4gj2lnkq9ub` +The :t:`type` of a :t:`block expression` is determined as follows: + +* :dp:`fls_ltEygvWDtHXE` + If the :t:`block expression` contains at least one :t:`break expression` and + has a :t:`tail expression`, then the :t:`type` is the :t:`unified type` of + the :t:`break types` of all :t:`[break expression]s` and the :t:`type` of the + :t:`tail expression`. + +* :dp:`fls_97v4fnekrRXI` + Otherwise, if the :t:`block expression` contains at least one + :t:`break expression`, then the :t:`type` is the :t:`unified type` of the + :t:`break types` of all :t:`[break expression]s`. + +* :dp:`fls_ob76y2ymdd27` + Otherwise, if the :t:`block expression` has a :t:`tail expression`, then the + :t:`type` is the :t:`type` of the :t:`tail expression`. + +* :dp:`fls_u0avbm147nyh` + Otherwise the :t:`type` is the :t:`unit type`. + +:dp:`fls_1hzup0sf8l7l` +The :t:`value` of a :t:`block expression` is determined as follows: + +* :dp:`fls_kKZPKvJ902cw` + If the :t:`block expression` contains at least one :t:`break expression` and + a :t:`break expression` broke out the :t:`block expression`, then the + :t:`value` is the :t:`break value` of the :t:`break expression` that + broke out of the :t:`block expression`. + +* :dp:`fls_9nmssjseq3jt` + Otherwise, if the :t:`block expression` has a :t:`tail expression`, then the + :t:`value` is the :t:`value` of the :t:`tail expression`. + +* :dp:`fls_a3ulnvyc1ut` + Otherwise the :t:`value` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_elcl73psruxw` +The :t:`evaluation` of a :t:`block expression` proceeds as follows: + +#. :dp:`fls_13b5n127rj92` + Each :t:`statement` is executed in declarative order. + +#. :dp:`fls_nzdpw59plr2g` + The :t:`tail expression` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + { + fn_call(); + 42 + } + +.. _fls_aadan19t5006: + +Async Blocks +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + AsyncBlockExpression ::= + $$async$$ $$move$$? BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_hhidi5ukxo` +An :t:`async block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``async`` and encapsulates behavior which is executed in +an asynchronous manner. + +:dp:`fls_oisws5qykedi` +An :t:`async block expression` denotes a new :t:`async control flow boundary`. + +:dp:`fls_tzclkasinpoq` +An :t:`async block expression` is subject to :t:`capturing`. + +:dp:`fls_ncd0wkgtldem` +The :t:`type` of an :t:`async block expression` is a unique anonymous :t:`type` +that implement the :std:`core::future::Future` trait. + +:dp:`fls_pvnofoomgwl5` +The :t:`value` of an :t:`async block expression` is a :t:`value` of the +:t:`async block expression`'s :t:`type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_9ghp5yet75y6` +The :t:`evaluation` of an :t:`async block expression` produces a :t:`value` of +the :t:`type` of the :t:`async block expression` that :t:`captures ` +the :t:`[capture target]s` of the :t:`async block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + async { + 42 + } + +.. _fls_0ybsR1hEo7wV: + +Named Blocks +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NamedBlockExpression ::= + Label BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_J8wJNfcSAYrS` +A :t:`named block expression` is a :t:`block expression` with a :t:`label`. + +:dp:`fls_B4NBv2jfZLuy` +The :t:`type` of the :t:`named block expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_YxvAUUYAPkaq` +The :t:`value` of the :t:`named block expression` is the :t:`value` of its +:t:`block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + 'block: { + break 'block 1; + 3 + } + +.. _fls_8wnyln2nmg4y: + +Unsafe Blocks +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnsafeBlockExpression ::= + $$unsafe$$ BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_2az5huhcxzzy` +An :t:`unsafe block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``unsafe``. + +:dp:`fls_5ucvvja4dzoc` +An :t:`unsafe block expression` allows :t:`unsafety`. + +:dp:`fls_j3mmg317q442` +The :t:`type` of the :t:`unsafe block expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_nygurv3x3wq6` +The :t:`value` of the :t:`unsafe block expression` is the :t:`value` of its +:t:`block expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_pv5gcy3tbjwo` +The :t:`evaluation` of an :t:`unsafe block expression` evaluates its +:t:`block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + unsafe { + unsafe_fn_call() + } + +.. _fls_izdv9i4spokw: + +Operator Expressions +-------------------- + +.. rubric:: Syntax + +.. syntax:: + + OperatorExpression ::= + ArithmeticExpression + | AssignmentExpression + | BitExpression + | BorrowExpression + | ComparisonExpression + | CompoundAssignmentExpression + | DereferenceExpression + | ErrorPropagationExpression + | LazyBooleanExpression + | NegationExpression + | TypeCastExpression + +.. rubric:: Legality Rules + +:dp:`fls_ursc5ynymoy` +An :t:`operator expression` is an :t:`expression` that involves an operator. + +.. _fls_qztk0bkju9u: + +Borrow Expression +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BorrowExpression ::= + $$&$$ $$mut$$? Operand + +.. rubric:: Legality Rules + +:dp:`fls_nnqfkl228hjx` +A :t:`borrow expression` is an :t:`expression` that borrows the :t:`value` of +its :t:`operand` and creates a :t:`reference` to the memory location of its +:t:`operand`. + +:dp:`fls_r7ix8webgqlm` +An :t:`immutable borrow expression` is a :t:`borrow expression` that lacks +:t:`keyword` ``mut``. + +:dp:`fls_50j167r4v61b` +A :t:`mutable borrow expression` is a :t:`borrow expression` that has +:t:`keyword` ``mut``. + +:dp:`fls_ya77l2zgtilp` +When the :t:`operand` of a :t:`borrow expression` is a :t:`place expression`, +the :t:`borrow expression` produces a :t:`reference` to the memory location +indicated by the :t:`operand`. The memory location is placed in a borrowed +state, or simply :t:`borrowed`. + +:dp:`fls_chr03xll75d` +The :t:`type` of a :t:`borrow expression` is determined as follows: + +* :dp:`fls_5b2x5ri2w54r` + If the :t:`borrow expression` denotes a :t:`shared reference`, then the + :t:`type` is ``&T``, where ``T`` is the :t:`type` of the :t:`operand`. + +* :dp:`fls_agl09ia869rk` + If the :t:`borrow expression` denotes a :t:`mutable reference`, then the + :t:`type` is ``&mut T``, where ``T`` is the :t:`type` of the :t:`operand`. + +:dp:`fls_8cvmee9bzs40` +The :t:`value` of a :t:`borrow expression` is the address of its :t:`operand`. + +:dp:`fls_LuaPBicDlDTT` +It is a static error if a :t:`borrow expression` would create an unaligned +reference to a :t:`field` in an :t:`abstract data type` subject to +:t:`attribute` :c:`repr`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2jd0mgw4zja4` +The :t:`evaluation` of a :t:`borrow expression` evaluates its :t:`operand`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut answer = 42; + +:dp:`fls_350qejoq9i23` +Mutable borrow. + +.. syntax:: + + let ref_answer = &mut answer; + +.. _fls_5cm4gkt55hjh: + +Dereference Expression +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + DereferenceExpression ::= + $$*$$ Operand + +.. rubric:: Legality Rules + +:dp:`fls_f6wktzofzdn1` +A :t:`dereference expression` is an :t:`expression` that obtains the pointed-to +memory location of its :t:`operand`. + +:dp:`fls_aeh5pzpcjveq` +When the :t:`operand` of a :t:`dereference expression` is of a :t:`pointer +type`, the :t:`dereference expression` denotes the pointed-to memory location of +the :t:`operand`, or the :t:`dereference` of the :t:`operand`. + +:dp:`fls_9cc0ml2sru6x` +The :t:`dereference` is assignable when the :t:`dereference expression` is a +:t:`mutable place expression`. + +:dp:`fls_8i4jzksxlrw0` +Dereferencing a :t:`raw pointer` shall require :t:`unsafe context`. + +:dp:`fls_d68ddlse4zp` +If the context of a :t:`dereference expression` is an +:t:`immutable place expression context`, then the :t:`dereference expression` +is equivalent to :t:`expression` ``*core::ops::Deref::deref(&operand)``. + +:dp:`fls_g73vguanbs1x` +If the context of a :t:`dereference expression` is a +:t:`mutable place expression context`, then the :t:`dereference expression` +is equivalent to :t:`expression` +``*core::ops::DerefMut::deref_mut(&mut operand)``. + +:dp:`fls_8ibfqxtnahzx` +The :t:`type` of a :t:`dereference expression` is determined as follows: + +* :dp:`fls_7e7tka4f2f1a` + If the :t:`type` of the :t:`operand` is ``&mut T``, ``&T``, ``*mut T``, or + ``*const T``, then the :t:`type` is ``T``. + +* :dp:`fls_y9bc691kkh6v` + Otherwise the :t:`type` is :t:`associated type` + :std:`core::ops::Deref::Target`. + +:dp:`fls_gw49nukfveib` +The :t:`value` of a :t:`dereference expression` is determined as follows: + +* :dp:`fls_jjf3sz9ddfhy` + If the :t:`type` of the :t:`operand` is ``&mut T``, ``&T``, ``*mut T``, or + ``*const T``, then the :t:`value` is the pointed-to :t:`value`. + +* :dp:`fls_fyend8kkpqq4` + Otherwise the :t:`value` is the result of evaluating :t:`expression` + ``*core::ops::Deref::deref(&operand)`` or :t:`expression` + ``*core::ops::DerefMut::deref_mut(&mut operand)`` respectively. + +.. rubric:: Dynamic Semantics + +:dp:`fls_72bpdsxxbgeq` +The :t:`evaluation` of a :t:`dereference expression` evaluates its :t:`operand`. + +.. rubric:: Undefined Behavior + +:dp:`fls_9wgldua1u8yt` +It is undefined behavior to dereference a :t:`raw pointer` that is either +:t:`dangling` or unaligned. + +.. rubric:: Examples + +:dp:`fls_9ifaterm8nop` +See :p:`6.4.1. ` for the declaration of ``ref_answer``. + +.. code-block:: rust + + let deref_asnwer = *ref_answer; + +.. _fls_pocsh1neugpc: + +Error Propagation Expression +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ErrorPropagationExpression ::= + Operand $$?$$ + +.. rubric:: Legality Rules + +:dp:`fls_8q59wbumrt5s` +An :t:`error propagation expression` is an :t:`expression` that either evaluates +to a :t:`value` of its :t:`operand` or returns a value to the enclosing control +flow boundary. + +:dp:`fls_mq2h4seoxah` +An :t:`error propagation expression` shall appear within a :t:`control flow +boundary`. + +:dp:`fls_ab4vhq4nwn7f` +The :t:`type` of an :t:`error propagation expression` is :t:`associated type` +:std:`core::ops::Try::Output`. + +:dp:`fls_z4zikxy2b1em` +The :t:`value` of an :t:`error propagation expression` is determined as follows: + +* :dp:`fls_a09614kgsspt` + If the :t:`evaluation` of the :t:`error propagation expression` executed + :std:`core::ops::Try::branch`, then the :t:`value` is the :t:`value` of + the :std:`core::ops::ControlFlow::Continue` variant. + +* :dp:`fls_8df018q7y6g` + Otherwise control flow is returned to the end of the enclosing :t:`control + flow boundary`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_alk4qvfprnvy` +The :t:`evaluation` of an :t:`error propagation expression` of the form + +.. code-block:: rust + + expression? + +:dp:`fls_1nnhjcgy8kdh` +is equivalent to the :t:`evaluation` the following :t:`expression`: + +.. code-block:: rust + + match core::ops::Try::branch(expression) { + core::ops::ControlFlow::Continue(value) => + value, + + core::ops::ControlFlow::Break(value) => + core::ops::FromResidual::from_residual(value), + } + +.. rubric:: Examples + +.. code-block:: rust + + fn try_to_parse() -> Result { + "42".parse()? + } + + fn try_some() -> Option { + let val = Some(42)?; + Some(val) + } + +.. _fls_wrecura8u5ar: + +Negation Expression +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NegationExpression ::= + NegationOperator Operand + + NegationOperator ::= + BitwiseNegationOperator + | SignNegationOperator + + BitwiseNegationOperator ::= + $$!$$ + + SignNegationOperator ::= + $$-$$ + +.. rubric:: Legality Rules + +:dp:`fls_pfa81kv2mru8` +A :t:`negation expression` is an :t:`expression` that negates its :t:`operand`. + +:dp:`fls_plcut8vzdwox` +The :t:`type` of the :t:`operand` of a :t:`negation expression` with a +:s:`BitwiseNegationOperator` shall implement the :std:`core::ops::Not` +:t:`trait`. + +:dp:`fls_ohu0kljfexd3` +The :t:`type` of a :t:`negation expression` with a :s:`BitwiseNegationOperator` +is :t:`associated type` :std:`core::ops::Not::Output`. + +:dp:`fls_ghqvj8q71o97` +The :t:`value` of a :t:`negation expression` with a :s:`BitwiseNegationOperator` +is the result of ``core::ops::Not::not(operand)``. + +:dp:`fls_3m4mgqnzqhri` +The :t:`type` of the :t:`operand` of a :t:`negation expression` with a +:s:`SignNegationOperator` shall implement the :std:`core::ops::Neg` :t:`trait`. + +:dp:`fls_u7gzm6n75rzm` +The :t:`type` of a :t:`negation expression` with a :s:`SignNegationOperator` +shall be :t:`associated type` :std:`core::ops::Neg::Output`. + +:dp:`fls_9rmq7iaf092d` +The :t:`value` of a :t:`negation expression` with a :s:`SignNegationOperator` is +the result of ``core::ops::Neg::neg(operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_yzt6pcsvj3a` +The :t:`evaluation` of a :t:`negation expression` with a +:s:`BitwiseNegationOperator` proceeds as follows: + +#. :dp:`fls_8tgxtprtifrr` + The :t:`operand` is evaluated. + +#. :dp:`fls_rFFlt33a5RsZ` + If the type of the :t:`operand` is an :t:`integer type`, then the + :t:`negation expression` evaluates to the bitwise negation of the + :t:`operand`. + +#. :dp:`fls_h7pIl1WZ8Y2t` + If the type of the :t:`operand` is :c:`bool`, then the result is computed as + follows, depending on the :t:`value` of the :t:`operand`: + + .. list-table:: + + * - :dp:`fls_yfK3pGHzUo3x` + - **Operand** + - **Result** + * - :dp:`fls_dcNtgLq2hRZb` + - ``true`` + - ``false`` + * - :dp:`fls_sxLwuITs62sN` + - ``false`` + - ``true`` + +#. :dp:`fls_gn3dnuxm2h8m` + If the type of :t:`operand` is neither an :t:`integer type` nor + :c:`bool`, then ``core::ops::Not::not(operand)`` is invoked. + +:dp:`fls_tsou6yz4mfte` +The :t:`evaluation` of a :t:`negation expression` with a +:s:`SignNegationOperator` proceeds as follows: + +#. :dp:`fls_zdfgqky85r1f` + The :t:`operand` is evaluated. + +#. :dp:`fls_CutpaCFCGHQs` + If the type of the :t:`operand` is an :t:`integer type`, then the + :t:`negation expression` evaluates to the :t:`value` of the :t:`operand`, + with its sign inverted. If the result of the :t:`negation expression` does + not fit within the range of the :t:`operand` type, then + :t:`arithmetic overflow` occurs. + +#. :dp:`fls_B2eKGWaJhFKD` + If the type of the :t:`operand` is a :t:`floating-point type`, then the + :t:`negation expression` evaluates to the :t:`value` of the :t:`operand`, + with its sign inverted. No :t:`arithmetic overflow` is possible. + +#. :dp:`fls_uldh10k77sng` + If the type of the :t:`operand` is neither an :t:`integer type` nor a + :t:`floating-point type`, then ``core::ops::Neg::neg(operand)`` is invoked. + +.. rubric:: Examples + +:dp:`fls_uo6vv2yf8usx` +Sign negation. + +.. code-block:: rust + + -42 + +:dp:`fls_hbrg0d98jak5` +Bitwise negation. + +.. code-block:: rust + + !42 + +:dp:`fls_kqtr9c3jorvg` +Logical negation. + +.. code-block:: rust + + !false + +.. _fls_1k9mkv7rbezi: + +Arithmetic Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ArithmeticExpression ::= + AdditionExpression + | DivisionExpression + | MultiplicationExpression + | RemainderExpression + | SubtractionExpression + + AdditionExpression ::= + LeftOperand $$+$$ RightOperand + + DivisionExpression ::= + LeftOperand $$/$$ RightOperand + + MultiplicationExpression ::= + LeftOperand $$*$$ RightOperand + + RemainderExpression ::= + LeftOperand $$%$$ RightOperand + + SubtractionExpression ::= + LeftOperand $$-$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_asibqpe3z95h` +An :t:`arithmetic expression` is an :t:`expression` that computes a :t:`value` +from two :t:`[operand]s` using arithmetic. + +:dp:`fls_kr8Opj3c7uvb` +An :t:`addition expression` is an :t:`arithmetic expression` that uses addition. + +:dp:`fls_8imzo7agyx0k` +The :t:`type` of the :t:`left operand` of an :t:`addition expression` shall +implement the :std:`core::ops::Add` :t:`trait` with the :t:`type` of the +:t:`right operand` as the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_vk17mfv47wk9` +The :t:`type` of an :t:`addition expression` is :t:`associated type` +:std:`core::ops::Add::Output`. + +:dp:`fls_ryzhdpxgm7ii` +The :t:`value` of an :t:`addition expression` is the result of +``core::ops::Add::add(left_operand, right_operand)``. + +:dp:`fls_dstca76y08ge` +A :t:`division expression` is an :t:`arithmetic expression` that uses division. + +:dp:`fls_f1puss9t4btz` +The :t:`type` of the :t:`left operand` of a :t:`division expression` shall +implement the :std:`core::ops::Div` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_5rdrkvspw57z` +The :t:`type` of a :t:`division expression` is :t:`associated type` +:std:`core::ops::Div::Output`. + +:dp:`fls_thyq4h55mx55` +The :t:`value` of a :t:`division expression` is the result of +``core::ops::Div::div(left_operand, right_operand)``. + +:dp:`fls_kf41bphvlse3` +A :t:`multiplication expression` is an :t:`arithmetic expression` that uses +multiplication. + +:dp:`fls_hrml95g2txcj` +The :t:`type` of the :t:`left operand` of a :t:`multiplication expression` +shall implement the :std:`core::ops::Mul` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_ittf4yggk7do` +The :t:`type` of a :t:`multiplication expression` is :t:`associated type` +:std:`core::ops::Mul::Output`. + +:dp:`fls_ylqm6wucq2sw` +The :t:`value` of a :t:`multiplication expression` is the result of +``core::ops::Mul::mul(left_operand, right_operand)``. + +:dp:`fls_3de9ulyzuoa` +A :t:`remainder expression` is an :t:`arithmetic expression` that uses remainder +division. + +:dp:`fls_8fbhreyynhid` +The :t:`type` of the :t:`left operand` of a :t:`remainder expression` shall +implement the :std:`core::ops::Rem` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_u3jwnrqun5kl` +The :t:`type` of a :t:`remainder expression` is :t:`associated type` +:std:`core::ops::Rem::Output`. + +:dp:`fls_2ude3wrxji2p` +The :t:`value` of a :t:`remainder expression` is the result of +``core::ops::Rem::rem(left_operand, right_operand)``. + +:dp:`fls_aalxhbvu8kdi` +A :t:`subtraction expression` is an :t:`arithmetic expression` that uses +subtraction. + +:dp:`fls_fjcv1nm8tlgf` +The :t:`type` of the :t:`left operand` of a :t:`subtraction expression` shall +implement the :std:`core::ops::Sub` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_9x2i1zlsm364` +The :t:`type` of a :t:`subtraction expression` is :t:`associated type` +:std:`core::ops::Sub::Output`. + +:dp:`fls_v8vekngd27sz` +The :t:`value` of a :t:`subtraction expression` is the result of +``core::ops::Sub::sub(left_operand, right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_5nsa9zefz9cv` +The :t:`evaluation` of an :t:`addition expression` proceeds as follows: + +#. :dp:`fls_u3pstd6xe43y` + The :t:`left operand` is evaluated. + +#. :dp:`fls_jjmc1xgny77` + The :t:`right operand` is evaluated. + +#. :dp:`fls_NcLf4o1dpniS` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`addition expression` evaluates to the + sum of the :t:`[operand]s`, following the rules of unsigned integer addition + for :t:`[unsigned integer type]s`, two's complement addition for + :t:`[signed integer type]s`, or floating-point addition for + :t:`[floating-point type]s`. If unsigned integer addition or two's + complement addition is performed, then the operation may result in an + :t:`arithmetic overflow`. + +#. :dp:`fls_cayhj5hcuhcg` + Otherwise, ``core::ops::Add::add(left_operand, right_operand)`` is invoked. + +:dp:`fls_43knkymqpj7t` +The :t:`evaluation` of a :t:`division expression` proceeds as follows: + +#. :dp:`fls_62gpbubfj30w` + The :t:`left operand` is evaluated. + +#. :dp:`fls_bveocgaagk1n` + The :t:`right operand` is evaluated. + +#. :dp:`fls_zLroZh43MOtN` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`division expression` evaluates to the + quotient of the :t:`[operand]s`, following the rules of unsigned integer + division for :t:`[unsigned integer type]s`, two's complement division for + :t:`[signed integer type]s`, or floating-point division for + :t:`[floating-point type]s`. + + #. :dp:`fls_Q9dhNiICGIfr` + If unsigned integer division is performed and the :t:`right operand` is + 0, then the operation results in a :t:`panic`. + + #. :dp:`fls_albbLSTYtmyq` + If two's complement division is performed and the :t:`right operand` is 0 + or the result does not fit in the target type, then the operation results + in a :t:`panic`. + +#. :dp:`fls_qd6ggdgq2hob` + Otherwise, ``core::ops::Div::div(left_operand, right_operand)`` is invoked. + +:dp:`fls_lr2a21v5en59` +The :t:`evaluation` of a :t:`multiplication expression` proceeds as follows: + +#. :dp:`fls_kpbxcdaflb06` + The :t:`left operand` is evaluated. + +#. :dp:`fls_b94ojbfukhvd` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Et5gp1I7VqBX` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`multiplication expression` evaluates + to the product of the :t:`[operand]s`, following the rules of unsigned + integer multiplication for :t:`[unsigned integer type]s`, two's complement + multiplication for :t:`[signed integer type]s`, or floating-point + multiplication for :t:`[floating-point type]s`. If unsigned integer + multiplication or two's complement multiplication is performed, then the + operation may result in an :t:`arithmetic overflow`. + +#. :dp:`fls_blyr18iao20n` + Otherwise, ``core::ops::Mul::mul(left_operand, right_operand)`` is invoked. + +:dp:`fls_g28igfbnwfe0` +The :t:`evaluation` of a :t:`remainder expression` proceeds as follows: + +#. :dp:`fls_thcumw8n8xbw` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gld1u9fnsj6d` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Kdr6fLrRj0Du` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`remainder expression` evaluates to + the remainder of the division of the :t:`left operand` by the + :t:`right operand`, following the rules of unsigned integer division for + :t:`[unsigned integer type]s`, two's complement division for + :t:`[signed integer type]s`, or floating-point division for + :t:`[floating-point type]s`. + + #. :dp:`fls_FxLnXeGT2n9u` + If unsigned integer division is performed and the :t:`right operand` is + 0, then the operation results in a :t:`panic`. + + #. :dp:`fls_kN0HnldvDXSg` + If two's complement division is performed and the :t:`right operand` is 0 + or the resulting remainder does not fit in the target type, then the + operation results in a :t:`panic`. + +#. :dp:`fls_k7lmxvpkxtub` + Otherwise, ``core::ops::Rem::rem(left_operand, right_operand)`` is invoked. + +:dp:`fls_bndpd66973ev` +The :t:`evaluation` of a :t:`subtraction expression` proceeds as follows: + +#. :dp:`fls_izmfimd4yg27` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ad9tc6ki8vcq` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Vy0DyZqfy7Iv` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`subtraction expression` evaluates to + the difference of the :t:`[operand]s`, following the rules of unsigned + integer subtraction for :t:`[unsigned integer type]s`, two's complement + subtraction for :t:`[signed integer type]s`, or floating-point subtraction + for :t:`[floating-point type]s`. If unsigned integer subtraction or two's + complement subtraction is performed, then the operation may result in an + :t:`arithmetic overflow`. + +#. :dp:`fls_b9g0r9vc4rou` + Otherwise, ``core::ops::Sub::sub(left_operand, right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 1 + 2 + 4.0 / 3.29 + 8.4 * 5.3 + 10 % 4 + 3 - 2 + +.. _fls_abp6tjbz8tpn: + +Bit Expressions +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BitExpression ::= + BitAndExpression + | BitOrExpression + | BitXOrExpression + | ShiftLeftExpression + | ShiftRightExpression + + BitAndExpression ::= + LeftOperand $$&$$ RightOperand + + BitOrExpression ::= + LeftOperand $$|$$ RightOperand + + BitXorExpression ::= + LeftOperand $$^$$ RightOperand + + ShiftLeftExpression ::= + LeftOperand $$<<$$ RightOperand + + ShiftRightExpression ::= + LeftOperand $$>>$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_3zd59yuywz6l` +A :t:`bit expression` is an :t:`expression` that computes a :t:`value` from two +:t:`[operand]s` using bit arithmetic. + +:dp:`fls_f6mmva3lbj1i` +A :t:`bit and expression` is a :t:`bit expression` that uses bit and arithmetic. + +:dp:`fls_cmowpfrcelke` +The :t:`type` of the :t:`left operand` of a :t:`bit and expression` shall +implement the :std:`core::ops::BitAnd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_kchprk9z6xun` +The :t:`type` of a :t:`bit and expression` is :t:`associated type` +:std:`core::ops::BitAnd::Output`. + +:dp:`fls_dimu987fw4kg` +The :t:`value` of a :t:`bit and expression` is the result of +``core::ops::BitAnd::bitand(left_operand, right_operand)``. + +:dp:`fls_3136k1y6x3cu` +A :t:`bit or expression` is a :t:`bit expression` that uses bit or arithmetic. + +:dp:`fls_oo2ynd8e1ys6` +The :t:`type` of the :t:`left operand` of a :t:`bit or expression` shall +implement the :std:`core::ops::BitOr` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_s6hkt5fg598y` +The :t:`type` of a :t:`bit or expression` is :t:`associated type` +:std:`core::ops::BitOr::Output`. + +:dp:`fls_osfse0t6ua8a` +The :t:`value` of a :t:`bit or expression` is the result of +``core::ops::BitOr::bitor(left_operand, right_operand)``. + +:dp:`fls_j7ujcuthga1i` +A :t:`bit xor expression` is a :t:`bit expression` that uses bit exclusive or +arithmetic. + +:dp:`fls_fnywefl9nty2` +The :t:`type` of the :t:`left operand` of a :t:`bit xor expression` shall +implement the :std:`core::ops::BitXor` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_4f24nyx0ix0j` +The :t:`type` of a :t:`bit xor expression` is :t:`associated type` +:std:`core::ops::BitXor::Output`. + +:dp:`fls_8tb22c6zbp3` +The :t:`value` of a :t:`bit xor expression` is the result of +``core::ops::BitXor::bitxor(left_operand, right_operand)``. + +:dp:`fls_caxn774ij8lk` +A :t:`shift left expression` is a :t:`bit expression` that uses bit shift left +arithmetic. + +:dp:`fls_1f4pc612f2a8` +The :t:`type` of the :t:`left operand` of a :t:`shift left expression` shall +implement the :std:`core::ops::Shl` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_8trozue35xe4` +The :t:`type` of a :t:`shift left expression` is :t:`associated type` +:std:`core::ops::Shl::Output`. + +:dp:`fls_kqntxbwnc58v` +The :t:`value` of a :t:`shift left expression` is the result of +``core::ops::Shl::shl(left_operand, right_operand)``. + +:dp:`fls_t709sl4co3al` +A :t:`shift right expression` is a :t:`bit expression` that uses bit shift right +arithmetic. + +:dp:`fls_onutb0b9p9zj` +The :t:`type` of the :t:`left operand` of a :t:`shift right expression` shall +implement the :std:`core::ops::Shr` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_yq8rtwfp3nv0` +The :t:`type` of a :t:`shift right expression` is :t:`associated type` +:std:`core::ops::Shr::Output`. + +:dp:`fls_fbazfgd5m1ot` +The :t:`value` of a :t:`shift right expression` is the result of +``core::ops::Shr::shr(left_operand, right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_f4o8xlu67okn` +The :t:`evaluation` of a :t:`bit and expression` proceeds as follows: + +#. :dp:`fls_kp747xqekyrr` + The :t:`left operand` is evaluated. + +#. :dp:`fls_m0pdk78dah6n` + The :t:`right operand` is evaluated. + +#. :dp:`fls_m2hsk41hwm2j` + ``core::ops::BitAnd::bitand(left_operand, right_operand)`` is invoked. + +:dp:`fls_p9rlmjhbnbao` +The :t:`evaluation` of a :t:`bit or expression` proceeds as follows: + +#. :dp:`fls_vprp53kv64q6` + The :t:`left operand` is evaluated. + +#. :dp:`fls_d456ummq6vrk` + The :t:`right operand` is evaluated. + +#. :dp:`fls_n269ufyesndz` + ``core::ops::BitOr::bitor(left_operand, right_operand)`` is invoked. + +:dp:`fls_i9iqtobheivu` +The :t:`evaluation` of a :t:`bit xor expression` proceeds as follows: + +#. :dp:`fls_htw2tpujktwt` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gf9tyu1idpjk` + The :t:`right operand` is evaluated. + +#. :dp:`fls_u5irwqswbsvu` + ``core::ops::BitXor::bitxor(left_operand, right_operand)`` is invoked. + +:dp:`fls_2kkpr955i4lm` +The :t:`evaluation` of a :t:`shift left expression` proceeds as follows: + +#. :dp:`fls_7p64lgnjxylz` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ieh1itrkcnf6` + The :t:`right operand` is evaluated. + +#. :dp:`fls_f0p70y92k14f` + ``core::ops::Shl::shl(left_operand, right_operand)`` is invoked. + +:dp:`fls_303r0u6ug215` +The :t:`evaluation` of a :t:`shift right expression` proceeds as follows: + +#. :dp:`fls_4gxj18t6cnzq` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gurl2ve58drz` + The :t:`right operand` is evaluated. + +#. :dp:`fls_xkyj83mcb9d5` + ``core::ops::Shr::shr(left_operand, right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 0b1010 & 0b1100 + 0b1010 | 0b0011 + 0b1010 ^ 0b1001 + 13 << 3 + -10 >> 2 + +.. _fls_nsvzzbldhq53: + +Comparison Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ComparisonExpression ::= + EqualsExpression + | GreaterThanExpression + | GreaterThanOrEqualsExpression + | LessThanExpression + | LessThanOrEqualsExpression + | NotEqualsExpression + + EqualsExpression ::= + LeftOperand $$==$$ RightOperand + + GreaterThanExpression ::= + LeftOperand $$>$$ RightOperand + + GreaterThanOrEqualsExpression ::= + LeftOperand $$>=$$ RightOperand + + LessThanExpression ::= + LeftOperand $$<$$ RightOperand + + LessThanOrEqualsExpression ::= + LeftOperand $$<=$$ RightOperand + + NotEqualsExpression ::= + LeftOperand $$!=$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_yzuceqx6nxwa` +A :t:`comparison expression` is an :t:`expression` that compares the +:t:`[value]s` of two :t:`[operand]s`. + +:dp:`fls_asfrqemqviad` +A :t:`comparison expression` implicitly takes :t:`[shared borrow]s` of its +:t:`[operand]s`. + +:dp:`fls_9s4re3ujnfis` +The :t:`type` of a :t:`comparison expression` is :t:`type` :c:`bool`. + +:dp:`fls_ruyho6cu7rxg` +An :t:`equals expression` is a :t:`comparison expression` that tests equality. + +:dp:`fls_8echqk9po1cf` +The :t:`type` of the :t:`left operand` of an :t:`equals expression` shall +implement the :std:`core::cmp::PartialEq` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_d62qfloqk2ub` +The :t:`value` of an :t:`equals expression` is the result of +``core::cmp::PartialEq::eq(&left_operand, &right_operand)``. + +:dp:`fls_wapl0ir7uvbp` +A :t:`greater-than expression` is a :t:`comparison expression` that tests for a +greater-than relationship. + +:dp:`fls_x2s6ydvj5zyd` +The :t:`type` of the :t:`left operand` of a :t:`greater-than expression` shall +implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_pso38dowbk91` +The :t:`value` of a :t:`greater-than expression` is the result of +``core::cmp::PartialOrd::gt(&left_operand, &right_operand)``. + +:dp:`fls_7n5gol6a8lod` +A :t:`greater-than-or-equals expression` is a :t:`comparison expression` that +tests for a greater-than-or-equals relationship. + +:dp:`fls_hholzcbp5u3n` +The :t:`type` of the :t:`left operand` of a +:t:`greater-than-or-equals expression` shall implement the +:std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_wytygse41vzm` +The :t:`value` of a :t:`greater-than-or-equals expression` is the result of +``core::cmp::PartialOrd::ge(&left_operand, &right_operand)``. + +:dp:`fls_yd4qqi39w248` +A :t:`less-than expression` is a :t:`comparison expression` that tests for a +less-than relationship. + +:dp:`fls_ynibdcke3etb` +The :t:`type` of the :t:`left operand` of a :t:`less-than expression` shall +implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of +the :t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_xmtxkit3qpw7` +The :t:`value` of a :t:`less-than expression` is the result of +``core::cmp::PartialOrd::lt(&left_operand, &right_operand)``. + +:dp:`fls_yxwe1o27u6ns` +A :t:`less-than-or-equals expression` is a :t:`comparison expression` that tests +for a less-than-or-equals relationship. + +:dp:`fls_6dgfieyxdan0` +The :t:`type` of the :t:`left operand` of a :t:`less-than-or-equals expression` +shall implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` +of the :t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_7pfsqby2saag` +The :t:`value` of a :t:`less-than-or-equals expression` is the result of +``core::cmp::PartialOrd::le(&left_operand, &right_operand)``. + +:dp:`fls_w71j7i3n1kit` +A :t:`not-equals expression` is a :t:`comparison expression` that tests for +inequality. + +:dp:`fls_qzo1torhv5i3` +The :t:`type` of the :t:`left operand` of a :t:`not-equals expression` shall +implement the :std:`core::cmp::PartialEq` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_kodwkh58hmdv` +The :t:`value` of a :t:`not-equals expression` is the result of +``core::cmp::PartialEq::ne(&left_operand, &right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ydt9zvh0h5ex` +The :t:`evaluation` of an :t:`equals expression` proceeds as follows: + +#. :dp:`fls_4vbrc31r0o60` + The :t:`left operand` is evaluated. + +#. :dp:`fls_hyy974ksbbrq` + The :t:`right operand` is evaluated. + +#. :dp:`fls_htrjqxiv3avh` + ``core::cmp::PartialEq::eq(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_1udbc4aom6ok` +The :t:`evaluation` of a :t:`greater-than expression` proceeds as follows: + +#. :dp:`fls_96mt7gx5ogo0` + The :t:`left operand` is evaluated. + +#. :dp:`fls_or0i2cqxwl8o` + The :t:`right operand` is evaluated. + +#. :dp:`fls_udnhkbxpk83m` + ``core::cmp::PartialOrd::gt(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_mab6yirx77zl` +The :t:`evaluation` of a :t:`greater-than-or-equals expression` proceeds as +follows: + +#. :dp:`fls_2ggb7a7nhrk9` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ukm97arfzsk1` + The :t:`right operand` is evaluated. + +#. :dp:`fls_wrftg7onlkmm` + ``core::cmp::PartialOrd::ge(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_irlqykpbtvd` +The :t:`evaluation` of a :t:`less-than expression` proceeds as follows: + +#. :dp:`fls_udonl4c7f6pz` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ebvyhqbb921g` + The :t:`right operand` is evaluated. + +#. :dp:`fls_rfomib80bnn2` + ``core::cmp::PartialOrd::lt(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_6cb4wg59wmef` +The :t:`evaluation` of a :t:`less-than-or-equals expression` proceeds as +follows: + +#. :dp:`fls_dkbjn7noq8n2` + The :t:`left operand` is evaluated. + +#. :dp:`fls_kezynx2xc1q7` + The :t:`right operand` is evaluated. + +#. :dp:`fls_8luq5sellcaq` + ``core::cmp::PartialOrd::le(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_c93pacid548a` +The :t:`evaluation` of a :t:`not-equals expression` proceeds as follows: + +#. :dp:`fls_gqy6uuowij9e` + The :t:`left operand` is evaluated. + +#. :dp:`fls_s6sq6p8th5nt` + The :t:`right operand` is evaluated. + +#. :dp:`fls_kdga59xx4nx3` + ``core::cmp::PartialEq::ne(&left_operand, &right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 12 == 12 + 42 > 12 + 42 >= 35 + 42 < 109 + 42 <= 42 + 12 != 42 + +.. _fls_lstusiu2c8lu: + +Lazy Boolean Expressions +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LazyBooleanExpression ::= + LazyAndExpression + | LazyOrExpression + + LazyAndExpression ::= + LeftOperand $$&&$$ RightOperand + + LazyOrExpression ::= + LeftOperand $$||$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_gpbvus89iy4c` +A :t:`lazy boolean expression` is an :t:`expression` that performs short circuit +Boolean arithmetic. + +:dp:`fls_40jya46h62yi` +A :t:`lazy and expression` is a :t:`lazy boolean expression` that uses short +circuit and arithmetic. + +:dp:`fls_k8u77ow5bb6c` +A :t:`lazy or expression` is a :t:`lazy boolean expression` that uses short +circuit or arithmetic. + +:dp:`fls_u0gwo0s2l0tn` +The :t:`[type]s` of the :t:`[operand]s` of a :t:`lazy boolean expression` shall +be :t:`type` :c:`bool`. + +:dp:`fls_zas0lizgq2hn` +The :t:`type` of a :t:`lazy boolean expression` is :t:`type` :c:`bool`. + +:dp:`fls_xdgvrd58nkoa` +The :t:`value` of a :t:`lazy boolean expression` is either ``true`` or +``false``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ufre0ko2cwh2` +The :t:`evaluation` of a :t:`lazy and expression` proceeds as follows: + +#. :dp:`fls_jugckad775kq` + The :t:`left operand` is evaluated. + +#. :dp:`fls_tmfmu3syxp2q` + If the :t:`left operand` evaluated to ``true``, then the :t:`right operand` + is evaluated and returned as the :t:`[lazy and expression]'s` :t:`value`. + +#. :dp:`fls_srfv1d4idxy9` + Otherwise the :t:`lazy and expression` evaluates to ``false``. + +:dp:`fls_tflikh8cmxvc` +The :t:`evaluation` of a :t:`lazy or expression` proceeds as follows: + +#. :dp:`fls_p0rafjsridre` + The :t:`left operand` is evaluated. + +#. :dp:`fls_yg1348rlziw3` + If the :t:`left operand` evaluated to ``false``, then the :t:`right operand` + is evaluated and returned as the :t:`[lazy or expression]'s` :t:`value`. + +#. :dp:`fls_yffozo2vq5xz` + Otherwise the :t:`lazy or expression` evaluates to ``true``. + +.. rubric:: Examples + +.. code-block:: rust + + false && panic!() + this || that + +.. _fls_1qhsun1vyarz: + +Type Cast Expressions +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TypeCastExpression ::= + Operand $$as$$ TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_ltioqbhl14g0` +A :t:`type cast expression` is an :t:`expression` that changes the :t:`type` of +an :t:`operand`. + +:dp:`fls_99kvyh4puy57` +:t:`Cast` or :t:`casting` is the process of changing the :t:`type` of an +:t:`expression`. + +:dp:`fls_a6midh2m0w0b` +The ``TypeSpecificationWithoutBounds`` describes the :dt:`target type` of the +:t:`type cast expression`. + +:dp:`fls_otaxe9okhdr1` +A :t:`type cast expression` with the following characteristics performs a +:dt:`specialized cast`: + +* :dp:`fls_4s69s9pcvbn7` + An :t:`operand` of a :t:`numeric type` and a target :t:`numeric type` perform + a :t:`numeric cast`. + +* :dp:`fls_le6bchl25ewz` + An :t:`operand` of an :t:`enum type` and a target :t:`integer type` + perform :t:`enum cast`. An :dt:`enum cast` converts the :t:`operand` to its + :t:`discriminant`, followed by a :t:`numeric cast`. + +* :dp:`fls_pcromhosmnf0` + An operand of :t:`type` :c:`bool` or :t:`type` :c:`char` and a + target :t:`integer type` perform :t:`primitive-to-integer cast`. A + :dt:`primitive-to-integer cast` + + * :dp:`fls_al9f1t7vlsxi` + Converts an :t:`operand` of :t:`type` :c:`bool` with :t:`value` ``false`` + to zero. + + * :dp:`fls_jea17f39fmsg` + Converts an :t:`operand` of :t:`type` :c:`bool` with :t:`value` ``true`` + to one. + + * :dp:`fls_eb00s8fxlvjb` + Convert an :t:`operand` of :t:`type` :c:`char` to the :t:`value` of the + corresponding :t:`code point`, followed by a :t:`numeric cast`. + +* :dp:`fls_qk5trk8wkvxb` + An :t:`operand` of :t:`type` :c:`u8` and a target :t:`type` :c:`char` performs + :t:`u8-to-char cast`. A :dt:`u8-to-char cast` converts an :t:`operand` of + :t:`type` :c:`u8` to the :t:`value` of the corresponding :t:`code point`. + +* :dp:`fls_t16yzaxro5ew` + An :t:`operand` of :t:`type` ``*const T`` or ``*mut T`` and a + :t:`target type` ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` performs pointer-to-pointer cast. + +* :dp:`fls_i4zsbbmfa2fl` + An :t:`operand` of :t:`type` ``*const T`` or ``*mut T`` where ``T`` implements + the :std:`core::marker::Sized` :t:`trait` and a target :t:`integer type` + perform :t:`pointer-to-address cast`. A :dt:`pointer-to-address cast` produces + an integer that represents the machine address of the referenced memory. If + the :t:`integer type` is smaller than the :t:`type` of the :t:`operand`, the + address is truncated. + +* :dp:`fls_59mpteeczzo` + An :t:`operand` of :t:`integer type` and :t:`target type` ``*const V`` or + ``*mut V`` where ``V`` implements the :std:`core::marker::Sized` :t:`trait` + perform :t:`address-to-pointer cast`. An :dt:`address-to-pointer cast` + produces a :t:`pointer` that interprets the integer as a machine address. + +* :dp:`fls_8ccwlliqw9jx` + An :t:`operand` of :t:`type` ``&mut [T; N]`` and a :t:`target type` + ``*const T`` perform array-to-pointer cast. + +* :dp:`fls_i8txki3htx92` + An :t:`operand` of a :t:`function item type` and a :t:`target type` + ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` perform function-item-to-pointer cast. + +* :dp:`fls_6hbkvbb1c8aj` + An :t:`operand` of a :t:`function item type` and a target :t:`integer type` + perform function-to-address cast. + +* :dp:`fls_133j6xw8k4qe` + An :t:`operand` of a :t:`function pointer type` and a :t:`target type` + ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` perform + :dt:`function-pointer-to-pointer cast`. + +* :dp:`fls_bhw2j9wjpf2x` + An :t:`operand` of a :t:`function pointer type` and a target :t:`integer type` + perform :t:`function-pointer-to-address` cast. A + :dt:`function-pointer-to-address cast` produces an integer that represents the + machine address of the referenced :t:`function`. If the :t:`integer type` is + smaller than the size of the :t:`function pointer type`, the address is + truncated. + +:dp:`fls_3ww5gbk9w4ys` +A :t:`cast` is legal when it either performs :t:`type coercion` or is a +:t:`specialized cast`. + +:dp:`fls_hhxawo12cndy` +The :t:`type` of a :t:`type cast expression` is the :t:`target type`. + +:dp:`fls_uuayaksl8059` +The :t:`value` of a :t:`type cast expression` is the :t:`value` of the +:t:`operand` after the :t:`cast`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_syk2li8ft3rx` +The :t:`evaluation` of a :t:`type cast expression` evaluates its :t:`operand`. + +:dp:`fls_uqv32nthva6y` +The :t:`evaluation` of a :dt:`numeric cast` proceeds as follows: + +* :dp:`fls_kc3gwj9x3jnr` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + of the same :t:`size` has no effect. + +* :dp:`fls_76eq3bd6birr` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + with smaller :t:`size` truncates the :t:`value` of the :t:`operand`. + +* :dp:`fls_ldiritt32h2w` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + with a larger :t:`size` either + + * :dp:`fls_h9sxg3pxn7i2` + Zero-extends the :t:`operand` if the :t:`[operand]'s` :t:`type` is + unsigned, or + + * :dp:`fls_shy6e0e30bco` + Sign-extends the :t:`operand` if the :t:`[operand]'s` :t:`type` is signed. + +* :dp:`fls_4xldaoj5ac6t` + Casting an :t:`operand` of a :t:`floating-point type` to a target + :t:`integer type` rounds the :t:`value` of the :t:`operand` towards zero. In + addition, the :t:`type cast expression` + + * :dp:`fls_50714cvaqkfv` + Returns zero if the :t:`operand` denotes :std:`f32::NaN` or :std:`f64::NaN` + respectively. + + * :dp:`fls_g3xbmp8zx1yh` + Saturates the :t:`value` of the :t:`operand` to the maximum :t:`value` + of the target :t:`integer type` if the :t:`[operand]'s` :t:`value` + exceeds the maximum :t:`value` of the target :t:`integer type` or denotes + :std:`f32::INFINITY` or :std:`f64::INFINITY` respectively. + + * :dp:`fls_hcc5odh52bk7` + Saturates the :t:`value` of the :t:`operand` to the minimum :t:`value` + of the target :t:`integer type` if the :t:`[operand]'s` :t:`value` + exceeds the minimum :t:`value` of the target :t:`integer type` or denotes + :std:`f32::NEG_INFINITY` or :std:`f64::NEG_INFINITY` respectively. + +* :dp:`fls_o2ep4b6t287z` + Casting an :t:`operand` of an :t:`integer type` to a target + :t:`floating-point type` produces the closest possible floating-point + :t:`value`. In addition, the :t:`type cast expression` + + * :dp:`fls_vfofk2aagsj5` + Rounds the :t:`value` of the :t:`operand` preferring the :t:`value` with an + even least significant digit if exactly halfway between two floating-point + numbers. + + * :dp:`fls_cx86k8yfjhht` + Produces :std:`f32::INFINITY` or :std:`f64::INFINITY` of the same sign as + the :t:`value` of the :t:`operand` when the :t:`value` of the :t:`operand` + causes :t:`arithmetic overflow`. + +* :dp:`fls_gzmdwibl5s4w` + Casting an :t:`operand` of :t:`type` :c:`f32` to a :t:`target type` :c:`f64` + is perfect and lossless. + +* :dp:`fls_mjqvjt7v8a25` + Casting an :t:`operand` of :t:`type` :c:`f64` to :t:`target type` :c:`f32` + produces the closest possible :c:`f32` :t:`value`. In addition, the + :t:`type cast expression` + + * :dp:`fls_4fd5vkh0jt4` + Prefers the nearest :t:`value` with an even least significant digit if + exactly halfway between two floating-point numbers. + + * :dp:`fls_2etd73f8jg2n` + Produces :std:`f32::INFINITY` of the same sign as the :t:`value` of the + :t:`operand` when the :t:`value` of the :t:`operand` causes + :t:`arithmetic overflow`. + +.. rubric:: Examples + +:dp:`fls_vdxkpvmpwl3s` +See :p:`6.4.1. ` for the declaration of ``answer``. + +.. code-block:: rust + + answer as f64 + +.. _fls_y4by2i8dl05o: + +Assignment Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + AssignmentExpression ::= + AssigneeOperand $$=$$ ValueOperand + + AssigneeOperand ::= + Operand + + ValueOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_nhgexeu2h6wi` +An :t:`assignment expression` is an :t:`expression` that assigns the :t:`value` +of a :t:`value operand` to an :t:`assignee operand`. + +:dp:`fls_bsjw6f4a3wol` +An :t:`assignee operand` is the target :t:`operand` of an +:t:`assignment expression`. + +:dp:`fls_uinh05sslxeo` +A :t:`value operand` is an :t:`operand` that supplies the :t:`value` that is +assigned to an :t:`assignee operand` by an :t:`assignment expression`. + +:dp:`fls_qengy157fa4a` +The :t:`type` of an :t:`assignment expression` is the :t:`unit type`. + +:dp:`fls_bwwtgqprbxrm` +The :t:`value` of an :t:`assignment expression` is the :t:`unit value`. + +.. _fls_nnqlae9zp80s: + +Basic Assignment +^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_uhcodvq75nlr` +A :t:`basic assignment` is an :t:`assignment expression` that is not a +:t:`destructuring assignment`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_esn5ceoldta` +The :t:`evaluation` of a :t:`basic assignment` proceeds as follows: + +#. :dp:`fls_t8eqzc64ivin` + The :t:`value operand` is evaluated. + +#. :dp:`fls_b0mqcn5fejhk` + The :t:`assignee operand` is evaluated. + +#. :dp:`fls_9i0ctuo099bp` + The :t:`value` denoted by the :t:`assignee operand` is :t:`dropped`, unless + the :t:`assignee operand` denotes an uninitialized :t:`variable` or an + uninitialized :t:`field` of a :t:`variable`. + +#. :dp:`fls_hc01gtvlxba` + The :t:`value` of the :t:`value operand` is :t:`passed ` + into the :t:`place` of the :t:`assignee operand`. + +.. rubric:: Examples + +.. code-block:: rust + + this = 42 + +.. _fls_9beohh5475s2: + +Destructuring Assignment +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_2eheo4yo2orm` +A :t:`destructuring assignment` is an :t:`assignment expression` where +the :t:`assignee operand` is either an :t:`array expression`, a :t:`struct +expression`, a :t:`tuple expression` or a :t:`tuple struct call expression`. + +:dp:`fls_z8c3b9s9de3x` +The :t:`assignee operand` of a :t:`destructuring assignment` is treated as an +:dt:`assignee pattern` depending on its kind, as follows: + +* :dp:`fls_vqb89rkkjw81` + An :t:`array expression` corresponds to a :t:`slice pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_vqj7ljrrd7wi` + A :t:`full range expression` corresponds to a :t:`rest pattern` if inside an + :t:`array expression`, otherwise this is a static error. + +* :dp:`fls_du5eybf8mocy` + A :t:`place expression` corresponds to an :t:`identifier pattern` with a + unique :t:`identifier` and without :t:`keyword` ``ref``, keyword ``mut``, or + a :t:`bound pattern`. + +* :dp:`fls_hj6srmzbobid` + A :t:`struct expression` corresponds to a :t:`struct pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_uydzlfc4hjbx` + A :t:`tuple expression` corresponds to a :t:`tuple pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_fa14yfvxsbx3` + A :t:`tuple struct call expression` corresponds to a + :t:`tuple struct pattern` with all the :t:`[subexpression]s` lowered to their + corresponding :t:`[pattern]s`. + +* :dp:`fls_q90ikfi7ewoi` + An :t:`underscore expression` corresponds to an :t:`underscore pattern`. + +:dp:`fls_4bb07tn28ivw` +The :t:`pattern` that corresponds to a :t:`destructuring assignment` shall be +an :t:`irrefutable pattern`. + +:dp:`fls_g80a92tr2ser` +A :t:`destructuring assignment` is equivalent to a :t:`block expression` of the +following form: + +* :dp:`fls_u0iqhbw37xvq` + The first :t:`statement` is a :t:`let statement` with its :t:`pattern` + equivalent to the lowered :t:`assignee pattern` and its + :t:`initialization expression` equivalent to the :t:`value operand`. + +* :dp:`fls_wsfhd3udt6fq` + Then each bound :t:`identifier` of the :t:`assignee pattern` is an + :t:`assignment expression` used as a :t:`statement`, as follows: + +* :dp:`fls_ll6h6qcaos65` + The bound :t:`identifier` becomes the :t:`value operand` of the new + :t:`assignment expression`, and + +* :dp:`fls_ajbdn54qe6wc` + The corresponding :t:`expression` from the :t:`assignee operand` of the + :t:`destructuring assignment` becomes the :t:`assignee operand` of the new + :t:`assignment expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_l4u5hhw8tnvs` +The :t:`evaluation` of a :t:`destructuring assignment` proceeds as follows: + +#. :dp:`fls_dd62w8c9n9sd` + The :t:`value operand` is evaluated. + +#. :dp:`fls_jqu2u6mdccgi` + The :t:`assignee operand` is evaluated by evaluating its :t:`[operand]s` in + a left-to-right order. + +#. :dp:`fls_n7nuj1lvpspc` + Each :t:`value` denoted by the :t:`assignee operand` is :t:`dropped` + in left-to-right order, unless the :t:`assignee operand` denotes an + uninitialized :t:`variable` or an uninitialized field of a :t:`variable`. + +#. :dp:`fls_qb8u5skn8bc4` + The :t:`value` of the :t:`value operand` is :t:`passed ` + into the :t:`place` of the :t:`assignee operand`. + +.. rubric:: Examples + +.. code-block:: rust + + (four, two) = (4, 2) + +.. _fls_290jmzfh7x4e: + +Compound Assignment Expressions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CompoundAssignmentExpression ::= + AdditionAssignmentExpression + | BitAndAssignmentExpression + | BitOrAssignmentExpression + | BitXorAssignmentExpression + | DivisionAssignmentExpression + | MultiplicationAssignmentExpression + | RemainderAssignmentExpression + | ShiftLeftAssignmentExpression + | ShiftRightAssignmentExpression + | SubtractionAssignmentExpression + + AdditionAssignmentExpression ::= + AssignedOperand $$+=$$ ModifyingOperand + + BitAndAssignmentExpression ::= + AssignedOperand $$&=$$ ModifyingOperand + + BitOrAssignmentExpression ::= + AssignedOperand $$|=$$ ModifyingOperand + + BitXorAssignmentExpression ::= + AssignedOperand $$^=$$ ModifyingOperand + + DivisionAssignmentExpression ::= + AssignedOperand $$/=$$ ModifyingOperand + + MultiplicationAssignmentExpression ::= + AssignedOperand $$*=$$ ModifyingOperand + + RemainderAssignmentExpression ::= + AssignedOperand $$%=$$ ModifyingOperand + + ShiftLeftAssignmentExpression ::= + AssignedOperand $$<<=$$ ModifyingOperand + + ShiftRightAssignmentExpression ::= + AssignedOperand $$>>=$$ ModifyingOperand + + SubtractionAssignmentExpression ::= + AssignedOperand $$-=$$ ModifyingOperand + + AssignedOperand ::= + Operand + + ModifyingOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_3bu3g8o5nopc` +A :t:`compound assignment expression` is an expression that first computes +a :t:`value` from two :t:`[operand]s` and then assigns the value to an +:t:`assigned operand`. + +:dp:`fls_w2hbhb989yr4` +A :t:`bit and assignment expression` is a :t:`compound assignment expression` +that uses bit and arithmetic. + +:dp:`fls_ak4g5112jkl` +A :t:`bit or assignment expression` is a :t:`compound assignment expression` +that uses bit or arithmetic. + +:dp:`fls_lkjwyy78m2vx` +A :t:`bit xor assignment expression` is a :t:`compound assignment expression` +that uses bit exclusive or arithmetic. + +:dp:`fls_pkzj0uigfcgm` +A :t:`division assignment expression` is a :t:`compound assignment expression` +that uses division. + +:dp:`fls_ndlv3k9uclz2` +A :t:`multiplication assignment expression` is a +:t:`compound assignment expression` that uses multiplication. + +:dp:`fls_fbp5dojti27r` +A :t:`remainder assignment expression` is a :t:`compound assignment expression` +that uses remainder division. + +:dp:`fls_oy9ur11k78t` +A :t:`shift left assignment expression` is a :t:`compound assignment expression` +that uses bit shift left arithmetic. + +:dp:`fls_s7rey2bndfei` +A :t:`shift right assignment expression` is a +:t:`compound assignment expression` that uses bit shift right arithmetic. + +:dp:`fls_7l7v7vigw3fu` +A :t:`subtraction assignment expression` is a +:t:`compound assignment expression` that uses subtraction. + +:dp:`fls_dvy201zd6oym` +An :t:`assigned operand` is the target :t:`operand` of a +:t:`compound assignment expression`. + +:dp:`fls_9v09ayi2azpe` +A :t:`modifying operand` is an :t:`operand` that supplies the :t:`value` that +is used in the calculation of a :t:`compound assignment expression`. + +:dp:`fls_row7saf53vwd` +An :t:`assigned operand` shall denote a :t:`mutable assignee expression`. + +:dp:`fls_xmgcdw9yhb55` +The :t:`type` of a :t:`compound assignment` is the :t:`unit type`. + +:dp:`fls_yeh6mvyvb4dp` +The :t:`value` of a :t:`compound assignment` is the :t:`unit value`. + +:dp:`fls_657knnsobdyu` +The :t:`type` of the :t:`assigned operand` of an :t:`addition assignment` shall +implement the :std:`core::ops::AddAssign` trait where the type of the right +operand is the trait implementation type parameter. + +:dp:`fls_m942dwwmr2cl` +The :t:`type` of the :t:`assigned operand` of a :t:`bit and assignment` shall +implement the :std:`core::ops::BitAndAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_np33oqrz33mp` +The :t:`type` of the :t:`assigned operand` of a :t:`bit or assignment` shall +implement the :std:`core::ops::BitOrAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_atdpr8be2o2r` +The :t:`type` of the :t:`assigned operand` of a :t:`bit xor assignment` shall +implement the :std:`core::ops::BitXorAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_fbgwb3pdfgz` +The :t:`type` of the :t:`assigned operand` of a :t:`division assignment` shall +implement the :std:`core::ops::DivAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_8tbxq95x06yt` +The :t:`type` of the :t:`assigned operand` of a :t:`multiplication assignment` +shall implement the :std:`core::ops::MulAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +:dp:`fls_9oy9zo3x3fy3` +The :t:`type` of the :t:`assigned operand` of a :t:`remainder assignment` shall +implement the :std:`core::ops::RemAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_pdgj2xekdead` +The :t:`type` of the :t:`assigned operand` of a :t:`shift left assignment` shall +implement the :std:`core::ops::ShlAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_4uoi6k8r7mvc` +The :t:`type` of the :t:`assigned operand` of a :t:`shift right assignment` +shall implement the :std:`core::ops::ShrAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +:dp:`fls_fjaz4m90cagr` +The :t:`type` of the :t:`assigned operand` of a :t:`subtraction assignment` +shall implement the :std:`core::ops::SubAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_eesn9kuylim` +The :t:`evaluation` of a :t:`compound assignment` proceeds as follows: + +#. :dp:`fls_4nnqz4etisgw` + If the :t:`[type]s` of both :t:`[operand]s` are :t:`[integer type]s` or :t:`[floating-point type]s`, then + + #. :dp:`fls_a2g4hs15jpiu` + The :t:`modifying operand` is evaluated. + + #. :dp:`fls_kuet16jp6ps9` + The :t:`assigned operand` is evaluated. + + #. :dp:`fls_hovju0sni9gr` + The appropriate :t:`function` is invoked as indicated below. + +#. :dp:`fls_ngimpabunzis` + Otherwise + + #. :dp:`fls_4sbpfi12frwe` + The :t:`assigned operand` is evaluated. + + #. :dp:`fls_n5ds6ydgckvo` + The :t:`modifying operand` is evaluated. + + #. :dp:`fls_xjdu0y1slsg9` + The appropriate :t:`function` is invoked as indicated below. + +:dp:`fls_ijfmnnrdlu8n` +For an :t:`addition assignment`, +``core::ops::AddAssign::add_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_6x7j9x354pkb` +For a :t:`bit and assignment`, +``core::ops::BitAndAssign::bitand_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_h2cpbz2t74hy` +For a :t:`bit or assignment`, +``core::ops::BitOrAssign::bitor_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_whj50spxz3bh` +For a :t:`bit xor assignment`, +``core::ops::BitXorAssign::bitxor_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_d1cxq1zbt5fq` +For a :t:`division assignment`, +``core::ops::DivAssign::div_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_48i245an2449` +For a :t:`multiplication assignment`, +``core::ops::MulAssign::mul_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_69wr03rt0ali` +For a :t:`remainder assignment`, +``core::ops::RemAssign::rem_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_9d970yfwmj2d` +For a :t:`shift left assignment`, +``core::ops::ShlAssign::shl_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_p9687v3xckps` +For a :t:`shift right assignment`, +``core::ops::ShrAssign::shr_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_8j408kckzzud` +For a :t:`subtraction assignment`, +``core::ops::SubAssign::sub_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + let mut result = 42; + result += 1 + result &= 59 + result /= 3 + result ^= 2 + result *= 81 + result |= 9402 + result %= 7 + result <<= 2 + result >>= 3 + result -= 0 + +.. _fls_tpwp86mronn2: + +Underscore Expressions +---------------------- + +.. rubric:: Syntax + +.. syntax:: + + UnderscoreExpression ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_pydmv629vfuu` +An :t:`underscore expression` is an :t:`expression` that acts as a placeholder +in a :t:`destructuring assignment`. + +:dp:`fls_wms3dbwjwyu4` +An :t:`underscore expression` shall appear in the :t:`assigned operand` of a +:t:`destructuring assignment`. + +.. rubric:: Examples + +.. code-block:: rust + + let pair = (1, 2); + let mut second = 0; + (_, second) = pair; + +.. _fls_g0uyl7qw4c7w: + +Parenthesized Expressions +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedExpression ::= + $$($$ Operand $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_jhazc75w5vj` +A :t:`parenthesized expression` is an :t:`expression` that groups other +:t:`[expression]s`. + +:dp:`fls_5d66h7naoup6` +The :t:`type` of a :t:`parenthesized expression` is the :t:`type` of its +:t:`operand`. + +:dp:`fls_xp9whcj2obk8` +The :t:`value` of a :t:`parenthesized expression` is the :t:`value` of its +:t:`operand`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2po52gv0m021` +The :t:`evaluation` of a :t:`parenthesized expression` evaluates its +:t:`operand`. + +.. rubric:: Examples + +.. code-block:: rust + + (1 + 2) * 3 + +.. _fls_xinykul167l: + +Array Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + ArrayExpression ::= + $$[$$ ArrayElementExpression? $$]$$ + + ArrayElementExpression ::= + ArrayElementConstructor + | ArrayRepetitionConstructor + + ArrayElementConstructor ::= + ExpressionList + + ArrayRepetitionConstructor ::= + RepeatOperand $$;$$ SizeOperand + + RepeatOperand ::= + Operand + + SizeOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_ya9res33oxt6` +An :t:`array expression` is an :t:`expression` that constructs an :t:`array`. + +:dp:`fls_fwtd3b10veiw` +An :t:`array element constructor` is an :t:`array expression` that lists all +elements of the :t:`array` being constructed. + +:dp:`fls_81jf78m5uga4` +An :t:`array repetition constructor` is an :t:`array expression` that specifies +how many times an element is repeated in the :t:`array` being constructed. + +:dp:`fls_3y69y9ga4at7` +A :t:`repeat operand` is an :t:`operand` that specifies the element being +repeated in an :t:`array repetition constructor`. + +:dp:`fls_2l9objtb23zn` +A :t:`size operand` is an :t:`operand` that specifies the size of an :t:`array` +or an :t:`array type`. + +:dp:`fls_9gmnjvs83d8o` +The :t:`size operand` shall be a :t:`constant expression`. + +:dp:`fls_by21pey7k423` +The :t:`[type]s` of the :t:`[operand]s` of an :t:`array element constructor` +shall be :t:`unifiable`. + +:dp:`fls_x2xu2pynxy1u` +If the :t:`size operand` is greater than one, then the :t:`type` of the +:t:`repeat operand` shall implement the :std:`core::copy::Copy` :t:`trait` +or the :t:`repeat operand` shall be a :t:`path expression` resolving to a +:t:`constant`. + +:dp:`fls_qplsh3pdqitq` +The :t:`type` of the :t:`size operand` shall be :t:`type` :c:`usize`. + +:dp:`fls_wmsekin1gd2y` +The :t:`type` of an :t:`array expression` is ``[T; N]``, where ``T`` is the +:t:`element type` and ``N`` is the size of the array. The :t:`size` of an +:t:`array` is determined as follows: + +* :dp:`fls_2gto5kp9bjw8` + If the :t:`array expression` appears with an :t:`array element constructor`, + then the :t:`size` is the number of :t:`[operand]s` in the + :t:`array element constructor`. + +* :dp:`fls_guop34ayjw2` + Otherwise the :t:`size` is the :t:`value` of :t:`size operand`. + +:dp:`fls_aj6tbe54v5jl` +The :t:`value` of an :t:`array expression` is the constructed :t:`array`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_t52in1kkyli3` +The :t:`evaluation` of an :t:`array expression` with an +:t:`array element constructor` evaluates its :t:`[operand]s` in left-to-right +order. + +:dp:`fls_1kj8nlc5eb8a` +The :t:`evaluation` of an :t:`array expression` with an +:t:`array repetition constructor` proceeds as follows: + +#. :dp:`fls_f3izbkm8607z` + If the :t:`value` of the :t:`size operand` is greater than zero, then: + + #. :dp:`fls_qbyysx30pjzs` + If the :t:`repeat operand` denotes a :t:`constant`, the + :t:`repeat operand` is evaluated once and its :t:`value` is + :t:`passed ` :t:`by copy` :t:`[size operand]'s` + :t:`value` times. + + #. :dp:`fls_1m0laldldh7j` + Otherwise the :t:`repeat operand` is evaluated :t:`[size operand]'s` + :t:`value` times. + +#. :dp:`fls_5cs68nm54l31` + Otherwise the :t:`repeat operand` is evaluated once. + +.. rubric:: Examples + +.. code-block:: rust + + [1, 2, 3] + ["one", "two", "three",] + +:dp:`fls_p7hcqryal5cm` +Two dimensional array. + +.. syntax:: + + [[0, 0], [0, 1], [1, 0], [1, 1]] + +:dp:`fls_izlpt6100gvk` +An array of nine 42s. + +.. syntax:: + + [42; 9] + +.. _fls_sxcr4aa098i6: + +Indexing Expressions +-------------------- + +.. rubric:: Syntax + +.. syntax:: + + IndexExpression ::= + IndexedOperand $$[$$ IndexingOperand $$]$$ + + IndexedOperand ::= + Operand + + IndexingOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_X9kdEAPTqsAe` +A :t:`indexable type` is a :t:`type` that implements the +:std:`core::ops::Index` :t:`trait`. + +:dp:`fls_42ijvuqqqlvh` +An :t:`index expression` is an :t:`expression` that indexes into a :t:`value` +of an :t:`indexable type`. + +:dp:`fls_pc0c22asgzvw` +An :t:`indexed operand` is an :t:`operand` which indicates the :t:`value` +being indexed into by an :t:`index expression`. + +:dp:`fls_ff3sgpldn52o` +An :t:`indexing operand` is an :t:`operand` which specifies the index of an +:t:`index expression`. + +:dp:`fls_w96p9oyv5mqt` +An :t:`index expression` is a :t:`constant expression` if the +:t:`indexing operand` and :t:`indexed operand` are :t:`[constant expression]s`. + +:dp:`fls_u9sl7h4i8hqu` +The :t:`type` of the :t:`indexing operand` is the :t:`generic parameter` of the +:std:`core::ops::Index` :t:`implementation` of the :t:`type` of the +:t:`indexed operand`. + +:dp:`fls_98qeczwv7fmy` +If the :t:`indexed operand` is evaluated in a :t:`value expression context`, +then + +* :dp:`fls_sb2b8gszzaxq` + The :t:`type` of the :t:`indexed operand` shall implement the + :std:`core::ops::Index` :t:`trait`. + +* :dp:`fls_issaykiuha75` + The :t:`type` of the :t:`index expression` is ``&T``, where ``T`` is + :t:`associated type` :std:`core::ops::Index::Output`. + +:dp:`fls_y3sduoma6q9v` +If the :t:`indexed operand` is :t:`mutable` and the :t:`index expression` is +evaluated in a :t:`mutable place expression context`, then + +* :dp:`fls_ld7lbvqms5i6` + The :t:`type` of the :t:`indexed operand` shall implement the + :std:`core::ops::IndexMut` :t:`trait`. + +* :dp:`fls_nw705fpon79b` + The :t:`type` of the :t:`index expression` is ``&mut T``, where ``T`` is + the element type of the :t:`indexed operand`'s :t:`type`. + +:dp:`fls_fouu0z3jwoad` +The :t:`value` of an :t:`index expression` is the indexed memory location. + +.. rubric:: Dynamic Semantics + +:dp:`fls_6sgj0ltt21i` +The :t:`evaluation` of an :t:`index expression` proceeds as follows: + +#. :dp:`fls_e5l4y3dy69xi` + The :t:`indexed operand` is evaluated. + +#. :dp:`fls_fza3omn8yw7s` + The :t:`indexing operand` is evaluated. + +#. :dp:`fls_ehamppbq4gmg` + If the :t:`index expression` is evaluated in a :t:`mutable place + expression context`, then :t:`expression` + ``*core::ops::IndexMut::index_mut(&mut indexed_operand, indexing_operand)`` + is evaluated. + +#. :dp:`fls_i68oxj659hc1` + Otherwise :t:`expression` ``*core::ops::Index::index(&indexed_operand, + indexing_operand)`` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; + a[1][2] + +:dp:`fls_esvpmh6razg3` +Evaluates to 6. + +.. _fls_k64tfywtn0g8: + +Tuple Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + TupleExpression ::= + $$($$ TupleInitializerList? $$)$$ + + TupleInitializerList ::= + ExpressionList + +.. rubric:: Legality Rules + +:dp:`fls_87rp1hfwvjel` +A :t:`tuple expression` is an :t:`expression` that constructs a :t:`tuple`. + +:dp:`fls_581y6jq1eyn8` +A :t:`tuple initializer` is an :t:`operand` that provides the :t:`value` of a +:t:`tuple field` in a :t:`tuple expression`. + +:dp:`fls_ljz3sxmfzflm` +The :t:`type` of a :t:`tuple expression` is ``(T1, T2, ..., TN)``, where ``T1`` +is the :t:`type` of the first :t:`tuple initializer`, ``T2`` is the :t:`type` of +the second :t:`tuple initializer`, and ``TN`` is the :t:`type` of the ``N``-th +:t:`tuple initializer`. + +:dp:`fls_k2aznqo9j49p` +The :t:`value` of a :t:`tuple expression` is ``(V1, V2, ..., VN)``, where ``V1`` +is the :t:`value` of the first :t:`tuple initializer`, ``V2`` is the :t:`value` +of the second :t:`tuple initializer`, and ``VN`` is the :t:`value` of the +``N``-th :t:`tuple initializer`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_waf55yd3mpsq` +The :t:`evaluation` of a :t:`tuple expression` evaluates its +:t:`[tuple initializer]s` in left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + () + (1.2, 3.4) + ("hello", 42i16, true) + +.. _fls_8tsynkj2cufj: + +Struct Expressions +------------------ + +.. rubric:: Syntax + +.. syntax:: + + StructExpression ::= + Constructee $${$$ StructExpressionContent? $$}$$ + + Constructee ::= + PathExpression + + StructExpressionContent ::= + BaseInitializer + | FieldInitializerList ($$,$$ BaseInitializer | $$,$$?) + + BaseInitializer ::= + $$..$$ Operand + + FieldInitializerList ::= + FieldInitializer ($$,$$ FieldInitializer)* + + FieldInitializer ::= + IndexedInitializer + | NamedInitializer + | ShorthandInitializer + + IndexedInitializer ::= + FieldIndex : Expression + + NamedInitializer ::= + Identifier : Expression + + ShorthandInitializer ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_ij8rebvupb85` +A :t:`struct expression` is an :t:`expression` that constructs an +:t:`enum value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_4z91ymz3ciup` +A :t:`constructee` indicates the :t:`enum variant`, :t:`struct`, or :t:`union` +whose value is being constructed by a :t:`struct expression`. + +:dp:`fls_uib1ml41mfrn` +A :t:`base initializer` is a :t:`construct` that specifies an :t:`enum value`, +a :t:`struct value`, or a :t:`union value` to be used as a base for +construction in a :t:`struct expression`. + +:dp:`fls_gfu267bpl9ql` +The :t:`type` of a :t:`base initializer` is the :t:`type` of its :t:`operand`. +The :t:`type` of a :t:`base initializer` shall be the same as the :t:`type` of +the :t:`constructee`. + +:dp:`fls_ph7fsphbpbv4` +An :t:`indexed initializer` is a :t:`construct` that specifies the index and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_y3p6rtm7ek3l` +An :t:`indexed initializer` matches a :t:`field` of the :t:`constructee` +when the :t:`field index` of the :t:`indexed initializer` resolves to a valid +position of a :t:`field` in the :t:`constructee`. Such an +:t:`indexed initializer` is a :dt:`matched indexed initializer`. + +:dp:`fls_dfajs3xaxbv` +The :t:`type` of the :t:`operand` of an :t:`indexed initializer` and the +:t:`type` of the matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_e5b9n910z1cp` +The :t:`value` of an :t:`indexed initializer` is the :t:`value` of its +:t:`operand`. + +:dp:`fls_lwyq3vyc91rn` +A :t:`named initializer` is a :t:`construct` that specifies the name and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_qed1pps827dv` +A :t:`named initializer` matches a :t:`field` of the :t:`constructee` when +its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such a +:t:`named initializer` is a :dt:`matched named initializer`. + +:dp:`fls_b60omrhc7t73` +The :t:`type` of a :t:`named initializer` and the :t:`type` of the matched +:t:`field` shall be :t:`unifiable`. + +:dp:`fls_z3gj1v6g605r` +The :t:`value` of a :t:`named initializer` is the :t:`value` of its +:t:`expression`. + +:dp:`fls_57t368kema7h` +A :t:`shorthand initializer` is a :t:`construct` that specifies the :t:`name` +of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_sm2hx8sh4agb` +A :t:`shorthand initializer` is equivalent to a :t:`named initializer` where +both the :t:`identifier` and the :t:`expression` of the :t:`named initializer` +denote the :t:`identifier` of the :t:`shorthand initializer`. + +:dp:`fls_yjx1t3x6qpfg` +A :t:`shorthand initializer` matches a :t:`field` of the :t:`constructee` +when its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such +a :t:`shorthand initializer` is a :dt:`matched shorthand initializer`. + +:dp:`fls_2dajkhq58cdp` +The :t:`type` of a :t:`shorthand initializer` and the :t:`type` of the matched +:t:`field` shall be :t:`unifiable`. + +:dp:`fls_9s4znhi0u3ys` +The :t:`value` of a :t:`shorthand initializer` is the :t:`value` its +:t:`identifier` resolves to. + +:dp:`fls_i31rodt42m0z` +The :t:`type` of a :t:`struct expression` is the :t:`type` of the +:t:`constructee`. + +:dp:`fls_sjwd8o5mknjo` +The :t:`value` of a :t:`struct expression` is the :t:`enum value`, +:t:`struct value`, or :t:`union value` in construction. + +:dp:`fls_ccqomsereni2` +If the :t:`constructee` is a :t:`record enum variant` or a :t:`record struct`, +then + +* :dp:`fls_pivpdyr4seez` + For each :t:`field` of the :t:`constructee`, the :t:`struct expression` shall + either: + + * :dp:`fls_bbmm5vir9xos` + Contain at most one :t:`matched named initializer`, or + + * :dp:`fls_9370n5xkkzce` + Contain at most one :t:`matched shorthand initializer`, or + + * :dp:`fls_rclgwzdhfjj` + Have exactly one :t:`base initializer`. + +* :dp:`fls_lmxz5768v5d8` + A :t:`base initializer` is allowed even if all :t:`[field]s` of the + :t:`constructee` have been matched. + +:dp:`fls_939cugbxju5e` +If the :t:`constructee` is a :t:`tuple enum variant` or a :t:`tuple struct`, +then + +* :dp:`fls_c34qwhaq2asm` + For each :t:`field` of the :t:`constructee`, the :t:`struct expression` shall + either: + + * :dp:`fls_j2kmp1fee0g4` + Contain at most one :t:`matched indexed initializer`, or + + * :dp:`fls_90q7krxazc6u` + Have exactly one :t:`base initializer`. + +* :dp:`fls_qo05owpmtag0` + A :t:`base initializer` is allowed even if all :t:`[field]s` of the + :t:`constructee` have been matched. + +:dp:`fls_ywh3nk6emwmw` +If the :t:`constructee` is a :t:`union type`, then + +* :dp:`fls_5w9lj5dc84p` + The :t:`struct expression` shall not contain a :t:`base initializer`. + +* :dp:`fls_5zceer19mhdu` + For the single :t:`field` of the :t:`constructee`, the :t:`struct expression` + shall either: + + * :dp:`fls_mq80i8fof7sx` + Contain exactly one :t:`matched named initializer`, or + + * :dp:`fls_raon1c1vrhx7` + Contain exactly one :t:`matched shorthand initializer`. + +:dp:`fls_njder5r7y5fg` +If the :t:`constructee` is a :t:`unit enum variant` or a :t:`unit struct`, then +the :t:`struct expression` shall have at most one :t:`base initializer`. + +:dp:`fls_w7x9wy6t0qcp` +If a :t:`base initializer` is supplied, then for each :t:`field` that was not +matched in the :t:`struct expression` the :t:`value` of the corresponding +:t:`field` of the :t:`base initializer` is :t:`passed ` to +the :t:`field` of the :t:`constructee`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_vsxsbqps64o` +The :t:`evaluation` of a :t:`struct expression` evaluates its :t:`[operand]s` in +a left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + enum Occupation { + Engineer, + Gardener + } + + struct Employee { + name: String, + age: u16, + occupation: Occupation + compensation: u32 + } + + let alice = Employee { + name: "Alice".to_string(), + age: 23, + occupation: Occupation::Engineer + compensation: 250_000 + }; + + let age = 45; + + let bob = Employee { + name: "Bob".to_string(), // matched named initializer + age, // matched shorthand initializer + .. alice // equivalent to alice.occupation, alice.compensation + }; + + union Union { + int: u32, + float: f32 + } + + let u1 = Union { int: 0 }; + let u2 = Union { float: 0.0 }; + +.. _fls_mjVXiDQRIAzU: + +Invocation Expressions +---------------------- + +.. _fls_xa4nbfas01cj: + +Call Expressions +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CallExpression ::= + CallOperand $$($$ ArgumentOperandList? $$)$$ + + CallOperand ::= + Operand + + ArgumentOperandList ::= + ExpressionList + +.. rubric:: Legality Rules + +:dp:`fls_fvgfx17ossd9` +A :t:`call expression` is an :t:`expression` that invokes a :t:`function` or +constructs a :t:`tuple enum variant value` or a :t:`tuple struct value`. + +:dp:`fls_jvz5z3eqxb39` +An :t:`argument operand` is an :t:`operand` which is used as an argument in a +:t:`call expression` or a :t:`method call expression`. + +:dp:`fls_7ql1c71eidg8` +A :t:`call operand` is the :t:`function` being invoked or the +:t:`tuple enum variant value` or the :t:`tuple struct value` being constructed +by a :t:`call expression`. + +:dp:`fls_QpBu34U6hXn9` +A :t:`tuple struct call expression` is a :t:`call expression` where the +:t:`call operand` resolves to a :t:`tuple struct`. + +:dp:`fls_4t6imtiw6kzt` +A :t:`callee type` is either a :t:`function item type`, a +:t:`function pointer type`, a :t:`tuple enum variant`, a +:t:`tuple struct type`, or a :t:`type` that implements any of the +:std:`core::ops::Fn`, :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` +:t:`[trait]s`. + +:dp:`fls_bu6i3mcvnbin` +The :t:`type` of a :t:`call expression` is the :t:`return type` of the invoked +:t:`function`, the :t:`type` of the :t:`tuple enum variant` or the +:t:`tuple struct` being constructed, or :t:`associated type` +:std:`core::ops::FnOnce::Output`. + +:dp:`fls_8ljrgdept7s8` +A :t:`call expression` whose :t:`callee type` is either an +:t:`external function item type`, an :t:`unsafe function item type`, or an +:t:`unsafe function pointer type` shall require :t:`unsafe context`. + +:dp:`fls_7p6zrjbpj0kl` +The :t:`value` of a :t:`call expression` is determined as follows: + +* :dp:`fls_yrr1s0tucgvh` + If the :t:`callee type` is a :t:`function item type` or a + :t:`function pointer type`, then the :t:`value` is the result of invoking the + corresponding :t:`function` with the :t:`[argument operand]s`. + +* :dp:`fls_RZjFs9koNOk8` + If the :t:`callee type` is a :t:`tuple enum variant` or a + :t:`tuple struct type`, then the :t:`value` is the result of constructing + the :t:`tuple enum variant` or the :t:`tuple struct` with the + :t:`[argument operand]s`. + +* :dp:`fls_s3q3sej1hgho` + If the :t:`callee type` implements the :std:`core::ops::Fn` :t:`trait`, then + the :t:`value` is the result of invoking + ``core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple)``, + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +* :dp:`fls_cu2ubdm3tfwb` + If the :t:`call operand` implements the :std:`core::ops::FnMut` :t:`trait`, + then the :t:`value` is the result of invoking + ``core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple),`` + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +* :dp:`fls_9bbewx1l7h5h` + If the :t:`call operand` implements the :std:`core::ops::FnOnce` :t:`trait`, + then the :t:`value` is the result of invoking + ``core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple),`` + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +:dp:`fls_ZSkcro52q097` +A :t:`call expression` is subject to :t:`call resolution`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ggr5i91vur0r` +The :t:`evaluation` of a :t:`call expression` proceeds as follows: + +#. :dp:`fls_hwalzgdidbfz` + The :t:`call operand` is evaluated. + +#. :dp:`fls_p52mfvpadu7w` + The :t:`[argument operand]s` are evaluated in left-to-right order. + +#. :dp:`fls_1cyo5qhbl1j9` + If the :t:`adjusted call operand` is a :t:`function item type` or + :t:`function pointer type`, then corresponding :t:`function` is invoked. + +#. :dp:`fls_nb0eqky2akzt` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::Fn` :t:`trait`, then + ``core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple)`` is + invoked. + +#. :dp:`fls_9lt4wh9ql5ae` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::FnMut` :t:`trait`, then + ``core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple)`` + is invoked. + +#. :dp:`fls_ixebnlcccmit` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::FnOnce` :t:`trait`, then + ``core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple)`` + is invoked. + +.. rubric:: Undefined Behavior + +:dp:`fls_5yeq4oah58dl` +It is undefined behavior to call a :t:`function` with an :t:`ABI` other than the +:t:`ABI` the :t:`function` was defined with. + +.. rubric:: Examples + +.. code-block:: rust + + let three: i32 = add(1, 2); + +.. _fls_z7q8kbjwdc7g: + +Method Call Expressions +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MethodCallExpression ::= + ReceiverOperand $$.$$ MethodOperand $$($$ ArgumentOperandList? $$)$$ + + ReceiverOperand ::= + Operand + + MethodOperand ::= + PathExpressionSegment + +.. rubric:: Legality Rules + +:dp:`fls_b7i26954j1hc` +A :t:`method call expression` is an :t:`expression` that invokes a :t:`method` +of a :t:`variable`. + +:dp:`fls_jx3ryre0xs88` +A :t:`receiver operand` is an :t:`operand` that denotes the :t:`value` whose +:t:`method` is being invoked by a :t:`method call expression`. + +:dp:`fls_3AQUOBo7akXu` +A :t:`method operand` is an :t:`operand` that denotes the :t:`method` being +invoked by a :t:`method call expression`. + +:dp:`fls_11glzggtbgb3` +The :t:`type` of a :t:`method call expression` is the :t:`return type` of the +invoked :t:`method`. + +:dp:`fls_ljvj1f9fv085` +The :t:`value` of a :t:`method call expression` is the :t:`value` returned by +the invoked :t:`method`. + +:dp:`fls_y7bj7y6davlh` +A :t:`method call expression` is subject to :t:`method resolution`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_oxxk3snd7ya0` +The :t:`evaluation` of a :t:`method call expression` proceeds as follows: + +#. :dp:`fls_gmpq15g77o20` + The :t:`receiver operand` is evaluated. + +#. :dp:`fls_pu0n9hakkym2` + The :t:`[argument operand]s` are evaluated in left-to-right order. + +#. :dp:`fls_cawdkgvvd1x6` + The :t:`method` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + trait Command { + fn execute(&self); + } + + struct ClickCommand { ... } + + impl ClickCommand for Command { + fn execute(&self) { + println!("Someone clicked me!") + } + } + + let click = ClickCommand { ... }; + click.execute(); + +.. _fls_8gPCPVc99pXJ: + +Call Conformance +~~~~~~~~~~~~~~~~ + +:dp:`fls_tsn6SUUG9LvW` +A :t:`method call expression` is equivalent to a :t:`call expression` where the +:t:`call operand` is the resolved :t:`method` and the adjusted +:t:`receiver operand` is prepended to the :t:`[argument operand]s`. + +:dp:`fls_c40C6rg6rGv6` +An :t:`argument operand` matches a :t:`function parameter` or :t:`field` of the +:t:`callee type` when its position and the position of the +:t:`function parameter` or :t:`field` are the same. Such an +:t:`argument operand` is a :dt:`matched argument operand`. + +:dp:`fls_Gr1ixJ9vFjUm` +The :t:`type` of a :t:`matched argument operand` and the :t:`type` of the +corresponding :t:`function parameter` or :t:`field` shall be :t:`unifiable`. + +:dp:`fls_jTMQa6AJSMpE` +The number of :t:`[argument operand]s` shall be equal to the number of +:t:`[field]s` or :t:`[function parameter]s` of the :t:`callee type`. + +.. _fls_18k3uajrgq5f: + +Field Access Expressions +------------------------ + +.. rubric:: Syntax + +.. syntax:: + + FieldAccessExpression ::= + ContainerOperand $$.$$ FieldSelector + + ContainerOperand ::= + Operand + + FieldSelector ::= + IndexedFieldSelector + | NamedFieldSelector + + IndexedFieldSelector ::= + DecimalLiteral + + NamedFieldSelector ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_hr8qvwlhd9ts` +A :t:`field access expression` is an :t:`expression` that accesses a :t:`field` +of a :t:`value`. + +:dp:`fls_s2vpn4ihenpe` +A :t:`container operand` is an :t:`operand` that indicates the :t:`value` whose +:t:`field` is selected in a :t:`field access expression`. + +:dp:`fls_yeuayil6uxzx` +A :t:`field selector` is a :t:`construct` that selects the :t:`field` to be +accessed in a :t:`field access expression`. + +:dp:`fls_qqrconpa92i3` +A :t:`selected field` is a :t:`field` that is selected by a +:t:`field access expression`. + +:dp:`fls_fovs9il2h9xg` +The :t:`type` of a :t:`field access expression` is the :t:`type` of the +:t:`selected field`. + +:dp:`fls_r1b4n12i93pg` +The :t:`value` of a :t:`field access expression` is the :t:`value` of the +:t:`selected field`. + +:dp:`fls_kddnnz8uc15b` +Reading the :t:`selected field` of a :t:`union` shall require +:t:`unsafe context`. + +:dp:`fls_an3no949lvfw` +Writing to the :t:`selected field` of a :t:`union` where the :t:`type` of the +:t:`selected field` implements the :std:`core::marker::Copy` :t:`trait` or the +:std:`core::mem::ManuallyDrop` :t:`trait` shall not require :t:`unsafe context`. + +:dp:`fls_t6xmsm2nk1bc` +Writing to and then reading from the :t:`selected field` of a :t:`union` +subject to :t:`attribute` :c:`repr` is equivalent to invoking :t:`function` +``core::mem::transmute(field_bits)`` where ``write_type`` +is the :t:`type` used at the time of writing the :t:`selected field`, +``read_type`` is the :t:`type` used at the time of reading the +:t:`selected field`, and ``field_bits`` is the bit representation of the +:t:`selected field`. + +:dp:`fls_jjnyuU9KIaGy` +A :t:`field access expression` is subject to :t:`field resolution`. + +.. rubric:: Undefined Behavior + +:dp:`fls_Vani4665hiJY` +It is undefined behavior reading the :t:`selected field` of a +:t:`union type` when it contains data that is invalid for the :t:`selected +field`'s type. + +.. rubric:: Dynamic Semantics + +:dp:`fls_6uzouesw2sod` +The :t:`evaluation` of a :t:`field access expression` evaluates its +:t:`container operand`. + +.. rubric:: Examples + +:dp:`fls_x27yayh4z787` +See :p:`6.8.1. ` for the declaration of ``alice``. + +.. code-block:: rust + + alice.name + +:dp:`fls_dimto84ifanr` +The following indexed field access evaluates to ``42``. + +.. code-block:: rust + + ("hello", 42i16, true).1 + +.. _fls_tjyexqrx0fx5: + +Closure Expressions +------------------- + +.. rubric:: Syntax + +.. syntax:: + + ClosureExpression ::= + $$move$$? $$|$$ ClosureParameterList? $$|$$ + (ClosureBody | ClosureBodyWithReturnType) + + ClosureBody ::= + Expression + + ClosureBodyWithReturnType ::= + ReturnTypeWithoutBounds BlockExpression + + ReturnTypeWithoutBounds ::= + $$->$$ TypeSpecificationWithoutBounds + + ClosureParameterList ::= + ClosureParameter ($$,$$ ClosureParameter)* $$,$$? + + ClosureParameter ::= + OuterAttributeOrDoc* PatternWithoutAlternation TypeAscription? + +.. rubric:: Legality Rules + +:dp:`fls_2d141c9a0yui` +A :t:`closure expression` is an :t:`expression` that defines a +:t:`closure type` and constructs a value of that :t:`type`. + +:dp:`fls_UgJgur0z6d4a` +The :t:`return type` of a :t:`closure type` is determined as follows: + +* :dp:`fls_af1WL2mBKMfW` + If the :t:`closure expression` specifies a :s:`ClosureBodyWithReturnType`, then the :t:`return type` is the specified :s:`ReturnTypeWithoutBounds`. + +* :dp:`fls_wLVeE6cNG8oa` + Otherwise the :t:`return type` is the :t:`type` of the :t:`closure body`. + +:dp:`fls_srbl7ptknjyk` +A :t:`closure body` is a :t:`construct` that represents the executable portion +of a :t:`closure expression`. + +:dp:`fls_oey0ivaiu1l` +A :t:`closure body` denotes a new :t:`control flow boundary`. + +:dp:`fls_fg8lx0yyt6oq` +A :t:`closure body` is subject to :t:`capturing`. + +:dp:`fls_c3rzwUxjmBMY` +A :t:`closure parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_81KOEXwps2HS` +The :t:`type` of a :t:`closure parameter` is determined as follows: + +* :dp:`fls_XWJ9SFggdVeH` + If the :t:`closure parameter` lacks a :s:`TypeSpecification`, the :t:`type` is inferred form the usage of the :t:`closure parameter`. + +* :dp:`fls_mPWkIxTJErqx` + Otherwise the :t:`type` is the specified :t:`type`. + +:dp:`fls_r6gWLoNR7JMR` +The :t:`pattern` of a :t:`closure parameter` shall be an +:t:`irrefutable pattern`. + +:dp:`fls_zsaTK9snhXs0` +The :t:`expected type` of the :t:`pattern` of a :t:`closure parameter` is the :t:`type` of the :t:`closure parameter`. + +:dp:`fls_qPeOL6ZhXsgH` +The :t:`[binding]s` of all :t:`[pattern]s` of all :t:`[closure parameter]s` of a :t:`closure expression` shall not shadow another. + +:dp:`fls_yn30xuejcfxo` +The :t:`type` of a :t:`closure expression` is the unique anonymous +:t:`closure type` defined by it. + +:dp:`fls_sje6cdvifgv5` +The :t:`value` of a :t:`closure expression` is the :t:`value` of the unique +anonymous :t:`closure type` instantiated with the selected +:t:`[capture target]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_f59fw17gsasn` +The :t:`evaluation` of a :t:`closure expression` proceeds as follows: + +#. :dp:`fls_7w15ccc1zzxl` + An anonymous :t:`value` of an unique anonymous :t:`closure type` is created. + +.. rubric:: Examples + +.. code-block:: rust + + fn do_ten_times(consumer: F) where F: Fn(i32) { + for times in 0 .. 10 { + consumer(times); + } + } + + do_ten_times(|value: i32| { println!("value: {}", value)}); + +.. _fls_rr908hgunja7: + +Loop Expressions +---------------- + +.. rubric:: Syntax + +.. syntax:: + + LoopExpression ::= + Label? LoopContent + + Label ::= + $$'$$ NonKeywordIdentifier $$:$$ + + LoopContent ::= + ForLoopExpression + | InfiniteLoopExpression + | WhileLetLoopExpression + | WhileLoopExpression + + LoopBody ::= + BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_y1d8kd1bdlmx` +A :t:`loop expression` is an :t:`expression` that evaluates a :t:`block +expression` continuously as long as some criterion holds true. + +:dp:`fls_BjZjuiFnPtFd` +A :t:`loop body` is the :t:`block expression` of a :t:`loop expression`. + +:dp:`fls_XEc0cIkpkyzJ` +The :t:`type` of the :t:`loop body` shall be the :t:`unit type`. + +:dp:`fls_eg93m93gvwal` +An :t:`anonymous loop expression` is a :t:`loop expression` without a +:t:`label`. + +:dp:`fls_phpoq9ho8f1v` +A :t:`named loop expression` is a :t:`loop expression` with a :t:`label`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_aw6qczl4zpko` +A :t:`loop expression` is :t:`terminated` when its :t:`block expression` is no +longer evaluated. + +.. _fls_onfyolkcbeh3: + +For Loops +~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ForLoopExpression ::= + $$for$$ Pattern $$in$$ SubjectExpression LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_1bh2alh37frz` +A :t:`for loop expression` is a :t:`loop expression` that continues to evaluate +its :t:`loop body` as long as its :t:`subject expression` yields a :t:`value`. + +:dp:`fls_fkgbin6ydkm4` +The :t:`type` of a :t:`subject expression` shall implement the +:std:`core::iter::IntoIterator` :t:`trait`. + +:dp:`fls_fo6Aa6Td6rMA` +The :t:`expected type` of the :t:`pattern` is the :t:`associated type` :std:`core::iter::IntoIterator::Item` of the :t:`subject expression`'s :std:`core::iter::IntoIterator` implementation. + +:dp:`fls_bmTjhKdpfgCB` +The :t:`type` of an :t:`for loop expression` is the :t:`unit type`. + +:dp:`fls_FkxLf91WKiIo` +The :t:`value` of an :t:`for loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_kuxo0on3vit6` +The :t:`evaluation` of a :t:`for loop expression` of the form + +.. code-block:: rust + + 'label: for pattern in subject_expression { + /* loop body */ + } + +:dp:`fls_2lrzrtjhsdes` +is equivalent to the :t:`evaluation` of the following :t:`block expression`: + +.. code-block:: rust + + { + let result = + match core::iter::IntoIterator::into_iter + (subject_expression) + { + mut iter => 'label: loop { + let mut next_value; + match core::iter::Iterator::next(&mut iter) { + Option::Some(value) => next_value = value, + Option::None => break + }; + let pattern = next_value; + let () = { /* loop body */ }; + } + }; + result + } + +.. rubric:: Examples + +.. code-block:: rust + + let favorite_fruits = &["apples", "pears", "strawberries"]; + + for fruit in favorite_fruits { + println!("I like eating {}.", fruit); + } + +.. _fls_sf4qnd43z2wc: + +Infinite Loops +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + InfiniteLoopExpression ::= + $$loop$$ LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_p11qw6mtxlda` +An :t:`infinite loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` indefinitely. + +:dp:`fls_b314wjbv0zwe` +The :t:`type` of a :t:`infinite loop expression` is determined as follows: + +* :dp:`fls_rpedapxnv8w3` + If the :t:`infinite loop expression` does not contain a :t:`break expression`, + then the :t:`type` is the :t:`never type`. + +* :dp:`fls_wf11yp1jwf53` + If the :t:`infinite loop expression` contains at least one + :t:`break expression`, then the :t:`type` is the :t:`unified type` of the + :t:`[break type]s` of all :t:`[break expression]s`. + +:dp:`fls_q3qpcf2fz7h` +The :t:`value` of a :t:`infinite loop expression` is determined as follows: + +* :dp:`fls_2ulbzmuuny3g` + If the :t:`infinite loop expression` does not contain a :t:`break expression`, + then the :t:`value` is the :t:`unit value`. + +* :dp:`fls_99imks9hj3kp` + If the :t:`infinite loop expression` contains at least one + :t:`break expression`, then the :t:`value` is the :t:`break value` of the + :t:`break expression` that broke out of the :t:`loop expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_w4tj5gofwih1` +The :t:`evaluation` of an :t:`infinite loop expression` proceeds as follows: + +#. :dp:`fls_pg3r6nyl865` + The :t:`block expression` is evaluated. + +#. :dp:`fls_lp15ilkul2uv` + Control restarts the :t:`evaluation` of the :t:`infinite loop expression`. + +.. rubric:: Examples + +.. code-block:: rust + + loop { + println!("I am alive!"); + } + +.. _fls_5jjm1kt43axd: + +While Loops +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WhileLoopExpression ::= + $$while$$ IterationExpression LoopBody + + IterationExpression ::= + Expression + +.. rubric:: Legality Rules + +:dp:`fls_ajby242tnu7c` +A :t:`while loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`iteration expression` holds +true. + +:dp:`fls_13hmhzqz82v6` +An :t:`iteration expression` is an :t:`expression` that provides the criterion +of a :t:`while loop expression`. + +:dp:`fls_d7ofrq3777kq` +The :t:`type` of an :t:`iteration expression` shall be :t:`type` :c:`bool`. + +:dp:`fls_P8iyTN6KZCVA` +The :t:`type` of an :t:`while loop expression` is the :t:`unit type`. + +:dp:`fls_s6hRa5spz64w` +The :t:`value` of an :t:`while loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1i7hm645h7ox` +The :t:`evaluation` of a :t:`while loop expression` proceeds as follows: + +#. :dp:`fls_5x0du3u1jwd3` + The :t:`iteration expression` is evaluated. + +#. :dp:`fls_23uluvhhoct6` + If the :t:`iteration expression` evaluated to ``true``, then: + + #. :dp:`fls_k7g4cac93617` + The :t:`block expression` is evaluated. + + #. :dp:`fls_j08k3brdpgno` + Control restarts the :t:`evaluation` of the :t:`while loop expression`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut counter = 0; + + while counter < 5 { + counter += 1; + println("iteration {}", counter); + } + +.. _fls_m6kd5i9dy8dx: + +While Let Loops +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WhileLetLoopExpression ::= + $$while$$ $$let$$ Pattern $$=$$ SubjectLetExpression LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_fmdlyp9r9zl7` +A :t:`while let loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject let expression` yields +a :t:`value` that can be matched against its :t:`pattern`. + +:dp:`fls_bC60ZSC9yUOI` +The :t:`expected type` of the :t:`pattern` is the :t:`type` of the :t:`subject let expression`. + +:dp:`fls_gTfSLePwHTES` +The :t:`type` of an :t:`while let loop expression` is the :t:`unit type`. + +:dp:`fls_pTq4LIGIoAtN` +The :t:`value` of an :t:`while let loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_z2ht5iaat5ag` +The :t:`evaluation` of a :t:`while let loop expression` of the form + +.. code-block:: rust + + 'label: let pattern = subject_let_expression { + /* loop body */ + } + +:dp:`fls_pacf1uavh1qt` +shall be equivalent to the :t:`evaluation` the following :t:`infinite loop`: + +.. code-block:: rust + + 'label: loop { + match subject_let_expression { + pattern => { /* loop body */ }, + _ => break + } + } + +.. rubric:: Examples + +.. code-block:: rust + + let mut favorite_animals = vec!["cats", "dogs", "otters"]; + + while let Some(animal) = favorite_animals.pop() { + println!("I like petting {}", animal); + } + +.. _fls_uusi0zej55is: + +Loop Labels +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LabelIndication ::= + $$'$$ NonKeywordIdentifier + +.. rubric:: Legality Rules + +:dp:`fls_tx5u743391h7` +A :t:`label indication` is a :t:`construct` that indicates a :t:`label`. + +:dp:`fls_7hc8yboeaho0` +A :t:`label indication` shall indicate a :t:`label` of an enclosing +:t:`named block expression` or :t:`named loop expression` that does not pass a +:t:`control flow boundary` in order to reach the enclosing +:t:`named block expression` or :t:`named loop expression`. + +.. _fls_jr4tpuyksr75: + +Break Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BreakExpression ::= + $$break$$ LabelIndication? Operand? + +.. rubric:: Legality Rules + +:dp:`fls_i5ko1t2wbgxe` +A :t:`break expression` is an :t:`expression` that terminates a +:t:`loop expression` or a :t:`named block expression`. + +:dp:`fls_jiykbp51909f` +A :t:`break expression` shall appear within a :t:`loop body` or a +:t:`named block expression`. + +:dp:`fls_gnupTkuafKNi` +If a :t:`break expression` appears within a :t:`named block expression`, then +the :t:`break expression` shall have a :t:`label indication`. + +:dp:`fls_7frvr2nm2mcj` +The :t:`label indication` of a :t:`break expression` shall resolve to the +:t:`label` of an enclosing :t:`named block expression` or +:t:`named loop expression`. + +:dp:`fls_54d5uydc87td` +A :t:`break expression` with a :t:`label indication` is associated with the +:t:`named block expression` or :t:`named loop expression` whose :t:`label` is +indicated by the :t:`label indication`. + +:dp:`fls_ghxns2nggffj` +A :t:`break expression` without a :t:`label indication` is associated with the +innermost enclosing :t:`loop expression`. + +:dp:`fls_3hI7FU42sVyX` +If a :t:`break expression` appears within a :t:`loop expression`, then the +:t:`break expression` shall have an :t:`operand` only when it is associated +with an :t:`infinite loop`. + +:dp:`fls_dnnq1zym8ii0` +The :t:`type` of a :t:`break expression` is the :t:`never type`. + +:dp:`fls_1wdybpfldj7q` +:t:`Break type` is the :t:`type` of the :t:`operand` of a :t:`break expression`. + +:dp:`fls_8yore99adr22` +The :t:`break type` is determined as follows: + +* :dp:`fls_60imbzwg3e2x` + If the :t:`break expression` lacks an :t:`operand`, then the :t:`break type` + is the :t:`unit type`. + +* :dp:`fls_l0c05wa9q97w` + If the :t:`break expression` has an :t:`operand`, then the :t:`break type` is + the :t:`type` of its :t:`operand`. + +:dp:`fls_bgd7d5q69q0g` +:t:`Break value` is the :t:`value` of the :t:`operand` of a +:t:`break expression`. + +:dp:`fls_yb8jv4mkmki0` +The :t:`break value` is determined as follows: + +* :dp:`fls_d7l1y2qbe8br` + If the :t:`break expression` lacks an :t:`operand`, then the :t:`break value` + is the :t:`unit value`. + +* :dp:`fls_56szfyilc06` + If the :t:`break expression` has an :t:`operand`, then the :t:`break value` is + the :t:`value` of its :t:`operand`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_jnpx8mx1oa7n` +If a :t:`break expression` appears within a :t:`loop expression`, then the +:t:`evaluation` of the :t:`break expression` proceeds as follows: + +#. :dp:`fls_l2kp8mw6bjj0` + The :t:`operand` is evaluated. + +#. :dp:`fls_2nmadhe3ismj` + All enclosing :t:`[loop expression]s` upto and including the associated + :t:`loop expression` are :t:`terminated`. + +:dp:`fls_XpFLrL78QMe1` +If a :t:`break expression` appears within a :t:`named block expression`, then +the :t:`evaluation` of the :t:`break expression` proceeds as follows: + +#. :dp:`fls_WFAW1PG1YXdM` + The :t:`operand` is evaluated. + +#. :dp:`fls_AurifMM8RpDp` + All enclosing :t:`[named block expression]s` upto and including the + associated :t:`named block expression` are terminated. + +.. rubric:: Examples + +:dp:`fls_32fwis9pxh77` +The following break expression terminates both the inner and the outer loop. + +.. code-block:: rust + + 'outer: loop { + 'inner: loop { + break 'outer; + } + } + +.. _fls_sjwrlwvpulp: + +Continue Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ContinueExpression ::= + $$continue$$ LabelIndication? + +.. rubric:: Legality Rules + +:dp:`fls_wzs6kz9ffqzt` +A :t:`continue expression` shall appear within a :t:`loop expression`. + +:dp:`fls_r5ke7b9n7k3s` +A :t:`continue expression` without a :t:`label indication` is associated with +the innermost enclosing :t:`loop expression`. + +:dp:`fls_ckm6i9c3s6j8` +A :t:`continue expression` with a :t:`label indication` is associated with a +:t:`named loop expression` whose :t:`label` is indicated by the +:t:`label indication`. + +:dp:`fls_d0bmw8xiw5nk` +The :t:`type` of a :t:`continue expression` is the :t:`never type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_vmyuuptfnwek` +The :t:`evaluation` of a :t:`continue expression` proceeds as follows: + +#. :dp:`fls_gm74eo754rq9` + If the :t:`continue expression` appears with a :t:`label indication`, then + all enclosing :t:`[loop expression]s` upto and including the associated + :t:`loop expression` are :t:`terminated`. + +#. :dp:`fls_gvuesa5ekeif` + The :t:`evaluation` of the associated :t:`loop expression` is restarted. + +.. rubric:: Examples + +:dp:`fls_767gv7zhqamh` +The following continue expression terminates and restarts ``game_loop``. + +.. code-block:: rust + + 'game_loop: loop { + if is_paused() { + continue; + } + . . . + } + +.. _fls_18swodqqzadj: + +Range Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + RangeExpression ::= + RangeFromExpression + | RangeFromToExpression + | RangeFullExpression + | RangeInclusiveExpression + | RangeToExpression + | RangeToInclusiveExpression + + RangeFromExpression ::= + RangeExpressionLowBound $$..$$ + + RangeFromToExpression ::= + RangeExpressionLowBound $$..$$ RangeExpressionHighBound + + RangeFullExpression ::= + $$..$$ + + RangeInclusiveExpression ::= + RangeExpressionLowBound $$..=$$ RangeExpressionHighBound + + RangeToExpression ::= + $$..$$ RangeExpressionHighBound + + RangeToInclusiveExpression ::= + $$..=$$ RangeExpressionHighBound + + RangeExpressionLowBound ::= + Operand + + RangeExpressionHighBound ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_bi82rusji8g0` +A :t:`range expression` is an :t:`expression` that constructs a range. + +:dp:`fls_msyv4oyk5zp9` +A :t:`range expression low bound` is an :t:`operand` that specifies the start of +a range. + +:dp:`fls_f648uuxxh4vk` +A :t:`range expression high bound` is an :t:`operand` that specifies the end of +a range. + +:dp:`fls_9pl4629t54yq` +If a :t:`range expression` has two :t:`[operand]s`, then the :t:`[type]s` of the +:t:`[operand]s` shall be :t:`unifiable`. + +:dp:`fls_xaumwogwbv3g` +A :t:`range-from expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound`. + +:dp:`fls_exa2ufugnpgc` +The :t:`type` of a :t:`range-from expression` is :std:`core::ops::RangeFrom`. + +:dp:`fls_jqy0p155btca` +The :t:`value` of a :t:`range-from expression` is +``core::ops::RangeFrom { start: range_expression_low_bound }``. + +:dp:`fls_ppustuqdji7b` +A :t:`range-from-to expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an excluded +:t:`range expression high bound`. + +:dp:`fls_ke2fpgodq84u` +The :t:`type` of a :t:`range-from-to expression` is :std:`core::ops::Range`. + +:dp:`fls_zb6jk6qykun6` +The :t:`value` of a :t:`range-from-to expression` is +``core::ops::Range { start: range_expression_low_bound, end: range_expression_high_bound }``. + +:dp:`fls_x67xo25n0qlz` +A :t:`range-full expression` is a :t:`range expression` that covers the whole +range of a :t:`type`. + +:dp:`fls_m6n0gvg3ct1b` +The :t:`type` of a :t:`range-full expression` is :std:`core::ops::RangeFull`. + +:dp:`fls_yvh5cdgzevni` +The :t:`value` of a :t:`range-full expression` is ``core::ops::RangeFull {}``. + +:dp:`fls_lh9my7g8oflq` +A :t:`range-inclusive expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an included +:t:`range expression high bound`. + +:dp:`fls_livflk52xaj9` +The :t:`type` of a :t:`range-inclusive expression` is +:std:`core::ops::RangeInclusive`. + +:dp:`fls_vj213j9bj61y` +The :t:`value` of a :t:`range-inclusive expression` is +``core::ops::RangeInclusive::new(range_expression_low_bound, range_expression_high_bound)``. + +:dp:`fls_5a1uivj19kob` +A :t:`range-to expression` is a :t:`range expression` that specifies an excluded +:t:`range expression high bound`. + +:dp:`fls_k611yoc8hk0n` +The :t:`type` of a :t:`range-to expression` is :std:`core::ops::RangeTo`. + +:dp:`fls_m0slikrulnvd` +The :t:`value` of a :t:`range-to expression` is +``core::ops::RangeTo { end: range_expression_high_bound }``. + +:dp:`fls_1gc436ee1nzm` +A :t:`range-to-inclusive expression` is a :t:`range expression` that specifies +an included :t:`range expression high bound`. + +:dp:`fls_8sfjw83irpre` +The :t:`type` of a :t:`range-to-inclusive expression` is +:std:`core::ops::RangeToInclusive`. + +:dp:`fls_5xw4opkbxhsc` +The :t:`value` of a :t:`range-to-inclusive expression` is +``core::ops::RangeToInclusive { end: range_expression_high_bound }``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ehseim1p479z` +The :t:`evaluation` of a :t:`range expression` evaluates its :t:`[operand]s` in +left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + 1 .. + 42 .. 86 + .. + dawn ..= dusk + ..= 5 + +.. _fls_nlzksiu8y3z9: + +If and If Let Expressions +------------------------- + +.. _fls_mkut7gut49gi: + +If Expressions +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IfExpression ::= + $$if$$ SubjectExpression BlockExpression ElseExpression? + + ElseExpression ::= + $$else$$ (BlockExpression | IfExpression | IfLetExpression) + +.. rubric:: Legality Rules + +:dp:`fls_2i4fbxbbvpf1` +An :t:`if expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on the :t:`value` of +its :t:`subject expression`. + +:dp:`fls_5azwlk7hav1k` +An :t:`else expression` is an :t:`expression` that represents either a +:t:`block expression`, an :t:`if expression`, or an :t:`if let expression`. + +:dp:`fls_r7gzxo16esri` +The :t:`type` of the :t:`subject expression` of an :t:`if expression` shall be +:t:`type` :c:`bool`. + +:dp:`fls_iv9t4nfs4f6w` +The :t:`type` of an :t:`if expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_i9sxf2q5jjqt` +The :t:`value` of an :t:`if expression` is the :t:`value` of its +:t:`block expression`. + +:dp:`fls_1e8qer6bh2f3` +The :t:`type` of an :t:`else expression` is the :t:`type` of its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +:dp:`fls_p5pjxk5xfcbx` +The :t:`value` of an :t:`else expression` is the :t:`value` of its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +:dp:`fls_mpq7gicosgkt` +The :t:`type` of an :t:`if expression` and the :t:`type` of an +:t:`else expression` shall be :t:`unifiable`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_yhlyzef9h97q` +The :t:`evaluation` of an :t:`if expression` proceeds as follows: + +#. :dp:`fls_w7lq4dkoyuf7` + The :t:`subject expression` is evaluated. + +#. :dp:`fls_5udx9zyeg5ga` + If the :t:`subject expression` evaluated to ``true``, then the + :t:`block expression` is evaluated. + +#. :dp:`fls_67l4j48n6p7o` + If the :t:`subject expression` evaluated to ``false`` and the + :t:`if expression` has an :t:`else expression`, then the :t:`else expression` + is evaluated. + +:dp:`fls_e8gd5lzcaifw` +The :t:`evaluation` of an :t:`else expression` evaluates its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +.. rubric:: Examples + +.. code-block:: rust + + if age <= 14 { + println!("child"); + } else if age <= 24 { + println!("youth"); + } else if age <=64 { + println!("adult"); + } else { + println!("senior"); + } + +.. _fls_p0t1ch115tra: + +If Let Expressions +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IfLetExpression ::= + $$if$$ $$let$$ Pattern $$=$$ SubjectLetExpression BlockExpression + ElseExpression? + +.. rubric:: Legality Rules + +:dp:`fls_dsrjup2umr9` +An :t:`if let expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on whether its +:t:`pattern` can be matched against its :t:`subject let expression`. + +:dp:`fls_okVOYzTT6fBK` +The :t:`expected type` of the :t:`pattern` is the :t:`type` of the :t:`subject let expression`. + +:dp:`fls_4vyrufo4qdeg` +The :t:`type` of an :t:`if let expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_qfnwwvzxsl3` +The :t:`value` of an :t:`if let expression` is the :t:`value` of its +:t:`block expression`. + +:dp:`fls_lEr4iqwdBcbA` +The :t:`type` of an :t:`if let expression` and the :t:`type` of an +:t:`else expression` shall be :t:`unifiable`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ijo73wtz1sy` +The :t:`evaluation` of an :t:`if let expression` of the form + +.. code-block:: rust + + if let pattern = subject_let_expression { + /* body */ + } + +:dp:`fls_qeho5iqiy59` +is equivalent to the :t:`evaluation` of the following :t:`match expression`: + +.. code-block:: rust + + match subject_let_expression { + pattern => { /* body */ }, + _ => () + } + +:dp:`fls_nhngr8y850dt` +The :t:`evaluation` of an :t:`if let expression` of the form + +.. code-block:: rust + + if let pattern = subject_let_expression { + /* body */ + } else { + /* else */ + } + +:dp:`fls_8fg2ufaxjkv5` +is equivalent to the :t:`evaluation` of the following :t:`match expression`: + +.. code-block:: rust + + match subject_let_expression { + pattern => { /* body */ }, + _ => { /* else */ } + } + +.. rubric:: Examples + +.. code-block:: rust + + let dish = ("Ham", "Eggs"); + + if let ("Ham", side) = dish { + println!("Ham is served with {}", side); + } + +.. _fls_e5td0fa92fay: + +Match Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + MatchExpression ::= + $$match$$ SubjectExpression $${$$ + InnerAttributeOrDoc* + MatchArmList? + $$}$$ + + MatchArmList ::= + IntermediateMatchArm* FinalMatchArm + + IntermediateMatchArm ::= + MatchArmMatcher $$=>$$ + $$($$ ExpressionWithBlock $$,$$? | ExpressionWithoutBlock $$,$$ $$)$$ + + FinalMatchArm ::= + MatchArmMatcher $$=>$$ Operand $$,$$? + + MatchArmMatcher ::= + OuterAttributeOrDoc* Pattern MatchArmGuard? + + MatchArmGuard ::= + $$if$$ Operand + +.. rubric:: Legality Rules + +:dp:`fls_ei4pbeksd1v8` +A :t:`match expression` is an :t:`expression` that tries to match one of its +multiple :t:`[pattern]s` against its :t:`subject expression` and if it succeeds, +evaluates an :t:`operand`. + +:dp:`fls_l45i24ikfavm` +A :t:`match arm` is a :t:`construct` that consists of a :t:`match arm matcher` +and a :t:`match arm body`. + +:dp:`fls_d9gerg12hm2d` +An :t:`intermediate match arm` is any :t:`non-[final match arm]` of a +:t:`match expression`. + +:dp:`fls_oj8dg28xw5yp` +A :t:`final match arm` is the last :t:`match arm` of a :t:`match expression`. + +:dp:`fls_lrdrtedyz28i` +A :t:`match arm matcher` is a :t:`construct` that consists of a :t:`pattern` and +a :t:`match arm guard`. + +:dp:`fls_zJQ4LecT1HYd` +The :t:`expected type` of the :t:`pattern` of the :t:`match arm matcher` is the :t:`type` of the :t:`subject expression`. + +:dp:`fls_8wjdichfxp0y` +A :t:`match arm body` is the :t:`operand` of a :t:`match arm`. + +:dp:`fls_hs1rr54hu18w` +A :t:`match arm guard` is a :t:`construct` that provides additional filtering to +a :t:`match arm matcher`. + +:dp:`fls_RPMOAaZ6lflI` +:t:`[Binding]s` introduced in the :t:`pattern` of a :t:`match arm matcher` are +:t:`immutable` in the :t:`match arm guard`. + +:dp:`fls_knv1affr2o8t` +The :t:`type` of the :t:`subject expression` and the :t:`[type]s` of all +:t:`[pattern]s` of all :t:`[match arm matcher]s` shall be :t:`unifiable`. + +:dp:`fls_bzhz5wjd90ii` +The :t:`type` of the :t:`operand` of a :t:`match arm guard` shall be :t:`type` +:c:`bool`. + +:dp:`fls_17ag0wzdbxv6` +The :t:`[type]s` of all :t:`match arm bodies ` shall be +:t:`unifiable`. + +:dp:`fls_5w964phrru82` +The :t:`type` of a :t:`match expression` is the :t:`unified type` of the +:t:`[type]s` of the :t:`[operand]s` of all :t:`[match arm]s`. + +:dp:`fls_g6xyz0beps3o` +A :t:`match arm` is selected when its :t:`pattern` matches the +:t:`value` of the :t:`subject expression` and its :t:`match arm guard` (if any) evaluates to +``true``. + +:dp:`fls_8dba4o5qg8js` +:t:`Match arm` selection happens in declarative order. + +:dp:`fls_e02um1gb89d0` +The :t:`[pattern]s` of all :t:`[match arm]s` taken together shall exhaustively +match the :t:`[subject expression]'s` :t:`type`. + +:dp:`fls_4sh2yrslszvb` +The :t:`value` of a :t:`match expression` is the :t:`value` of the :t:`operand` +of the selected :t:`match arm`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g551l8r8yh6d` +The :t:`evaluation` of a :t:`match expression` proceeds as follows: + +#. :dp:`fls_y44jzkbv74bv` + The :t:`subject expression` is evaluated. + +#. :dp:`fls_jwxykea99psw` + Each :t:`match arm` is evaluated in declarative order as follows: + + #. :dp:`fls_pgulnjeoxwtj` + The :t:`match arm matcher` of the :t:`match arm` is evaluated. + + #. :dp:`fls_2dg7wl68z7ar` + If the :t:`match arm matcher` succeeds, then + + #. :dp:`fls_yv11febo0kyb` + The :t:`operand` of the :t:`match arm` is evaluated. + + #. :dp:`fls_mvi9z1x836qu` + Control stops the :t:`evaluation` of the :t:`match expression`. + + #. :dp:`fls_81nnizrxgrsm` + Otherwise control proceeds with the :t:`evaluation` of the next + :t:`match arm`. + +:dp:`fls_4dv7x9nh2h4e` +The :t:`evaluation` of a :t:`match arm matcher` proceeds as follows: + +#. :dp:`fls_k7kliy101m0f` + The :t:`pattern` of the :t:`match arm matcher` is evaluated. + +#. :dp:`fls_k68zkb6jv0vz` + If the :t:`pattern` succeeds, then + + #. :dp:`fls_gbb6wbmher5z` + If the :t:`match arm matcher` has a :t:`match arm guard`, then + + #. :dp:`fls_jl4av757yx8j` + The :t:`match arm guard` is evaluated. + + #. :dp:`fls_wkh5wztauwhu` + If the :t:`match arm guard` evaluates to ``true``, then the + :t:`match arm matcher` succeeds. + + #. :dp:`fls_f5f0x8jstp1g` + Otherwise the :t:`match arm matcher` fails. + +#. :dp:`fls_yk8l9zjh7i0d` + Otherwise the :t:`match arm matcher` fails. + +:dp:`fls_sbtx1l6n2tp2` +The :t:`evaluation` of a :t:`match arm guard` evaluates its :t:`operand`. A +:t:`match arm guard` evaluates to ``true`` when its :t:`operand` evaluates to +``true``, otherwise it evaluates to ``false``. + +.. rubric:: Examples + +.. code-block:: rust + + fn quantify(number_of_things: i32) { + match number_of_things { + 0 | 1 => println!("not many"), + 2 ..= 9 => println!("a few"), + _ if number_of_things < 0 => println!("you owe me"), + _ => println!("lots") + } + } + +.. _fls_8l74abhlxzdl: + +Return Expressions +------------------ + +.. rubric:: Syntax + +.. syntax:: + + ReturnExpression ::= + $$return$$ Expression? + +.. rubric:: Legality Rules + +:dp:`fls_u7jk4j8gkho` +A :t:`return expression` is an :t:`expression` that optionally yields a +:t:`value` and causes control flow to return to the end of the enclosing +:t:`control flow boundary`. + +:dp:`fls_5v3j5ghhw8j8` +A :t:`return expression` shall appear within a :t:`control flow boundary`. + +:dp:`fls_7Ck4LMQMeQCv` +The :t:`type` of a :t:`return expression` is the :t:`never type`. + +:dp:`fls_r610t5vsi7bx` +The :t:`value` returned by a :t:`return expression` is determined as follows: + +* :dp:`fls_njndlx2rps2k` + If the :t:`return expression` has an :t:`operand`, then the :t:`value` is the + :t:`value` of the :t:`operand`. + +* :dp:`fls_tjksia7prao1` + If the :t:`return expression` does not have an :t:`operand`, then the + :t:`value` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_bqmwlona6l5w` +The :t:`evaluation` of a :t:`return expression` proceeds as follows: + +#. :dp:`fls_d9avvfi548t7` + If the :t:`return expression` has an :t:`operand`, then + + #. :dp:`fls_o3fc1z2mn8zc` + The :t:`operand` is evaluated. + + #. :dp:`fls_bbf54ukld7j9` + The :t:`value` of the :t:`operand` is :t:`passed ` + :t:`by move` into the designated output location of the enclosing + :t:`control flow boundary`. + +#. :dp:`fls_99ea30a5mulj` + Control destroys the current activation frame. + +#. :dp:`fls_ubwj8uj6sbgt` + Control is transferred to the caller frame. + +.. rubric:: Examples + +.. code-block:: rust + + fn max(left: i32, right: i32) -> i32 { + if left > right { + return left; + } + return right; + } + +.. _fls_hyrbmfmf6r8g: + +Await Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + AwaitExpression ::= + FutureOperand $$.$$ $$await$$ + + FutureOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_sjz5s71hwm7l` +An :t:`await expression` is an :t:`expression` that polls a :t:`future`, +suspending the :t:`execution` of the :t:`future` until the :t:`future` is ready. + +:dp:`fls_vhchgab59jvd` +A :t:`future operand` is an :t:`operand` whose :t:`future` is being awaited by +an :t:`await expression`. + +:dp:`fls_k9pncajmhgk1` +An :t:`await expression` shall appear within an +:t:`async control flow boundary`. Only the innermost :t:`control flow boundary` +shall be considered. + +:dp:`fls_9uw5pd7kbrx3` +The :t:`type` of a :t:`future operand` shall implement the +:std:`core::future::IntoFuture` :t:`trait`. + +:dp:`fls_c6mxfzef2qop` +The :t:`type` of an :t:`await expression` is +``<_ as core::future::IntoFuture>::Output``. + +:dp:`fls_l396mo6k9ox7` +The :t:`value` of an :t:`await expression` is the :t:`value` held by +:std:`core::task::Poll::Ready`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1ppywe40s62c` +The :t:`evaluation` of an :t:`await expression` proceeds as follows: + +#. :dp:`fls_eymcs2rgv3qw` + The :t:`future operand` is evaluated to a :t:`temporary` by invoking + :std:`core::future::IntoFuture::into_future` with the :t:`future operand`. + +#. :dp:`fls_qshnnpirkasz` + The :t:`temporary` is pinned using :std:`core::pin::Pin::new_unchecked`. + +#. :dp:`fls_umevprl99y6c` + The pinned :t:`temporary` is polled using :std:`core::future::Future::poll`, + passing in the :std:`core::task::Context` of the current task. + +#. :dp:`fls_k76d8ady623m` + If :std:`core::future::Future::poll` returns + :std:`core::task::Poll::Pending`, then the current :t:`future` yields. + +#. :dp:`fls_frwtufwe8dya` + If :std:`core::future::Future::poll` returns :std:`core::task::Poll::Ready`, + then + + #. :dp:`fls_u72ylhlmqge3` + The :t:`value` held within is unwrapped. + + #. :dp:`fls_tn3vwidct3ks` + Control stops the evaluation of the :t:`await expression`. + +.. rubric:: Examples + +.. code-block:: rust + + let future = async { expensive_function() }; + future.await; + +.. _fls_kw25194gpael: + +Expression Precedence +--------------------- + +.. rubric:: Legality Rules + +:dp:`fls_cwt7afsbgs7w` +Certain :t:`[expression]s` are subject to :t:`precedence` and +:t:`associativity`. + +:dp:`fls_ya23jjg5wjl` +:t:`Precedence` is the order by which :t:`[expression]s` are evaluated in the +presence of other :t:`[expression]s`. + +:dp:`fls_bezkcuwp5qol` +:t:`Associativity` is the order by which :t:`[operand]s` are evaluated within a +single :t:`expression`. + +:dp:`fls_48br7odx6nke` +The :t:`precedence` and :t:`associativity` of qualifying :t:`[expression]s` are +as follows: + +.. list-table:: + + * - :dp:`fls_mk2yk99p6nvp` + - **Expression** + - **Precedence** + - **Associativity** + * - :dp:`fls_jtdnf0vmn6xt` + - :t:`Array expression` + + :t:`Block expression` + + :t:`Continue expression` + + :t:`If expression` + + :t:`If let expression` + + :t:`Literal expression` + + :t:`Loop expression` + + :t:`Match expression` + + :t:`Parenthesized expression` + + :t:`Path expression` + + :t:`Struct expression` + + :t:`Tuple expression` + + :t:`Underscore expression` + - highest + - none + * - :dp:`fls_qurz25skmryg` + - :t:`Method call expression` + - + - none + * - :dp:`fls_ywqn5nixelkz` + - :t:`Await expression` + + :t:`Field access expression` + - + - left-to-right + * - :dp:`fls_k3ohh8k888c` + - :t:`Call expression` + + :t:`Index expression` + - + - none + * - :dp:`fls_41n6z85h1z47` + - :t:`Error propagation expression` + - + - none + * - :dp:`fls_f39rzauxrlcl` + - :t:`Borrow expression` + + :t:`Dereference expression` + + :t:`Negation expression` + - + - none + * - :dp:`fls_djphr5mk0t6f` + - :t:`Type cast expression` + - + - left-to-right + * - :dp:`fls_sif2aqky96j6` + - :t:`Division expression` + + :t:`Multiplication expression` + + :t:`Remainder expression` + - + - left-to-right + * - :dp:`fls_d7x817v8xzea` + - :t:`Addition expression` + + :t:`Subtraction expression` + - + - left-to-right + * - :dp:`fls_1f5ibdkz3l51` + - :t:`Shift left expression` + + :t:`Shift right expression` + - + - left-to-right + * - :dp:`fls_t1zqnab8a752` + - :t:`Bit and expression` + - + - left-to-right + * - :dp:`fls_f6in3h5cj8i6` + - :t:`Bit xor expression` + - + - left-to-right + * - :dp:`fls_hxa1avitfvrq` + - :t:`Bit or expression` + - + - left-to-right + * - :dp:`fls_sy2xzzq06i0x` + - :t:`Comparison expression` + - + - requires parentheses + * - :dp:`fls_hish3qfmawd` + - :t:`Lazy and expression` + - + - left-to-right + * - :dp:`fls_ruy7e6yccsqk` + - :t:`Lazy or expression` + - + - left-to-right + * - :dp:`fls_9qcm0dx9rolw` + - :t:`Range expression` + - + - requires parentheses + * - :dp:`fls_1l3rgtm6o54s` + - :t:`Assignment expression` + + :t:`Compound assignment expression` + - + - right-to-left + * - :dp:`fls_hr4kokysrjop` + - :t:`Break expression` + + :t:`Closure expression` + + :t:`Return expression` + - lowest + - none + +.. _fls_jmjn8jkbzujm: + +Capturing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_iamnzlm430ef` +A :t:`capturing expression` is either an :t:`async block expression` or a +:t:`closure expression`. + +:dp:`fls_eca6tl7j0afx` +A :t:`capture target` is either a :t:`variable` or a :t:`field` of a +:t:`variable`. + +:dp:`fls_e70ywb8191h` +The :t:`capturing environment` of a :t:`capturing expression` consists of the +:t:`[value]s` of all :t:`captured` :t:`[capture target]s`. + +:dp:`fls_1y2ttb466m9c` +:t:`Capturing` is the process of saving the :t:`[capture target]s` of a +:t:`[capturing expression]'s` :t:`capturing environment`. + +:dp:`fls_ip81lt2mm940` +A :t:`capture target` requires :t:`capturing` when it is used by +the :t:`capturing expression` and it is defined outside of the +:t:`capturing expression`. Such a :t:`capture target` is said to be +:dt:`captured`. + +:dp:`fls_y9n1i4hbq8sf` +:t:`Capture mode` is the mechanism by which a :t:`capture target` is captured. + +:dp:`fls_O6WYL8AUyPje` +A :t:`captured` :t:`capture target` with :t:`capture mode` :dt:`by value capture` +:t:`passes ` the :t:`value` of the :t:`capture target` into +the :t:`capturing environment`. + +:dp:`fls_aCxt2Ovmb5He` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by immutable reference capture` binds an :t:`immutable reference` to the +:t:`capture target` and passes the :t:`immutable reference` into the +:t:`capturing environment`. + +:dp:`fls_xTNFfkxHm5yy` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by mutable reference capture` binds a :t:`mutable reference` to the +:t:`capture target` and passes the :t:`mutable reference` into the +:t:`capturing environment`. + +:dp:`fls_8HLaLAIZgYfs` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by unique immutable reference capture` binds a +:t:`unique immutable reference` to the :t:`capture target` and passes the +:t:`mutable reference` into the :t:`capturing environment`. + +:dp:`fls_t695ps4lfh6z` +The :t:`capture mode` is determined based on the use of the :t:`capture target` +within the :t:`capturing expression`, as follows: + +#. :dp:`fls_6j8cr7d5zs1l` + If the :t:`capturing expression` is subject to :t:`keyword` ``move``, then + the :t:`capture mode` is :t:`by value capture`. + +#. :dp:`fls_l8e98pyhm08g` + Otherwise the :t:`capture mode` is determined based on the following + precedence: + + #. :dp:`fls_33hfay24hx8u` + :t:`By immutable reference capture`. + + #. :dp:`fls_wmxsd0i2yemf` + :t:`By unique immutable reference capture` mode, if the + :t:`capture target` is a :t:`mutable reference` that is being modified. + + #. :dp:`fls_lu779ufqhggl` + :t:`By mutable reference capture` mode. + + #. :dp:`fls_uqy5w9uc8gla` + :t:`By value capture`. + +:dp:`fls_wvob7114tfat` +A tool selects the first :t:`capture mode` that is compatible with the use of +the :t:`capture target`. + +.. _fls_ZfIBiJMf8qE1: + +Arithmetic Overflow +------------------- + +:dp:`fls_oFIRXBPXu6Zv` +An :t:`arithmetic overflow` occurs when an :t:`arithmetic expression` or a +:t:`negation expression` computes a :t:`value` of a :t:`scalar type` that lies +outside of the range of valid :t:`[value]s` for the :t:`scalar type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_8fU3h8PLasqA` +There are two allowed behaviors for :t:`arithmetic overflow`: + +#. :dp:`fls_R48VKcEIbfXC` + :t:`Evaluation` of the :t:`expression` may result in a :t:`panic`. + +#. :dp:`fls_QMpI8K43K2yU` + The resulting :t:`value` of the :t:`expression` may be truncated, discarding + the most significant bits that do not fit in the target :t:`type`. diff --git a/_sources/ffi.rst.txt b/_sources/ffi.rst.txt new file mode 100644 index 00000000..a9ba5871 --- /dev/null +++ b/_sources/ffi.rst.txt @@ -0,0 +1,248 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_osd6c4utyjb3: + +FFI +=== + +.. rubric:: Legality Rules + +:dp:`fls_djlglv2eaihl` +:t:`Foreign Function Interface` or :t:`FFI` employs :t:`ABI`, +:t:`[attribute]s`, :t:`[external block]s`, :t:`[external function]s`, linkage, +and :t:`type` :t:`layout` to interface a Rust program with foreign code. + +:dp:`fls_k1hiwghzxtfa` +The following :t:`[attribute]s` affect :t:`FFI`: + +* :dp:`fls_3cgtdk4698hm` + :t:`Attribute` :c:`export_name`. + +* :dp:`fls_shzmgci4f7o5` + :t:`Attribute` :c:`link`. + +* :dp:`fls_m7x5odt4nb23` + :t:`Attribute` :c:`link_section` + +* :dp:`fls_4akfvpq1yg4g` + :t:`Attribute` :c:`no_mangle`. + +* :dp:`fls_9d8v0xeyi0f` + :t:`Attribute` :c:`used`. + +.. _fls_usgd0xlijoxv: + +ABI +--- + +.. rubric:: Syntax + +.. syntax:: + + AbiSpecification ::= + $$extern$$ AbiKind? + + AbiKind ::= + RawStringLiteral + | StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_xangrq3tfze0` +:t:`Application Binary Interface` or :t:`ABI` is a set of conventions that +dictate how data and computation cross language boundaries. + +:dp:`fls_2w0xi6rxw3uz` +The :t:`ABI kind` indicates the :t:`ABI` of a :t:`construct`. + +:dp:`fls_9zitf1fvvfk8` +The following :t:`[ABI]s` are supported: + +* :dp:`fls_x7ct9k82fpgn` + ``extern "C"`` - The default :t:`ABI` of :t:`C` code, referred to as + :dt:`extern C ABI`. + +* :dp:`fls_LfjvLXvI6TFL` + ``extern "C-unwind"`` - The same as ``extern "C"`` with the addition that + unwinding across FFI is permitted. + +* :dp:`fls_a2d8ltpgtvn6` + ``extern "Rust"`` - The default :t:`ABI` of a Rust program, referred to as + :dt:`Rust ABI`. + +* :dp:`fls_8m7pc3riokst` + ``extern "system"`` - The operating system-dependent :t:`ABI`, referred to as + :dt:`external system ABI`. + +:dp:`fls_r2drzo3dixe4` +A :t:`function` without an explicit :t:`ABI` has implicit :t:`Rust ABI`, unless +it appears within an :t:`external block`. + +:dp:`fls_z2kzyin8dyr7` +A :t:`function` with an :t:`ABI` but without a specified :t:`ABI kind` has +implicit :t:`extern C ABI`. + +.. rubric:: Implementation Permissions + +:dp:`fls_j6pqchx27ast` +A tool is allowed to specify additional :t:`[ABI]s`. These :t:`[ABI]s` may +include, but may not be limited to, the following: + +* :dp:`fls_dbbfqaqa80r8` + ``extern "aapcs"`` - The ARM :t:`ABI`. + +* :dp:`fls_36qrs2fxxvi7` + ``extern "cdecl"`` - The x86_32 :t:`ABI` of :t:`C` code. + +* :dp:`fls_6rtj6rwqxojh` + ``extern "fastcall"`` - The ``fastcall`` :t:`ABI` that corresponds to MSVC's + ``__fastcall`` and GCC and clang's ``__attribute__((fastcall))``. + +* :dp:`fls_d3nmpc5mtg27` + ``extern "stdcall"`` - The x86_32 :t:`ABI` of the Win32 API. + +* :dp:`fls_7t7yxh94wnbl` + ``extern "sysv64"`` - The x86_64 non-Windows :t:`ABI` of :t:`C` code. + +* :dp:`fls_sxj4vy39sj4g` + ``extern "vectorcall"`` - The ``vectorcall`` :t:`ABI` that corresponds to + MSVC's ``__vectorcall`` and clang's ``__attribute__((vectorcall))``. + +* :dp:`fls_tyjs1x4j8ovp` + ``extern "win64"`` - The x86_64 Windows :t:`ABI` of :t:`C` code. + +.. rubric:: Undefined Behavior + +:dp:`fls_M4LqHf8hbPA8` +It is undefined behavior when a foreign exception crosses a +:t:`foreign function interface` boundary with an :t:`ABI` other than +``extern "C-unwind"``. + +.. rubric:: Examples + +.. code-block:: rust + + extern + extern "C" + +.. _fls_tmoh3y9oyqsy: + +External Blocks +--------------- + +.. rubric:: Syntax + +.. syntax:: + + ExternalBlock ::= + $$unsafe$$? $$extern$$ AbiKind? $${$$ + InnerAttributeOrDoc* + ExternItem* + $$}$$ + + ExternItem ::= + OuterAttributeOrDoc* (ExternalItemWithVisibility | TerminatedMacroInvocation) + + ExternalItemWithVisibility ::= + VisibilityModifier? ( + FunctionDeclaration + | StaticDeclaration + ) + +.. rubric:: Legality Rules + +:dp:`fls_4dje9t5y2dia` +An :t:`external block` is a :t:`construct` that provides the declarations of +foreign :t:`[function]s` as unchecked imports. + +:dp:`fls_Nz0l16hMxqTd` +The :t:`ABI` of a :t:`extern block` is determined as follows: + +* :dp:`fls_4XOoiFloXM7t` + If the :t:`extern block` specifies an :s:`AbiKind`, then the :t:`ABI` is the specified :s:`AbiKind`. + +* :dp:`fls_PBsepNHImJKH` + Otherwise the :t:`ABI` is the :t:`extern C ABI`. + +:dp:`fls_iaimuqcclstl` +The ``unsafe`` :t:`keyword` of an :t:`external block` is rejected, but may +still be consumed by :t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + extern "C" { + static MAX_LENGTH: size_t; + + fn compress + (input: *const u8, + input_length: size_t, + compressed: *mut u8, + compressed_length: *mut size_t) -> c_int; + fn log(msg: *const c_char, ...); + } + +.. _fls_yztwtek0y34v: + +External Functions +------------------ + +.. rubric:: Legality Rules + +:dp:`fls_v24ino4hix3m` +An :t:`external function` is an unchecked import of a foreign :t:`function`. + +:dp:`fls_l88r9fj82650` +An :t:`external function` shall be invoked from an :t:`unsafe context`. + +:dp:`fls_qwchgvvnp0qe` +An :t:`external function` shall not specify a :s:`FunctionQualifierList`. + +:dp:`fls_w00qi1gx204e` +An :t:`external function` inherits the :t:`ABI` of its enclosing +:t:`external block`. + +:dp:`fls_m7tu4w4lk8v` +An :t:`external function` shall not specify a :s:`GenericParameterList` +containing :t:`[constant parameter]s` or :t:`[type parameter]s`. + +:dp:`fls_rdu4723vp0oo` +An :t:`external function` shall not specify a :s:`FunctionBody`. + +:dp:`fls_9div9yusw64h` +An :t:`external function` shall not specify :t:`[pattern]s` other than +:t:`[identifier pattern]s` and :t:`[underscore pattern]s`. + +:dp:`fls_juob30rst11r` +Only the last parameter :s:`FunctionParameter` of an :t:`external function` may +specify a :s:`FunctionParameterVariadicPart`. + +.. _fls_s4yt19sptl7d: + +External Statics +---------------- + +.. rubric:: Legality Rules + +:dp:`fls_8ddsytjr4il6` +An :t:`external static` is an import of a foreign :t:`variable`. + +:dp:`fls_H0cg9XMaGz0y` +An :t:`external static` inherits the :t:`ABI` of its enclosing +:t:`external block`. + +:dp:`fls_fo9with6xumo` +An :t:`external static` shall be referenced from an :t:`unsafe context`. + +:dp:`fls_tr7purzcldn0` +An :t:`external static` shall not specify a :t:`static initializer`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_en2h09ehj0j3` +An :t:`immutable` :t:`external static` shall be initialized before Rust code +is executed. diff --git a/_sources/functions.rst.txt b/_sources/functions.rst.txt new file mode 100644 index 00000000..57976a35 --- /dev/null +++ b/_sources/functions.rst.txt @@ -0,0 +1,218 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_qcb1n9c0e5hz: + +Functions +========= + +.. rubric:: Syntax + +.. syntax:: + + FunctionDeclaration ::= + FunctionQualifierList $$fn$$ Name GenericParameterList? $$($$ FunctionParameterList? $$)$$ ReturnType? WhereClause? (FunctionBody | ;) + + FunctionQualifierList ::= + $$const$$? $$async$$? $$unsafe$$? AbiSpecification? + + FunctionParameterList ::= + (FunctionParameter ($$,$$ FunctionParameter)* $$,$$?) + | (SelfParameter ($$,$$ FunctionParameter)* $$,$$?) + + FunctionParameter ::= + OuterAttributeOrDoc* (FunctionParameterPattern | FunctionParameterVariadicPart | TypeSpecification) + + FunctionParameterPattern ::= + PatternWithoutAlternation (TypeAscription | ($$:$$ FunctionParameterVariadicPart)) + + FunctionParameterVariadicPart ::= + $$...$$ + + ReturnType ::= + $$->$$ TypeSpecification + + FunctionBody ::= + BlockExpression + + SelfParameter ::= + OuterAttributeOrDoc* (ShorthandSelf | TypedSelf) + + ShorthandSelf ::= + ($$&$$ LifetimeIndication?)? $$mut$$? $$self$$ + + TypedSelf ::= + $$mut$$? $$self$$ TypeAscription + +.. rubric:: Legality Rules + +:dp:`fls_gn1ngtx2tp2s` +A :t:`function` is a :t:`value` of a :t:`function type` that models a behavior. + +:dp:`fls_bdx9gnnjxru3` +A :t:`function` declares a unique :t:`function item type` for itself. + +:dp:`fls_87jnkimc15gi` +A :t:`function qualifier` is a :t:`construct` that determines the role of +a :t:`function`. + +:dp:`fls_nwywh1vjt6rr` +A :t:`function` shall not be subject to both :t:`keyword` ``async`` and +:t:`keyword` ``const``. + +:dp:`fls_uwuthzfgslif` +A :t:`function parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_ymeo93t4mz4` +A :t:`self parameter` is a :t:`function parameter` expressed by :t:`keyword` +``self``. + +:dp:`fls_ijbt4tgnl95n` +A :t:`function` shall not specify a :t:`self parameter` unless it is an +:t:`associated function`. + +:dp:`fls_AAYJDCNMJgTq` +The :t:`type` of a :t:`parameter` is determined as follows: + +* :dp:`fls_PGtp39f6gJwU` + If the :t:`parameter` is a :t:`self parameter` without a :s:`TypeSpecification`: + + * :dp:`fls_yZ2yIXxmy2ri` + And the :t:`self parameter` has token ``&`` and :t:`keyword` ``mut``, then the :t:`type` is ``&mut Self``. + + * :dp:`fls_35aSvBxBnIzm` + And the :t:`self parameter` has token ``&`` and lacks :t:`keyword` ``mut``, then the :t:`type` is ``&Self``. + + * :dp:`fls_Ogziu8S01qPQ` + And the :t:`self parameter` lacks token ``&`` and :t:`keyword` ``mut``, then the :t:`type` is ``Self``. + +* :dp:`fls_xCSsxYUZUFed` + Otherwise the :t:`type` is the specified :t:`type`. + +:dp:`fls_lxzinvqveuqh` +The :t:`pattern` of a :t:`function parameter` shall be an :t:`irrefutable +pattern`. + +:dp:`fls_kcAbTPZXQ5Y8` +The :t:`expected type` of the :t:`pattern` of a :t:`function parameter` is the :t:`type` of the :t:`function parameter`. + +:dp:`fls_PGDKWK7nPvgw` +The :t:`[binding]s` of all :t:`[pattern]s` of all :t:`[function parameter]s` of a :t:`function` shall not shadow another. + +:dp:`fls_icdzs1mjh0n4` +A :t:`function` shall not specify a :s:`FunctionParameterVariadicPart` unless +it is an :t:`external function`. + +:dp:`fls_vljy4mm0zca2` +A :t:`return type` is the :t:`type` of the result a :t:`function`, :t:`closure type` or :t:`function pointer type` returns. + +:dp:`fls_EqJb3Jl3vK8K` +The :t:`return type` of a :t:`function` is determined as follows: + +* :dp:`fls_C7dvzcXcpQCy` + If the :s:`FunctionDeclaration` specifies a :s:`ReturnType`, then the :t:`return type` is the specified :s:`ReturnType`. + +* :dp:`fls_J8X8ahnJLrMo` + Otherwise the :t:`return type` is the :t:`unit type`. + +:dp:`fls_927nfm5mkbsp` +A :t:`function body` is the :t:`block expression` of a :t:`function`. + +:dp:`fls_yfm0jh62oaxr` +A :t:`function` shall have a :t:`function body` unless it is an +:t:`associated trait function` or an :t:`external function`. + +:dp:`fls_bHwy8FLzEUi3` +A :t:`function body` denotes a :t:`control flow boundary`. + +:dp:`fls_5Q861wb08DU3` +A :t:`function body` of an :t:`async function` denotes an +:t:`async control flow boundary`. + +:dp:`fls_owdlsaaygtho` +A :t:`function signature` is a unique identification of a :t:`function` +that encompasses of its :t:`[function qualifier]s`, :t:`name`, +:t:`[generic parameter]s`, :t:`[function parameter]s`, :t:`return type`, and +:t:`where clause`. + +:dp:`fls_2049qu3ji5x7` +A :t:`constant function` is a :t:`function` subject to :t:`keyword` ``const``. + +:dp:`fls_7mlanuh5mvpn` +The :t:`function body` of a :t:`constant function` shall be a +:t:`constant expression`. + +:dp:`fls_otr3hgp8lj1q` +A :t:`constant function` shall be callable from a :t:`constant context`. + +:dp:`fls_m3jiunibqj81` +An :t:`async function` is a :t:`function` subject to :t:`keyword` ``async``. An +:t:`async function` of the form + +.. code-block:: rust + + async fn async_fn(param: ¶m_type) -> return_type { + /* tail expression */ + } + +:dp:`fls_7vogmqyd87ey` +is equivalent to :t:`function` + +.. code-block:: rust + + fn async_fn<'a>(param: &'a param_type) -> impl Future + 'a { + async move { + /* tail expression */ + } + } + +:dp:`fls_7ucwmzqtittv` +An :t:`unsafe function` is a :t:`function` subject to :t:`keyword` ``unsafe``. + +:dp:`fls_5hn8fkf7rcvz` +The invocation of an :t:`unsafe function` shall require :t:`unsafe context`. + +:dp:`fls_nw49shkqx40b` +A :t:`main function` is a :t:`function` that acts as an entry point into a +program. A :t:`main function` is subject to the following restrictions: + +* :dp:`fls_o4fxok23134r` + It lacks :t:`[function qualifier]s` ``async`` and ``unsafe``, + +* :dp:`fls_bk755pvc1l53` + Its :t:`ABI` is Rust, + +* :dp:`fls_5j2vbkt2hitj` + Its :t:`name` is the word ``main``, + +* :dp:`fls_a3je4wc53bmo` + It lacks :t:`[generic parameter]s`, + +* :dp:`fls_w8q15zp7kyl0` + It lacks :t:`[function parameter]s`, + +* :dp:`fls_4psnfphsgdek` + It lacks a :t:`return type`, + +* :dp:`fls_m7xfrhqif74` + It lacks a :t:`where clause`, + +* :dp:`fls_qq9fzrw4aykd` + It has a :t:`function body`. + +.. rubric:: Examples + +.. code-block:: rust + + fn eucledian_distance(left: &Point, right: &Point) -> f64 { + let x_delta_squared: f64 = (right.x - left.x).powi(2); + let y_delta_squared: f64 = (right.y - left.y).powi(2); + + (x_delta_squared + y_delta_squared).sqrt() + } + + fn main() {} diff --git a/_sources/general.rst.txt b/_sources/general.rst.txt new file mode 100644 index 00000000..5d64db3e --- /dev/null +++ b/_sources/general.rst.txt @@ -0,0 +1,430 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_48qldfwwh493: + +General +======= + +:dp:`fls_c4ry0kgmvk9z` +This document is influenced by the `Ada Reference Manual +`_ +Ada 202x edition, as well as the `Rust Language Reference +`_, the `Rust +Guidebook `_, and the `Rustonomicon +`_. + +:dp:`fls_gxqbj0qoiaio` +Parts of these documents have been copied, in whole or in part, in particular +but not limited to: + +* :dp:`fls_u8k9zr8da30` + The outline and structure of the documents; + +* :dp:`fls_8mt9iigoboba` + The title, outline, organization, and numbering of chapters; + +* :dp:`fls_suhf2g3fatfa` + The structure, formality, wording, and numbering of paragraphs; + +* :dp:`fls_jjr5kbn0wuco` + The definitions and uses of terms; + +* :dp:`fls_4dfcjyprkzbx` + The categories of syntactic and semantic rules. + +:dp:`fls_tq9jcv5ddvwn` +Consult :doc:`licenses` for the relevant copyright notices and licenses. + +.. _fls_fo1c7pg2mw1: + +Scope +----- + +:dp:`fls_srdq4mota5pr` +This document specifies the form and meaning of programs written in the +programming language Rust, as implemented by the :t:`rustc` compiler shipped +with Ferrocene. It documents the current understanding for the purposes of +compiler validation. As such, given any doubt, it prefers documenting behavior +of :t:`rustc` as included in the associated Ferrocene release over claiming +correctness as a specification. + +:dp:`fls_dv1qish8svc` +This document is made available for contribution and review as it is useful +outside of the Ferrocene effort and can be a place of shared understanding. It +is not intended as a discussion ground for language evolution. It is also not +intended as a document enabling conformance between compilers. + +:dp:`fls_osh9tiwpnsn1` +Contribution and review is managed by the Ferrocene project developers. + +.. _fls_10yukmkhl0ng: + +Extent +~~~~~~ + +:dp:`fls_x78yd1sszydv` +This document specifies: + +* :dp:`fls_9e032738udnb` + The form of a program written in Rust; + +* :dp:`fls_jk7scu5xs17z` + The effect of translating and executing such a program; + +* :dp:`fls_jiryupa5fxgf` + The manner in which :t:`[crate]s` and :t:`[module]s` may be combined to form + Rust programs; + +* :dp:`fls_sph1a3sapinh` + The language-defined libraries that a conforming tool is required to supply; + +* :dp:`fls_7tm19jxtffc8` + The violations that a conforming tool is required to detect, and the effect of + attempting to translate or execute a program containing such violations; + +* :dp:`fls_5pbrl8lhuth1` + The violations that a conforming tool is not required to detect. + +:dp:`fls_o8fc3e53vp7g` +This document does not specify: + +* :dp:`fls_rw0y5t13y6gs` + The means by which a Rust program is transformed into object code executable + by a processor; + +* :dp:`fls_x7c3o621qj9z` + The means by which translation or execution of Rust programs is invoked and + the executing units are controlled; + +* :dp:`fls_5y2b6yjcl1vz` + The size or speed of the object code, or the relative execution speed of + different language constructs; + +* :dp:`fls_8dennhk2dha` + The form or contents of any listings produced by a tool; in particular, the + form or contents of error or warning messages; + +* :dp:`fls_j2gs3hrbxtyx` + The effect of undefined behavior; + +* :dp:`fls_gy2c7vfwkd8j` + The size of a program or program unit that will exceed the capacity of a + conforming tool. + +.. _fls_xscgklvg1wd2: + +Structure +~~~~~~~~~ + +:dp:`fls_6lrqailxjb02` +This document contains 21 chapters, 2 appendices, and an index. + +:dp:`fls_tys7ciqnp8bn` +The specification of the Rust language is separated into: + +* :dp:`fls_3ubhkaheu8i1` + Chapters 1 through 21, + +* :dp:`fls_xw3grr2g5zgi` + :doc:`licenses` + +* :dp:`fls_k6obg07c1i71` + :doc:`glossary` + +:dp:`fls_6srbinvnyd54` +The specification is normative, except for the material in each of the items +listed below, which is informative: + +* :dp:`fls_ciixfg9jhv42` + Text under an "Examples" heading. + +* :dp:`fls_ej94lm2682kg` + Each subchapter whose title starts with the word "Example" or "Examples". + +:dp:`fls_xgk91jrbpyoc` +The following appendices are informative: + +* :dp:`fls_enkvrkfqwyt8` + :doc:`licenses` + +* :dp:`fls_yfyiaipc9omp` + :doc:`glossary` + +:dp:`fls_jc4upf6685bw` +Each chapter is divided into subchapters that have a common structure. Each +chapter and subchapter is then organized to include the following segments as is +relevant to the topic: + +.. rubric:: Syntax + +:dp:`fls_oxzjqxgejx9t` +The syntax representation of a :t:`construct`. + +.. rubric:: Legality Rules + +:dp:`fls_gmx688d6ek1o` +Compile-time rules and facts for each :t:`construct`. A :t:`construct` is legal +if it obeys all of the Legality Rules. + +:dp:`fls_5zdjikp1jhc` +Legality Rules are verified after :t:`macro expansion` takes place. + +.. rubric:: Dynamic Semantics + +:dp:`fls_as5bhc5t285g` +Run-time effects of each :t:`construct`. + +.. rubric:: Undefined Behavior + +:dp:`fls_70qjvaqoz007` +Situations that result in unbounded errors. + +.. rubric:: Implementation Requirements + +:dp:`fls_o4rdsbc7u98` +Additional requirements for conforming tools. + +.. rubric:: Examples + +:dp:`fls_w8j575w2hmc8` +Examples illustrating the possible forms of a :t:`construct`. This material +is informative. + +.. _fls_99b7xi1bkgih: + +Conformity +~~~~~~~~~~ + +.. rubric:: Implementation Requirements + +:dp:`fls_kdyqtnc6loam` +A conforming tool shall: + +* :dp:`fls_ctwsz8sl7lbq` + Translate and correctly execute legal programs written in Rust, provided that + they are not so large as to exceed the capacity of the tool, + +* :dp:`fls_bvpekhdaxctq` + Identify all programs or program units that are so large as to exceed the + capacity of the tool (or raise an appropriate exception at run time), + +* :dp:`fls_kfs8gsd36d91` + Identify all programs or program units that contain errors whose detection is + required by this document, + +* :dp:`fls_k5sozk8jhrmg` + Supply all language-defined library units required by this document, + +* :dp:`fls_nwx1fdq6b4mg` + Contain no variations except those explicitly permitted by this document, or + those that are impossible or impractical to avoid given the tool's execution + environment, + +* :dp:`fls_n3ypaile1a36` + Specify all such variations in the manner prescribed by this document. + +:dp:`fls_nnmx2qsu14ft` +The external effect of the execution of a Rust program is defined in terms of +its interactions with its external environment. The following are defined as +external interactions: + +* :dp:`fls_gu3331rmv2ho` + Any call on an foreign :t:`function`, including any :t:`[argument operand]s` + passed to it; + +* :dp:`fls_3iekobt8qqi` + Any result returned or :t:`panic` propagated from a :t:`main function` or an + :t:`exported function` to an external caller; + +* :dp:`fls_qx9fxf4py0j0` + The imported and exported :t:`[value]s` at the time of any other interaction + with the external environment. + +:dp:`fls_pl0fyjcwslqm` +A tool that conforms to this document shall produce for the execution of a given +Rust program a set of interactions with the external environment whose order and +timing are consistent with the definitions and requirements of this document for +the semantics of the given program. + +:dp:`fls_lkdm0mdghppv` +A tool that conforms to this document shall support each capability required by +the language as specified. + +:dp:`fls_d07x1mbhgpsd` +A tool that conforms to this document may provide additional :t:`[attribute]s` +as long as their names are not the same as the names of :t:`[built-in +attribute]s`. + +.. _fls_79rl6ylmct07: + +Method of Description and Syntax Notation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:dp:`fls_mc4a28do6kcp` +The form of a Rust program is described by means of a context-free syntax +together with context-dependent requirements expressed by narrative rules. + +:dp:`fls_ioyp4wux6skt` +The meaning of a Rust program is described by means of narrative rules defining +both the effects of each construct and the composition rules for constructs. + +:dp:`fls_jsflt7691ye4` +The context-free syntax of Rust is described using a simple variant of the +Backus-Naur form. In particular: + +* :dp:`fls_98fm7z04lq9` + A ``monospaced`` font is used to denote Rust syntax. + +* :dp:`fls_ceb5a8t6cakr` + Words in PascalCase font are used to denote a syntactic category, for example: + +.. syntax:: + + FloatExponent + +* :dp:`fls_pts29mb5ld68` + Words in **bold** font are used to indicate literal words and :t:`[keyword]s`, + for example: + +.. syntax:: + + $$crate$$ + $$proc_macro_derive$$ + $$Self$$ + $$tt$$ + +* :dp:`fls_gqjo5oh7vn3b` + Characters in **bold** font are used to indicate literal characters and + literal punctuation, for example: + +.. syntax:: + + $$1$$ + $$F$$ + $${$$ + $$&&$$ + $$>>=$$ + +* :dp:`fls_1dz634xp8xp5` + A character preceded by ``\`` (bold reverse solidus) is used to denote an + :t:`escaped character`, for example: + +.. syntax:: + + $$\t$$ + $$\\$$ + +* :dp:`fls_pp9vtjlyblrl` + A prefix followed by ``?`` (question mark) is used to denote an optional + prefix, for example: + +.. syntax:: + + IntegerSuffix? + +* :dp:`fls_6e2vd9fvhsmk` + A prefix followed by ``*`` (asterisk) is used to denote zero or more + repetitions of the prefix, for example: + +.. syntax:: + + OuterAttributeOrDoc* + +* :dp:`fls_4onq0kkrt6qv` + A prefix followed by ``+`` (plus sign) is used to denote one or more + repetitions of the prefix, for example: + +.. syntax:: + + MacroMatch+ + +* :dp:`fls_qu4rsmnq659w` + A prefix followed by ``L-H`` is used to denote the number of repetitions of + the prefix within the range from L to H, inclusive. For example: + +.. syntax:: + + HexadecimalDigit1-6 + +* :dp:`fls_rllu7aksf17e` + ``[ ]`` (square brackets) indicate any character within, for example: + +.. syntax:: + + [$$8$$ $$a$$ $$\r$$ $$:$$] + +* :dp:`fls_blvsfqeevosr` + ``~[ ]`` (square brackets preceded by tilde) indicate any character except the + characters within, for example: + +.. syntax:: + + ~[$$8$$ $$a$$ $$\r$$ $$:$$] + +* :dp:`fls_lwcjq3wzjyvb` + ``[ - ]`` indicates any character within the specified range, inclusive. For + example: + +.. syntax:: + + [$$a$$-$$f$$] + +* :dp:`fls_v7wd5yk00im6` + A ``|`` (vertical line) separates alternative items, for example: + +.. syntax:: + + $$self$$ | Identifier | $$_$$ + +* :dp:`fls_nf8alga8uz6c` + ``( )`` (parentheses) are used to group items, for example: + +.. syntax:: + + ($$,$$ ConfigurationPredicate) + +.. _fls_9cd746qe40ag: + +Versioning +---------- + +:dp:`fls_l80e3kdwnldc` +Ferrocene is a qualified compiler and this is the accompanying language +specification for the qualified version of the compiler. This document will +be updated with each qualification to accurately reflect the behavior of the +compiler qualified under that version of Ferrocene. + +.. _fls_ijzgf4h0mp3c: + +Definitions +----------- + +:dp:`fls_sm2kexes5pr7` +Terms are defined throughout this document, indicated by *italic* type. Terms +explicitly defined in this document are not to be presumed to refer implicitly +to similar terms defined elsewhere. + +:dp:`fls_2o98zw29xc46` +Mathematical terms not defined in this document are to be interpreted according +to the CRC Concise Encyclopedia of Mathematics, Second Edition. + +:dp:`fls_lon5qffd65fi` +Other terms not defined in this document are to be interpreted according to the +Webster's Third New International Dictionary of the English Language. + +:dp:`fls_qeolgxvcy75` +The definitions of terms are available in :doc:`glossary`. + +:dp:`fls_h2m244agxaxs` +A *rule* is a requirement imposed on the programmer, stated in normative +language such as "shall", "shall not", "must", "must not", except for text +under Implementation Requirements heading. + +:dp:`fls_47svine904xk` +A *fact* is a requirement imposed on a conforming tool, stated in informative +language such as "is", "is not", "can", "cannot". diff --git a/_sources/generics.rst.txt b/_sources/generics.rst.txt new file mode 100644 index 00000000..9224ee93 --- /dev/null +++ b/_sources/generics.rst.txt @@ -0,0 +1,465 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_y2k5paj8m8ug: + +Generics +======== + +.. _fls_vhpwge5123cm: + +Generic Parameters +------------------ + +.. rubric:: Syntax + +.. syntax:: + + GenericParameterList ::= + $$<$$ (GenericParameter ($$,$$ GenericParameter)* $$,$$?)? $$>$$ + + GenericParameter ::= + OuterAttributeOrDoc* ( + ConstantParameter + | LifetimeParameter + | TypeParameter + ) + + ConstantParameter ::= + $$const$$ Name TypeAscription ($$=$$ ConstantParameterInitializer)? + + ConstantParameterInitializer ::= + BlockExpression + | Identifier + | $$-$$? LiteralExpression + + LifetimeParameter ::= + Lifetime ($$:$$ LifetimeIndicationList)? + + TypeParameter ::= + Name ($$:$$ TypeBoundList?)? ($$=$$ TypeParameterInitializer)? + + TypeParameterInitializer ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_sye3d17l9bf5` +A :t:`generic parameter` is a placeholder for a :t:`constant`, a :t:`lifetime`, +or a :t:`type`, whose :t:`constant`, :t:`lifetime`, or :t:`type` is supplied +statically by a :t:`generic argument`. + +:dp:`fls_dalqke3rznrb` +All :s:`[LifetimeParameter]s` in a :s:`GenericParameterList` shall precede all +:s:`[ConstantParameter]s` and :s:`[TypeParameter]s`. + +:dp:`fls_pi6eukz7kc99` +A :t:`generic enum` is an :t:`enum` with :t:`[generic parameter]s`. + +:dp:`fls_ixmgqupxvf73` +A :t:`generic function` is a :t:`function` with :t:`[generic parameter]s`. + +:dp:`fls_z311nxou9yi3` +A :t:`generic implementation` is an :t:`implementation` with +:t:`[generic parameter]s`. + +:dp:`fls_wmcp0n36jlbr` +A :t:`generic struct` is a :t:`struct` with :t:`[generic parameter]s`. + +:dp:`fls_h42kg56vsefx` +A :t:`generic trait` is a :t:`trait` with :t:`[generic parameter]s`. + +:dp:`fls_372h3oevejih` +A :t:`generic type alias` is a :t:`type alias` with :t:`[generic parameter]s`. + +:dp:`fls_u8mqct93yimd` +A :t:`generic union` is a :t:`union` with :t:`[generic parameter]s`. + +:dp:`fls_vpcqgec83ybt` +A :t:`constant parameter` is a :t:`generic parameter` for a :t:`constant`. + +:dp:`fls_3SjMBlc0b7qo` +A :t:`constant parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`constant parameter`. + +:dp:`fls_p4yb8EAXlRU0` +A :t:`constant parameter initializer` shall be a :t:`constant expression`. + +:dp:`fls_4a2qshaf5se7` +It is a static error to use a :t:`generic parameter` in the +:t:`discriminant initializer` of an :t:`enum variant`. + +:dp:`fls_s0nrjwqg2wox` +A :t:`lifetime parameter` is a :t:`generic parameter` for a :t:`lifetime`. + +:dp:`fls_2grtygcj8o3` +A :t:`lifetime parameter` shall not be used within a :t:`constant context`, +except for the ``'static`` :t:`lifetime`. + +:dp:`fls_95eooah0vcqx` +A :t:`type parameter` is a :t:`generic parameter` for a :t:`type`. + +:dp:`fls_ahCqtkh0m5sR` +A :t:`type parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`type parameter`. + +:dp:`fls_3qZRBp9j26w3` +The :t:`type` of the :t:`type parameter initializer` of a :t:`type parameter` +shall satisfy the :t:`[trait bound]s` of the :t:`type parameter`. + +:dp:`fls_x4s7p2v981r6` +A :t:`generic enum` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its +:t:`[enum variant]s`. + +:dp:`fls_jzfk9fspzqja` +A :t:`generic struct` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its :t:`[field]s`. + +:dp:`fls_6j616ydf2mnh` +A :t:`generic union` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its :t:`[field]s`. + +:dp:`fls_hyi2jnp38v1n` +A :t:`generic parameter` is said to constrain an :t:`implementation` if the +:t:`generic parameter` appears at least once in one of the following: + +* :dp:`fls_sseo6u6pbcki` + As a :t:`binding argument` in the :t:`[trait bound]s` of a :t:`type` that + contains another :t:`generic parameter` that constrains the + :t:`implementation`, or + +* :dp:`fls_62b59qvom3nm` + The :t:`implemented trait`, or + +* :dp:`fls_oq76uff9gp0k` + The :t:`implementing type`. + +:dp:`fls_ua3w16qo9o4` +It is a static error if a :t:`constant parameter` or a :t:`type parameter` of +an :t:`implementation` does not constrain the :t:`implementation`. + +:dp:`fls_w9ol06mldwb` +It is a static error if a :t:`lifetime parameter` of an :t:`implementation` +is used in an :t:`associated type` without constraining the +:t:`implementation`. + +:dp:`fls_g2pfrqhmeys8` +The :t:`type` of a :t:`constant parameter` shall be a :t:`scalar type`. + +:dp:`fls_56jq9k9l31rt` +A :t:`constant parameter` shall be used in the following contexts: + +* :dp:`fls_sh669lnc5o1b` + As a :t:`constant argument` in the signature and :t:`[field]s` of an + :t:`item`. + +* :dp:`fls_h6kx8dxh5u96` + In the :t:`constant initializer` of an :t:`associated constant`. + +* :dp:`fls_5r7ontjlmgwj` + As a :t:`constant argument` of an :t:`[associated type]'s` + :s:`InitializationType`. + +* :dp:`fls_prbwj1pmng6k` + As a :t:`constant argument` of any :t:`type` used within a :t:`function body`. + +* :dp:`fls_byqjs5fvy2bj` + As a :t:`value` of any :t:`expression` within a :t:`function body`. + +:dp:`fls_hidfwkwr2r73` +A :t:`type parameter` has an implicit :std:`core::marker::Sized` :t:`bound`, +unless an :t:`opt-out trait bound` for the :std:`core::marker::Sized` :t:`trait` +is present. + +:dp:`fls_yaYedRNaxhTe` +A :t:`type parameter` of an :t:`abstract data type` has implicit +:t:`[lifetime bound]s` depending on its usage in the :t:`[field]s` of the +:t:`abstract data type` as follows: + +* :dp:`fls_axMVssU7an8p` + If the :t:`type parameter` is used in a :t:`reference type`, then the + :t:`type parameter` has an implicit :t:`lifetime bound` for the + :t:`lifetime` of the :t:`reference type`, + +* :dp:`fls_iAnCoxISuxxb` + If the :t:`type parameter` is used as a :t:`generic argument` of an + :t:`abstract data type`, the :t:`type parameter` inherits all the + :t:`[lifetime bound]s` from the corresponding :t:`generic parameter` of + the :t:`generic argument`. + +:dp:`fls_wUwJEGzjCUAT` +A :t:`type parameter` of a :t:`function` has implicit :t:`[lifetime bound]s` +depending on its usages in the :t:`[function parameter]s` and :t:`return type` +as follows: + +* :dp:`fls_BN5nUuvq9AwY` + If the :t:`type parameter` is used in a :t:`reference type`, then the + :t:`type parameter` has an implicit :t:`lifetime bound` for the :t:`lifetime` + of the :t:`reference type`, + +* :dp:`fls_ouOm2TQKNsP3` + If the :t:`type parameter` is used as a :t:`generic argument` of an + :t:`abstract data type`, the :t:`type parameter` inherits all the + :t:`[lifetime bound]s` from the corresponding :t:`generic parameter` of + the :t:`generic argument`. + +:dp:`fls_m0bzw4jap6sg` +A :t:`generic parameter` with a :t:`bound` of the form + +.. code-block:: rust + + + +:dp:`fls_vo7mgm34hwg2` +is equivalent to the :t:`generic parameter` without the bound and a +:t:`where clause` of the following form: + +.. code-block:: rust + + where X: Bound + +.. rubric:: Examples + +.. code-block:: rust + + struct Array([T; N]) + + fn generic_function<'a, T>() {} + + struct Reference<'a, T: 'a> { + the_reference: &'a T + } + +.. _fls_7nv8ualeaqe3: + +Where Clauses +------------- + +.. rubric:: Syntax + +.. syntax:: + + WhereClause ::= + $$where$$ WhereClausePredicateList + + WhereClausePredicateList ::= + WhereClausePredicate (, WhereClausePredicate)* $$,$$? + + WhereClausePredicate ::= + LifetimeBoundPredicate + | TypeBoundPredicate + + LifetimeBoundPredicate ::= + LifetimeIndication $$:$$ LifetimeIndicationList? + + TypeBoundPredicate ::= + ForGenericParameterList? TypeSpecification $$:$$ TypeBoundList? + +.. rubric:: Legality Rules + +:dp:`fls_3nqb7p5ifvio` +A :t:`where clause` is a :t:`construct` that specifies :t:`[bound]s` on +:t:`[lifetime parameter]s` and :t:`[type]s` that have +to hold for the :t:`construct` subject to the :t:`where clause` to be valid. + +:dp:`fls_fhy4rsmmbvyy` +A :t:`where clause predicate` is either a :t:`lifetime bound predicate` or a +:t:`type bound predicate`. + +:dp:`fls_V4PKFqtCsAv6` +A :t:`lifetime bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` on a :t:`lifetime parameter`. + +:dp:`fls_cslGPmVjujHD` +A :t:`type bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` and :t:`[trait bound]s` on a :t:`type`. + +:dp:`fls_ytk74dyxuy6d` +A :t:`construct` is valid when all of its :t:`[where clause predicate]s` hold +true for the supplied :t:`[generic argument]s`. + +:dp:`fls_1xgw1dq60quz` +A :t:`trivial predicate` is a :t:`where clause predicate` that does not use +the :t:`[generic parameter]s` or :t:`[higher-ranked trait bound]s` of the related +:t:`construct`. + +:dp:`fls_47s8i7pzb9gg` +It is a static error to create a :t:`trivial predicate` that does not hold. + +.. rubric:: Examples + +.. code-block:: rust + + struct Clause where T: Iterator { + field: T + } + +.. _fls_utuu8mdbuyxm: + +Generic Arguments +----------------- + +.. rubric:: Syntax + +.. syntax:: + + GenericArgumentList ::= + $$<$$ ( GenericArgument ($$,$$ GenericArgument)* $$,$$? )? $$>$$ + + GenericArgument ::= + BindingArgument + | ConstantArgument + | LifetimeArgument + | TypeArgument + + BindingArgument ::= + Identifier $$=$$ TypeSpecification + + ConstantArgument ::= + BlockExpression + | $$-$$? LiteralExpression + | Identifier + + LifetimeArgument ::= + LifetimeIndication + + TypeArgument ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_3x6qd8vt5uus` +A :t:`generic argument` supplies a static input for an +:t:`associated trait type` or a :t:`generic parameter`. + +:dp:`fls_ky39fb2vcom6` +A :s:`BindingArgument` shall follow :s:`[ConstantArgument]s`, +:s:`[LifetimeArgument]s`, and :s:`[TypeArgument]s` in a +:s:`GenericArgumentList`. + +:dp:`fls_9n1ejjili06h` +A :s:`LifetimeArgument` shall precede :s:`[BindingArgument]s`, +:s:`[ConstantArgument]s`, and :s:`[TypeArgument]s` in a +:s:`GenericArgumentList`. + +:dp:`fls_9pda3ja0ihks` +A :t:`binding argument` is a :t:`generic argument` that supplies the :t:`type` +of an :t:`associated trait type`. + +:dp:`fls_i3z9ueoe99zd` +A :t:`constant argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`constant parameter`. + +:dp:`fls_al4dhmqodvwc` +A :t:`constant argument` may only appear as a single segment +:t:`path expression`, optionally encapsulated in a :t:`block expression`, within +an :t:`array repetition constructor` or a :t:`type`. + +:dp:`fls_10k9gdxlpuls` +A :t:`lifetime argument` is a :t:`generic argument` that supplies the +:t:`lifetime` of a :t:`lifetime parameter`. + +:dp:`fls_d4vdvpihoeb1` +A :t:`type argument` is a :t:`generic argument` that supplies the :t:`type` of +a :t:`type parameter`. + +:dp:`fls_ukarc98ceesz` +:t:`[Generic argument]s` are subject to :t:`generic conformance`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Trait { + type Assoc; + } + +:dp:`fls_l88o2snx9qbt` +The following is a generic function with a binding argument. + +.. code-block:: rust + + fn func<'lifetime, T, const C: usize>() where T: Trait {} + +:dp:`fls_thpj9io9tyuy` +The following are generic arguments for ``func``. + +.. syntax:: + + func::<'static, u32, 0>(); + +.. _fls_i7g2n7hfg3ch: + +Generic Conformance +------------------- + +.. rubric:: Legality Rules + +:dp:`fls_CBWyxBJeYeb2` +:t:`Generic conformance` measures the compatibility between a set of +:t:`[generic parameter]s` and a set of :t:`[generic argument]s`. + +:dp:`fls_ltch5eivxgaa` +A :t:`binding argument` is conformant with an :t:`associated type` when the +supplied :t:`type` of the :t:`binding argument` fulfills the required +:t:`[trait bound]s` of the :t:`associated type`. + +:dp:`fls_gb3mpt5rxjoa` +A :t:`constant argument` is conformant with a :t:`constant parameter` when +the :t:`[type]s` of the :t:`constant argument` and the :t:`constant parameter` +are :t:`unifiable`. + +:dp:`fls_kdeltu9dsd0d` +A :t:`lifetime argument` is conformant with a :t:`lifetime parameter` when it +outlives the :t:`lifetime` specified by the :t:`lifetime parameter`. + +:dp:`fls_ws1h57fk1mkh` +A :t:`type argument` is conformant with a :t:`type parameter` when the +:t:`type` of the :t:`type argument` fulfills the required :t:`[trait bound]s` +of the :t:`type parameter`. + +:dp:`fls_w0ozotuwtr9` +:t:`[Generic argument]s` are conformant with :t:`[generic parameter]s` when + +* :dp:`fls_91bylteu35bi` + The :t:`[generic argument]s` consist only of conformant + :t:`[binding argument]s`, conformant :t:`[constant argument]s`, conformant + :t:`[lifetime argument]s`, and conformant :t:`[type argument]s`, and + +* :dp:`fls_j6xtrxc6aik` + Any remaining :t:`[generic parameter]s` without corresponding conformant + :t:`[generic argument]s` are :t:`[constant parameter]s` with + :t:`[constant parameter initializer]s`, :t:`[lifetime parameter]s` with + either inferred :t:`[lifetime argument]s` or :t:`[elided lifetime]s`, + :t:`[type parameter]s` with :t:`[type parameter initializer]s` or inferred + :t:`[type argument]s`, and + +* :dp:`fls_us7d30cbwgpz` + All :t:`[lifetime argument]s` come first, followed by + :t:`[constant argument]s` and :t:`[type argument]s` in the order defined by + the :t:`[generic parameter]s`, followed by :t:`[binding argument]s`, and + +* :dp:`fls_dp3hpvf0fmr8` + All :t:`[constant argument]s`, :t:`[lifetime argument]s`, and + :t:`[type argument]s` have a corresponding :t:`generic parameter`. + +:dp:`fls_mg45zcguxxg5` +:t:`[Generic argument]s` shall be conformant. + +:dp:`fls_mDgq5XjzKAl3` +The :t:`value` of a :t:`constant parameter` is determined as follows: + +* :dp:`fls_YufUgB25ovh3` + If the :t:`constant parameter` has a conformant :t:`constant argument`, then + the :t:`value` is that of the :t:`constant argument`. + +* :dp:`fls_OhVxhJ23x7W2` + Otherwise, if the :t:`constant parameter` has a + :t:`constant parameter initializer`, then the :t:`value` is that of the + :t:`constant parameter initializer`. + +* :dp:`fls_Kyar0jH9BqeW` + Otherwise this is a static error. diff --git a/_sources/glossary.rst.txt b/_sources/glossary.rst.txt new file mode 100644 index 00000000..02f85914 --- /dev/null +++ b/_sources/glossary.rst.txt @@ -0,0 +1,7653 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_bc2qwbfibrcs: + +Glossary +======== + +.. _fls_m98yg554tj9s: + +ABI +^^^ + +:dp:`fls_4ko8qcah0f9k` +For :dt:`ABI`, see :t:`Application Binary Interface`. + +.. _fls_zOdDwoObYHC0: + +ABI clobber +^^^^^^^^^^^ + +:dp:`fls_OVX4RFcWKfP9` +An :dt:`ABI clobber` is an argument to :t:`macro` :std:`core::arch::asm` which +indicates that the :t:`[value]s` of selected :t:`[register]s` might be +overwritten during the :t:`execution` of an :t:`assembly code block`. + +:dp:`fls_pMNTKjDMCHia` +See :s:`AbiClobber`. + +.. _fls_g791aj7w5iz1: + +ABI kind +^^^^^^^^ + +:dp:`fls_qo9itrt0n3h8` +The :dt:`ABI kind` indicates the :t:`ABI` of a :t:`construct`. + +:dp:`fls_rd4kpubxygie` +See :s:`AbiKind`. + +.. _fls_ymnz0mt7i4m8: + +abort +^^^^^ + +:dp:`fls_u4o7tda3ilv0` +:dt:`Abort` is the immediate termination of a program. + +.. _fls_g40une2uudez: + +abstract data type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_64drmro2fcfo` +An :dt:`abstract data type` is a collection of other :t:`[type]s`. + +.. _fls_5fu0ncvnjyna: + +active attribute +^^^^^^^^^^^^^^^^ + +:dp:`fls_r8rzj8mtxtp1` +An :dt:`active attribute` is an :t:`attribute` that is removed from the +:t:`item` it decorates. + +.. _fls_xqZapSv9tM1F: + +addition assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_FVgKeCXlmuPe` +For :dt:`addition assignment`, see :t:`addition assignment expression`. + +.. _fls_iw30dqjaeqle: + +addition assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_w83tf9m7vu67` +An :dt:`addition assignment expression` is a +:t:`compound assignment expression` that uses addition. + +:dp:`fls_hihh97p0rnt8` +See :s:`AdditionAssignmentExpression`. + +.. _fls_mcabdigrqv21: + +addition expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ylfdtuajmi0t` +An :dt:`addition expression` is an :t:`arithmetic expression` that uses +addition. + +:dp:`fls_5bgx5dyi817x` +See :s:`AdditionExpression`. + +.. _fls_wbdlbe61de3t: + +adjusted call operand +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mchqbc64iu0u` +An :dt:`adjusted call operand` is a :t:`call operand` with possible +:t:`auto dereferencing` adjustments. + +.. _fls_j775guurkgo4: + +alignment +^^^^^^^^^ + +:dp:`fls_c0hbatn5o8x3` +The :dt:`alignment` of a :t:`value` specifies which addresses are valid for +storing the value. + +.. _fls_jZKpckU1t2lR: + +all configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IyMZWiTnkYPv` +An :dt:`all configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ALL. + +:dp:`fls_0fEw9Bx8xX8q` +See :s:`ConfigurationPredicateAll`. + +.. _fls_du8uevac5q7j: + +anonymous loop expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_csss2a8yk52k` +An :dt:`anonymous loop expression` is a :t:`loop expression` without a +:t:`label`. + +.. _fls_dgxkklxcrrl0: + +anonymous return type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_z6t6lbwwztuf` +An :dt:`anonymous return type` is an :t:`impl trait type` ascribed to a +:t:`function` return type. + +.. _fls_8oepaq6ang93: + +anonymous type parameter +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_brqaq0736o09` +An :dt:`anonymous type parameter` is an :t:`impl trait type` ascribed to a +:t:`function parameter`. + +.. _fls_jrzM6C5B6AMt: + +any configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0nWHML8eoozG` +An :dt:`any configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ANY. + +:dp:`fls_xhhXonDldWQY` +See :s:`ConfigurationPredicateAny`. + +.. _fls_pcum2wpmgskk: + +Application Binary Interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ew4babc9467c` +:dt:`Application Binary Interface` is a set of conventions that dictate how +data and computation cross language boundaries. + +:dp:`fls_8dgmmsp34lgc` +See :s:`AbiSpecification`. + +.. _fls_dd008npswhij: + +argument operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_ljuwr88k92vp` +An :dt:`argument operand` is an :t:`operand` which is used as an argument in a +:t:`call expression` or a :t:`method call expression`. + +.. _fls_kf81ozijral2: + +arithmetic expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u3z2r1fw89xo` +An :dt:`arithmetic expression` is an :t:`expression` that computes a :t:`value` +from two :t:`[operand]s` using arithmetic. + +:dp:`fls_in59ccg4g3we` +See :s:`ArithmeticExpression`. + +.. _fls_kSuc3Gi7cdly: + +arithmetic operator +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Qf7DckakqvRq` +An :dt:`arithmetic operator` is the operator of an :t:`arithmetic expression`. + +.. _fls_vZ1H57x9OFSZ: + +arithmetic overflow +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jbytOQvIddAl` +An :dt:`arithmetic overflow` occurs if an :t:`arithmetic expression` or a +:t:`negation expression` computes a :t:`value` of a :t:`scalar type` that lies +outside of the range of valid :t:`[value]s` for the :t:`scalar type`. + +.. _fls_9aice4qbiqxf: + +arity +^^^^^ + +:dp:`fls_dl2gkip00bua` +An :dt:`arity` is the number of :t:`[tuple field]s` in a :t:`tuple type`. + +.. _fls_bn1regeucxqi: + +array +^^^^^ + +:dp:`fls_metry7a5prpt` +An :dt:`array` is a :t:`value` of an :t:`array type`. + +.. _fls_2d9fee2o9: + +array element constructor +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_cmx9ls5zoazp` +An :dt:`array element constructor` is an :t:`array expression` that lists all +elements of the :t:`array` being constructed. + +:dp:`fls_9bwte7cmszl1` +See :s:`ArrayElementConstructor`. + +.. _fls_yvzpqb192pci: + +array expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_pyjkjbvqarto` +An :dt:`array expression` is an :t:`expression` that constructs an :t:`array`. + +:dp:`fls_vua1xy4y9irp` +See :s:`ArrayExpression`. + +.. _fls_6jkgj61m49vg: + +array repetition constructor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_st1kw8mor2zk` +An :dt:`array repetition constructor` is an :t:`array expression` that +specifies how many times an element is repeated in the :t:`array` being +constructed. + +:dp:`fls_1zr997qwsal2` +See :s:`ArrayRepetitionConstructor`. + +.. _fls_15gzlmwuu4pk: + +array type +^^^^^^^^^^ + +:dp:`fls_muddb5qxdc4k` +An :dt:`array type` is a :t:`sequence type` that represents a fixed sequence of +elements. + +:dp:`fls_wre34hexlv6s` +See :s:`ArrayTypeSpecification`. + +.. _fls_et0NKXAYyDmh: + +assembly code block +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_d1ojwFwKpvm3` +An :dt:`assembly code block` is a sequence of :t:`[assembly instruction]s`. + +:dp:`fls_gXVUuW6iyNhZ` +See :s:`AssemblyCodeBlock`. + +.. _fls_iUnmWXxcuzif: + +assembly directive +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_FP2KbO6c3cpq` +An :dt:`assembly directive` is a request to the assembler to perform a +particular action or change a setting. + +.. _fls_HliSgbSzPO2r: + +assembly instruction +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VLu28hOvCy2o` +An :dt:`assembly instruction` is a :t:`string literal` that represents a +low-level assembly operation or an :t:`assembly directive`. + +:dp:`fls_EYHuB5cCldbm` +See :s:`AssemblyInstruction`. + +.. _fls_1iVIUoVDsYph: + +assembly option +^^^^^^^^^^^^^^^ + +:dp:`fls_F5I3okDKIYnE` +An :dt:`assembly option` is used to specify a characteristic of or a restriction +on the related :t:`assembly code block`. + +:dp:`fls_31NQgPGb73Hy` +See :s:`AssemblyOption`. + +.. _fls_l78iam7w8w38: + +assigned operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_g714mnh7s7fx` +An :dt:`assigned operand` is the target :t:`operand` of a +:t:`compound assignment expression`. + +:dp:`fls_z0amfuj9vsqe` +See :s:`AssignedOperand`. + +.. _fls_m1mim5qdzf2u: + +assignee expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wpmcexvbynbu` +An :dt:`assignee expression` is an :t:`expression` that appears as the +:t:`left operand` of an :t:`assignment expression`. + +.. _fls_3hs9hqsthil1: + +assignee operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_4tgf0wu2mr3l` +An :dt:`assignee operand` is the target :t:`operand` of an +:t:`assignment expression`. + +:dp:`fls_df0j0vnnq20a` +See :s:`AssigneeOperand`. + +.. _fls_f6ztsofr6xa9: + +assignment +^^^^^^^^^^ + +:dp:`fls_j9pyuucyplmi` +See :t:`assignment expression`. + +.. _fls_2d2elg5eukv4: + +assignment expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6jkc6a6me3zr` +An :dt:`assignment expression` is an :t:`expression` that assigns the +:t:`value` of a :t:`value operand` to an :t:`assignee operand`. + +:dp:`fls_njw68i3bp9qq` +See :s:`AssignmentExpression`. + +.. _fls_pjb22ylz5swp: + +associated constant +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hi9qa0k2nujb` +An :dt:`associated constant` is a :t:`constant` that appears as an +:t:`associated item`. + +.. _fls_vxiitesidcc2: + +associated function +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_zcy5pat39bq7` +An :dt:`associated function` is a :t:`function` that appears as an +:t:`associated item`. + +.. _fls_9mcx6h6irrlx: + +associated implementation constant +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rfaxcrrrb5q9` +An :dt:`associated implementation constant` is an :t:`associated constant` that +appears within an :t:`implementation`. + +.. _fls_n85fwe75ku60: + +associated implementation function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7xbmvl3jrc27` +An :dt:`associated implementation function` is an :t:`associated function` that +appears within an :t:`implementation`. + +.. _fls_c0hekhwpznyq: + +associated implementation type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6g5t81gx9ayx` +An :dt:`associated implementation type` is an :t:`associated type` that appears +within an :t:`implementation`. + +.. _fls_f3ferow5ugp: + +associated item +^^^^^^^^^^^^^^^ + +:dp:`fls_o5ysjk7l91ni` +An :dt:`associated item` is an :t:`item` that appears within an +:t:`implementation` or a :t:`trait`. + +:dp:`fls_44vtqu7tvhi2` +See :s:`AssociatedItem`. + +.. _fls_8p8teeamua55: + +associated trait constant +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xhhsej8db74y` +An :dt:`associated trait constant` is an :t:`associated constant` that appears +within a :t:`trait`. + +.. _fls_4h7s8u1zumnq: + +associated trait function +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r927r0pdkb6h` +An :dt:`associated trait function` is an :t:`associated function` that appears +within a :t:`trait`. + +.. _fls_47xtji9Pk8Lw: + +associated trait implementation item +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PaENehzTVgfB` +An :dt:`associated trait implementation item` is an :t:`associated item` that +appears within a :t:`trait implementation`. + +.. _fls_J946yIcmlAyV: + +associated trait item +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IlRrVLm05GTf` +An :dt:`associated trait item` is an :t:`associated item` that appears +within a :t:`trait`. + +.. _fls_azz308k3ra99: + +associated trait type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dndsgkiq9r7i` +An :dt:`associated trait type` is an :t:`associated type` that appears within +a :t:`trait`. + +.. _fls_zfs68g3yk0uw: + +associated type +^^^^^^^^^^^^^^^ + +:dp:`fls_rs0n72c2d8f` +An :dt:`associated type` is a :t:`type alias` that appears as an +:t:`associated item`. + +.. _fls_zOe783MlE9i9: + +associated type projection +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4moFUY6epk0v` +An :dt:`associated type projection` is a :t:`qualified type path` of the form +``::associated_type``, where ``type`` is a :t:`type`, ``trait`` +is a :t:`qualifying trait`, and ``associated type`` is an :t:`associated type`. + +.. _fls_fczijre8123c: + +associativity +^^^^^^^^^^^^^ + +:dp:`fls_7i7o23mi2i33` +:dt:`Associativity` is the order by which :t:`[operand]s` are evaluated within +a single :t:`expression`. + +.. _fls_9speqyus5ku3: + +async block +^^^^^^^^^^^ + +:dp:`fls_pf6lrmcjywoj` +For :dt:`async block`, see :t:`async block expression`. + +.. _fls_n5m58be9jnjj: + +async block expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_p6nvfs7bfoxd` +An :dt:`async block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``async`` and encapsulates behavior which is executed in +an asynchronous manner. + +:dp:`fls_je689rormhd6` +See :s:`AsyncBlockExpression`. + +.. _fls_lYrTaCM1LcXU: + +async control flow boundary +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_EXoGOkCRsfKK` +An :dt:`async control flow boundary` is a :t:`control flow boundary` that +additionally allows the suspension of execution via :t:`[await expression]s`. + +.. _fls_nlafxy2z1moc: + +async function +^^^^^^^^^^^^^^ + +:dp:`fls_gv9wl1cbaw1g` +An :dt:`async function` is a :t:`function` subject to :t:`keyword` ``async``. + +.. _fls_yikjq8yn3nnh: + +atomic +^^^^^^ + +:dp:`fls_9xd3m2qvqzk` +See :t:`atomic type`. + +.. _fls_197vnaw2zbnc: + +atomic type +^^^^^^^^^^^ + +:dp:`fls_cycpv4fopgx2` +An :dt:`atomic type` is a :t:`type` defined in :t:`module` +:std:`core::sync::atomic`. + +.. _fls_w1plocebd7kg: + +attribute +^^^^^^^^^ + +:dp:`fls_o74rfpe6zo6a` +An :dt:`attribute` is a general, free-form metadatum that is interpreted based +on its name, convention, language, and tool. + +.. _fls_SsMRqkHLDAgG: + +attribute content +^^^^^^^^^^^^^^^^^ + +:dp:`fls_sn0GvVmM3o38` +An :dt:`attribute content` is a :t:`construct` that provides the content of +an :t:`attribute`. + +:dp:`fls_YwyrWC8fcmRm` +See :s:`AttributeContent`. + +.. _fls_x1fafbpo0mlu: + +attribute macro +^^^^^^^^^^^^^^^ + +:dp:`fls_mtqr4d817ikn` +An :dt:`attribute macro` is a :t:`procedural macro` that consumes two streams +of :t:`[token]s` to produce a stream of tokens, and defines a new +:t:`outer attribute` that can be attached to :t:`[item]s`. + +.. _fls_24iVIlHhvnVO: + +auto trait +^^^^^^^^^^ + +:dp:`fls_d84nTOR4pZq5` +An :dt:`auto trait` is a :t:`trait` that is implicitly and automatically +implemented by a :t:`type` when the types of its constituent :t:`[field]s` +implement the :t:`trait`. + +.. _fls_n4oo89apywk4: + +await expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_psbc3b8pec47` +An :dt:`await expression` is an :t:`expression` that polls a :t:`future`, +suspending the execution of the future until the future is ready. + +:dp:`fls_29gkp9bpo1hi` +See :s:`AwaitExpression`. + +.. _fls_a8tavqxuvaju: + +base initializer +^^^^^^^^^^^^^^^^ + +:dp:`fls_dnuwn2tnvtgy` +A :dt:`base initializer` is a :t:`construct` that specifies an :t:`enum value`, +a :t:`struct value`, or a :t:`union value` to be used as a base for +construction in a :t:`struct expression`. + +:dp:`fls_mprzem71zlhy` +See :s:`BaseInitializer`. + +.. _fls_bii5eu1wznzk: + +basic assignment +^^^^^^^^^^^^^^^^ + +:dp:`fls_byq9e2jf8r22` +A :dt:`basic assignment` is an :t:`assignment expression` that is not a +:t:`destructuring assignment`. + +.. _fls_kahj3y4rvmvb: + +binary crate +^^^^^^^^^^^^ + +:dp:`fls_8gfe7hajxkd7` +A :dt:`binary crate` is a :t:`crate` that contains a :t:`main function`. + +.. _fls_or4o65fyt28y: + +binary literal +^^^^^^^^^^^^^^ + +:dp:`fls_hy54uj6u3nqw` +A :dt:`binary literal` is an :t:`integer literal` in base 2. + +:dp:`fls_693r7vs2s7o7` +See :s:`BinaryLiteral`. + +.. _fls_xydujcfvvb8p: + +binary operator +^^^^^^^^^^^^^^^ + +:dp:`fls_v0he0zp9ph7a` +A :dt:`binary operator` is an operator that operates on two :t:`[operand]s`. + +.. _fls_jrelzibadg7b: + +binding +^^^^^^^ + +:dp:`fls_89qi3unjvwd7` +A :dt:`binding` of a :t:`binding pattern` binds a matched :t:`value` to a +:t:`name`. + +:dp:`fls_lujdci4bphek` +See :s:`Binding`. + +.. _fls_glblhx8vzd3z: + +binding argument +^^^^^^^^^^^^^^^^ + +:dp:`fls_9lzcasl4tw7k` +A :dt:`binding argument` is a :t:`generic argument` that supplies the :t:`type` +of an :t:`associated trait type`. + +.. _fls_bv1k866tai6j: + +binding mode +^^^^^^^^^^^^ + +:dp:`fls_e3uvvvvyzq8h` +:dt:`Binding mode` is the mechanism by which a matched :t:`value` is bound to a +:t:`binding` of a :t:`pattern`. + +.. _fls_1nw19qc14zg6: + +binding pattern +^^^^^^^^^^^^^^^ + +:dp:`fls_ancqgz8pybbe` +A :dt:`binding pattern` is either an :t:`identifier pattern` or a +:t:`shorthand deconstructor`. + +.. _fls_5ep4xSGZwtoL: + +binding scope +^^^^^^^^^^^^^ + +:dp:`fls_6qPYH5NJ8usI` +A :dt:`binding scope` is a :t:`scope` for :t:`[binding]s`. + +.. _fls_clut5DWMQin8: + +bit and assignment +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wIl0K7O6lTXJ` +For :dt:`bit and assignment`, see :t:`bit and assignment expression`. + +.. _fls_y72vyr2tmdyb: + +bit and assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dvqotpte0pc2` +A :dt:`bit and assignment expression` is a :t:`compound assignment expression` +that uses bit and arithmetic. + +:dp:`fls_ix9ecb5olcx` +See :s:`BitAndAssignmentExpression`. + +.. _fls_h6sh4im3gjys: + +bit and expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_c1g5gljnr9kz` +A :dt:`bit and expression` is a :t:`bit expression` that uses bit and +arithmetic. + +:dp:`fls_vbsvu0troqci` +See :s:`BitAndExpression`. + +.. _fls_ed6yltkt0gb1: + +bit expression +^^^^^^^^^^^^^^ + +:dp:`fls_b3p5xqsfolqo` +A :dt:`bit expression` is an :t:`expression` that computes a :t:`value` from +two :t:`[operand]s` using bit arithmetic. + +:dp:`fls_iw1k2cfwfjou` +See :s:`BitExpression`. + +.. _fls_90E3eiBYgicI: + +bit or assignment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_21iFIDCu7Pk4` +For :dt:`bit or assignment`, see :t:`bit or assignment expression`. + +.. _fls_ehorb0lul906: + +bit or assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tu1owkfk0lu0` +A :dt:`bit or assignment expression` is a :t:`compound assignment expression` +that uses bit or arithmetic. + +:dp:`fls_utjcsfz8up88` +See :s:`BitOrAssignmentExpression`. + +.. _fls_m33m8nd2rnf8: + +bit or expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_183aem60of9o` +A :dt:`bit or expression` is a :t:`bit expression` that uses bit or arithmetic. + +:dp:`fls_ctqsjp653tbt` +See :s:`BitOrExpression`. + +.. _fls_jEnv7RjEUZvm: + +bit xor assignment +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VJpCPVCuszs1` +For :dt:`bit xor assignment`, see :t:`bit xor assignment expression`. + +.. _fls_u3fcq7jjyxux: + +bit xor assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ma980ujltab2` +A :dt:`bit xor assignment expression` is a :t:`compound assignment expression` +that uses bit exclusive or arithmetic. + +:dp:`fls_lcrd0birf0un` +See :s:`BitXorAssignmentExpression`. + +.. _fls_ixw1601j8u39: + +bit xor expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kccsvtzfhbp1` +A :dt:`bit xor expression` is a :t:`bit expression` that uses bit exclusive or +arithmetic. + +:dp:`fls_6qulwlo43w6m` +See :s:`BitXorExpression`. + +.. _fls_aa980vviqjue: + +block comment +^^^^^^^^^^^^^ + +:dp:`fls_a0ejcfs7y5uy` +A :dt:`block comment` is a :t:`comment` that spans one or more :t:`[line]s`. + +:dp:`fls_21r4tblk8awi` +See :s:`BlockComment`. + +.. _fls_c5qn7wjk0mnx: + +block expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_gvjvzxi2xps4` +A :dt:`block expression` is an :t:`expression` that sequences expressions and +:t:`[statement]s`. + +:dp:`fls_h8j9t2xq2i1u` +See :s:`BlockExpression`. + +.. _fls_n485t6wcgx07: + +bool +^^^^ + +:dp:`fls_wtmaf5amvleh` +:dc:`bool` is a :t:`type` whose :t:`[value]s` denote the truth values of logic +and Boolean algebra. + +.. _fls_oz4tdyp3rvm4: + +boolean literal +^^^^^^^^^^^^^^^ + +:dp:`fls_5mrxdqh474vk` +A :dt:`boolean literal` is a :t:`literal` that denotes the truth :t:`[value]s` +of logic and Boolean algebra. + +:dp:`fls_i13qcchm9vkk` +See :s:`BooleanLiteral`. + +.. _fls_7ef4c6ss7m6i: + +borrow +^^^^^^ + +:dp:`fls_2tpbdddvrl2f` +A :dt:`borrow` is a :t:`reference` produced by :t:`borrowing`. + +.. _fls_u0hymkjwyur7: + +borrow expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_2f55piwg78ru` +A :dt:`borrow expression` is an :t:`expression` that borrows the :t:`value` +of its :t:`operand` and creates a :t:`reference` to the memory location of its +operand. + +:dp:`fls_c3hydbp2exok` +See :s:`BorrowExpression`. + +.. _fls_gl84828b074a: + +borrowed +^^^^^^^^ + +:dp:`fls_3gnps2s95ck4` +A memory location is :dt:`borrowed` when a :t:`reference` pointing to it is +:t:`active`. + +.. _fls_95c5cbc2jvpc: + +borrowing +^^^^^^^^^ + +:dp:`fls_2epblwd2slp8` +:dt:`Borrowing` is the process of temporarily associating a :t:`reference` with +a :t:`value` without transferring :t:`ownership` permanently. + +.. _fls_ehfvcdpo3l4a: + +bound +^^^^^ + +:dp:`fls_q6mxhn1fxjs6` +A :dt:`bound` imposes a constraint on a :t:`generic parameter` by limiting the +set of possible :t:`[generic substitution]s`. + +:dp:`fls_rxabhhigp5uy` +See :s:`TypeBound`. + +.. _fls_jlfqyn3enrsi: + +bound pattern +^^^^^^^^^^^^^ + +:dp:`fls_uusfbosjwyd1` +A :dt:`bound pattern` is a :t:`pattern` that imposes a constraint on a related +:t:`identifier pattern`. + +:dp:`fls_oszhit2crxzc` +See :s:`BoundPattern`. + +.. _fls_xki2cerozblt: + +break expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_8ys8hlqgizoa` +A :dt:`break expression` is an :t:`expression` that terminates a +:t:`loop expression` or a :t:`named block expression`. + +:dp:`fls_fd1xpst5fki2` +See :s:`BreakExpression`. + +.. _fls_ff2zt3ww2yw3: + +break type +^^^^^^^^^^ + +:dp:`fls_jvm1vsqmslxn` +:dt:`Break type` is the :t:`type` of the :t:`operand` of a +:t:`break expression`. + +.. _fls_owtptuvleeb: + +break value +^^^^^^^^^^^ + +:dp:`fls_kpka4jf2qr5l` +:dt:`Break value` is the :t:`value` of the :t:`operand` of a +:t:`break expression`. + +.. _fls_82ev7wknxqmk: + +built-in attribute +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_a40rclur4orm` +A :dt:`built-in attribute` is a language-defined :t:`attribute`. + +:dp:`fls_ooq5g8zffyfb` +See :s:`InnerBuiltinAttribute`, :s:`OuterBuiltinAttribute`. + +.. _fls_QzAif2NyVJbk: + +built-in trait +^^^^^^^^^^^^^^ + +:dp:`fls_IgzD9l8o6R50` +A :dt:`built-in trait` is a language-defined :t:`trait`. + +.. _fls_e8rokiw23i9t: + +byte literal +^^^^^^^^^^^^ + +:dp:`fls_l67oo0u12zjb` +A :dt:`byte literal` is a :t:`literal` that denotes a fixed byte :t:`value`. + +:dp:`fls_iu9twvm648dx` +See :s:`ByteLiteral`. + +.. _fls_uwe7iomhvgtp: + +byte string literal +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_my4r1l3ilyt2` +A :dt:`byte string literal` is a :t:`literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_4yhag19z61bl` +See :s:`ByteStringLiteral`. + +.. _fls_lfjgrkwra22i: + +C +^ + +:dp:`fls_d4q2ro4nsnop` +:dt:`C` is the programming language described in the ISO/IEC 9899:2018 +International Standard. + +.. _fls_wenn1wdsicfz: + +C representation +^^^^^^^^^^^^^^^^ + +:dp:`fls_g9pdb06m5fto` +:dt:`C representation` is a :t:`type representation` that lays out :t:`[type]s` +such that they are interoperable with the :t:`C` language. + +.. _fls_fls_J0xUy4Mcxoe6: + +C signed int type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_8QIcvapJehqY` +:dt:`C signed int type` is the `signed int` :t:`type` of the :t:`C` language. + +.. _fls_Egfa8tdbqllA: + +Call conformance +^^^^^^^^^^^^^^^^ + +:dp:`fls_Jr1gUX7Ju4Oh` +:dt:`Call conformance` measures the compatibility between a set of +:t:`[argument operand]s` and a set if :t:`[function parameter]s` or +:t:`[field]s`. + +.. _fls_xeo59ol6uh5i: + +call expression +^^^^^^^^^^^^^^^ + +:dp:`fls_a9ap0tyk2eou` +A :dt:`call expression` is an :t:`expression` that invokes a :t:`function` or +constructs a :t:`tuple struct value` or :t:`tuple enum variant value`. + +:dp:`fls_aibti9uqrmmd` +See :s:`CallExpression`. + +.. _fls_ezk9xkst7gfj: + +call operand +^^^^^^^^^^^^ + +:dp:`fls_cqnko94y4xbs` +A :dt:`call operand` is the :t:`function` being invoked or the +:t:`tuple struct value` or :t:`tuple enum variant value` being constructed by a +:t:`call expression`. + +:dp:`fls_w6wu4wi6srjj` +See :s:`CallOperand`. + +.. _fls_zSh4enFjxeaN: + +call resolution +^^^^^^^^^^^^^^^ + +:dp:`fls_fS1ZjGGypvbn` +:dt:`Call resolution` is a kind of :t:`resolution` that applies to a +:t:`call expression`. + + +.. _fls_AK8mL1LeftO0: + +call site hygiene +^^^^^^^^^^^^^^^^^ + +:dp:`fls_YTQmXotFOXWU` +:dt:`Call site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroInvocation` site. :t:`[Identifier]s` with :t:`call site hygiene` can +reference the environment of the :s:`MacroRulesDeclaration`, can reference the +environment of the :s:`MacroInvocation`, and are considered :t:`unhygienic`. + +.. _fls_luuc01g4ffog: + +callee type +^^^^^^^^^^^ + +:dp:`fls_o21myf6wnnn6` +A :dt:`callee type` is either a :t:`function item type`, a +:t:`function pointer type`, a :t:`tuple struct type`, a :t:`tuple enum variant` +or a :t:`type` that implements any of the :std:`core::ops::Fn`, +:std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` :t:`[trait]s`. + +.. _fls_s78gd8yxx2yv: + +capture mode +^^^^^^^^^^^^ + +:dp:`fls_beer0d7wva1d` +:dt:`Capture mode` is the mechanism by which a :t:`capture target` is captured. + +.. _fls_c6qwfwsyizya: + +capture target +^^^^^^^^^^^^^^ + +:dp:`fls_xmhcp4x8wblz` +A :dt:`capture target` is either a :t:`binding` or a :t:`field` of a +:t:`binding`. + +.. _fls_kvu447p6j61k: + +capturing +^^^^^^^^^ + +:dp:`fls_4achbk2ewyyb` +:dt:`Capturing` is the process of saving the :t:`[capture target]s` of a +:t:`[capturing expression]'s` :t:`capturing environment`. + +.. _fls_yfk2xfifltxy: + +capturing environment +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7br4azaay3wu` +The :dt:`capturing environment` of a :t:`capturing expression` consists of all +:t:`[capture target]s` that are defined outside the :t:`capturing expression`. + +.. _fls_cl3lpsfgt5eb: + +capturing expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_awtny282gtud` +A :dt:`capturing expression` is either an :t:`async block expression` or a +:t:`closure expression`. + +.. _fls_pcaygpx7db24: + +cast +^^^^ + +:dp:`fls_e5hvszhcrtmj` +:dt:`Cast` or :dt:`casting` is the process of changing the :t:`type` of an +:t:`expression`. + +.. _fls_xl2zlpw070dy: + +char +^^^^ + +:dp:`fls_vx0dss1yplw1` +:dc:`char` is a :t:`type` whose :t:`[value]s` denote :t:`Unicode` characters. + +.. _fls_cfphqaml82ik: + +character literal +^^^^^^^^^^^^^^^^^ + +:dp:`fls_8oah1cf8p0lb` +A :dt:`character literal` is a :t:`literal` that denotes a fixed :t:`Unicode` +character. + +:dp:`fls_sup0h5mvibzs` +See :s:`CharacterLiteral`. + +.. _fls_5vm5cijnucsr: + +closure body +^^^^^^^^^^^^ + +:dp:`fls_vgnycw6dykwo` +A :dt:`closure body` is a :t:`construct` that represents the executable portion +of a :t:`closure expression`. + +:dp:`fls_zefhg4auut8d` +See :s:`ClosureBody`, :s:`ClosureBodyWithReturnType`. + +.. _fls_mrwle2ediywb: + +closure expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_x87rhn9ikz00` +A :dt:`closure expression` is an :t:`expression` that defines a +:t:`closure type` and constructs a value of that :t:`type`. + +:dp:`fls_psd18dkzplf6` +See :s:`ClosureExpression`. + +.. _fls_f5RBXj9g5iab: + +closure parameter +^^^^^^^^^^^^^^^^^ + +:dp:`fls_yQBZHBLhPswn` +A :dt:`closure parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_Dus3fBU3TwR4` +See :s:`ClosureParameter`. + +.. _fls_xjudl8ykbisi: + +closure type +^^^^^^^^^^^^ + +:dp:`fls_wp4kues3nbvn` +A :dt:`closure type` is a unique anonymous :t:`function type` that encapsulates +all :t:`[capture target]s` of a :t:`closure expression`. + +.. _fls_aqovhozevngd: + +code point +^^^^^^^^^^ + +:dp:`fls_6xw8jtiomc2n` +In :t:`Unicode`, a :dt:`code point` is a numeric :t:`value` that maps to a +character. + +.. _fls_2moavfyeit0m: + +comment +^^^^^^^ + +:dp:`fls_3xhoz9f7xy1t` +A :dt:`comment` is a :t:`lexical element` that acts as an annotation or an +explanation in program text. + +:dp:`fls_pi32rhfqghma` +See :s:`Comment`. + +.. _fls_hjxuoe1hwlhm: + +comparison expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_394p7gdruvk7` +A :dt:`comparison expression` is an :t:`expression` that compares the +:t:`[value]s` of two :t:`[operand]s`. + +:dp:`fls_1jk0s7389mt0` +See :s:`ComparisonExpression`. + +.. _fls_riwule1euzlj: + +compilation root +^^^^^^^^^^^^^^^^ + +:dp:`fls_stwsfyvov2fx` +A :dt:`compilation root` is an input to a compilation performed by a tool. + +.. _fls_pTMrfPXETibe: + +compound assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lGV9QvCmYGcH` +For :dt:`compound assignment`, see :t:`compound assignment expression`. + +.. _fls_iktiir89xbo2: + +compound assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mkxpk2jhe5s0` +A :dt:`compound assignment expression` is an expression that first computes +a :t:`value` from two :t:`[operand]s` and then assigns the value to an +:t:`assigned operand`. + +:dp:`fls_55abuw8symub` +See :s:`CompoundAssignmentExpression`. + +.. _fls_qyfn5u5cl5l1: + +concrete type +^^^^^^^^^^^^^ + +:dp:`fls_l0lr3ybgccjc` +A :dt:`concrete type` is a :t:`type` described by a :t:`type specification`. + +.. _fls_lmacvq89lj2j: + +conditional compilation +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xymops69eer3` +:dt:`Conditional compilation` is the process of compiling +:t:`conditionally-compiled source code`. + +.. _fls_bqq013n2cy4t: + +conditionally-compiled source code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hs4lnrdxpj2g` +:dt:`Conditionally-compiled source code` is source code that may or may not be +considered a part of a Rust program depending on certain conditions. + +.. _fls_vRjPmHYEVVAf: + +configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_TyKIUQMxO9Si` +A :dt:`configuration predicate` is a :t:`construct` that evaluates statically +to either ``true`` or ``false``, and controls :t:`conditional compilation`. + +:dp:`fls_99ioki0M64fD` +See :s:`ConfigurationPredicate`. + +.. _fls_yw57di94gwpf: + +constant +^^^^^^^^ + +:dp:`fls_p8rjw2qok85b` +A :dt:`constant` is an immutable :t:`value` whose uses are substituted by the +:t:`value`. + +:dp:`fls_hlouedpdg1zd` +See :s:`ConstantDeclaration`. + +.. _fls_n7z4cl1fsk6l: + +constant argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_sz10vgh260xo` +A :dt:`constant argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`constant parameter`. + +:dp:`fls_dz9x6gf3yzc6` +See :s:`ConstantArgument`. + +.. _fls_mtbhv6e9izzm: + +constant context +^^^^^^^^^^^^^^^^ + +:dp:`fls_9j6mc4i1t73z` +A :dt:`constant context` is a :t:`construct` that requires a +:t:`constant expression`. + +.. _fls_iofbib2gavnv: + +constant expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rmn8w4rh3juf` +A :dt:`constant expression` is an :t:`expression` that can be evaluated +statically. + +.. _fls_6j1wluj8sku8: + +constant function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_4glkwg11p5ml` +A :dt:`constant function` is a :t:`function` subject to :t:`keyword` ``const``. + +.. _fls_mf022jo05ziu: + +constant initializer +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2ge48v1kmw8` +A :dt:`constant initializer` is a :t:`construct` that provides the :t:`value` +of its related :t:`constant`. + +:dp:`fls_h86eg26z19r2` +See :s:`ConstantInitializer`. + +.. _fls_pj0f0p4avbyw: + +constant parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_z7e491m3dx4u` +A :dt:`constant parameter` is a :t:`generic parameter` for a :t:`constant`. + +:dp:`fls_9093wziwxk1g` +See :s:`ConstantParameter`. + +.. _fls_sIvXMhYaZVjD: + +constant parameter initializer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_OXD2YaOkfjcI` +A :dt:`constant parameter initializer` is a :t:`construct` that provides the +default `:t:`value` of its related :t:`constant parameter`. + +:dp:`fls_CMsyUCxGm8Xs` +See :s:`ConstantParameterInitializer`. + +.. _fls_f95c9hrk7t2p: + +constant promotion +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ku2md8lnei12` +:dt:`Constant promotion` is the process of converting a :t:`value expression` +into a :t:`constant`. + +.. _fls_x4niicvxxv9k: + +constrain +^^^^^^^^^ + +:dp:`fls_fna0ch8ucyhv` +A :t:`generic parameter` is said to :dt:`constrain` an :t:`implementation` if +it makes the :t:`[implementation]'s` applicability more narrow. + +.. _fls_4305i29nt5d6: + +construct +^^^^^^^^^ + +:dp:`fls_10tvzeo8xex0` +A :dt:`construct` is a piece of program text that is an instance of a +:t:`syntactic category`. + +.. _fls_fBGjoTVhYvUe: + +constructee +^^^^^^^^^^^ + +:dp:`fls_Twbu94uGW4Cb` +A :dt:`constructee` indicates the :t:`enum variant`, :t:`struct` or :t:`union` +whose value is being constructed by a :t:`struct expression`. + +.. _fls_39s6od9hj4g6: + +container operand +^^^^^^^^^^^^^^^^^ + +:dp:`fls_stjmobac6wyd` +A :dt:`container operand` is an :t:`operand` that indicates the :t:`value` +whose :t:`field` is selected in a :t:`field access expression`. + +:dp:`fls_hgm1ssicc8j4` +See :s:`ContainerOperand`. + +.. _fls_doazu99vos8x: + +continue expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_waxam3m9plfj` +A :dt:`continue expression` is an :t:`expression` that first terminates and +then restarts a :t:`loop expression`. + +:dp:`fls_smwcz2xw9o1f` +See :s:`ContinueExpression`. + +.. _fls_nC4Knv4tpenW: + +control flow boundary +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_SmipZJDp02ij` +A :dt:`control flow boundary` is a :t:`construct` that limits control flow from +returning beyond the :t:`construct`, and acts as the target of control flow +returning operations. + +.. _fls_lnwxm6ffy15w: + +copy type +^^^^^^^^^ + +:dp:`fls_j7r33ecacyh` +A :dt:`copy type` is a :t:`type` that implements the +:std:`core::marker::Copy` :t:`trait`. + +.. _fls_kf8yukhxudw8: + +crate +^^^^^ + +:dp:`fls_qplsjzb2uyim` +A :dt:`crate` is a unit of compilation and linking that contains a tree of +nested :t:`[module]s`. + +.. _fls_xwbmmcbbowtu: + +crate import +^^^^^^^^^^^^ + +:dp:`fls_y91ja1a87g7a` +A :dt:`crate import` specifies a dependency on an external :t:`crate`. + +:dp:`fls_nmdxagg39hz6` +See :s:`ExternalCrateImport`. + +.. _fls_CXvNvsO10pLL: + +crate indication +^^^^^^^^^^^^^^^^ + +:dp:`fls_XUSFUErxQRRA` +A :dt:`crate indication` is a :t:`construct` that indicates a :t:`crate`. + +:dp:`fls_s1eFklbzjLxQ` +See :s:`CrateIndication`. + +.. _fls_yf9yjzzhw0rn: + +crate public modifier +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dj7fmrqhbhsv` +A :dt:`crate public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the current :t:`crate` only. + +:dp:`fls_wjfupeyeczp0` +See :s:`CratePublicModifier`. + +.. _fls_hv9zyxb72soh: + +crate root +^^^^^^^^^^ + +:dp:`fls_yxcgiuybqqy8` +A :dt:`crate root` is an entry point into a :t:`crate`. + +.. _fls_iucxone5ta26: + +crate root module +^^^^^^^^^^^^^^^^^ + +:dp:`fls_oo4nmqv78wno` +A :dt:`crate root module` is the root of the nested :t:`module` tree of a +:t:`crate`. + +.. _fls_76cj65bptdpn: + +dangling +^^^^^^^^ + +:dp:`fls_lq2urzh7bzxx` +A :t:`value` of an :t:`indirection type` is :dt:`dangling` if it is either +:c:`null` or not all of the bytes at the referred memory location are part of +the same allocation. + +.. _fls_9meaofgcpvx6: + +data race +^^^^^^^^^ + +:dp:`fls_v2s1b57e3r7n` +A :dt:`data race` is a scenario where two or more threads access a shared +memory location concurrently. + +.. _fls_128iunbbiuql: + +decimal literal +^^^^^^^^^^^^^^^ + +:dp:`fls_lwv823lih69m` +A :dt:`decimal literal` is an :t:`integer literal` in base 10. + +:dp:`fls_pxiba4se64y4` +See :s:`DecimalLiteral`. + +.. _fls_9qgy7x6w5ro5: + +declaration +^^^^^^^^^^^ + +:dp:`fls_kct7ducpli6k` +A :dt:`declaration` is a :t:`construct` that introduces a :t:`name` for an +:t:`entity`. + +.. _fls_5944xn0lz8e: + +declarative macro +^^^^^^^^^^^^^^^^^ + +:dp:`fls_pe12lfffaoqt` +A :dt:`declarative macro` is a :t:`macro` that associates a :t:`name` with a +set of syntactic transformation rules. + +:dp:`fls_1te2kfi9lt6c` +See :s:`MacroRulesDeclaration`. + +.. _fls_GAlaslkO8gLG: + +deconstructee +^^^^^^^^^^^^^ + +:dp:`fls_QsvWOdoFWtUO` +A :dt:`deconstructee` indicates the :t:`enum variant` or :t:`type` that is +being deconstructed by a :t:`struct pattern`. + +:dp:`fls_TkFjmV7AR7lp` +See :s:`Deconstructee`. + +.. _fls_g9v8ubx8m1sq: + +default representation +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e85fsp10acnh` +:dt:`Default representation` is a :t:`type representation` that does not make +any guarantees about :t:`layout`. + +.. _fls_FrfnICpg81sr: + +definition site hygiene +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2Y1Dpw5ZEqT3` +:dt:`Definition site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroRulesDeclaration` site. :t:`[Identifier]s` with +:t:`definition site hygiene` cannot reference the environment of the +:s:`MacroRulesDeclaration`, cannot be referenced by the environment of a +:s:`MacroInvocation`, and are considered :t:`hygienic`. + +.. _fls_127n1n5ssk2b: + +dereference +^^^^^^^^^^^ + +:dp:`fls_hk97pb1qt04y` +A :dt:`dereference` is the memory location produced by evaluating a +:t:`dereference expression`. + +.. _fls_o588wfq878rm: + +dereference expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_3cuyhbh2llei` +A :dt:`dereference expression` is an :t:`expression` that obtains the +pointed-to memory location of its :t:`operand`. + +:dp:`fls_hx0jwahdb1nf` +See :s:`DereferenceExpression`. + +.. _fls_xbN0GtcH8emc: + +dereference type +^^^^^^^^^^^^^^^^ + +:dp:`fls_HfuUQ7IaoI5j` +A :dt:`dereference type` is either a :t:`reference type` or a :t:`type` that +implements the :std:`core::ops::Deref` :t:`trait`. + +.. _fls_T380NdEsFxIp: + +dereference type chain +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kIzoAEf069HE` +A :dt:`dereference type chain` is a sequence of :t:`[dereference type]s`. + +.. _fls_7ipdj78o7ln: + +derive macro +^^^^^^^^^^^^ + +:dp:`fls_jrrjhl9hocrm` +A :dt:`derive macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of tokens, and is invoked via attribute +:c:`derive`. + +.. _fls_7b3fsp356e9l: + +destruction +^^^^^^^^^^^ + +:dp:`fls_58i2nfhxze3j` +:dt:`Destruction` is the process of recovering resources associated with a +:t:`value` as it goes out of scope. + +.. _fls_kwxpy451gtc: + +destructor +^^^^^^^^^^ + +:dp:`fls_79pp7o1xooja` +A :dt:`destructor` is a :t:`function` that is invoked immediately before the +:t:`destruction` of a :t:`value` of a :t:`drop type`. + +.. _fls_2fuu3zr9rn2q: + +destructuring assignment +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7jienn9uzn5k` +A :dt:`destructuring assignment` is an :t:`assignment expression` where +the :t:`assignee operand` is either an :t:`array expression`, a +:t:`struct expression`, or a :t:`tuple expression`. + +.. _fls_ugIFZlAzDK6H: + +direction modifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8DY7xPVX4nXx` +A :dt:`direction modifier` is a :t:`construct` that indicates whether a +:t:`register argument` initializes a :t:`register`, assigns the :t:`value` of a +:t:`register` to an :t:`expression`, or both. + +:dp:`fls_lRKEzY3fQ3B2` +See :s:`DirectionModifier`. + +.. _fls_7vg56eeo0zlg: + +discriminant +^^^^^^^^^^^^ + +:dp:`fls_dfegy9y6awx` +A :dt:`discriminant` is an opaque integer that identifies an :t:`enum variant`. + +.. _fls_xayj37ocbqjn: + +discriminant initializer +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_o7hihgcqmnyc` +A :dt:`discriminant initializer` provides the :t:`value` of a :t:`discriminant`. + +:dp:`fls_g5obc23vigng` +See :s:`DiscriminantInitializer`. + +.. _fls_a0ezuPLtENme: + +discriminant type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_t4yeovFm83Wo` +A :dt:`discriminant type` is the :t:`type` of a :t:`discriminant`. + +.. _fls_gDFsAj1Bvx7A: + +diverging expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fLlNzmB34cj9` +A :dt:`diverging expression` is an :t:`expression` whose :t:`evaluation` causes +program flow to diverge from the normal :t:`evaluation` order. + +.. _fls_9DuaIn6cRbXf: + +diverging type variable +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_sxyL7yOp3H9s` +A :dt:`diverging type variable` is a :t:`type variable` that can refer to any +:t:`type` and originates from a :t:`diverging expression`. + +.. _fls_0lpT9Ncj7S9X: + +division assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kvQskrzE1y97` +For :dt:`division assignment`, see :t:`division assignment expression`. + +.. _fls_ccv27fji08ou: + +division assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lzuz5fkveikk` +A :dt:`division assignment expression` is a :t:`compound assignment expression` +that uses division. + +:dp:`fls_cdxt76aqwtkq` +See :s:`DivisionAssignmentExpression`. + +.. _fls_vxd5q8nekkn0: + +division expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_du05yp205f4y` +A :dt:`division expression` is an :t:`arithmetic expression` that uses division. + +:dp:`fls_d3vwk4autyd` +See :s:`DivisionExpression`. + +.. _fls_4nm1r57ntecm: + +doc comment +^^^^^^^^^^^ + +:dp:`fls_wkc1w2xk7ebh` +A :dt:`doc comment` is a :t:`comment` class that includes +:t:`[inner block doc]s`, :t:`[inner line doc]s`, :t:`[outer block doc]s`, +and :t:`[outer line doc]s`. + +.. _fls_nw0qr4xy3zxq: + +drop construct +^^^^^^^^^^^^^^ + +:dp:`fls_odg2asgj28m` +A :dt:`drop construct` is a :t:`construct` that employs a :t:`drop scope`. + +.. _fls_j12e358828h: + +drop order +^^^^^^^^^^ + +:dp:`fls_qddkiabu6swt` +:dt:`Drop order` is the order by which :t:`[value]s` are :t:`dropped` when a +:t:`drop scope` is left. + +.. _fls_foszri7hdym0: + +drop scope +^^^^^^^^^^ + +:dp:`fls_6bu8x0g9q0er` +A :dt:`drop scope` is a region of program text that governs the :t:`dropping` +of :t:`[value]s`. + +.. _fls_qp3ksd2lxm8: + +drop scope extension +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pmdh8kkrwkd0` +:dt:`Drop scope extension` is the process of extending a :t:`drop scope` +associated with a :t:`temporary` to prevent the premature :t:`dropping` of the +:t:`temporary`. + +.. _fls_4v6vsuw4g89l: + +drop type +^^^^^^^^^ + +:dp:`fls_ot3e31kwixil` +A :dt:`drop type` is a :t:`type` that implements the :std:`core::ops::Drop` +:t:`trait` or contains a :t:`field` that has a :t:`destructor`. + +.. _fls_68cl4paduzx2: + +dropping +^^^^^^^^ + +:dp:`fls_k4mguykh8ey` +:dt:`Dropping` a :t:`value` is the act of invoking the :t:`destructor` of the +related :t:`type`. + +.. _fls_6uovyjjzh6km: + +dynamically sized type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eeyxu730z2pw` +A :dt:`dynamically sized type` is a :t:`type` that does not implement the +:std:`core::marker::Sized` :t:`trait`. + +.. _fls_2sja3okj27ne: + +elaboration +^^^^^^^^^^^ + +:dp:`fls_xoahzmwu1std` +:dt:`Elaboration` is the process by which a :t:`declaration` achieves its +runtime effects. + +.. _fls_bxm4njfo2h58: + +element type +^^^^^^^^^^^^ + +:dp:`fls_3bndijf8g9os` +An :dt:`element type` is the :t:`type` of the elements of an :t:`array type` or +a :t:`slice type`. + +:dp:`fls_pvyl887dn016` +See :s:`ElementType`. + +.. _fls_vygjg858yxej: + +elided +^^^^^^ + +:dp:`fls_lo3c3n9wy6qz` +For :dt:`elided`, see :t:`elided lifetime`. + +.. _fls_l2181y5566ck: + +elided lifetime +^^^^^^^^^^^^^^^ + +:dp:`fls_9q28407ev0a6` +An :dt:`elided lifetime` is either an :t:`unnamed lifetime` or a :t:`lifetime` +that has been explicitly omitted from a :t:`function signature` or an +:t:`implementation`. + +.. _fls_ff5zp7m9d5ot: + +else expression +^^^^^^^^^^^^^^^ + +:dp:`fls_inp7luoqkjc5` +An :dt:`else expression` is an :t:`expression` that represents either a +:t:`block expression`, an :t:`if expression`, or an :t:`if let expression`. + +:dp:`fls_2jniy6bkq1hn` +See :s:`ElseExpression`. + +.. _fls_iwed9n4jz6b8: + +empty statement +^^^^^^^^^^^^^^^ + +:dp:`fls_irw5gwuvj3nn` +An :dt:`empty statement` is a :t:`statement` expressed as character 0x3B +(semicolon). + +.. _fls_1qu1t74ga8aa: + +entity +^^^^^^ + +:dp:`fls_mdbck557k8sy` +An :dt:`entity` is a :t:`construct` that can be referred to within program +text, usually via a :t:`field access expression` or a :t:`path`. + +.. _fls_xnhj9fqlfs2p: + +enum +^^^^ + +:dp:`fls_9o0ig19xh2f5` +An :dt:`enum` is an :t:`item` that declares an :t:`enum type`. + +.. _fls_zrRydWZgm03k: + +enum field +^^^^^^^^^^ + +:dp:`fls_J8udq05QGiEj` +An :dt:`enum field` is a :t:`field` of an :t:`enum variant`. + +.. _fls_grlluqa4ucp3: + +enum type +^^^^^^^^^ + +:dp:`fls_idwrgo87ub3i` +An :dt:`enum type` is an :t:`abstract data type` that contains +:t:`[enum variant]s`. + +:dp:`fls_o6ih6n1z1566` +See :s:`EnumDeclaration`. + +.. _fls_H6aUAUjNlx6z: + +enum value +^^^^^^^^^^ + +:dp:`fls_QdBTdVLB2xHk` +An :dt:`enum value` is a :t:`value` of an :t:`enum type`. + +.. _fls_klwlx5jixwud: + +enum variant +^^^^^^^^^^^^ + +:dp:`fls_9jq4keg9y94u` +An :dt:`enum variant` is a :t:`construct` that declares one of the +possible variations of an :t:`enum`. + +:dp:`fls_tj2s55onen6b` +See :s:`EnumVariant`. + +.. _fls_mKxBWCojhnWu: + +enum variant value +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VQRqNPFFWmDp` +An :dt:`enum variant value` is the :t:`enum value` of the corresponding +:t:`enum` of the :t:`enum variant`. + +.. _fls_alifv570nx7q: + +equals expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_mn1g2hijtd6f` +An :dt:`equals expression` is a :t:`comparison expression` that tests equality. + +:dp:`fls_j32l4do0xw4d` +See :s:`EqualsExpression`. + +.. _fls_kz7tgpi8xkt4: + +error propagation expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_5kebgodxtqqt` +An :dt:`error propagation expression` is an :t:`expression` that either +evaluates to a :t:`value` of its :t:`operand` or returns a value to the next +control flow boundary. + +:dp:`fls_agyqvyda3rcj` +See :s:`ErrorPropagationExpression`. + +.. _fls_9hw559b548m0: + +escaped character +^^^^^^^^^^^^^^^^^ + +:dp:`fls_7yvnbakmo7y5` +An :dt:`escaped character` is the textual representation for a character with +special meaning. An escaped character consists of character 0x5C (reverse +solidus), followed by the single character encoding of the special meaning +character. For example, ``\t`` is the escaped character for 0x09 (horizontal +tabulation). + +.. _fls_pefe9ng1mm81: + +evaluated +^^^^^^^^^ + +:dp:`fls_769tm6hn9g5e` +See :t:`evaluation`. + +.. _fls_p3gre0895k2u: + +evaluation +^^^^^^^^^^ + +:dp:`fls_8zmtio6razl1` +:dt:`Evaluation` is the process by which an :t:`expression` achieves its +runtime effects. + +.. _fls_nw0eg7gwayrg: + +executed +^^^^^^^^ + +:dp:`fls_kelmsc68lyf7` +See :t:`execution`. + +.. _fls_q0ur239s8uv: + +execution +^^^^^^^^^ + +:dp:`fls_e5jbii84hd5g` +:dt:`Execution` is the process by which a :t:`statement` achieves its runtime +effects. + +.. _fls_B1qkkSvc69J4: + +explicit register argument +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2o6S1WGDrMh3` +An :dt:`explicit register argument` is a :t:`register argument` that uses an +:t:`explicit register name`. + +.. _fls_uc7PnSbVVd9X: + +explicit register name +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_UcMk6RRLrkB5` +An :dt:`explicit register name` is a target-specific string that identifies +a :t:`register`. + +:dp:`fls_Z3WDh75VpSUU` +See :s:`ExplicitRegisterName`. + +.. _fls_lqxcnZqvwcsH: + +explicitly declared entity +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_shpNJ0JCSCwa` +An :dt:`explicitly declared entity` is an :t:`entity` that has a +:t:`declaration`. + +.. _fls_5oQllRM7Wjsg: + +exported function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_QotMF1iaEYod` +An :dt:`exported function` is an export of a :t:`function`. + +.. _fls_zkq5ZkJwsyoD: + +exported static +^^^^^^^^^^^^^^^^^ + +:dp:`fls_aolCSvb349ZU` +An :dt:`exported static` is an export of a :t:`static`. + +.. _fls_q8ofwncggngd: + +expression +^^^^^^^^^^ + +:dp:`fls_f7iuwgbs1lql` +An :dt:`expression` is a :t:`construct` that produces a :t:`value`, and may +have side effects at run-time. + +:dp:`fls_8l9hru1x586q` +See :s:`Expression`. + +.. _fls_a1rorkjt3vpc: + +expression statement +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ds0pspiqk4am` +An :dt:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_41jt1h3audzv` +See :s:`ExpressionStatement`. + +.. _fls_u6huewic8650: + +expression-with-block +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ujlm50le5dnj` +An :dt:`expression-with-block` is an :t:`expression` whose structure involves a +:t:`block expression`. + +:dp:`fls_iwheys965ml3` +See :s:`ExpressionWithBlock`. + +.. _fls_378e2xhxzk26: + +expression-without-block +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xfh9xmsphzqb` +An :dt:`expression-without-block` is an :t:`expression` whose structure does +not involve a :t:`block expression`. + +:dp:`fls_miaphjnikd51` +See :s:`ExpressionWithoutBlock`. + +.. _fls_9k6jcsljghab: + +external block +^^^^^^^^^^^^^^ + +:dp:`fls_z2ebcp7kjpuy` +An :dt:`external block` is a :t:`construct` that provides the declarations of +foreign :t:`[function]s` as unchecked imports. + +:dp:`fls_dm2wz1th2haz` +See :s:`ExternalBlock`. + +.. _fls_8ffbgzkbsf9r: + +external function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ngz5fqwrf86e` +An :dt:`external function` is an unchecked import of a foreign :t:`function`. + +.. _fls_ug2kags0o6is: + +external function item type +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dwlovqly44dj` +An :dt:`external function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`external function`. + +.. _fls_c89migfc2m6e: + +external static +^^^^^^^^^^^^^^^ + +:dp:`fls_bqq6cncstzeg` +An :dt:`external static` is an import of a foreign :t:`variable`. + +.. _fls_4w6garmjhrd9: + +f32 +^^^ + +:dp:`fls_4w5rqj7zdemu` +:dc:`f32` is a :t:`floating-point type` equivalent to the IEEE 754-2008 +binary32 :t:`type`. + +.. _fls_pj450h99yo28: + +f64 +^^^ + +:dp:`fls_ly6p0i6lsibh` +:dc:`f64` is a :t:`floating-point type` equivalent to the IEEE 754-2008 +binary64 :t:`type`. + +.. _fls_nkf9z4pqg8x1: + +fat pointer +^^^^^^^^^^^ + +:dp:`fls_knbc2jv5c5ds` +A :dt:`fat pointer` is a :t:`value` of a :t:`fat pointer type`. + +.. _fls_trvkbidlsss8: + +fat pointer type +^^^^^^^^^^^^^^^^ + +:dp:`fls_l8ew6udd79hh` +A :dt:`fat pointer type` is an :t:`indirection type` that refers to a +:t:`dynamically sized type`. + +.. _fls_qi21fdknzez6: + +FFI +^^^ + +:dp:`fls_z363fu89mj1c` +For :dt:`FFI`, see :t:`Foreign Function Interface`. + +.. _fls_7gCAbHnGEIl6: + +field +^^^^^ + +:dp:`fls_uAkrgfFTK2YV` +A :dt:`field` is an element of an :t:`abstract data type`. + +.. _fls_yipl7ajrbs6y: + +field access expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_gdl348a04d15` +A :dt:`field access expression` is an :t:`expression` that accesses a +:t:`field` of a :t:`value`. + +:dp:`fls_luetyuwu54d6` +See :s:`FieldAccessExpression`. + +.. _fls_6uwwat9j4x7y: + +field index +^^^^^^^^^^^ + +:dp:`fls_6061r871qgbj` +A :dt:`field index` is the position of a :t:`field` within a +:t:`tuple struct type` or :t:`tuple enum variant`. The first :t:`field` has a +:t:`field index` of zero, the Nth :t:`field` has a :t:`field index` of N-1. + +:dp:`fls_IDYKXUIL845x` +See :s:`FieldIndex`. + +.. _fls_8qLL14WfXXNN: + +field list +^^^^^^^^^^ + +:dp:`fls_xMZsrxMc9Cni` +A :dt:`field list` is a :s:`RecordStructFieldList` or :s:`TupleStructFieldList`. + +.. _fls_BlZwxp6H62sS: + +field resolution +^^^^^^^^^^^^^^^^ + +:dp:`fls_nL8UuclgxfGL` +:dt:`Field resolution` is a form of :t:`resolution` that applies to a +:t:`field access expression`. + +.. _fls_kqbata8slp1y: + +field selector +^^^^^^^^^^^^^^ + +:dp:`fls_aq1yg9cp1uof` +A :dt:`field selector` is a :t:`construct` that selects the :t:`field` to be +accessed in a :t:`field access expression`. + +:dp:`fls_x8swot8e1j32` +See :s:`FieldSelector`. + +.. _fls_mj9mmkar8c6f: + +final match arm +^^^^^^^^^^^^^^^ + +:dp:`fls_btoz8jioisx9` +A :dt:`final match arm` is the last :t:`match arm` of a :t:`match expression`. + +:dp:`fls_v7ockjwbeel1` +See :s:`FinalMatchArm`. + +.. _fls_rljxa45tleq3: + +fixed sized type +^^^^^^^^^^^^^^^^ + +:dp:`fls_eadiywl20jo4` +A :dt:`fixed sized type` is a :t:`type` that implements the +:std:`core::marker::Sized` :t:`trait`. + +.. _fls_achdyw3nbme3: + +float literal +^^^^^^^^^^^^^ + +:dp:`fls_53o8dio9vpjh` +A :dt:`float literal` is a :t:`numeric literal` that denotes a fractional +number. + +:dp:`fls_hqeaakhsqxok` +See :s:`FloatLiteral`. + +.. _fls_wgylj1n4wrqe: + +float suffix +^^^^^^^^^^^^ + +:dp:`fls_vka2z7frq9j8` +A :dt:`float suffix` is a component of a :t:`float literal` that specifies an +explicit :t:`floating-point type`. + +:dp:`fls_2k1ddqhsgxqk` +See :s:`FloatSuffix`. + +.. _fls_k32g8cd9friu: + +floating-point type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1w5yjiffah1u` +A :dt:`floating-point type` is a :t:`numeric type` whose :t:`[value]s` denote +fractional numbers. + +.. _fls_8ih3gh6hoy78: + +floating-point type variable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ls41emhkrxdi` +A :dt:`floating-point type variable` is a :t:`type variable` that can refer +only to :t:`[floating-point type]s`. + +.. _fls_nE6SWuVH7X68: + +floating-point value +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rx8cvWPlvel5` +A :dt:`floating-point value` is a :t:`value` of a :t:`floating-point type`. + +.. _fls_dwnvkq8n94h1: + +for loop +^^^^^^^^ + +:dp:`fls_gmhh56arsbw8` +For :dt:`for loop`, see :t:`for loop expression`. + +.. _fls_vfkqbovqbw86: + +for loop expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f0gp7qxoc4o4` +A :dt:`for loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject expression` yields a +:t:`value`. + +:dp:`fls_yn4d35pvmn87` +See :s:`ForLoopExpression`. + +.. _fls_fo7vyxs4l3yh: + +Foreign Function Interface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_240yj1kym1kh` +:dt:`Foreign Function Interface` employs :t:`ABI`, :t:`[attribute]s`, +:t:`external block`, :t:`[external function]s`, linkage, and :t:`type` +:t:`layout` to interface a Rust program with foreign code. + +.. _fls_pi7j0t7h1y86: + +fragment specifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6lhwep7ulpr0` +A :dt:`fragment specifier` is a :t:`construct` that indicates the :t:`type` of +a :t:`metavariable`. + +:dp:`fls_drfn9yqrihgx` +See ``MacroFragmentSpecifier``. + +.. _fls_tWp1PLe8m83K: + +full range expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NIb9UOIRjMqa` +A :dt:`full range expression` is a :t:`range expression` that covers the full +range of a :t:`type`. + +.. _fls_yllg093syzdi: + +function +^^^^^^^^ + +:dp:`fls_ni14pcm4ap9l` +A :dt:`function` is a :t:`value` of a :t:`function type` that models a behavior. + +:dp:`fls_hn01vvw2fx9m` +See :s:`FunctionDeclaration`. + +.. _fls_vjgkg8kfi93: + +function body +^^^^^^^^^^^^^ + +:dp:`fls_y5ha4123alik` +A :dt:`function body` is the :t:`block expression` of a :t:`function`. + +:dp:`fls_r0g0i730x6x4` +See :s:`FunctionBody`. + +.. _fls_ayuia853po0a: + +function item type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rfvfo8x42dh8` +A :dt:`function item type` is a unique anonymous :t:`function type` that +identifies a :t:`function`. + +.. _fls_WMaE58yv1joW: + +function lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tZMmRHua1S8K` +:dt:`Function lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[function]s`, :t:`[function pointer type parameter]s` and :t:`[path]s` +resolving to one of the :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and +:std:`core::ops::FnOnce` :t:`[trait]s`. + +.. _fls_xn800gcjnln1: + +function parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2feq1ky9pla1` +A :dt:`function parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_4tf20svi3rjx` +See :s:`FunctionParameter`. + +.. _fls_fqwzlg78k503: + +function pointer type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lcawg25xhblx` +A :dt:`function pointer type` is an :t:`indirection type` that refers to a +:t:`function`. + +:dp:`fls_t50umpk5abjy` +See :s:`FunctionPointerTypeSpecification`. + +.. _fls_v3V6K4S5UhIF: + +function pointer type parameter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nF1k90JJWq2K` +A :dt:`function pointer type parameter` is a :t:`function parameter` of a +:t:`function pointer type`. + +:dp:`fls_vvy6qogy0xnb` +See :s:`FunctionPointerTypeParameter`. + +.. _fls_2uvom1x42dcs: + +function qualifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8cux22275v8r` +A :dt:`function qualifier` is a :t:`construct` that determines the role of +a :t:`function`. + +:dp:`fls_3td9tztnj2jq` +See :s:`FunctionQualifierList`. + +.. _fls_hz3zunp8lrfl: + +function signature +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ndld48kg6o8d` +A :dt:`function signature` is a unique identification of a :t:`function` +that encompasses of its :t:`[function qualifier]s`, :t:`name`, +:t:`[generic parameter]s`, :t:`[function parameter]s`, :t:`return type`, and +:t:`where clause`. + +.. _fls_yo2x1llt9ejy: + +function type +^^^^^^^^^^^^^ + +:dp:`fls_4e19116glgtv` +A :dt:`function type` is either a :t:`closure type` or a +:t:`function item type`. + +.. _fls_gzybxk1gosm6: + +function-like macro +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_psnab9cuq4bu` +A :dt:`function-like macro` is a :t:`procedural macro` that consumes a stream +of :t:`[token]s` and produces a stream of tokens, and is invoked directly. + +.. _fls_OFMoUA3eFtuC: + +fundamental +^^^^^^^^^^^ + +:dp:`fls_e0dRD4NTE0UP` +A :t:`trait` or :t:`type` is :dt:`fundamental` when its +:t:`implementation coherence` rules are relaxed and the :t:`trait` or :t:`type` +is always treated as if it was a :t:`local trait` or a :t:`local type`. + +.. _fls_yxzpexco8ag3: + +future +^^^^^^ + +:dp:`fls_pvigospl4n3g` +A :dt:`future` represents a :t:`value` of a :t:`type` that implements the +:std:`core::future::Future` :t:`trait` which may not have finished computing +yet. + +.. _fls_dvk8ccb46abk: + +future operand +^^^^^^^^^^^^^^ + +:dp:`fls_fold1inh5jev` +A :dt:`future operand` is an :t:`operand` whose :t:`future` is being awaited by +an :t:`await expression`. + +:dp:`fls_tbfpowv90u5w` +See :s:`FutureOperand`. + +.. _fls_j1cyhud0h65t: + +generic argument +^^^^^^^^^^^^^^^^ + +:dp:`fls_meimxi20p51a` +A :dt:`generic argument` supplies a static input for an +:t:`associated trait type` or a :t:`generic parameter`. + +:dp:`fls_8bvdmdgbu17l` +See :s:`GenericArgumentList`. + +.. _fls_nooYIxMnV8Ps: + +generic associated type +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_O4wckPZPmree` +A :dt:`generic associated type` is an :t:`associated type` with +:t:`[generic parameter]s`. + +.. _fls_3uFg0NK5fYQ6: + +generic conformance +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PfvELNsNySLT` +:dt:`Generic conformance` measures the compatibility between a set of +:t:`[generic parameter]s` and a set of :t:`[generic argument]s`. + +.. _fls_3tj3i83eoi36: + +generic enum +^^^^^^^^^^^^ + +:dp:`fls_pnu8w26uexaq` +A :dt:`generic enum` is an :t:`enum` with :t:`[generic parameter]s`. + +.. _fls_votx8gvy5utg: + +generic function +^^^^^^^^^^^^^^^^ + +:dp:`fls_rfkbc967d48h` +A :dt:`generic function` is a :t:`function` with :t:`[generic parameter]s`. + +.. _fls_1xjbrp376niw: + +generic implementation +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jic937ujpnar` +A :dt:`generic implementation` is an :t:`implementation` with +:t:`[generic parameter]s`. + +.. _fls_s2syghgn74e2: + +generic parameter +^^^^^^^^^^^^^^^^^ + +:dp:`fls_61e6br8jy1v2` +A :dt:`generic parameter` is a placeholder for a :t:`constant`, a +:t:`lifetime`, or a :t:`type` whose :t:`value` is supplied statically by a +:t:`generic argument`. + +:dp:`fls_jvxpoob39632` +See :s:`GenericParameterList`. + +.. _fls_CzudKdaYbfBF: + +generic parameter scope +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e2tICijmLkj4` +A :dt:`generic parameter scope` is a :t:`scope` for :t:`[generic parameter]s`. + +.. _fls_cgtu4v2vxvh: + +generic struct +^^^^^^^^^^^^^^ + +:dp:`fls_mcb2mlklith8` +A :dt:`generic struct` is a :t:`struct` with :t:`[generic parameter]s`. + +.. _fls_VBEBshUrAOKE: + +generic substitution +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Led1Nxfcd70K` +A :dt:`generic substitution` is the replacement of a :t:`generic parameter` +with a :t:`generic argument`. + +.. _fls_hppo1v3ia4wu: + +generic trait +^^^^^^^^^^^^^ + +:dp:`fls_h515f11akr91` +A :dt:`generic trait` is a :t:`trait` with :t:`[generic parameter]s`. + +.. _fls_3Ss6jDgtF1of: + +generic type +^^^^^^^^^^^^ + +:dp:`fls_Zn2pIsMZoTry` +A :dt:`generic type` is a :t:`type` with a :t:`generic parameter`. + +.. _fls_18ow0q8at1pi: + +generic type alias +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_zgxsqq4vu7e3` +A :dt:`generic type alias` is a :t:`type alias` with :t:`[generic parameter]s`. + +.. _fls_xn9mla1vm6iv: + +generic union +^^^^^^^^^^^^^ + +:dp:`fls_93rxr0yjx1e7` +A :dt:`generic union` is a :t:`union` with :t:`[generic parameter]s`. + +.. _fls_euukteybsbi: + +glob import +^^^^^^^^^^^ + +:dp:`fls_90qsib7g8e9j` +A :dt:`glob import` is a :t:`use import` that brings all :t:`[name]s` with +:t:`public visibility` prefixed by its :t:`path` prefix into :t:`scope`. + +:dp:`fls_n4plc55cij0j` +See :s:`GlobImport`. + +.. _fls_g6g8c58bilen: + +global path +^^^^^^^^^^^ + +:dp:`fls_msg8jw9momfw` +A :dt:`global path` is a :t:`path` that starts with :t:`namespace qualifier` +``::``. + +.. _fls_hy1clqvaewnp: + +global type variable +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pvt4nayq006s` +A :dt:`global type variable` is a :t:`type variable` that can refer to any +:t:`type`. + +.. _fls_g4n20dy3utzy: + +greater-than expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j7x5qii6rhwj` +A :dt:`greater-than expression` is a :t:`comparison expression` that tests for +a greater-than relationship. + +:dp:`fls_yni50ba3ufvs` +See :s:`GreaterThanExpression`. + +.. _fls_mxz589rq4hiy: + +greater-than-or-equals expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wvspqc2otn6v` +A :dt:`greater-than-or-equals expression` is a :t:`comparison expression` that +tests for a greater-than-or-equals relationship. + +:dp:`fls_9azbvj9xux6y` +See :s:`GreaterThanOrEqualsExpression`. + +.. _fls_fquvoglio1jz: + +half-open range pattern +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tymjispfgp7u` +A :dt:`half-open range pattern` is a :t:`range pattern` with only a +:t:`range pattern low bound`. + +:dp:`fls_evm3nxwswk00` +See :s:`HalfOpenRangePattern`. + +.. _fls_5uiij8eqln5g: + +hexadecimal literal +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8b6njsi8g68i` +A :dt:`hexadecimal literal` is an :t:`integer literal` in base 16. + +:dp:`fls_vssa4z5wcgaa` +See :s:`HexadecimalLiteral`. + +.. _fls_h87i5nbeuxky: + +higher-ranked trait bound +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lpyc4omcthv` +A :dt:`higher-ranked trait bound` is a :t:`bound` that specifies an infinite +list of :t:`[bound]s` for all possible :t:`[lifetime]s`. + +:dp:`fls_m3nrsdvxxg6j` +See :s:`ForGenericParameterList`. + +.. _fls_GuMMjhEMMLvF: + +hygiene +^^^^^^^ + +:dp:`fls_AQg0MqAQZqkz` +:dt:`Hygiene` is a property of :t:`[macro]s` and :t:`[identifier]s`` that +appear within them, which aims to eliminate the syntactic interference between +a :t:`macro` and its environment. + +.. _fls_95h0aWZ7xx6U: + +hygienic +^^^^^^^^ + +:dp:`fls_hiDddAkNH5Ms` +An :t:`identifier` is :dt:`hygienic` when it has :t:`definition site hygiene`. + +.. _fls_obiv2a6ywfhh: + +i8 +^^ + +:dp:`fls_1y9ulxnz8qba` +:dc:`i8` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`7`) to 2\ :sup:`7` - 1, all inclusive. + +.. _fls_rvcjp656gzlm: + +i16 +^^^ + +:dp:`fls_ci9jl55wxwdg` +:dc:`i16` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`15`) to 2\ :sup:`15` - 1, all inclusive. + +.. _fls_l1h9g4ntf3c: + +i32 +^^^ + +:dp:`fls_yh8wzhhso4xc` +:dc:`i32` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`31`) to 2\ :sup:`31` - 1, all inclusive. + +.. _fls_tid10guzn9sq: + +i64 +^^^ + +:dp:`fls_4bpatxp8yelv` +:dc:`i64` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`63`) to 2\ :sup:`63` - 1, all inclusive. + +.. _fls_py2whbcrndmz: + +i128 +^^^^ + +:dp:`fls_p75kpbtonb8z` +:dc:`i128` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`127`) to 2\ :sup:`127` - 1, all inclusive. + +.. _fls_kpsyz8yopova: + +identifier +^^^^^^^^^^ + +:dp:`fls_14zc5bcm9d8o` +An :dt:`identifier` is a :t:`lexical element` that refers to a :t:`name`. + +:dp:`fls_oddu2wzhczvq` +See :s:`Identifier`. + +.. _fls_1g9xxx8s498u: + +identifier pattern +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f2va67gvpqe0` +An :dt:`identifier pattern` is a :t:`pattern` that binds the :t:`value` it +matches to a :t:`binding`. + +:dp:`fls_nxa1gvqgitgk` +See :s:`IdentifierPattern`. + +.. _fls_al9gtcy5b5og: + +if expression +^^^^^^^^^^^^^ + +:dp:`fls_rk0661mtdvsi` +An :dt:`if expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on the :t:`value` +of its :t:`subject expression`. + +:dp:`fls_gdsufx2ns8bl` +See :s:`IfExpression`. + +.. _fls_j9wb2wtqp5u8: + +if let expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ky6ng7jy1g6z` +An :dt:`if let expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on whether its +:t:`pattern` can be matched against its :t:`subject let expression`. + +:dp:`fls_kczg3c6n3psu` +See :s:`IfLetExpression`. + +.. _fls_xiocbknerufq: + +immutable +^^^^^^^^^ + +:dp:`fls_sttdfynyqr5h` +A :t:`value` is :dt:`immutable` when it cannot be modified. + +.. _fls_utucrvtzjhoc: + +immutable borrow +^^^^^^^^^^^^^^^^ + +:dp:`fls_p0abqkiuk7y9` +An :dt:`immutable borrow` is an :t:`immutable reference` produced by +:t:`borrowing`. + +.. _fls_pqunxp6io1n9: + +immutable borrow expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dojod5pg4r7l` +An :dt:`immutable borrow expression` is a :t:`borrow expression` that lacks +:t:`keyword` ``mut``. + +.. _fls_TXQzFM77s4uj: + +immutable place expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_MXBEZjzBxw5Z` +An :dt:`immutable place expression` is a :t:`place expression` whose memory +location cannot be modified. + + +.. _fls_O0924m8mSfIa: + +immutable place expression context +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_UvrQ49dSoQGc` +An :dt:`immutable place expression context` is a :t:`place expression context` +whose memory location cannot be modified. + +.. _fls_RghQKP3lsXEb: + +immutable raw pointer type +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2GzYItDXvMhB` +An :dt:`immutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``const``. + +.. _fls_bhx0l676dmgc: + +immutable reference +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u9kne5zfmhoe` +An :dt:`immutable reference` is a :t:`value` of a :t:`shared reference type`, +and prevents the mutation of its :t:`referent`. + +.. _fls_my7jjwi0ncen: + +immutable static +^^^^^^^^^^^^^^^^ + +:dp:`fls_eonlhz79ur3d` +An :dt:`immutable static` is a :t:`static` whose :t:`value` cannot be modified. + +.. _fls_8xrhfwgep3nk: + +immutable variable +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_sdg35i92taip` +An :dt:`immutable variable` is a :t:`variable` whose :t:`value` cannot be +modified. + +.. _fls_L9XTxPSujx4v: + +impl header lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PvYGu85UAyFb` +:dt:`Impl header lifetime elision` is a form of :t:`lifetime elision` that +applies to the :t:`implementing type` and :t:`implemented trait` (if any) of an +:t:`implementation`. + +.. _fls_l20o3hutbfpf: + +impl trait type +^^^^^^^^^^^^^^^ + +:dp:`fls_rdctgmnfncnd` +An :dt:`impl trait type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is known at compile time. + +:dp:`fls_704soar15v8v` +See :s:`ImplTraitTypeSpecification`, :s:`ImplTraitTypeSpecificationOneBound`. + +.. _fls_bj1u4k3akecp: + +implementation +^^^^^^^^^^^^^^ + +:dp:`fls_pjulppit1r6` +An :dt:`implementation` is an :t:`item` that supplements an +:t:`implementing type` by extending its functionality. + +:dp:`fls_z4ij5skptoay` +See :s:`Implementation`. + +.. _fls_vofxuHcXpt6X: + +implementation body +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1iS30Nv9myEd` +An :dt:`implementation body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of an :t:`implementation`. + +:dp:`fls_u75iHi53PnNP` +See :s:`ImplementationBody`. + +.. _fls_41GLrzVxcOV6: + +implementation coherence +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hAmKcuYT9hHi` +A :t:`trait implementation` exhibits :dt:`implementation coherence` when it is +valid and does not overlap with another :t:`trait implementation`. + +.. _fls_SBkTVa8bzGDx: + +implementation conformance +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Gpq4EP1SsYJR` +:dt:`Implementation conformance` measures the compatibility between a +:t:`trait implementation` and the :t:`implemented trait`. + +.. _fls_c0xxvivt8t1u: + +implemented trait +^^^^^^^^^^^^^^^^^ + +:dp:`fls_7twlizi3v8cb` +An :dt:`implemented trait` is a :t:`trait` whose functionality has been +implemented by an :t:`implementing type`. + +:dp:`fls_2brvfx5wmvkf` +See :s:`ImplementedTrait`. + +.. _fls_ow4b5iqas115: + +implementing type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_vs5ia3uupdcc` +An :dt:`implementing type` is the :t:`type` that the :t:`[associated item]s` of +an :t:`implementation` are associated with. + +:dp:`fls_9ixcwh6to74g` +See :s:`ImplementingType`. + +.. _fls_wa7t6cqgjksd: + +implicit borrow +^^^^^^^^^^^^^^^ + +:dp:`fls_q2v9ejpcvtwg` +An :dt:`implicit borrow` is a :t:`borrow` that is not present syntactically in +program text. + +.. _fls_i3iB9xP8h8Ci: + +implicitly declared entity +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VQs1jd4Nx3qR` +An :dt:`implicitly declared entity` is an :t:`entity` that lacks an explicit +:t:`declaration`. + +.. _fls_43CCrG952l5i: + +implied bound +^^^^^^^^^^^^^ + +:dp:`fls_t77d8xwG1l9Q` +An :dt:`implied bound` is a :t:`bound` that is not expressed in syntax, but is +is the byproduct of relations between :t:`[lifetime parameter]s` and +:t:`[function parameter]s`, between :t:`[lifetime parameter]s` and a +:t:`return type`, and between :t:`[lifetime parameter]s` and :t:`[field]s`. + +.. _fls_3lo8ygoyxxyf: + +in scope +^^^^^^^^ + +:dp:`fls_sy380geqvf2l` +A :t:`name` is :dt:`in scope` when it can be referred to. + +.. _fls_nscfxu6huw6q: + +inclusive range pattern +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_olfeuvwkosse` +An :dt:`inclusive range pattern` is a :t:`range pattern` with both a +:t:`range pattern low bound` and a :t:`range pattern high bound`. + +:dp:`fls_9bdxsn6nasjr` +See :s:`InclusiveRangePattern`. + +.. _fls_j44ow2k5va3s: + +incomplete associated constant +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bq48gl84bul0` +An :dt:`incomplete associated constant` is an :t:`associated constant` without +a :t:`constant initializer`. + +.. _fls_ga2n4nbm1pkk: + +incomplete associated function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_iboondra204w` +An :dt:`incomplete associated function` is an :t:`associated function` without +a :t:`function body`. + +.. _fls_n99acc2tr9qm: + +incomplete associated type +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tka0gth8rc9x` +An :dt:`incomplete associated type` is an :t:`associated type` without an +:t:`initialization type`. + +.. _fls_6tysvlg2ifr3: + +index expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_1f7e9q8n431n` +An :dt:`index expression` is an :t:`expression` that indexes into a :t:`value` +of a :t:`type`. + +:dp:`fls_xm2er7vuo07g` +See :s:`IndexExpression`. + +.. _fls_S0pnJKPJPU0i: + +indexable type +^^^^^^^^^^^^^^ + +:dp:`fls_AdVGyKZFvvUS` +A :dt:`indexable type` is a :t:`type` that implements the +:std:`core::ops::Index` :t:`trait`. + +.. _fls_qs654p61ivpx: + +indexed deconstructor +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q7eta38vw0ig` +An :dt:`indexed deconstructor` is a :t:`construct` that matches the position of +a :t:`tuple field`. + +:dp:`fls_gryv4audvann` +See :s:`IndexedDeconstructor`. + +.. _fls_bu46dg60o8us: + +indexed field selector +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u6mh5yediub` +An :dt:`indexed field selector` is a :t:`field selector` where the selected +:t:`field` is indicated by an index. + +:dp:`fls_wbbyf2szc8a7` +See :s:`IndexedFieldSelector`. + +.. _fls_rua2ni3p9qz2: + +indexed initializer +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_oonqolgqyrq1` +An :dt:`indexed initializer` is a :t:`construct` that specifies the index and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_werlw98l3ra0` +See :s:`IndexedInitializer`. + +.. _fls_irp9ive4e66r: + +indexed operand +^^^^^^^^^^^^^^^ + +:dp:`fls_dvmm47wnl33e` +An :dt:`indexed operand` is an :t:`operand` which indicates the :t:`value` of a +:t:`type` implementing :std:`core::ops::Index` being indexed into by an +:t:`index expression`. + +:dp:`fls_je8eh3a02riq` +See :s:`IndexedOperand`. + +.. _fls_a350zwl1or4g: + +indexing operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_ipw4tfrserbu` +An :dt:`indexing operand` is an :t:`operand` which specifies the index for the +:t:`indexed operand` being indexed into by an :t:`index expression`. + +:dp:`fls_t2j8vzlrlvb0` +See :s:`IndexingOperand`. + +.. _fls_k9kuxgte6vxn: + +indirection type +^^^^^^^^^^^^^^^^ + +:dp:`fls_8so1phpdjyk8` +An :dt:`indirection type` is a :t:`type` whose :t:`[value]s` refer to memory +locations. + +.. _fls_gccnknktzp7g: + +inert attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_o4e3tyjz7l1h` +An :dt:`inert attribute` is an :t:`attribute` that remains with the :t:`item` +it decorates. + +.. _fls_z5593p7wfab: + +inferred type +^^^^^^^^^^^^^ + +:dp:`fls_9xgfexeqr4ed` +An :dt:`inferred type` is a placeholder for a :t:`type` deduced by +:t:`type inference`. + +:dp:`fls_z2p8378sd93z` +See :s:`InferredType`. + +.. _fls_kg9aeyrw822m: + +infinite loop +^^^^^^^^^^^^^ + +:dp:`fls_xpm53i3rkuu0` +For :dt:`infinite loop`, see :t:`infinite loop expression`. + +.. _fls_o2eei5aqgds6: + +infinite loop expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mvplpa4t1f2p` +An :dt:`infinite loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` indefinitely. + +:dp:`fls_2gipk6b62hme` +See :s:`InfiniteLoopExpression`. + +.. _fls_o57p4yhjci61: + +inherent implementation +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6fpicw8ss4h3` +An :dt:`inherent implementation` is an :t:`implementation` that adds direct +functionality. + +:dp:`fls_s8zjk7hms1o0` +See :s:`InherentImplementation`. + +.. _fls_c1wbumq0bumj: + +initialization +^^^^^^^^^^^^^^ + +:dp:`fls_xi07ycze6mo0` +:dt:`Initialization` is the act of supplying an initial :t:`value` to a +:t:`constant`, a :t:`static`, or a :t:`variable`. + +.. _fls_ctusGvpQvJue: + +initialization expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_KUeiSByPUc4w` +An :dt:`initialization expression` is either a :t:`constant initializer` or a +:t:`static initializer`. + +.. _fls_pd30dl2envjn: + +initialization type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_crn87nne7k38` +An :dt:`initialization type` is the :t:`type` a :t:`type alias` defines a +:t:`name` for. + +:dp:`fls_3r85y1lh1oxo` +See :s:`InitializationType`. + +.. _fls_lbL2b9wyg6es: + +inline assembly +^^^^^^^^^^^^^^^ + +:dp:`fls_1MtaLEA7YfSv` +:dt:`Inline assembly` is hand-written assembly code that is integrated into a +Rust program. + +.. _fls_c54lmkluwbwr: + +inline module +^^^^^^^^^^^^^ + +:dp:`fls_tbldwtisl9vc` +An :dt:`inline module` is a :t:`module` with an :s:`InlineModuleSpecification`. + +:dp:`fls_8bmjz8o3xu60` +See :s:`InlineModuleSpecification`. + +.. _fls_joxepyv84ajz: + +inner attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_l7kxkav42l5d` +An :dt:`inner attribute` is an :t:`attribute` that applies to an enclosing +:t:`item`. + +:dp:`fls_umkk8xwktat1` +See :s:`InnerAttribute`. + +.. _fls_chbp2je32okc: + +inner block doc +^^^^^^^^^^^^^^^ + +:dp:`fls_f4nqkybpwj1a` +An :dt:`inner block doc` is a :t:`block comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_lmpaznk198ga` +See :s:`InnerBlockDoc`. + +.. _fls_vR1ucGTBKjlH: + +inner doc comment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_6KunKwZf9QaF` +An :dt:`inner doc comment` is either an :t:`inner block doc` or an +:t:`inner line doc`. + +.. _fls_xgm53126q9c4: + +inner line doc +^^^^^^^^^^^^^^ + +:dp:`fls_vtwavwjhgvlz` +An :dt:`inner line doc` is a :t:`line comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_8cnikewkqs7` +See :s:`InnerLineDoc`. + +.. _fls_DTb5xegDqm9S: + +input register +^^^^^^^^^^^^^^ + +:dp:`fls_dTvdQaFpncCj` +An :dt:`input register` is a :t:`register` whose :t:`register name` is used in +a :t:`register argument` subject to :t:`direction modifier` ``in``, ``inout``, +or ``inlateout``. + +.. _fls_Tmju2kXErYhJ: + +input register expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rvbuHSgg2RHt` +An :dt:`input register expression` is an :t:`expression` that provides the +initial :t:`value` of a :t:`register`. + +:dp:`fls_NqjRr9khzpl2` +See :s:`InputRegisterExpression`. + +.. _fls_y9EOkstHPckB: + +input-output register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lLQw3EFl7x5z` +An :dt:`input-output register expression` is a :t:`construct` that specifies +both an :t:`input register expression` and an :t:`output register expression`. + +:dp:`fls_FnMGXi2nPgUH` +See :s:`InputOutputRegisterExpression`. + +.. _fls_e2kizieowvuh: + +integer literal +^^^^^^^^^^^^^^^ + +:dp:`fls_23a1fjpf15qv` +An :dt:`integer literal` is a :t:`numeric literal` that denotes a whole number. + +:dp:`fls_6qpj0nr0jpjr` +See :s:`IntegerLiteral`. + +.. _fls_bhvh8qwqy8ve: + +integer suffix +^^^^^^^^^^^^^^ + +:dp:`fls_qazh8f8rs528` +An :dt:`integer suffix` is a component of an :t:`integer literal` that +specifies an explicit :t:`integer type`. + +:dp:`fls_jqagv350kw2m` +See ``IntegerSuffix.`` + +.. _fls_nu1cnk2b9qx5: + +integer type +^^^^^^^^^^^^ + +:dp:`fls_nhfqdhf26ym3` +An :dt:`integer type` is a :t:`numeric type` whose :t:`[value]s` denote whole +numbers. + +.. _fls_ctuvilpb30gq: + +integer type variable +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e3ed1tyrjsy4` +An :dt:`integer type variable` is a :t:`type variable` that can refer only to +:t:`[integer type]s`. + +.. _fls_mb3xnplwdw9l: + +interior mutability +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e0173dd09znl` +:dt:`Interior mutability` is a property of :t:`[type]s` whose :t:`[value]s` can +be modified through :t:`[immutable reference]s`. + +.. _fls_7rj914fhginh: + +intermediate match arm +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l6pemxmdllvl` +An :dt:`intermediate match arm` is any :t:`non-[final match arm]` of a +:t:`match expression`. + +:dp:`fls_8713j5lrwqvs` +See :s:`IntermediateMatchArm`. + +.. _fls_fgmvmcw2kw5i: + +irrefutable constant +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hd02jah50qzl` +An :dt:`irrefutable constant` is a :t:`constant` of a :t:`type` that has at most +one :t:`value`. + + +.. _fls_ckz7pujdnuo5: + +irrefutable pattern +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_y421hdrbs6ak` +An :dt:`irrefutable pattern` is a :t:`pattern` that always matches the +:t:`value` it is being matched against. + +.. _fls_vt44bvhm4duk: + +isize +^^^^^ + +:dp:`fls_6x617i9zcj7o` +:dc:`isize` is a :t:`signed integer type` with the same number of bits as the +platform's :t:`pointer type`, and is at least 16-bits wide. + +.. _fls_yh2a7e3d3894: + +item +^^^^ + +:dp:`fls_2ghaujiqkhyy` +An :dt:`item` is the most basic semantic element in program text. An item +defines the compile- and run-time semantics of a program. + +:dp:`fls_xd997kd2i73a` +See :s:`Item`. + +.. _fls_wojJZZ4gYGfl: + +item scope +^^^^^^^^^^ + +:dp:`fls_mW7IwWGSjrl2` +An :dt:`item scope` is a :t:`scope` for :t:`[item]s`. + +.. _fls_yaurxo4ogfsh: + +item statement +^^^^^^^^^^^^^^ + +:dp:`fls_r0crucpuhtj` +An :dt:`item statement` is a :t:`statement` that is expressed as an :t:`item`. + +.. _fls_orde7iunolyx: + +iteration expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_suz163n1x1xm` +An :dt:`iteration expression` is an :t:`expression` that provides the criterion +of a :t:`while loop expression`. + +:dp:`fls_jw5lj2hgjl8v` +See :s:`IterationExpression`. + +.. _fls_yjs58mp5fkxz: + +keyword +^^^^^^^ + +:dp:`fls_z3825koc9c1w` +A :dt:`keyword` is a word in program text that has special meaning. + +:dp:`fls_yvnf2mu4pr75` +See :s:`Keyword`. + +.. _fls_uVUoHmNtPRtS: + +label +^^^^^ + +:dp:`fls_iAAf2rLmgmGQ` +A :dt:`label` is the :t:`name` of a :t:`loop expression`. + +:dp:`fls_HicurdHIiLX2` +See :s:`Label`. + +.. _fls_dw5s7jhk4v8s: + +label indication +^^^^^^^^^^^^^^^^ + +:dp:`fls_sso322p7adt0` +A :dt:`label indication` is a :t:`construct` that indicates a :t:`label`. + +:dp:`fls_g6iqfqooz8th` +See :s:`LabelIndication`. + +.. _fls_P0on44EAB3cn: + +label scope +^^^^^^^^^^^ + +:dp:`fls_2H6HkQ102hVS` +A :dt:`label scope` is a :t:`scope` for :t:`[label]s`. + +.. _fls_w5gslebevlya: + +layout +^^^^^^ + +:dp:`fls_qk602dmhc0d6` +:dt:`Layout` specifies the :t:`alignment`, :t:`size`, and the relative offset +of :t:`[field]s` in a :t:`type`. + +.. _fls_bputdgkeezfs: + +lazy and expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_v2e6t73uk6nt` +A :dt:`lazy and expression` is a :t:`lazy boolean expression` that uses short +circuit and arithmetic. + +:dp:`fls_rkthjuvems6v` +See :s:`LazyAndExpression`. + +.. _fls_4a6yhxj783a1: + +lazy boolean expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jpv7l86sdh6i` +A :dt:`lazy boolean expression` is an :t:`expression` that performs short +circuit Boolean arithmetic. + +:dp:`fls_9tu5x810ztbg` +See :s:`LazyBooleanExpression`. + +.. _fls_9mvrfhsegwp0: + +lazy or expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_aln8bbvx9kzm` +A :dt:`lazy or expression` is a :t:`lazy boolean expression` that uses short +circuit or arithmetic. + +:dp:`fls_jiv7e3mr86kf` +See :s:`LazyOrExpression`. + +.. _fls_x6vo9pysmex2: + +left operand +^^^^^^^^^^^^ + +:dp:`fls_m821x5195ac9` +A :dt:`left operand` is an :t:`operand` that appears on the left-hand side of a +:t:`binary operator`. + +:dp:`fls_ghlbsklg7wdb` +See :s:`LeftOperand`. + +.. _fls_ulmspewtlo57: + +less-than expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9ttxqxt9ui4t` +A :dt:`less-than expression` is a :t:`comparison expression` that tests for a +less-than relationship. + +:dp:`fls_rhnbdyo2l4kp` +See :s:`LessThanExpression`. + +.. _fls_es169x7ars9a: + +less-than-or-equals expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8pya58ug180j` +A :dt:`less-than-or-equals expression` is a :t:`comparison expression` that +tests for a less-than-or-equals relationship. + +:dp:`fls_ft5aeo4ilgwc` +See :s:`LessThanOrEqualsExpression`. + +.. _fls_hqj80jHcxEBB: + +let initializer +^^^^^^^^^^^^^^^ + +:dp:`fls_jtTpBZ4ujZRc` +A :dt:`let initializer` is a :t:`construct` that provides the :t:`value` of +the :t:`[binding]s` of the :t:`let statement` using an :t:`expression`, or +alternatively executes a :t:`block expression`. + +:dp:`fls_GmHsJb6FICfA` +See :s:`LetInitializer`. + +.. _fls_39k0ebr7snb0: + +let statement +^^^^^^^^^^^^^ + +:dp:`fls_yh7hn6jjv3ur` +A :dt:`let statement` is a :t:`statement` that introduces new :t:`[variable]s` +given by the :t:`[binding]s` produced by its :t:`pattern-without-alternation` +that are optionally initialized to a :t:`value`. + +:dp:`fls_tsem3c6zqmh4` +See :s:`LetStatement`. + +.. _fls_h2tqtmm5686y: + +lexical element +^^^^^^^^^^^^^^^ + +:dp:`fls_nrxnbkatn63n` +A :dt:`lexical element` is the most basic syntactic element in program +text. + +.. _fls_r1sk7vdgckym: + +library crate +^^^^^^^^^^^^^ + +:dp:`fls_3m8lg4mdc2x0` +A :dt:`library crate` is either a :t:`crate` without a :t:`main function` or a +:t:`crate` subject to :t:`attribute` :c:`no_main`. + +.. _fls_vdhaa61g6kah: + +lifetime +^^^^^^^^ + +:dp:`fls_il3n0w4m084b` +A :dt:`lifetime` specifies the expected longevity of a :t:`reference`. + +:dp:`fls_2nywjifee7q` +See :s:`Lifetime`. + +.. _fls_d0s6bk7ljqrb: + +lifetime argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_oaf87yjb3xjs` +A :dt:`lifetime argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`lifetime parameter`. + +:dp:`fls_la8lbv14zj28` +See :s:`LifetimeArgument`. + +.. _fls_ca9pu348r9jm: + +lifetime bound +^^^^^^^^^^^^^^ + +:dp:`fls_u6xfs8fg558` +A :dt:`lifetime bound` is a :t:`bound` that imposes a constraint on the +:t:`[lifetime]s` of :t:`[generic parameter]s`. + +:dp:`fls_ivcjmp54hdej` +See :s:`LifetimeIndication`. + +.. _fls_fV8sP0roRyBN: + +lifetime bound predicate +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_AHftLKgSP9Xk` +A :dt:`lifetime bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` on a :t:`lifetime parameter`. + +:dp:`fls_8WIod9Rm5IXa` +See :s:`LifetimeBoundPredicate`. + +.. _fls_al39r9uz2zmy: + +lifetime elision +^^^^^^^^^^^^^^^^ + +:dp:`fls_dq5wkd61ry3l` +:dt:`Lifetime elision` is a set of rules that automatically insert +:t:`[lifetime parameter]s` and/or :t:`[lifetime argument]s` when they are +elided in the source code. + +.. _fls_md7ii59zobrc: + +lifetime parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7g0iu68nrsd4` +A :dt:`lifetime parameter` is a :t:`generic parameter` for a :t:`lifetime`. + +:dp:`fls_z1wl2uiwip98` +See :s:`LifetimeParameter`. + +.. _fls_joDjnHu1L9Lp: + +lifetime variable +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ucZnCBWxXl6n` +A :dt:`lifetime variable` is a placeholder used during :t:`type inference` to +stand in for an undetermined :t:`lifetime` of a :t:`type`. + + +.. _fls_8qputmx0i7ku: + +line +^^^^ + +:dp:`fls_oqf2439j3y7b` +A :dt:`line` is a sequence of zero or more characters followed by an end of +line. + +.. _fls_k5ycqijslkxh: + +line comment +^^^^^^^^^^^^ + +:dp:`fls_3e7asah7lkqj` +A :dt:`line comment` is a :t:`comment` that spans exactly one :t:`line`. + +:dp:`fls_8j5j777dv2jm` +See :s:`LineComment`. + +.. _fls_z850pyf9r1f4: + +literal +^^^^^^^ + +:dp:`fls_ckbyt11pku9j` +A :dt:`literal` is a fixed :t:`value` in program text. + +:dp:`fls_h1g46cevrqjv` +See :s:`Literal`. + +.. _fls_b57clq8jhw5w: + +literal expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_otaauusc24v5` +A :dt:`literal expression` is an :t:`expression` that denotes a :t:`literal`. + +:dp:`fls_7po7zobtlhzn` +See :s:`LiteralExpression`. + +.. _fls_bo2tv8ky1jc: + +literal pattern +^^^^^^^^^^^^^^^ + +:dp:`fls_5s9b4bza13xf` +A :dt:`literal pattern` is a :t:`pattern` that matches a :t:`literal`. + +:dp:`fls_o7q7wfjulc24` +See :s:`LiteralPattern`. + +.. _fls_bYpBl5zfTibF: + +local trait +^^^^^^^^^^^ + +:dp:`fls_I9JaKZelMiby` +A :dt:`local trait` is a :t:`trait` that is defined in the current :t:`crate`. + +.. _fls_cexgUIGUUKS4: + +local type +^^^^^^^^^^ + +:dp:`fls_HvGPB3CsN4Ah` +A :dt:`local type` is a :t:`type` that is defined in the current :t:`crate`. + +.. _fls_lkxiws55xhpq: + +local variable +^^^^^^^^^^^^^^ + +:dp:`fls_3inlcyi6444u` +For :dt:`local variable`, see :t:`variable`. + +.. _fls_kdqa8zs8tk6g: + +loop +^^^^ + +:dp:`fls_omjnvxva07z2` +For :dt:`loop`, see :t:`loop expression`. + +.. _fls_5vt0Ph5BfDnU: + +loop body +^^^^^^^^^ + +:dp:`fls_fRWcWPeKgx9g` +A :dt:`loop body` is the :t:`block expression` of a :t:`loop expression`. + +:dp:`fls_vWuR2TET712r` +See :s:`LoopBody`. + +.. _fls_an1s2hnapd59: + +loop expression +^^^^^^^^^^^^^^^ + +:dp:`fls_2yypq3m1kquj` +A :dt:`loop expression` is an :t:`expression` that evaluates a +:t:`block expression` continuously as long as some criterion holds true. + +:dp:`fls_o2dyznhq7rez` +See :s:`LoopExpression`. + +.. _fls_sdkcn1exc9da: + +macro +^^^^^ + +:dp:`fls_bt16qi8g2js5` +A :dt:`macro` is a custom definition that extends Rust by defining callable +syntactic transformations. + +.. _fls_td4jm76u9m03: + +macro expansion +^^^^^^^^^^^^^^^ + +:dp:`fls_t383uo1l4h8x` +:dt:`Macro expansion` is the process of statically executing a +:t:`macro invocation` and replacing it with the produced output of the +:t:`macro invocation`. + +.. _fls_o5jy1u64nyiy: + +macro implementation function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xy4t1suhrn46` +A :dt:`macro implementation function` is the :t:`function` that encapsulates +the syntactic transformations of a :t:`procedural macro`. + +.. _fls_20x9eqa7xeui: + +macro invocation +^^^^^^^^^^^^^^^^ + +:dp:`fls_5qtwcp5ns5vz` +A :dt:`macro invocation` is a call of a :t:`declarative macro` or +:t:`function-like macro` that is expanded statically and replaced with the +result of the :t:`macro`. + +:dp:`fls_IgzL0OJ9Ja7y` +See :s:`MacroInvocation`. + +.. _fls_boanb1ipzc9: + +macro match +^^^^^^^^^^^ + +:dp:`fls_q0ve6nd287ta` +A :dt:`macro match` is the most basic form of a satisfied :t:`macro matcher`. + +:dp:`fls_dww6sqbj2vin` +See :s:`MacroMatch`. + +.. _fls_4h4snjd4thsv: + +macro matcher +^^^^^^^^^^^^^ + +:dp:`fls_sqncf88chnsy` +A :dt:`macro matcher` is a :t:`construct` that describes a syntactic pattern +that a :t:`macro` must match. + +:dp:`fls_ioyegc6ggd7o` +See :s:`MacroMatcher`. + +.. _fls_ao7GhE0C8MQO: + +macro matching +^^^^^^^^^^^^^^ + +:dp:`fls_RrDmFXuZrhFT` +:dt:`Macro matching` is the process of performing :t:`rule matching` and +:t:`token matching`. + +.. _fls_kddW7EirSn0g: + +macro repetition +^^^^^^^^^^^^^^^^ + +:dp:`fls_sDomcFWIeUAT` +A :dt:`macro repetition` is either a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription`. + +.. _fls_a5j2hztrjfv5: + +macro repetition in matching +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wio0e9qzstjh` +A :dt:`macro repetition in matching` allows for a syntactic pattern to be +matched zero or multiple times during :t:`macro matching`. + +:dp:`fls_potk1y850zer` +See :s:`MacroRepetitionMatch`. + +.. _fls_sqv126lwdz23: + +macro repetition in transcription +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ex9vd3w0t4wo` +A :dt:`macro repetition in transcription` allows for a syntactic pattern to be +transcribed zero or multiple times during :t:`macro transcription`. + +:dp:`fls_5wdiqbwgr9nt` +See :s:`MacroRepetitionTranscriber`. + +.. _fls_gw31cagmzx26: + +macro rule +^^^^^^^^^^ + +:dp:`fls_7gfdqggs33id` +A :dt:`macro rule` is a :t:`construct` that consists of a :t:`macro matcher` +and a :t:`macro transcriber`. + +:dp:`fls_qv68aj43mz5m` +See :s:`MacroRule`. + +.. _fls_i4yf4lt8qvkt: + +macro statement +^^^^^^^^^^^^^^^ + +:dp:`fls_yhh9k9epv3g6` +A :dt:`macro statement` is a :t:`statement` expressed as a +:t:`terminated macro invocation`. + +.. _fls_76o6rjh6lrqd: + +macro transcriber +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ug79qf3p693h` +A :dt:`macro transcriber` is a :t:`construct` that describes the replacement +syntax of a :t:`macro`. + +:dp:`fls_myubuihvjl4s` +See :s:`MacroTranscriber`. + +.. _fls_vdq3cphhpxmg: + +macro transcription +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nouiggbpipg` +:dt:`Macro transcription` is the process of producing the expansion of a +:t:`declarative macro`. + +.. _fls_dz192n9muwpg: + +main function +^^^^^^^^^^^^^ + +:dp:`fls_au3ovrkenr59` +A :dt:`main function` is a :t:`function` that acts as an entry point into +a program. + +.. _fls_fizf1byuspv2: + +match arm +^^^^^^^^^ + +:dp:`fls_z5qsy5z2zak3` +A :dt:`match arm` is a :t:`construct` that consists of a :t:`match arm matcher` +and a :t:`match arm body`. + +.. _fls_q7lcdtxuy1ac: + +match arm body +^^^^^^^^^^^^^^ + +:dp:`fls_33e7oefx0xqm` +A :dt:`match arm body` is the :t:`operand` of a :t:`match arm`. + +.. _fls_aa1x6ajl4zid: + +match arm guard +^^^^^^^^^^^^^^^ + +:dp:`fls_uhn07jmvv9ea` +A :dt:`match arm guard` is a :t:`construct` that provides additional filtering +to a :t:`match arm matcher`. + +:dp:`fls_ykf70vbng54n` +See :s:`MatchArmGuard`. + +.. _fls_i3omadaygum2: + +match arm matcher +^^^^^^^^^^^^^^^^^ + +:dp:`fls_paz9358w4cpu` +A :dt:`match arm matcher` is a :t:`construct` that consists of a :t:`pattern` +and a :t:`match arm guard`. + +:dp:`fls_j7i2bjvzz1tx` +See :s:`MatchArmMatcher`. + +.. _fls_w15uouo0sjao: + +match expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_2ohrphptjny6` +A :dt:`match expression` is an :t:`expression` that tries to match one of +its multiple :t:`[pattern]s` against its :t:`subject expression` and if it +succeeds, evaluates an :t:`operand`. + +:dp:`fls_wkalvzkmp95y` +See :s:`MatchExpression`. + +.. _fls_xo9uyazcfuq3: + +metavariable +^^^^^^^^^^^^ + +:dp:`fls_fu1esz5i9mt` +A :dt:`metavariable` is a :t:`macro match` that describes a :t:`variable`. + +:dp:`fls_k4xaw93z8x33` +See :s:`MacroMetavariable`. + +.. _fls_5P2594jy7uDE: + +metavariable indication +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r1FxbWffC9Wt` +A :dt:`metavariable indication` is a :t:`construct` that indicates a +:t:`metavariable`. + +:dp:`fls_bcMO2a0e0gXJ` +See :s:`MacroMetavariableIndication`. + +.. _fls_bi3g8xkk9ekf: + +method +^^^^^^ + +:dp:`fls_n4opbiofu9q6` +A :dt:`method` is an :t:`associated function` with a :t:`self parameter`. + +.. _fls_l4wel2551cw9: + +method call expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_367sod24edts` +A :dt:`method call expression` is an :t:`expression` that invokes a :t:`method` +of a :t:`variable`. + +:dp:`fls_ohhcvxcaqv11` +See :s:`MethodCallExpression`. + +.. _fls_l6eJxvmplLqQ: + +method operand +^^^^^^^^^^^^^^ + +:dp:`fls_VLLAFjAxCfkE` +A :dt:`method operand` is an :t:`operand` that denotes the :t:`method` being +invoked by a :t:`method call expression`. + +:dp:`fls_Pkgr4fJQZpJ6` +See :s:`MethodOperand`. + +.. _fls_05yFh5Ud0YkW: + +method resolution +^^^^^^^^^^^^^^^^^ + +:dp:`fls_LbW4z6OTuD1l` +:dt:`Method resolution` is a kind of :t:`resolution` that applies to a +:t:`method call expression`. + +.. _fls_2FFRdj5cO0ks: + +mixed site hygiene +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hjJpNmKiZxlT` +:dt:`Mixed site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroRulesDeclaration` site for :t:`[variable]s`, :t:`[label]s`, and the +``$crate`` :t:`metavariable`, and to the :s:`MacroInvocation` site otherwise, +and is considered :t:`partially hygienic`. + +.. _fls_5hoe1v960xfi: + +modifying operand +^^^^^^^^^^^^^^^^^ + +:dp:`fls_9wt2l5gg06pb` +A :dt:`modifying operand` is an :t:`operand` that supplies the :t:`value` that +is used in the calculation of a :t:`compound assignment expression`. + +:dp:`fls_qnwbrwdnv7n0` +See :s:`ModifyingOperand`. + +.. _fls_kbxk78vm564e: + +module +^^^^^^ + +:dp:`fls_ujlsg58bskl5` +A :dt:`module` is a container for zero or more :t:`[item]s`. + +:dp:`fls_os60q6vvm71c` +See :s:`ModuleDeclaration`. + +.. _fls_gnucgrytswa4: + +move type +^^^^^^^^^ + +:dp:`fls_ri37ez31gai8` +A :dt:`move type` is a :t:`type` that implements the :std:`core::marker::Sized` +:t:`trait` and that is not a :t:`copy type`. + +.. _fls_iw2vYgmLhlsg: + +multi segment path +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_T4Xd6W6EqPSb` +A :dt:`multi segment path` is a :t:`path` consisting of more than one +:t:`path segment`. + +.. _fls_lpSCLhnaxeCg: + +multiplication assignment +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_llUb5VHKjwW4` +For :dt:`multiplication assignment`, see +:t:`multiplication assignment expression`. + +.. _fls_yo4k6lk0tizn: + +multiplication assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eo9gx05n5ru3` +A :dt:`multiplication assignment expression` is a +:t:`compound assignment expression` that uses multiplication. + +:dp:`fls_b0dc5lec1mdc` +See :s:`MultiplicationAssignmentExpression`. + +.. _fls_bgtznqqgtmd8: + +multiplication expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_324qh8wz474b` +A :dt:`multiplication expression` is an :t:`arithmetic expression` that uses +multiplication. + +:dp:`fls_34bkl5i75q5` +See :s:`MultiplicationExpression`. + +.. _fls_yM11Bcxn4p7c: + +mutability +^^^^^^^^^^ + +:dp:`fls_lBrXj9lo4s6o` +:dt:`Mutability` determines whether a :t:`construct` can modify a :t:`value`. + +.. _fls_wvejcadmzt5p: + +mutable +^^^^^^^ + +:dp:`fls_dqm58deu1orn` +A :t:`value` is :dt:`mutable` when it can be modified. + +.. _fls_TEVPHHiCMByO: + +mutable assignee expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0RSlFbwrB3gp` +A :dt:`mutable assignee expression` is an :t:`assignee expression` whose +:t:`value` can be modified. + +.. _fls_ntaA0NtJ9z5h: + +mutable binding +^^^^^^^^^^^^^^^ + +:dp:`fls_v2pGKVaQjtcl` +A :dt:`mutable binding` is a :t:`binding` whose :t:`value` can be modified. + +.. _fls_iku91jwdtdr1: + +mutable borrow +^^^^^^^^^^^^^^ + +:dp:`fls_5knwbyz4fd9z` +A :dt:`mutable borrow` is a :t:`mutable reference` produced by :t:`borrowing`. + +.. _fls_kw3oiotr98tt: + +mutable borrow expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_80kcc4y21hu6` +A :dt:`mutable borrow expression` is a :t:`borrow expression` that has +:t:`keyword` ``mut``. + +.. _fls_7eyza445ew53: + +mutable place expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kq877s3vij70` +A :dt:`mutable place expression` is a :t:`place expression` whose memory +location can be modified. + +.. _fls_x5BKVLc4KDlK: + +mutable place expression context +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2ixH8LWGHi3k` +A :dt:`mutable place expression context` is a :t:`place expression context` +that may evaluate its :t:`operand` as a mutable memory location. + +.. _fls_wOvlW47jKEWF: + +mutable raw pointer type +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_86SFxSDRcC06` +A :dt:`mutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``mut``. + +.. _fls_jtzj092hyjkz: + +mutable reference +^^^^^^^^^^^^^^^^^ + +:dp:`fls_wujjrhm1d338` +A :dt:`mutable reference` is a :t:`value` of a :t:`mutable reference type`, and +allows the mutation of its :t:`referent`. + +.. _fls_8iq0wcczl465: + +mutable reference type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q06p9tclwaaw` +A :dt:`mutable reference type` is a :t:`reference type` subject to :t:`keyword` +``mut``. + +.. _fls_omgyj7yxwgua: + +mutable static +^^^^^^^^^^^^^^ + +:dp:`fls_3ss4bokujaby` +A :dt:`mutable static` is a :t:`static` whose :t:`value` can be modified. + +.. _fls_n7h4xr40xwgb: + +mutable variable +^^^^^^^^^^^^^^^^ + +:dp:`fls_kjjv9jvdpf2o` +A :dt:`mutable variable` is a :t:`variable` whose :t:`value` can be modified. + +.. _fls_kad7fzn94x4d: + +name +^^^^ + +:dp:`fls_jjpzrs38vs3y` +A :dt:`name` is an :t:`identifier` that refers to an :t:`entity`. + +:dp:`fls_yrzevg5kd4bi` +See :s:`Name`. + +.. _fls_CxzbzLu4pWPY: + +named block expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ivFb8uAMVY3Q` +A :dt:`named block expression` is a :t:`block expression` with a :t:`label`. + +.. _fls_dgs9y3nan69v: + +named deconstructor +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_g3k1hy3j4qn9` +A :dt:`named deconstructor` is a :t:`construct` that matches the :t:`name` of +a :t:`field`. + +:dp:`fls_ujreg07979g8` +See :s:`NamedDeconstructor`. + +.. _fls_cvxdoycoytc5: + +named field selector +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_cczpgxqdyh1e` +A :dt:`named field selector` is a :t:`field selector` where the selected +:t:`field` is indicated by an :t:`identifier`. + +:dp:`fls_hpw0n89ez5nw` +See :s:`NamedFieldSelector`. + +.. _fls_kp0mbopkbjer: + +named initializer +^^^^^^^^^^^^^^^^^ + +:dp:`fls_xwvz8i4jim7a` +A :dt:`named initializer` is a :t:`construct` that specifies the name and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_aueznbw3lohl` +See :s:`NamedInitializer`. + +.. _fls_biwn3hxza37n: + +named loop expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_440dr5qix3ns` +A :dt:`named loop expression` is a :t:`loop expression` with a :t:`label`. + +.. _fls_WT1ZdxTZwUUE: + +named register argument +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_QBWHppNO8FPk` +A :dt:`named register argument` is a :t:`register argument` whose configuration +is bound to an :t:`identifier`. + +.. _fls_GesmsWSVhv3f: + +namespace +^^^^^^^^^ + +:dp:`fls_er8lcvnEqxa5` +A :dt:`namespace` is a logical grouping of :t:`[name]s` such that the +occurrence of a :t:`name` in one :t:`namespace` does not conflict with an +occurrence of the same :t:`name` in another :t:`namespace`. + +.. _fls_z3lxbjF4gaqV: + +NaN-boxing +^^^^^^^^^^ + +:dp:`fls_s956sJGwOa6z` +:dt:`NaN-boxing` is a technique for encoding :t:`[value]s` using the low order +bits of the mantissa of a 64-bit IEEE floating-point ``NaN``. + +.. _fls_3sp4twvfvb32: + +negation expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pmn6cjamdt0a` +A :dt:`negation expression` is an :t:`expression` that negates its :t:`operand`. + +:dp:`fls_o1f35ud4klvv` +See :s:`NegationExpression`. + +.. _fls_6rlvd0u4w6h2: + +nesting import +^^^^^^^^^^^^^^ + +:dp:`fls_nhkqkdqo32xs` +A :dt:`nesting import` is a :t:`use import` that provides a common :t:`path` +prefix for its nested :t:`[use import]s`. + +:dp:`fls_z4d611glen13` +See :s:`NestingImport`. + +.. _fls_cwcbtnzbqmq2: + +never type +^^^^^^^^^^ + +:dp:`fls_m9v5j6detob4` +The :dt:`never type` is a :t:`type` that represents the result of a computation +that never completes. + +:dp:`fls_k5z1vjxepnfj` +See :s:`NeverType`. + +.. _fls_3vhflvajgqzd: + +non-reference pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tejled5izyue` +A :dt:`non-reference pattern` is any :t:`pattern` except +:t:`non-[binding pattern]s`, :t:`[path pattern]s`, :t:`[reference pattern]s`, +and :t:`[underscore pattern]s`. + +.. _fls_5u8ihVDp4mdb: + +not configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_BVMlBterkFYq` +A :dt:`not configuration predicate` is a :t:`configuration predicate` that +negates the Boolean :t:`value` of its nested :t:`configuration predicate`. + +:dp:`fls_9j9AaNcv0VNA` +See :s:`ConfigurationPredicateNot`. + +.. _fls_shgatqvpdqkg: + +not-equals expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2hmynl94uusk` +A :dt:`not-equals expression` is a :t:`comparison expression` that tests for +inequality. + +:dp:`fls_5d6vvr9m35n2` +See :s:`NotEqualsExpression`. + +.. _fls_gqw1bzwexxt0: + +null +^^^^ + +:dp:`fls_8sh17t37b2ml` +A :dc:`null` :t:`value` denotes the address ``0``. + +.. _fls_a0qsojiymgjy: + +numeric literal +^^^^^^^^^^^^^^^ + +:dp:`fls_978ndaqdv4r` +A :dt:`numeric literal` is a :t:`literal` that denotes a number. + +:dp:`fls_swue4tma9fmf` +See ``NumericLiteral.`` + +.. _fls_rayjriyofmpa: + +numeric type +^^^^^^^^^^^^ + +:dp:`fls_cpdsj94l57af` +A :dt:`numeric type` is a :t:`type` whose :t:`[value]s` denote numbers. + +.. _fls_a226qzrb4iq9: + +object safe +^^^^^^^^^^^ + +:dp:`fls_oa2jiklr5nl2` +A :t:`trait` is :dt:`object safe` when it can be used as a +:t:`trait object type`. + +.. _fls_vomlqv7i1fc4: + +object safety +^^^^^^^^^^^^^ + +:dp:`fls_vqmng1l9ab8a` +:dt:`Object safety` is the process of determining whether a :t:`trait` can be +used as a :t:`trait object type`. + +.. _fls_bo889w63y7oi: + +obsolete range pattern +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ave42vwb45zb` +An :dt:`obsolete range pattern` is a :t:`range pattern` that uses obsolete +syntax to express an :t:`inclusive range pattern`. + +:dp:`fls_ta0wa8ta9ol4` +See :s:`ObsoleteRangePattern`. + +.. _fls_q47u2zq6clon: + +octal literal +^^^^^^^^^^^^^ + +:dp:`fls_pf4341vnqiin` +An :dt:`octal literal` is an :t:`integer literal` in base 8. + +:dp:`fls_8u0n6xu0mizm` +See ``OctalLiteral.`` + +.. _fls_pv4lok5qcn8y: + +operand +^^^^^^^ + +:dp:`fls_3mnn1au9ob6q` +An :dt:`operand` is an :t:`expression` nested within an expression. + +:dp:`fls_8299xfhdsd1` +See :s:`Operand`. + +.. _fls_smk8mi72lt57: + +operator expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6ev01xwcfow1` +An :dt:`operator expression` is an :t:`expression` that involves an operator. + +:dp:`fls_qdszbyeuo7w1` +See :s:`OperatorExpression`. + +.. _fls_C5DiCsvsaBsj: + +opt-out trait bound +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wS4EzN0N1GDP` +An :dt:`opt-out trait bound` is a :t:`trait bound` with :s:`Punctuation` ``?`` +that nullifies an implicitly added :t:`trait bound`. + +.. _fls_gllzixm9yt9w: + +outer attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_gffxnbilsqly` +An :dt:`outer attribute` is an :t:`attribute` that applies to a subsequent +:t:`item`. + +:dp:`fls_ty6ihy6x3kf` +See :s:`OuterAttribute`. + +.. _fls_toncretg92qh: + +outer block doc +^^^^^^^^^^^^^^^ + +:dp:`fls_531ggn1f8f6u` +An :dt:`outer block doc` is a :t:`block comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_ddy9a66tpytp` +See :s:`OuterBlockDoc`. + +.. _fls_PuTD100sWO5N: + +outer doc comment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_mgSEUNUPcPBs` +An :dt:`outer doc comment` is either an :t:`outer block doc` or an +:t:`outer line doc`. + +.. _fls_eqjbv8sovvfl: + +outer line doc +^^^^^^^^^^^^^^ + +:dp:`fls_m3u30fu8uac3` +An :dt:`outer line doc` is a :t:`line comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_1ppwidw7szk5` +See :s:`OuterLineDoc`. + +.. _fls_de935b1pzd28: + +outline module +^^^^^^^^^^^^^^ + +:dp:`fls_xhe5gmr0r9zn` +An :dt:`outline module` is a :t:`module` with an +:s:`OutlineModuleSpecification`. + +:dp:`fls_wu5wqylzx9ke` +See :s:`OutlineModuleSpecification`. + +.. _fls_5LhIr1kOIEO5: + +outlives bound +^^^^^^^^^^^^^^ + +:dp:`fls_J5dt34II7Pm6` +An :dt:`outlives bound` is a :t:`trait bound` which requires that a +:t:`generic parameter` outlives a :t:`lifetime parameter`. + +.. _fls_XsGnaA47Nen0: + +output register +^^^^^^^^^^^^^^^ + +:dp:`fls_4METI8qE9JiY` +An :dt:`output register` is a :t:`register` whose :t:`register name` is +used in a :t:`register argument` subject to :t:`direction modifier` ``out``, +``lateout``, ``inout``, or ``inlateout``. + +.. _fls_t79aKPilX8jk: + +output register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_w95YRZ4JjBxl` +An :dt:`output register expression` is an :t:`expression` that is assigned the +:t:`value` of a :t:`register`. + +:dp:`fls_8B3ldFZVy7PA` +See :s:`OutputRegisterExpression`. + +.. _fls_nhamq7xtz384: + +overlap +^^^^^^^ + +:dp:`fls_itkz9y19923k` +Two :t:`[value]s` :dt:`overlap` when their memory locations overlap, or both +values are elements of the same :t:`array`. + +.. _fls_ke52l9lsvyu2: + +owner +^^^^^ + +:dp:`fls_7vwwhberexeb` +An :dt:`owner` is a :t:`variable` that holds a :t:`value`. + +.. _fls_1gmetz8qtr0l: + +ownership +^^^^^^^^^ + +:dp:`fls_tu4zt8twucsz` +:dt:`Ownership` is a property of :t:`[value]s` that is central to the resource +management model of Rust. + +.. _fls_wzpivxkhpln: + +panic +^^^^^ + +:dp:`fls_t3kpbnmohtp6` +A :dt:`panic` is an abnormal program state caused by invoking :t:`macro` +:std:`core::panic`. + +.. _fls_fl56jfxbj0f: + +parenthesized expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_yu1x2rr7cewa` +A :dt:`parenthesized expression` is an :t:`expression` that groups other +expressions. + +:dp:`fls_p9exa6fpplfu` +See :s:`ParenthesizedExpression`. + +.. _fls_ww6nyinsw1lr: + +parenthesized pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7j12dwsx9ghg` +A :dt:`parenthesized pattern` is a :t:`pattern` that controls the precedence of +its :t:`[subpattern]s`. + +:dp:`fls_rwt31e8m694i` +See :s:`ParenthesizedPattern`. + +.. _fls_gilx8zikdq9k: + +parenthesized type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pamypc7t7l5n` +A :dt:`parenthesized type` is a :t:`type` that disambiguates the interpretation +of :t:`[lexical element]s`. + +:dp:`fls_lovkvqoni3xs` +See :s:`ParenthesizedTypeSpecification`. + +.. _fls_fULM1oCKSakS: + +partially hygienic +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Qh8V0Y08dNoa` +An :t:`identifier` is :dt:`partially hygienic` when it has +:t:`mixed site hygiene`. + +.. _fls_wqbd5lxki2al: + +passing convention +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eqgsg8j9btic` +A :dt:`passing convention` is the mechanism that defines how a :t:`value` is +transferred between :t:`[place]s`. + +.. _fls_9zl72vtkgkuo: + +path +^^^^ + +:dp:`fls_u3jyud6mhy1f` +A :dt:`path` is a sequence of :t:`[path segment]s` logically separated by +:dt:`namespace qualifier` ``::`` that resolves to an :t:`entity`. + +.. _fls_1xdj34py8zc3: + +path expression +^^^^^^^^^^^^^^^ + +:dp:`fls_4ik66nmvx5hn` +A :dt:`path expression` is a :t:`path` that acts as an :t:`expression`. + +:dp:`fls_3qjpjqm0legc` +See :s:`PathExpression`. + +.. _fls_EIFtIeLGZNy5: + +path expression resolution +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_WYcEVyc3SHuK` +:dt:`Path expression resolution` is a form of :t:`path resolution` that applies +to a :t:`path expression`. + +.. _fls_ptikwcw3b20l: + +path pattern +^^^^^^^^^^^^ + +:dp:`fls_vacvk3t26ctg` +A :dt:`path pattern` is a :t:`pattern` that matches a :t:`constant`, a +:t:`unit enum variant`, or a :t:`unit struct constant` indicated by a +:t:`path`. + +:dp:`fls_9fudbxoyq8k4` +See :s:`PathPattern`. + +.. _fls_J8kiBhcawvnj: + +path resolution +^^^^^^^^^^^^^^^ + +:dp:`fls_uy9Ai9vwTkjB` +:dt:`Path resolution` is a form of :t:`resolution` that applies to a :t:`path`. + +.. _fls_xb54s9cs7h08: + +path segment +^^^^^^^^^^^^ + +:dp:`fls_gsumebjc2bsp` +A :dt:`path segment` is a constituent of a :t:`path`. + +:dp:`fls_m067uq7fo66i` +See :s:`PathSegment`, :s:`SimplePathSegment`, :s:`TypePathSegment`. + +.. _fls_uj1o721im5lb: + +pattern +^^^^^^^ + +:dp:`fls_9wwt9k1xlm6n` +A :dt:`pattern` is a :t:`construct` that matches a :t:`value` which satisfies +all the criteria of the pattern. + +:dp:`fls_9va04w9jgdyp` +See :s:`Pattern`. + +.. _fls_48mv0zecb0un: + +pattern matching +^^^^^^^^^^^^^^^^ + +:dp:`fls_y3oputy9e0sz` +:dt:`Pattern matching` is the process of matching a :t:`pattern` against a +:t:`value`. + +.. _fls_cptagvgpgnze: + +pattern-without-alternation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_brussjs3wo6r` +A :dt:`pattern-without-alternation` is a :t:`pattern` that cannot be alternated. + +:dp:`fls_fmysn3eezr54` +See :s:`PatternWithoutAlternation`. + +.. _fls_yeQOZKPoNzw3: + +pattern-without-range +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_LSEOvAwUM7g6` +A :dt:`pattern-without-range` is a :t:`pattern-without-alternation` that +excludes :t:`[range pattern]s`. + +:dp:`fls_Rj8ir4k0K811` +See :s:`PatternWithoutRange`. + +.. _fls_5zjHBZMsCqJZ: + +place +^^^^^ + +:dp:`fls_uCTiUBWHMPY9` +A :dt:`place` is a location where a :t:`value` resides. + +.. _fls_7x6jhh0sz2f: + +place expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_z6mgu2mk142r` +A :dt:`place expression` is an :t:`expression` that represents a memory +location. + +.. _fls_tshbqttxdox1: + +place expression context +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fqcx8suiy5k` +A :dt:`place expression context` is a :t:`construct` that may evaluate its +operand as a memory location. + +.. _fls_dr6wbsqjd2qm: + +plane +^^^^^ + +:dp:`fls_x1wbguoqdsf9` +In :t:`Unicode`, a :dt:`plane` is a continuous group of 65,536 +:t:`[code point]s`. + +.. _fls_HnJEHyUiTpb1: + +pointer +^^^^^^^ + +:dp:`fls_DRjhMWo9mjoF` +A :dt:`pointer` is a :t:`value` of a :t:`pointer type`. + +.. _fls_o5o1ssqqD7Jg: + +pointer type +^^^^^^^^^^^^ + +:dp:`fls_F2dUxEa4nheL` +A :dt:`pointer type` is a :t:`type` whose values indicate memory locations. + +.. _fls_Q0r8JkqAP6Of: + +positional register argument +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_GJd6i52P3KM3` +A :dt:`positional register argument` is a :t:`register argument` whose +configuration is not bound to an :t:`identifier`. + +.. _fls_ukvdoqo68y5b: + +precedence +^^^^^^^^^^ + +:dp:`fls_sz93844rqc4r` +:dt:`Precedence` is the order by which :t:`[expression]s` are evaluated in the +presence of other expressions. + +.. _fls_8Gn72FJBarfb: + +prelude +^^^^^^^ + +:dp:`fls_D0PJioOZjKNN` +A :dt:`prelude` is a collection of :t:`entities ` that are +automatically brought :t:`in scope` of every :t:`module` in a :t:`crate`. + +.. _fls_AWySDxPgypiw: + +prelude entity +^^^^^^^^^^^^^^ + +:dp:`fls_2lU7RUjzFlsz` +A :dt:`prelude entity` is an :t:`entity` declared in a :t:`prelude`. + +.. _fls_FYn5JqPOhiIs: + +prelude name +^^^^^^^^^^^^ + +:dp:`fls_6Jk7fUAK122A` +A :dt:`prelude name` is a :t:`name` of a :t:`prelude entity`. + +.. _fls_fikexts17v7a: + +primitive representation +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bydly1rt63pf` +:dt:`Primitive representation` is the :t:`type representation` of +:t:`[integer type]s`. + +.. _fls_v1u1mevpj0kj: + +private visibility +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_duop22hyaweq` +:dt:`Private visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to only by the current :t:`module` of the :t:`entity`, and its +descendant :t:`[module]s`. + +.. _fls_kCA6SW8bUq5x: + +proc-macro crate +^^^^^^^^^^^^^^^^ + +.. _fls_AjjdLZWiL9Tq: + +:dp:`fls_DfTszT1PjV7o` +A :dt:`proc-macro crate` is a :t:`crate` that contains :t:`[procedural macro]s`. + +.. _fls_sp5wdsxwmxf: + +procedural macro +^^^^^^^^^^^^^^^^ + +:dp:`fls_u4utpx4zgund` +A :dt:`procedural macro` is a :t:`macro` that encapsulates syntactic +transformations in a :t:`function`. + +.. _fls_v2rjlovqsdyr: + +public visibility +^^^^^^^^^^^^^^^^^ + +:dp:`fls_6cfxqtl921ko` +:dt:`Public visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to from arbitrary :t:`module` ``M`` as long as the ancestor +:t:`[module]s` of the related :t:`entity` can be referred to from ``M``. + +.. _fls_hdwmw3jbwefi: + +punctuator +^^^^^^^^^^ + +:dp:`fls_gwqgi0b7jxmu` +A :dt:`punctuator` is a character or a sequence of characters in category +:s:`Punctuation`. + +.. _fls_sgwvmnoio1ql: + +pure identifier +^^^^^^^^^^^^^^^ + +:dp:`fls_6pez8fyiew0k` +A :dt:`pure identifier` is an :t:`identifier` that does not include +:t:`[weak keyword]s`. + +.. _fls_O6CFtnpN3UEE: + +qualified path expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wKAS6FxqGmTf` +A :dt:`qualified path expression` is a :t:`path expression` that resolves +through a :t:`qualified type`. + +:dp:`fls_MXxJn64eJpC5` +See :s:`QualifiedPathExpression`. + +.. _fls_Qv0UvhSfwBuM: + +qualified type +^^^^^^^^^^^^^^ + +:dp:`fls_e7YyZXOFo6ei` +A :dt:`qualified type` is a :t:`type` that is restricted to a set of +:t:`[implementation]s` that exhibit :t:`implementation conformance` to a +:t:`qualifying trait`. + +:dp:`fls_a4heXjzO3jem` +See :s:`QualifiedType`. + +.. _fls_koVlQq8aPdPv: + +qualified type path +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_S0QT9ib38i8E` +A :dt:`qualified type path` is a :t:`type path` that resolves through a +:t:`qualified type`. + +:dp:`fls_RR8fFLD7Rxlt` +See :s:`QualifiedTypePath`. + +.. _fls_B0m82A8jIerQ: + +qualifying trait +^^^^^^^^^^^^^^^^ + +:dp:`fls_zKY1dWBMrqXZ` +A :dt:`qualifying trait` is a :t:`trait` that imposes a restriction on a +:t:`qualified type`. + +:dp:`fls_z6OeUWBnec90` +See :s:`QualifyingTrait`. + +.. _fls_tbvugpuvcluj: + +range expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_bffrbucfwu7` +A :dt:`range expression` is an :t:`expression` that constructs a range. + +:dp:`fls_1jk43yvxa8ks` +See :s:`RangeExpression`. + +.. _fls_mdvdxr6u13fw: + +range expression high bound +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_c70pj8w15nmc` +A :dt:`range expression high bound` is an :t:`operand` that specifies the end +of a range. + +:dp:`fls_yxem0ckicxav` +See :s:`RangeExpressionHighBound`. + +.. _fls_smvgd160eynr: + +range expression low bound +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t10o1p950u00` +A :dt:`range expression low bound` is an :t:`operand` that specifies the start +of a range. + +:dp:`fls_vmb2z7oh6gzm` +See :s:`RangeExpressionLowBound`. + +.. _fls_6pxg401r6juc: + +range pattern +^^^^^^^^^^^^^ + +:dp:`fls_vf42zdyq23lc` +A :dt:`range pattern` is a :t:`pattern` that matches :t:`[value]s` which fall +within a range. + +:dp:`fls_r36uf3y2denr` +See ``RangePattern.`` + +.. _fls_3ls9xlgt8ei1: + +range pattern bound +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l9xq96bjs4o2` +A :dt:`range pattern bound` is a constraint on the range of a +:t:`range pattern`. + +:dp:`fls_80736cs3axo4` +See :s:`RangePatternBound`. + +.. _fls_y4rv5cbowvwg: + +range pattern high bound +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_arp7y7yme7yp` +A :dt:`range pattern high bound` is a :t:`range pattern bound` that specifies +the end of a range. + +:dp:`fls_dnwqcswftw71` +See :s:`RangePatternHighBound`. + +.. _fls_laev4lmmv0cw: + +range pattern low bound +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rt7q0msh3op4` +A :dt:`range pattern low bound` is a :t:`range pattern bound` that specifies +the start of a range. + +:dp:`fls_j695o93wsu3i` +See :s:`RangePatternLowBound`. + +.. _fls_iqpxlg7w3cvf: + +range-from expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6enyv2oa4abq` +A :dt:`range-from expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound`. + +:dp:`fls_e1smn0b478ik` +See :s:`RangeFromExpression`. + +.. _fls_125h4p4zt86q: + +range-from-to expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nzf6y64jz83f` +A :dt:`range-from-to expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an excluded +:t:`range expression high bound`. + +:dp:`fls_mjbxfjulryt` +See :s:`RangeFromToExpression`. + +.. _fls_8z8nrblarxrv: + +range-full expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6mchm7kb7i41` +A :dt:`range-full expression` is a :t:`range expression` that covers the whole +range of a :t:`type`. + +:dp:`fls_u7kd8w5g2icd` +See :s:`RangeFullExpression`. + +.. _fls_tie80ejz8s19: + +range-inclusive expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9vja0wev84a7` +A :dt:`range-inclusive expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an included +:t:`range expression high bound`. + +:dp:`fls_lpcsb8dtldk3` +See :s:`RangeInclusiveExpression`. + +.. _fls_etvgkb8zcfpd: + +range-to expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_urnfp1j9d5v4` +A :dt:`range-to expression` is a :t:`range expression` that specifies an +excluded :t:`range expression high bound`. + +:dp:`fls_lft9cd7h8cfv` +See :s:`RangeToExpression`. + +.. _fls_ap5754dfltt5: + +range-to-inclusive expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t4fjanjvkd69` +A :dt:`range-to-inclusive expression` is a :t:`range expression` that specifies +an included :t:`range expression high bound`. + +:dp:`fls_krei7lc6lo8q` +See :s:`RangeToInclusiveExpression`. + +.. _fls_ipeh92kh17ze: + +raw byte string literal +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8v5k3wemy4tl` +A :dt:`raw byte string literal` is a :t:`simple byte string literal` that does +not recognize :t:`[escaped character]s`. + +:dp:`fls_5x71i3ay3na2` +See ``RawByteStringLiteral.`` + +.. _fls_uv4dyt4gi32x: + +raw pointer +^^^^^^^^^^^ + +:dp:`fls_rbdilcmt2cns` +A :dt:`raw pointer` is a pointer of a :t:`raw pointer type`. + +.. _fls_9los8hwh60z0: + +raw pointer type +^^^^^^^^^^^^^^^^ + +:dp:`fls_wspawcoqxfbh` +A :dt:`raw pointer type` is an :t:`indirection type` without safety and +liveness guarantees. + +:dp:`fls_ctksliaxhzo9` +See :s:`RawPointerTypeSpecification`. + +.. _fls_echjohx6fjc: + +raw string literal +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_48t4v316951j` +A :dt:`raw string literal` is a :t:`simple string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_26ol7lrnux94` +See :s:`RawStringLiteral`. + +.. _fls_sAe1HaaVSPvP: + +reachable control flow path +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IxrvzuBg8j3E` +A :dt:`reachable control flow path` is a control flow path that can be +taken by the execution of a program between two given points in the program. + +.. _fls_nfb3ciarl50w: + +receiver operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_odbg4bizvqxq` +A :dt:`receiver operand` is an :t:`operand` that denotes the :t:`value` whose +:t:`method` is being invoked by a :t:`method call expression`. + +:dp:`fls_4rme1x6romeg` +See :s:`ReceiverOperand`. + +.. _fls_Kpkm0J40xq5J: + +receiver type +^^^^^^^^^^^^^ + +:dp:`fls_vgQmMlpFas5t` +A :dt:`receiver type` is the :t:`type` of a :t:`receiver operand`. + +.. _fls_nG6ikjLsCW7m: + +record enum variant +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NWyvPQmOIjo2` +A :dt:`record enum variant` is an :t:`enum variant` with a +:s:`RecordStructFieldList`. + +.. _fls_jdd6h8pdp30x: + +record struct +^^^^^^^^^^^^^ + +:dp:`fls_qyd7kqnpjs2` +A :dt:`record struct` is a :t:`struct` with a :s:`RecordStructFieldList`. + +:dp:`fls_rqs5rdnhkwnx` +See :s:`RecordStructDeclaration`. + +.. _fls_hzkwzbk5wp54: + +record struct field +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lb0t10evec6z` +A :dt:`record struct field` is a :t:`field` of a :t:`record struct type`. + +:dp:`fls_bjwmhxf3ae14` +See :s:`RecordStructField`. + +.. _fls_at2caaqlpva1: + +record struct pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q7njznxhmmw` +A :dt:`record struct pattern` is a :t:`pattern` that matches a +:t:`enum variant value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_viwieu1p3hds` +See :s:`RecordStructPattern`. + +.. _fls_uthd12hz3h4v: + +record struct type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mgrz3o51gbis` +A :dt:`record struct type` is the :t:`type` of a :t:`record struct`. + +.. _fls_cPs5C1chWmce: + +record struct value +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_SMBIc0JMck1H` +A :dt:`record struct value` is a :t:`value` of a :t:`record struct type`. + +.. _fls_94fkxohlnq9i: + +recursive type +^^^^^^^^^^^^^^ + +:dp:`fls_2t8qom6dhcjb` +A :dt:`recursive type` is a :t:`type` that may define other types within its +:t:`type specification`. + +.. _fls_onv3cs5tckgo: + +reference +^^^^^^^^^ + +:dp:`fls_s82y4hsuytiq` +A :dt:`reference` is a :t:`value` of a :t:`reference type`. + +.. _fls_1XGsXRZIFnqL: + +reference identifier pattern +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jQs6oJ4RFBPN` +A :dt:`reference identifier pattern` is an :t:`identifier pattern` with +:t:`keyword` ``ref``. + +.. _fls_kiy6b1wbn0a3: + +reference pattern +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ebshqnhmwgow` +A :dt:`reference pattern` is a :t:`pattern` that dereferences a :t:`pointer` +that is being matched. + +:dp:`fls_rghv5drrqxs1` +See :s:`ReferencePattern`. + +.. _fls_uw32xmrfgzcd: + +reference type +^^^^^^^^^^^^^^ + +:dp:`fls_l3knopsdlyf2` +A :dt:`reference type` is an :t:`indirection type` with :t:`ownership`. + +:dp:`fls_jzjatdpxqt9u` +See :s:`ReferenceTypeSpecification`. + +.. _fls_h8x0u32wfz8v: + +referent +^^^^^^^^ + +:dp:`fls_78ipj8avpwzl` +A :dt:`referent` is the :t:`value` pointed-to by a :t:`reference`. + +.. _fls_bkwy183h9ygt: + +refutability +^^^^^^^^^^^^ + +:dp:`fls_gzjrfx19fg40` +:dt:`Refutability` is a property of :t:`[pattern]s` that expresses the ability +to match all possible :t:`[value]s` of a :t:`type`. + +.. _fls_v99joc4m6cup: + +refutable constant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mc6hsomq08uu` +A :dt:`refutable constant` is a :t:`constant` of a :t:`refutable type`. + +.. _fls_srdcx5oi4dcp: + +refutable pattern +^^^^^^^^^^^^^^^^^ + +:dp:`fls_re7qz78koman` +A :dt:`refutable pattern` is a :t:`pattern` that has a possibility of not +matching the :t:`value` it is being matched against. + +.. _fls_dkq1h6p9yaar: + +refutable type +^^^^^^^^^^^^^^ + +:dp:`fls_l2yz6jeehm52` +A :dt:`refutable type` is a :t:`type` that has more than one :t:`value`. + +.. _fls_T84qaJMZzMbb: + +register +^^^^^^^^ + +:dp:`fls_fVdSybu8DW8w` +A :dt:`register` is a hardware component capable of holding data that can be +read and written. + +.. _fls_ISWWmgKjfYwt: + +register argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_rNoFdCKbVmRC` +A :dt:`register argument` is a :t:`construct` that configures the input +and output of a :t:`register`, and optionally binds the configuration to an +:t:`identifier`. + +:dp:`fls_aof7O9XREo2S` +See :s:`RegisterArgument`. + +.. _fls_2qKUiHcfmZQ6: + +register class +^^^^^^^^^^^^^^ + +:dp:`fls_2H0OYS733VJl` +A :dt:`register class` represents a set of :t:`[register]s`. + +.. _fls_8gC17CgCS9n1: + +register class argument +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ksLXAyPLx9IL` +A :dt:`register class argument` is a :t:`register argument` that uses a +:t:`register class name`. + +.. _fls_xZTkANlRsKRt: + +register class name +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_QsSFoL0UyRRB` +A :dt:`register class name` is a target-specific string that identifies a +:t:`register class`. + +:dp:`fls_Y1ZpiFAV2c1A` +See :s:`RegisterClassName`. + +.. _fls_7KIReJZLKdeK: + +register expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2cVy6XfOQ4QG` +A :dt:`register expression` is either an :t:`input-output register expression` +or a :t:`simple register expression`. + +:dp:`fls_YEzo09cqWUUy` +See :s:`RegisterExpression`. + +.. _fls_kbBK666iBS2X: + +register name +^^^^^^^^^^^^^ + +:dp:`fls_U5r8Ypnjah5E` +A :dt:`register name` is either the :t:`explicit register name` of a +:t:`register`, or the :t:`register class name` of the :t:`register class` a +:t:`register` belongs to. + +:dp:`fls_WeyiFrnGgWPn` +See :s:`RegisterName`. + +.. _fls_foh6xELWBsY9: + +register parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_JicHMIj5dlxJ` +A :dt:`register parameter` is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +:t:`register argument` in an :t:`assembly instruction`. + +.. _fls_NDpKXnlmnN7M: + +register parameter modifier +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8BdOnxHZS0Qi` +A :dt:`register parameter modifier` is a substring that starts with character +0x3A (colon), follows a :t:`register parameter`, and changes the formatting of +the related :t:`register parameter`. + +.. _fls_JnhUWipah0nO: + +remainder assignment +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_58eDC2XtQcaR` +For :dt:`remainder assignment`, see :t:`remainder assignment expression`. + +.. _fls_mio7pagghcks: + +remainder assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_en7ytqvefw7j` +A :dt:`remainder assignment expression` is a +:t:`compound assignment expression` that uses remainder division. + +:dp:`fls_rkk80quk8uzc` +See :s:`RemainderAssignmentExpression`. + +.. _fls_f15h4919ln3k: + +remainder expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l6muwnclm1do` +A :dt:`remainder expression` is an :t:`arithmetic expression` that uses +remainder division. + +:dp:`fls_h98qlby2uiru` +See :s:`RemainderExpression`. + +.. _fls_8ibsdx4dx6s7: + +renaming +^^^^^^^^ + +:dp:`fls_cp8u9kq44o8a` +A :dt:`renaming` provides an alternative :t:`name` for an existing name. + +:dp:`fls_8inznqig2ibr` +See :s:`Renaming`. + +.. _fls_b35oy3nnzixm: + +repeat operand +^^^^^^^^^^^^^^ + +:dp:`fls_ol2y1og2jwss` +A :dt:`repeat operand` is an :t:`operand` that specifies the element being +repeated in an :t:`array repetition constructor`. + +:dp:`fls_r4acyux78txu` +See :s:`RepeatOperand`. + +.. _fls_r2yjjhrvr9qi: + +repetition operator +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_67907pk7uogl` +A :dt:`repetition operator` is a :t:`construct` that indicates the number +of times a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription` can be repeated. + +:dp:`fls_hiasmmpr2jks` +See :s:`MacroRepetitionOperator`. + +.. _fls_o34kkn5pi0sh: + +representation +^^^^^^^^^^^^^^ + +:dp:`fls_69j7pq2o1iu` +See :t:`type representation`. + +.. _fls_TSbBt6WzropN: + +representation modifier +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_BCvXL7HkXqdZ` +A :dt:`representation modifier` is a :t:`construct` that modifies the +:t:`alignment` of a :t:`type`. + +:dp:`fls_TAVyjj66UBUo` +See :s:`Alignment`. + +.. _fls_x7yd6o4akrrg: + +reserved keyword +^^^^^^^^^^^^^^^^ + +:dp:`fls_b67hj7fdbq4s` +A :dt:`reserved keyword` is a :t:`keyword` that is not yet in use. + +:dp:`fls_hp9iqdrkt0cg` +See :s:`ReservedKeyword`. + +.. _fls_O5iuGATZgyBu: + +resolution +^^^^^^^^^^ + +:dp:`fls_PQjEvLs5cE4y` +:dt:`Resolution` is the process of finding a unique interpretation for a +:t:`field access expression`, a :t:`method call expression`, or a :t:`path`. + +.. _fls_uuo1qvrz1i0k: + +rest pattern +^^^^^^^^^^^^ + +:dp:`fls_xngp3h1znw9o` +A :dt:`rest pattern` is a :t:`pattern` that matches zero or more elements that +have not already been matched. + +:dp:`fls_rnmhg04u0oga` +See :s:`RestPattern`. + +.. _fls_7tl9qo8yj8xh: + +return expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_vnupfc6s0s7b` +A :dt:`return expression` is an :t:`expression` that optionally yields a +:t:`value` and causes control flow to return to the caller. + +:dp:`fls_phd8zrsyuzu7` +See :s:`ReturnExpression`. + +.. _fls_b8dbm1bs65kw: + +return type +^^^^^^^^^^^ + +:dp:`fls_cwucgbmmhnnm` +A :dt:`return type` is the :t:`type` of the result a :t:`function` returns. + +:dp:`fls_utuprsem6n58` +See :s:`ReturnType`. + +.. _fls_76o7m8vny72n: + +right operand +^^^^^^^^^^^^^ + +:dp:`fls_e1j9s4odze9b` +A :dt:`right operand` is an :t:`operand` that appears on the right-hand side of +a :t:`binary operator`. + +:dp:`fls_hq7x1t5dmdlp` +See :s:`RightOperand`. + +.. _fls_9u67noriaxfe: + +rule matching +^^^^^^^^^^^^^ + +:dp:`fls_dux9js5oixjd` +:dt:`Rule matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy the :t:`macro matcher` of a :t:`macro rule` that belongs to a +resolved :t:`declarative macro`. + +.. _fls_fki32ns69q4j: + +rustc +^^^^^ + +:dp:`fls_zdgbeixirjfm` +Rust-c (or :dt:`rustc`) is a compiler that implements the Ferrocene Language +Specification. + +.. _fls_Q4MRIo7cWv5K: + +safety invariant +^^^^^^^^^^^^^^^^ + +:dp:`fls_wRZfAmTmMGTX` +A :dt:`safety invariant` is an invariant that when violated may result in +:t:`undefined behavior`. + +.. _fls_XeMNghZZOBqL: + +scalar type +^^^^^^^^^^^ + +:dp:`fls_GgBqFW2NywoA` +A :dt:`scalar type` is either a :c:`bool` :t:`type`, a :c:`char` :t:`type`, or +a :t:`numeric type`. + +.. _fls_fj8mdxi967px: + +scope +^^^^^ + +:dp:`fls_fachaj550cq1` +A :dt:`scope` is a region of program text where a :t:`name` can be referred to. + +.. _fls_xZUiNkBN5e00: + +scope hierarchy +^^^^^^^^^^^^^^^ + +:dp:`fls_Spcc3L9X939d` +The :dt:`scope hierarchy` reflects the nesting of :t:`[scope]s` as introduced +by :t:`[scoping construct]s`. + +.. _fls_rfk06mm3pdxg: + +selected field +^^^^^^^^^^^^^^ + +:dp:`fls_8otlvwlqrd4e` +A :dt:`selected field` is a :t:`field` that is selected by a +:t:`field access expression`. + +.. _fls_9o2hcy6t7dac: + +Self +^^^^ + +:dp:`fls_q6whqbfusswf` +:dc:`Self` is either an implicit :t:`type parameter` in :t:`[trait]s` or an +implicit :t:`type alias` in :t:`[implementation]s`. :c:`Self` refers to the +:t:`type` that implements a :t:`trait`. + +.. _fls_6wjlbzmlx9n4: + +self parameter +^^^^^^^^^^^^^^ + +:dp:`fls_ksne48eip15` +A :dt:`self parameter` is a :t:`function parameter` expressed by :t:`keyword` +``self``. + +.. _fls_jq213cesxhyp: + +self public modifier +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ln3bzqgctfym` +A :dt:`self public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`private visibility`. + +:dp:`fls_21cvbfjpckkt` +See :s:`SelfPublicModifier`. + +.. _fls_exMZlNMxQvP7: + +Self scope +^^^^^^^^^^ + +:dp:`fls_pSvqWGRmFmH0` +A :dt:`Self scope` is a :t:`scope` for :c:`Self`. + +.. _fls_8spw41g0dbqw: + +send type +^^^^^^^^^ + +:dp:`fls_qfkng98dw6yy` +A :dt:`send type` is a :t:`type` that implements the :std:`core::marker::Send` +:t:`trait`. + +.. _fls_at8q1svh3isg: + +separator +^^^^^^^^^ + +:dp:`fls_128xny4qfcj5` +A :dt:`separator` is a character or a string that separates adjacent +:t:`[lexical element]s`. + +.. _fls_rtgis2k7by2r: + +sequence type +^^^^^^^^^^^^^ + +:dp:`fls_lk1oslxh8h9p` +A :dt:`sequence type` represents a sequence of elements. + +.. _fls_HUklMSWzx8Mg: + +shadowing +^^^^^^^^^ + +:dp:`fls_li3NXOPEH9cL` +:dt:`Shadowing` is a property of :t:`[name]s`. A :t:`name` is said to be +:dt:`shadowed` when another :t:`name` with the same characters is introduced +in the same :t:`scope` within the same :t:`namespace`, effectively hiding it. + +.. _fls_c9xwhhg639u5: + +shared borrow +^^^^^^^^^^^^^ + +:dp:`fls_gmbskxin90zi` +A :dt:`shared borrow` is a :t:`borrow` produced by evaluating an +:t:`immutable borrow expression`. + +.. _fls_18xazs7sp4: + +shared reference +^^^^^^^^^^^^^^^^ + +:dp:`fls_cspa4c5mscnw` +A :dt:`shared reference` is a :t:`value` of a :t:`shared reference type`. + +.. _fls_antrblstppyf: + +shared reference type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8z9wb3eu5yp1` +A :dt:`shared reference type` is a :t:`reference type` not subject to +:t:`keyword` ``mut``. + +.. _fls_o8EVuKgr0Y98: + +shift left assignment +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6adWrtvab6Tw` +For :dt:`shift left assignment`, see :t:`shift left assignment expression`. + +.. _fls_29n0oe4d7lwa: + +shift left assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j15ke2p8cjfp` +A :dt:`shift left assignment expression` is a +:t:`compound assignment expression` that uses bit shift left arithmetic. + +:dp:`fls_ozu74fsakomn` +See :s:`ShiftLeftAssignmentExpression`. + +.. _fls_sru4wi5jomoe: + +shift left expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_phiv6k4emauc` +A :dt:`shift left expression` is a :t:`bit expression` that uses bit shift left +arithmetic. + +:dp:`fls_56lu9kenzig9` +See :s:`ShiftLeftExpression`. + +.. _fls_V5LMAe8ijiMQ: + +shift right assignment +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_XuwcHjwHdyA8` +For :dt:`shift right assignment`, see :t:`shift right assignment expression`. + +.. _fls_cqfzbsasnd1t: + +shift right assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1jpnp7hatlmu` +A :dt:`shift right assignment expression` is a +:t:`compound assignment expression` that uses bit shift right arithmetic. + +:dp:`fls_naqzlebew1uf` +See :s:`ShiftRightAssignmentExpression`. + +.. _fls_dj6epbraptqn: + +shift right expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6itily0u0k9` +A :dt:`shift right expression` is a :t:`bit expression` that uses bit shift +right arithmetic. + +:dp:`fls_ex1mopil8w1p` +See :s:`ShiftRightExpression`. + +.. _fls_5sxhx0w3d63z: + +shorthand deconstructor +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_22yxrde244w8` +A :dt:`shorthand deconstructor` is a :t:`construct` that matches the :t:`name` +of a :t:`field` and binds the :t:`value` of the matched :t:`field` to a +:t:`binding`. + +:dp:`fls_rlo4237bgbwt` +See :s:`ShorthandDeconstructor`. + +.. _fls_oa4p10yles30: + +shorthand initializer +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bgxxg48snck1` +A :dt:`shorthand initializer` is a :t:`construct` that specifies the :t:`name` +of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_qc08ydgmqudi` +See :s:`ShorthandInitializer`. + +.. _fls_nmw95nc951iu: + +signed integer type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_vcronf7l2bhy` +A :dt:`signed integer type` is an :t:`integer type` whose :t:`[value]s` denote +negative whole numbers, zero, and positive whole numbers. + +.. _fls_4GvXiDfcPlRD: + +simple byte string literal +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_XpbU4Up0Aza8` +A :dt:`simple byte string literal` is a :t:`byte string literal` that consists +of multiple :s:`[AsciiCharacter]s`. + +:dp:`fls_OfI70zK68TnQ` +See :s:`SimpleByteStringLiteral`. + +.. _fls_6mcm7xdcyn40: + +simple import +^^^^^^^^^^^^^ + +:dp:`fls_jrlzpoauui9g` +A :dt:`simple import` is a :t:`use import` that binds a :t:`simple path` to a +local :t:`name` by using an optional :t:`renaming`. + +:dp:`fls_ta5t4h25unsw` +See :s:`SimpleImport`. + +.. _fls_o5kv9lrtz4fq: + +simple path +^^^^^^^^^^^ + +:dp:`fls_db91duoug4eb` +A :dt:`simple path` is a :t:`path` whose :t:`[path segment]s` consist of either +:t:`[identifier]s` or certain :t:`[keyword]s`. + +:dp:`fls_cm7ysyfrdwom` +See :s:`SimplePath`. + +.. _fls_23G6TAntJXqa: + +simple path prefix +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ijc2yHQuIltY` +A :dt:`simple path prefix` is the leading :t:`simple path` of a +:t:`glob import` or a :t:`nesting import`. + +:dp:`fls_ImHceyHhK6OZ` +See :s:`SimplePathPrefix`. + +.. _fls_sgy9q06yt6cl: + +simple path public modifier +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mby9r0jm6uyv` +A :dt:`simple path public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the provided :t:`simple path` only. + +:dp:`fls_mud4hw74kuh6` +See :s:`SimplePathPublicModifier`. + +.. _fls_gT5rZ4qC3pHo: + +simple path resolution +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_CQlepoN6PmKq` +:dt:`Simple path resolution` is a kind of :t:`path resolution` that applies to +a :t:`simple path`. + +.. _fls_k5uqt5oj7wvl: + +simple public modifier +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ce1ounn1g68` +A :dt:`simple public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility`. + +:dp:`fls_rd68vm2f2qy5` +See :s:`SelfPublicModifier`. + +.. _fls_JDB3eBO0DY4o: + +simple register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4Yp4R7gXucL2` +A :dt:`simple register expression` is either an :t:`expression` or an +:t:`underscore expression`. + +:dp:`fls_kKaqHDxPTTUC` +See :s:`SimpleRegisterExpression`. + +.. _fls_dpod2gc7a0u: + +simple string literal +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_p6qyyptz8w8w` +A :dt:`simple string literal` is a :t:`string literal` where the characters are +:t:`Unicode` characters. + +:dp:`fls_osj0c4dmr6e0` +See :s:`SimpleStringLiteral`. + +.. _fls_JS91BDzd03Qj: + +single segment path +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Hun5BCZsqd6k` +A :dt:`single segment path` is a :t:`path` consisting of exactly one +:t:`path segment`. + +.. _fls_oy5xy5pm1enx: + +size +^^^^ + +:dp:`fls_3obnilqhkjux` +The :dt:`size` of a :t:`value` is the offset in bytes between successive +elements in an :t:`array type` with the same :t:`element type`, including any +padding for :t:`alignment`. + +.. _fls_2y5oyon3y1za: + +size operand +^^^^^^^^^^^^ + +:dp:`fls_srajsqi5i3py` +A :dt:`size operand` is an :t:`operand` that specifies the size of an +:t:`array` or an :t:`array type`. + +:dp:`fls_228ioayvdguv` +See :s:`SizeOperand`. + +.. _fls_oiaoWEQQDE7I: + +sized type +^^^^^^^^^^ + +:dp:`fls_pwcgsRCNSwKn` +A :dt:`sized type` is a :t:`type` with statically known size. + +.. _fls_srkftses9sxn: + +slice +^^^^^ + +:dp:`fls_p1sv01ml2ark` +A :dt:`slice` is a :t:`value` of a :t:`slice type`. + +.. _fls_1s3a31o9zx1a: + +slice pattern +^^^^^^^^^^^^^ + +:dp:`fls_7613qu4igwiw` +A :dt:`slice pattern` is a :t:`pattern` that matches :t:`[array]s` of fixed +size and :t:`[slice]s` of dynamic size. + +:dp:`fls_3qey00280x27` +See :s:`SlicePattern`. + +.. _fls_x3kr88m5gvwv: + +slice type +^^^^^^^^^^ + +:dp:`fls_bvpszep1w90g` +A :dt:`slice type` is a :t:`sequence type` that provides a view into a sequence +of elements. + +:dp:`fls_y7gscwf29htg` +See :s:`SliceTypeSpecification`. + +.. _fls_wlwwxzpnhk6i: + +source file +^^^^^^^^^^^ + +:dp:`fls_nh737q4mn27u` +A :dt:`source file` contains the program text of :t:`[inner attribute]s`, +:t:`[inner doc comment]s`, and :t:`[item]s`. + +:dp:`fls_zgh1m5357ex1` +See :s:`SourceFile`. + +.. _fls_e7cvo0usw86i: + +statement +^^^^^^^^^ + +:dp:`fls_faijgwg4lhp9` +A :dt:`statement` is a component of a block expression. + +:dp:`fls_th7edvxml3mn` +See :s:`Statement`. + +.. _fls_tpazbmuq9hag: + +static +^^^^^^ + +:dp:`fls_srx4v1e20yxa` +A :dt:`static` is a :t:`value` that is associated with a specific memory +location. + +:dp:`fls_1b7gpk8e98pw` +See :s:`StaticDeclaration`. + +.. _fls_x331kxllyzim: + +static initializer +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6jjbfni87tax` +A :dt:`static initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`static`. + +:dp:`fls_igbl5uv0dlhl` +See :s:`StaticInitializer`. + +.. _fls_jCqiKgW9g8n5: + +static lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NbVewjYRnQPF` +:dt:`Static lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[constant]s` and :t:`[static]s`. + +.. _fls_1ricdj86o457: + +str +^^^ + +:dp:`fls_6977zxb0resa` +:dc:`str` is a :t:`sequence type` that represents a :t:`slice` of 8-bit +unsigned bytes. + +.. _fls_bzhaq3q378ay: + +strict keyword +^^^^^^^^^^^^^^ + +:dp:`fls_hza9spr6behn` +A :dt:`strict keyword` is a :t:`keyword` that always holds its special meaning. + +:dp:`fls_67pzayd9qzzs` +See :s:`StrictKeyword`. + +.. _fls_cck2tmyzmpja: + +string literal +^^^^^^^^^^^^^^ + +:dp:`fls_dphk5br0ag35` +A :dt:`string literal` is a :t:`literal` that consists of multiple characters. + +:dp:`fls_z0t3ae24h5h5` +See :s:`StringLiteral`. + +.. _fls_yphnf56fa58r: + +struct +^^^^^^ + +:dp:`fls_rufylj7qxs1w` +A :dt:`struct` is an :t:`item` that declares a :t:`struct type`. + +.. _fls_dxfyejkbiz3p: + +struct expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_m8n9e0sxyb95` +A :dt:`struct expression` is an :t:`expression` that constructs an +:t:`enum value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_odm68rhu2j1` +See :s:`StructExpression`. + +.. _fls_OT6dJ7CWkSTG: + +struct field +^^^^^^^^^^^^ + +:dp:`fls_8Z9YWMnrHXJS` +A :dt:`struct field` is a :t:`field` of a :t:`struct type`. + +.. _fls_ook43xes5t34: + +struct pattern +^^^^^^^^^^^^^^ + +:dp:`fls_xbtoiwegp8gu` +A :dt:`struct pattern` is a :t:`pattern` that matches an :t:`enum value`, a +:t:`struct value`, or a :t:`union value`. + +:dp:`fls_pn8e50ep2fln` +See :s:`StructPattern`. + +.. _fls_pzj88ust6qrq: + +struct type +^^^^^^^^^^^ + +:dp:`fls_7v4dhh3nl8h9` +A :dt:`struct type` is an :t:`abstract data type` that is a product of other +:t:`[type]s`. + +:dp:`fls_dhlww4yrnb2v` +See :s:`StructDeclaration`. + + +.. _fls_GOnQHAsYw1oi: + +struct value +^^^^^^^^^^^^ + +:dp:`fls_YmZfW9kWlbIX` +A :dt:`struct value` is a :t:`value` of a :t:`struct type`. + +.. _fls_P7920ALJisrH: + +structurally equal +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_glRZUKhmaWmP` +A :t:`type` is :dt:`structurally equal` when its :t:`[value]s` can be compared +for equality by structure. + +.. _fls_feZ3iDff05Cb: + +subexpression +^^^^^^^^^^^^^ + +:dp:`fls_bNSHwD4Kpfm0` +A :dt:`subexpression` is an :t:`expression` nested within another +:t:`expression`. + +.. _fls_wee9stfk0abp: + +subject expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xisqke87ert` +A :dt:`subject expression` is an :t:`expression` that controls +:t:`[for loop]s`, :t:`[if expression]s`, and :t:`[match expression]s`. + +:dp:`fls_gph5doham4js` +See :s:`SubjectExpression`. + +.. _fls_dc5ibvnnhs7e: + +subject let expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_b3ckv6zgnaeb` +A :dt:`subject let expression` is an :t:`expression` that controls +:t:`[if let expression]s` and :t:`[while let loop]s`. + +:dp:`fls_vnzaargh5yok` +See :s:`SubjectLetExpression`. + +.. _fls_k7ro8n23wtdc: + +subpattern +^^^^^^^^^^ + +:dp:`fls_942ulj9qsdes` +A :dt:`subpattern` is a :t:`pattern` nested within another :t:`pattern`. + +.. _fls_0hf1gNf90qKr: + +subtraction assignment +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_75Eyk2YXO2j4` +For :dt:`subtraction assignment`, see :t:`subtraction assignment`. + +.. _fls_a4iu72zn4h0: + +subtraction assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4pb85nl4r7vs` +A :dt:`subtraction assignment expression` is a +:t:`compound assignment expression` that uses subtraction. + +:dp:`fls_mye9yj5tc8hr` +See :s:`SubtractionAssignmentExpression`. + +.. _fls_25ru96mfdcsn: + +subtraction expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_caamjgpw59id` +A :dt:`subtraction expression` is an :t:`arithmetic expression` that uses +subtraction. + +:dp:`fls_mx3olnbntpye` +See :s:`SubtractionExpression`. + +.. _fls_qw3fn1116se9: + +subtrait +^^^^^^^^ + +:dp:`fls_wnj95vozis6n` +A :dt:`subtrait` is a :t:`trait` with a :t:`supertrait`. + +.. _fls_pu4zqJ1tGrfH: + +subtype +^^^^^^^ + +:dp:`fls_pmkjOWsieQog` +A :dt:`subtype` is a :t:`type` with additional constraints. + +.. _fls_f5dxz8pvs1kz: + +subtyping +^^^^^^^^^ + +:dp:`fls_bo5xzjsdd3lj` +:dt:`Subtyping` is a property of :t:`[type]s`, allowing one :t:`type` to be +used where another :t:`type` is expected. + +.. _fls_qar9v52smi9j: + +suffixed float +^^^^^^^^^^^^^^ + +:dp:`fls_7reb4jp0x1wf` +A :dt:`suffixed float` is a :t:`float literal` with a :t:`float suffix`. + +.. _fls_bmbu11ycjpor: + +suffixed integer +^^^^^^^^^^^^^^^^ + +:dp:`fls_ltzetxu3sq7k` +A :dt:`suffixed integer` is an :t:`integer literal` with an :t:`integer suffix`. + +.. _fls_12bluakt0jnj: + +super public modifier +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_vry5mhs3a5wv` +A :dt:`super public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the parent :t:`module` only. + +:dp:`fls_4a1s9bcrk5oy` +See :s:`SuperPublicModifier`. + +.. _fls_1axcyv628aov: + +supertrait +^^^^^^^^^^ + +:dp:`fls_s4chur1wutwh` +A :dt:`supertrait` is a transitive :t:`trait` that a :t:`type` must +additionally implement. + +.. _fls_r4eoz3ohvpdi: + +sync type +^^^^^^^^^ + +:dp:`fls_rpc0c8qx3nbo` +A :dt:`sync type` is a :t:`type` that implements the :std:`core::marker::Sync` +:t:`trait`. + +.. _fls_44djv0wocacs: + +syntactic category +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f981e3m7kq50` +A :dt:`syntactic category` is a nonterminal in the Backus-Naur Form grammar +definition of the Rust programming language. + +.. _fls_psd2ll10ixs: + +tail expression +^^^^^^^^^^^^^^^ + +:dp:`fls_6k873f1knasi` +A :dt:`tail expression` is the last :t:`expression` within a +:t:`block expression`. + +.. _fls_4omay4i65dwz: + +temporary +^^^^^^^^^ + +:dp:`fls_fathkxu9kxvw` +A :dt:`temporary` is an anonymous :t:`variable` produced by some intermediate +computation. + +.. _fls_ihv02usuziw8: + +terminated +^^^^^^^^^^ + +:dp:`fls_med1l8vheb83` +A :t:`loop expression` is :dt:`terminated` when its :t:`block expression` is no +longer evaluated. + +.. _fls_ef03n3ehz372: + +terminated macro invocation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_542es82wfzco` +A :dt:`terminated macro invocation` is a :t:`macro invocation` that may be used +as a :t:`statement`. + +:dp:`fls_tcvfi2zgdm58` +See :s:`TerminatedMacroInvocation`. + +.. _fls_AVZGZPd6WXXO: + +textual macro scope +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xyeYk6vrmlWp` +A :dt:`textual macro scope` is a :t:`scope` for :t:`[declarative macro]s`. + +.. _fls_mdcbhy96hrau: + +textual type +^^^^^^^^^^^^ + +:dp:`fls_lv1pdtzf6f58` +A :dt:`textual type` is a :t:`type` class that includes type :c:`char` and type +:c:`str`. + +.. _fls_lfsgf6u142yb: + +thin pointer +^^^^^^^^^^^^ + +:dp:`fls_i2j0u4v5o1bs` +A :dt:`thin pointer` is a :t:`value` of a :t:`thin pointer type`. + +.. _fls_7ksqpi9j8ba9: + +thin pointer type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_33rka3kyxgrk` +A :dt:`thin pointer type` is an :t:`indirection type` that refers to a +:t:`fixed sized type`. + +.. _fls_tzoko74t5t6n: + +token matching +^^^^^^^^^^^^^^ + +:dp:`fls_a19q6lhvakcm` +:dt:`Token matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy a :t:`macro match` of a selected :t:`macro matcher` that +belongs to a resolved :t:`declarative macro`. + +.. _fls_ma3vs7yoj285: + +tokens +^^^^^^ + +:dp:`fls_v23kqvyvscd7` +:dt:`[Token]s` are a subset of :t:`[lexical element]s` consumed by +:t:`[macro]s`. + +.. _fls_cad25qns4164: + +trait +^^^^^ + +:dp:`fls_mf4x9g70o5z6` +A :dt:`trait` is an :t:`item` that describes an interface a :t:`type` can +implement. + +:dp:`fls_ypjhwvuyrns` +See :s:`TraitDeclaration`. + +.. _fls_5hNydsQDrICq: + +trait body +^^^^^^^^^^ + +:dp:`fls_u221Me58aZmY` +A :dt:`trait body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of a :t:`trait`. + +:dp:`fls_dITFx04TB4h0` +See :s:`TraitBody`. + +.. _fls_868cgnb1soeh: + +trait bound +^^^^^^^^^^^ + +:dp:`fls_95zx8unuxxpq` +A :dt:`trait bound` is a :t:`bound` that imposes a constraint on the +:t:`[trait]s` of :t:`[generic parameter]s`. + +:dp:`fls_bkbym8v4t6oh` +See :s:`TraitBound`. + +.. _fls_kflieu6uottg: + +trait implementation +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_5v7kbg144pr8` +A :dt:`trait implementation` is an :t:`implementation` that adds functionality +specified by a :t:`trait`. + +:dp:`fls_rytylyyxh27f` +See :s:`TraitImplementation`. + +.. _fls_TCIzYoMeGtub: + +trait object lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rALP9b6qjlp9` +:dt:`Trait object lifetime elision` is a form of :t:`lifetime elision` that +applies to :t:`[trait object type]s`. + +.. _fls_7qtbro7ipndr: + +trait object type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_lo2fzzdwxy1l` +A :dt:`trait object type` is a :t:`type` that implements a :t:`trait`, where +the :t:`type` is not known at compile time. + +:dp:`fls_d632mc5c8qwt` +See :s:`TraitObjectTypeSpecification`, +:s:`TraitObjectTypeSpecificationOneBound`. + +.. _fls_nfdfeFVZRC5F: + +trait type +^^^^^^^^^^ + +:dp:`fls_JQsQnQ0dTHlS` +A :dt:`trait type` is either an :t:`impl trait type` or a +:t:`trait object type`. + +.. _fls_sl62718i1kkn: + +transparent representation +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hb3e72rhzpnv` +:dt:`Transparent representation` is a :t:`type representation` that applies +only to an :t:`enum type` with a single :t:`enum variant` or a :t:`struct type` +where the :t:`struct type` or :t:`enum variant` has a single :t:`field` of +non-zero :t:`size` and any number of :t:`[field]s` of :t:`size` zero and +:t:`alignment` one. + +.. _fls_soqkluvirlsd: + +trivial predicate +^^^^^^^^^^^^^^^^^ + +:dp:`fls_db5njwrjolhs` +A :dt:`trivial predicate` is a :t:`where clause predicate` that does not use +the :t:`[generic parameter]s` or :t:`[higher-ranked lifetime]s` of the related +:t:`construct`. + +.. _fls_si70t19ox07e: + +tuple +^^^^^ + +:dp:`fls_yhcfqz6p0059` +A :dt:`tuple` is a :t:`value` of a :t:`tuple type`. + +.. _fls_1XEHpJOK9DKB: + +tuple enum variant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eduQhUYBEkVx` +A :dt:`tuple enum variant` is an :t:`enum variant` with a +:s:`TupleStructFieldList`. + +.. _fls_sP7uHoLxGfRO: + +tuple enum variant value +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ORURxipGqNrZ` +A :dt:`tuple enum variant value` is a :t:`value` of a :t:`tuple enum variant`. + +.. _fls_udl6ujjg1jae: + +tuple expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_x7m4u1dx4eli` +A :dt:`tuple expression` is an :t:`expression` that constructs a :t:`tuple`. + +:dp:`fls_qawnvcddgyxx` +See :s:`TupleExpression`. + +.. _fls_bf1v4e1s5xj6: + +tuple field +^^^^^^^^^^^ + +:dp:`fls_8rq1gbzij5tk` +A :dt:`tuple field` is a :t:`field` of a :t:`tuple type`. + +.. _fls_zfvvbf7ncrhj: + +tuple initializer +^^^^^^^^^^^^^^^^^ + +:dp:`fls_94hg6re11zl5` +A :dt:`tuple initializer` is an :t:`operand` that provides the :t:`value` of a +:t:`tuple field` in a :t:`tuple expression`. + +.. _fls_7f2sx37kg4ca: + +tuple pattern +^^^^^^^^^^^^^ + +:dp:`fls_al2q3vh1rg6e` +A :dt:`tuple pattern` is a :t:`pattern` that matches a :t:`tuple` which +satisfies all criteria defined by its :t:`[subpattern]s`. + +:dp:`fls_bevmt5t0238j` +See :s:`TuplePattern`. + +.. _fls_245idp9hpqf6: + +tuple struct +^^^^^^^^^^^^ + +:dp:`fls_pdcpmapiq491` +A :dt:`tuple struct` is a :t:`struct` with a :s:`TupleStructFieldList`. + +:dp:`fls_1tj4p05m4wdf` +See :s:`TupleStructDeclaration`. + +.. _fls_UYCpeq4Z87My: + +tuple struct call expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_DQaCUkskfXzk` +A :dt:`tuple struct call expression` is a :t:`call expression` where the +:t:`call operand` resolves to a :t:`tuple struct`. + +.. _fls_xx4slbg8s63e: + +tuple struct field +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ndeb1a2hm9d8` +A :dt:`tuple struct field` is a :t:`field` of a :t:`tuple struct type`. + +:dp:`fls_v4eq8xg608d5` +See :s:`TupleStructField`. + +.. _fls_u2j18nl1t12f: + +tuple struct pattern +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_gu1mfurivnfz` +A :dt:`tuple struct pattern` is a :t:`pattern` that matches a +:t:`tuple enum variant value` or a :t:`tuple struct value`. + +:dp:`fls_3jx5683mdm10` +See :s:`TupleStructPattern`. + +.. _fls_qx8j2lvqigqk: + +tuple struct type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_hhikx5ajx3bl` +A :dt:`tuple struct type` is the :t:`type` of a :t:`tuple struct`. + +.. _fls_x4ALCJKhVDZF: + +tuple struct value +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xz1p4pss2Ocn` +A :dt:`tuple struct value` is a :t:`value` of a :t:`tuple struct type`. + +.. _fls_k4yz7i2pf9wp: + +tuple type +^^^^^^^^^^ + +:dp:`fls_q0ulqfvnxwni` +A :dt:`tuple type` is a :t:`sequence type` that represents a heterogeneous list +of other :t:`[type]s`. + +:dp:`fls_rkugxsau1w78` +See :s:`TupleTypeSpecification`. + +.. _fls_wzupssn435n: + +type +^^^^ + +:dp:`fls_nhlh7vvgsbwo` +A :dt:`type` defines a set of :t:`[value]s` and a set of operations that act on +those :t:`[value]s`. + +.. _fls_vaklivoy2ix2: + +type alias +^^^^^^^^^^ + +:dp:`fls_8pcsxodv1xp5` +A :dt:`type alias` is an :t:`item` that defines a :t:`name` for a :t:`type`. + +:dp:`fls_qfzskp1t3h5w` +See :s:`TypeAliasDeclaration`. + +.. _fls_89ollsdjx3uy: + +type argument +^^^^^^^^^^^^^ + +:dp:`fls_152lk7hrtd11` +A :dt:`type argument` is a :t:`generic argument` that supplies the :t:`value` +of a :t:`type parameter`. + +:dp:`fls_91tqk65qiygf` +See :s:`TypeArgument`. + +.. _fls_1n50v16et5e6: + +type ascription +^^^^^^^^^^^^^^^ + +:dp:`fls_pm5jytclqn7y` +A :dt:`type ascription` specifies the :t:`type` of a :t:`construct`. + +:dp:`fls_c3xtiputfxea` +See :s:`TypeAscription`. + +.. _fls_zDdXv5I4bW9H: + +type bound predicate +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6WKoybB4cep` +A :dt:`type bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` and :t:`[trait bound]s` on a :t:`type`. + +:dp:`fls_oMlPNgoDjnoW` +See :s:`TypeBoundPredicate`. + +.. _fls_k24jb967nu1q: + +type cast expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6zo3rir1x76` +A :dt:`type cast expression` is an :t:`expression` that changes the :t:`type` +of an :t:`operand`. + +:dp:`fls_dvh1xy9w74ch` +See :s:`TypeCastExpression`. + +.. _fls_6j08yuafv0vl: + +type coercion +^^^^^^^^^^^^^ + +:dp:`fls_mt36qehtqova` +:dt:`Type coercion` is an implicit operation that changes the :t:`type` of +a :t:`value`. + +.. _fls_7fpvb2gvqng8: + +type inference +^^^^^^^^^^^^^^ + +:dp:`fls_ky8epvf9834e` +:dt:`Type inference` is the process of deducing the expected :t:`type` of an +arbitrary :t:`value`. + +.. _fls_0jri0m3F1fAT: + +type inference root +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hLI7lCixs48z` +A :dt:`type inference root` is a :t:`construct` whose inner :t:`[expression]s` +and :t:`[pattern]s` are subject to :t:`type inference` independently of other +:t:`[type inference root]s`. + +.. _fls_uv2damik654e: + +type parameter +^^^^^^^^^^^^^^ + +:dp:`fls_5t6510wkb67x` +A :dt:`type parameter` is a :t:`generic parameter` for a :t:`type`. + +:dp:`fls_vquy0tsvd93x` +See :s:`TypeParameter`. + +.. _fls_Fq2zTHYRpK2V: + +type parameter initializer +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Xpz47JLNsOXI` +A :dt:`type parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`type parameter`. + +:dp:`fls_6Ap26AcSadP8` +See :s:`TypeParameterInitializer`. + +.. _fls_HghjWqvyj5bN: + +type parameter type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_EuHHxwHd0RHV` +A :dt:`type parameter type` is a placeholder :t:`type` of a :t:`type parameter` +to be substituted by :t:`generic substitution`. + +.. _fls_QDCiXh7uSj9r: + +type path +^^^^^^^^^ + +:dp:`fls_UBR5czHrMTrx` +A :dt:`type path` is a :t:`path` that acts as a :t:`type specification`. + +:dp:`fls_7CbNAZYSZayW` +See :s:`TypePath`. + +.. _fls_wa3biT0rQ102: + +type path resolution +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Xv6JbfdIyvA3` +:dt:`Type path resolution` is a form of :t:`path resolution` that applies to +a :t:`type path`. + +.. _fls_u1zkh2m8p92: + +type representation +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rv80nyxwj2z8` +:dt:`Type representation` specifies the :t:`layout` of :t:`[field]s` of +:t:`[abstract data type]s`. + +.. _fls_ukua6gbye6ot: + +type specification +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tdjhjg9zhnv5` +A :dt:`type specification` describes the structure of a :t:`type`. + +:dp:`fls_a3sqjp1l8po6` +See :s:`TypeSpecification`. + +.. _fls_qoehu9p00q56: + +type unification +^^^^^^^^^^^^^^^^ + +:dp:`fls_3vyodut341b5` +:dt:`Type unification` is the process by which :t:`type inference` propagates +known :t:`[type]s` across the :t:`type inference root` and assigns concrete +:t:`[type]s` to :t:`[type variable]s`, as well as a general mechanism to check +for compatibility between two :t:`[type]s` during :t:`method resolution`. + +.. _fls_6zhffgxtytku: + +type variable +^^^^^^^^^^^^^ + +:dp:`fls_j9eusnwze4rz` +A :dt:`type variable` is a placeholder used during :t:`type inference` to stand +in for an undetermined :t:`type` of an :t:`expression` or a :t:`pattern`. + +.. _fls_44uvj9l7q98z: + +u8 +^^ + +:dp:`fls_umf9zfeghy6` +:dc:`u8` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`8` - 1, all inclusive. + +.. _fls_eh24kdjdze5j: + +u16 +^^^ + +:dp:`fls_8vi7bm2895y0` +:dc:`u16` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`16` - 1, all inclusive. + +.. _fls_jybcgdujzpqy: + +u32 +^^^ + +:dp:`fls_pw90erui8vkk` +:dc:`u32` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`32` - 1, all inclusive. + +.. _fls_1z1e3chuejzz: + +u64 +^^^ + +:dp:`fls_pbcmhznqft9m` +:dc:`u64` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`64` - 1, all inclusive. + +.. _fls_5hn9e3ce1smp: + +u128 +^^^^ + +:dp:`fls_8yv891ur2av5` +:dc:`u128` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`128` - 1, all inclusive. + +.. _fls_p032easjag3d: + +unary operator +^^^^^^^^^^^^^^ + +:dp:`fls_p6mk2zrwgwem` +A :dt:`unary operator` operates on one :t:`operand`. + +.. _fls_WuLL4SvSKavZ: + +undefined behavior +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_WpwmltUMQGZa` +:dt:`Undefined behavior` is a situation that results in an unbounded error. + +.. _fls_X6XjWwYeTnVR: + +under resolution +^^^^^^^^^^^^^^^^ + +:dp:`fls_BppwXSVUWtEu` +A :t:`construct` that is being resolved is said to be :dt:`under resolution`. + +.. _fls_57kis2vnt3cv: + +underscore expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ukl1sefb99gj` +An :dt:`underscore expression` is an :t:`expression` that acts as a placeholder +in a :t:`destructuring assignment`. + +:dp:`fls_qbo267kdjcgs` +See :s:`UnderscoreExpression`. + +.. _fls_fhwqe6afup2o: + +underscore pattern +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f6yroesif1q4` +An :dt:`underscore pattern` is a :t:`pattern` that matches any single +:t:`value`. + +:dp:`fls_bktuchv7o4dd` +See :s:`UnderscorePattern`. + +.. _fls_HpUSWMvNS5f4: + +unhygienic +^^^^^^^^^^ + +:dp:`fls_0t4lFZLkNieR` +An :t:`identifier` is :dt:`unhygienic` when it has :t:`call site hygiene`. + +.. _fls_kafgmevvzl5t: + +Unicode +^^^^^^^ + +:dp:`fls_y7gwku7pe1f4` +:dt:`Unicode` is the colloquial name for the ISO/IEC 10646:2017 Universal Coded +Character Set standard. + +.. _fls_y7m6AentM6Ik: + +unifiable +^^^^^^^^^ + +:dp:`fls_01BNTCL4u8Gn` +For :dt:`unifiable`, see :t:`unify`. + +.. _fls_u03p4rvz1jhs: + +unifiable types +^^^^^^^^^^^^^^^ + +:dp:`fls_jsbggfitv9xk` +Two :t:`[type]s` that :t:`unify` are said to be :dt:`[unifiable type]s`. + +.. _fls_9RfuDiI6qrzZ: + +unified type +^^^^^^^^^^^^ + +:dp:`fls_tqRwIe6z3a4j` +A :dt:`unified type` is a :t:`type` produced by :t:`type unification`. + +.. _fls_da6ssnmmsevo: + +unify +^^^^^ + +:dp:`fls_mango4gffb9e` +A :t:`type` is said to :dt:`unify` with another type when the domains, ranges, +and structures of both :t:`[type]s` are compatible. + +.. _fls_8qljy9e1jjcb: + +union +^^^^^ + +:dp:`fls_x3oibk39dvem` +A :dt:`union` is an :t:`item` that declares a :t:`union type`. + +.. _fls_71xvazpwi8p0: + +union field +^^^^^^^^^^^ + +:dp:`fls_6t2fbnlndz8y` +A :dt:`union field` is a :t:`field` of a :t:`union type`. + +.. _fls_nrgyga1rztb3: + +union type +^^^^^^^^^^ + +:dp:`fls_af2sscrep7mc` +A :dt:`union type` is an :t:`abstract data type` similar to a :t:`C`-like union. + +:dp:`fls_fgvjogfz8ink` +See :s:`UnionDeclaration`. + +.. _fls_2QRQMeA3OSVl: + +union value +^^^^^^^^^^^ + +:dp:`fls_9BPrxky3a4nE` +A :dt:`union value` is a :t:`value` of a :t:`union type`. + +.. _fls_Is9hWLC6Q0g5: + +unique immutable reference +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eXrivAmNxzmv` +A :dt:`unique immutable reference` is an :t:`immutable reference` produced by +:t:`capturing` what is asserted to be the only live :t:`reference` to a +:t:`value` while the :t:`reference` exists. + +.. _fls_Rwtgq904NoaL: + +unit enum variant +^^^^^^^^^^^^^^^^^ + +:dp:`fls_y6fI5L3Tghie` +A :dt:`unit enum variant` is an :t:`enum variant` without a :t:`field list`. + +.. _fls_f3hmx9qya258: + +unit struct +^^^^^^^^^^^ + +:dp:`fls_9t7fu8fcak6k` +A :dt:`unit struct` is a :t:`struct` without a :t:`field list`. + +:dp:`fls_mSuiysAVczPx` +See :s:`UnitStructDeclaration`. + +.. _fls_jdvEnl8F7I8R: + +unit struct constant +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lLGn4JqddeAg`: +A :dt:`unit struct constant` is a :t:`constant` implicitly created by a +:t:`unit struct`. + +.. _fls_6j2wnOmBILJa: + +unit struct type +^^^^^^^^^^^^^^^^ + +:dp:`fls_oIzmvACNeQpE` +A :dt:`unit struct type` is the :t:`type` of a :t:`unit struct`. + +.. _fls_CXp8fgPrBVUe: + +unit struct value +^^^^^^^^^^^^^^^^^ + +:dp:`fls_Kr9nGIjx3N4R` +A :dt:`unit struct value` is a :t:`value` of a :t:`unit struct type`. + +.. _fls_wmn9mcqae88q: + +unit tuple +^^^^^^^^^^ + +:dp:`fls_vo1jw6rmu4yy` +A :dt:`unit tuple` is a :t:`value` of the :t:`unit type`. + +.. _fls_t32yfzmpid5a: + +unit type +^^^^^^^^^ + +:dp:`fls_jtdtv3q2ls05` +The :dt:`unit type` is a :t:`tuple type` of zero :t:`arity`. + +.. _fls_vxt0ifseehv9: + +unit value +^^^^^^^^^^ + +:dp:`fls_ycdv4nvsdyx` +The :dt:`unit value` is the :t:`value` of a :t:`unit type`. + +.. _fls_u78ng1tleh0w: + +unnamed constant +^^^^^^^^^^^^^^^^ + +:dp:`fls_ufj01cxxsv1w` +An :dt:`unnamed constant` is a :t:`constant` declared with character 0x5F (low +line). + +.. _fls_r8567aozbyxl: + +unnamed lifetime +^^^^^^^^^^^^^^^^ + +:dp:`fls_4iy6zpq66mit` +An :dt:`unnamed lifetime` is a :t:`lifetime` declared with character 0x5F (low +line). + +.. _fls_cDVmvrVhUBmr: + +unqualified path expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9xKgP8uVsOaR` +An :dt:`unqualified path expression` is a :t:`path expression` without a :t:`qualified type`. + +.. _fls_6349nvapfj9d: + +unsafe block +^^^^^^^^^^^^ + +:dp:`fls_8tkolhmd6xfp` +For :dt:`unsafe block`, see :t:`unsafe block expression`. + +.. _fls_u8sdp2fxz9pn: + +unsafe block expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_et2h89jyivhs` +An :dt:`unsafe block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``unsafe``. + +:dp:`fls_c94rudunhp5b` +See :s:`UnsafeBlockExpression`. + +.. _fls_5m85wlr2qw78: + +unsafe context +^^^^^^^^^^^^^^ + +:dp:`fls_qn1s845ejbu0` +An :dt:`unsafe context` is either an :t:`unsafe block` or an +:t:`unsafe function`. + +.. _fls_ua64pv82skaw: + +unsafe function +^^^^^^^^^^^^^^^ + +:dp:`fls_2ht13dgtxi1o` +An :dt:`unsafe function` is a :t:`function` subject to :t:`keyword` ``unsafe``. + +.. _fls_y1iruf62p856: + +unsafe function item type +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r91tuwi55nu7` +An :dt:`unsafe function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`unsafe function`. + +.. _fls_bokqlokua059: + +unsafe function pointer type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tiluwa2v4l6d` +An :dt:`unsafe function pointer type` is a function pointer type subject to +:t:`keyword` ``unsafe``. + +.. _fls_e2wyfbem6vwn: + +unsafe operation +^^^^^^^^^^^^^^^^ + +:dp:`fls_34h60ubicgsj` +An :dt:`unsafe operation` is an operation that may result in +:t:`undefined behavior` that is not diagnosed as a static error. +:t:`[Unsafe operation]s` are referred to as :t:`unsafe Rust`. + +.. _fls_4f6mppoenj3b: + +unsafe Rust +^^^^^^^^^^^ + +:dp:`fls_30asi010yf1a` +For :dt:`unsafe Rust`, see :t:`[unsafe operation]s`. + +.. _fls_38ae1t48h9cb: + +unsafe trait +^^^^^^^^^^^^ + +:dp:`fls_w6zlsf2ye457` +An :dt:`unsafe trait` is a :t:`trait` subject to :t:`keyword` ``unsafe`` + +.. _fls_h62dfjfyqcbn: + +unsafe trait implementation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kqwcv076dzie` +An :dt:`unsafe trait implementation` is a :t:`trait implementation` subject to +:t:`keyword` ``unsafe``. + +.. _fls_pst7yov6vnr9: + +unsafety +^^^^^^^^ + +:dp:`fls_742ycx5181n` +:dt:`Unsafety` is the presence of :t:`[unsafe operation]s` in program text. + +.. _fls_4jc74lz245z3: + +unsigned integer type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dxnf79qemlg6` +An :dt:`unsigned integer type` is an :t:`integer type` whose :t:`[value]s` +denote zero and positive whole numbers. + +.. _fls_pjup0piqlxe3: + +unsized coercion +^^^^^^^^^^^^^^^^ + +:dp:`fls_olt5qhyvhmtq` +An :dt:`unsized coercion` is a :t:`type coercion` that converts a +:t:`sized type` into an :t:`unsized type`. + +.. _fls_KiVgO7I3UUhh: + +unsized type +^^^^^^^^^^^^ + +:dp:`fls_M9NpzBH8Wf4z` +An :dt:`unsized type` is a :t:`type` with statically unknown size. + +.. _fls_4ph9cact2scc: + +unsuffixed float +^^^^^^^^^^^^^^^^ + +:dp:`fls_7wp6y0xeqqve` +An :dt:`unsuffixed float` is a :t:`float literal` without a :t:`float suffix`. + +.. _fls_d18nctsj8wu5: + +unsuffixed integer +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t419z3zder0q` +An :dt:`unsuffixed integer` is an :t:`integer literal` without an +:t:`integer suffix`. + +.. _fls_fow1bnvduafi: + +use import +^^^^^^^^^^ + +:dp:`fls_uccv9zthh5vt` +A :dt:`use import` brings :t:`entities ` :t:`in scope` within the +:t:`block expression` of an :t:`expression-with-block` or :t:`module` where the +:t:`use import` resides. + +:dp:`fls_ib5wf62j4uhr` +See :s:`UseImport`. + +.. _fls_gvjm5mms9ahz: + +usize +^^^^^ + +:dp:`fls_r22k1l8799k6` +:dc:`usize` is an :t:`unsigned integer type` with the same number of bits as +the platform's :t:`pointer type`, and is at least 16-bits wide. + +.. _fls_A5K8aOBsI3BG: + +validity invariant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_3ebC3l839ajF` +A :dt:`validity invariant` is an invariant that when violated results in +immediate :t:`undefined behavior`. + +.. _fls_tg866bc926ms: + +value +^^^^^ + +:dp:`fls_h8jn338b51yu` +A :dt:`value` is either a :t:`literal` or the result of a computation, that may +be stored in a memory location, and interpreted based on some :t:`type`. + +.. _fls_h03noz6jzpyl: + +value expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_mn6tcuz5j3p` +A :dt:`value expression` is an :t:`expression` that represents a :t:`value`. + +.. _fls_7xiaXXSwy4GP: + +value expression context +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NGGZEbmoLRbD` +A :dt:`value expression context` is an expression context that is not a +:t:`place expression context`. + +.. _fls_a5xof9jlpc2e: + +value operand +^^^^^^^^^^^^^ + +:dp:`fls_x4seemjknk2z` +A :dt:`value operand` is an :t:`operand` that supplies the :t:`value` that is +assigned to an :t:`assignee operand` by an :t:`assignment expression`. + +:dp:`fls_cl4fakfkpscp` +See :s:`ValueOperand`. + +.. _fls_donq6w1906lw: + +variable +^^^^^^^^ + +:dp:`fls_9ab12k4vwsio` +A :dt:`variable` is a placeholder for a :t:`value` that is allocated on the +stack. + +.. _fls_RIe80XOF8VlA: + +variadic part +^^^^^^^^^^^^^ + +:dp:`fls_ePnTyLoqJ1i7` +A :dt:`variadic part` indicates the presence of :t:`C`-like optional +parameters. + +:dp:`fls_z9D86gBFbKB5` +See :s:`VariadicPart`. + +.. _fls_q0xplb4tbzpq: + +variance +^^^^^^^^ + +:dp:`fls_il0krrsf09f8` +:dt:`Variance` is a property of :t:`[lifetime parameter]s` and +:t:`[type parameter]s` that describes the circumstances under which a +:t:`generic type` is a :t:`subtype` of an instantiation of itself with +different :t:`[generic argument]s`. + +.. _fls_svx87y4p8fdx: + +visibility +^^^^^^^^^^ + +:dp:`fls_sadmsqhptlho` +:dt:`Visibility` is a property of :t:`[field]s` and :t:`[item]s` that determines +which :t:`[module]s` can refer to the :t:`name` of the :t:`field` or :t:`item`. + +.. _fls_xqjk8avt7t51: + +visibility modifier +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ze7befho4jhs` +A :dt:`visibility modifier` sets the :t:`visibility` of the :t:`name` of an +:t:`item`. + +.. _fls_iplp3gvfbcpw: + +weak keyword +^^^^^^^^^^^^ + +:dp:`fls_4hiznltf5wlu` +A :dt:`weak keyword` is a :t:`keyword` whose special meaning depends on the +context. + +:dp:`fls_psah573fsrig` +See :s:`WeakKeyword`. + +.. _fls_ew2gsg72rjxk: + +where clause +^^^^^^^^^^^^ + +:dp:`fls_prljyrhontzn` +A :dt:`where clause` is a :t:`construct` that specifies :t:`[bound]s` on +:t:`[lifetime parameter]s` and :t:`[type parameter]s`. + +:dp:`fls_k32hnug33eo9` +See :s:`WhereClause`. + +.. _fls_myNeYCm4VI0R: + +where clause predicate +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0LACQVmZpDQF` +A :dt:`where clause predicate` is either a :t:`lifetime bound predicate` or a +:t:`type bound predicate`. + +:dp:`fls_Jk7V1SOKE4Gm` +See :s:`WhereClausePredicate`. + +.. _fls_8hcsablipi17: + +while let loop +^^^^^^^^^^^^^^ + +:dp:`fls_ovutw52qtx71` +For :dt:`while let loop`, see :t:`while let loop expression`. + +.. _fls_gme4odk59x6d: + +while let loop expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_g35gn7n88acp` +A :dt:`while let loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject let expression` yields a +:t:`value` that can be matched against its :t:`pattern`. + +:dp:`fls_q3jcb4nodqba` +See :s:`WhileLetLoopExpression`. + +.. _fls_od59yim9kasi: + +while loop +^^^^^^^^^^ + +:dp:`fls_ug9cxoml9ged` +For :dt:`while loop`, see :t:`while loop expression`. + +.. _fls_1qxi3h3qmgso: + +while loop expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fq0zyup4djyh` +A :dt:`while loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`iteration expression` holds +true. + +:dp:`fls_7htwpbmyq83u` +See :s:`WhileLoopExpression`. + +.. _fls_cxm8nw6qiryr: + +whitespace string +^^^^^^^^^^^^^^^^^ + +:dp:`fls_nljkmadklwdp` +A :dt:`whitespace string` is a string that consists of one or more +:t:`[whitespace character]s`. + +.. _fls_a5lrxgucl3be: + +zero-sized type +^^^^^^^^^^^^^^^ + +:dp:`fls_rmd6pearrhr8` +A :dt:`zero-sized type` is a :t:`fixed sized type` with :t:`size` zero. + +.. _fls_pix563lfbpm: + +zero-variant enum type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_84gqz3vwi5mj` +A :dt:`zero-variant enum type` is an :t:`enum type` without any +:t:`[enum variant]s`. diff --git a/_sources/implementations.rst.txt b/_sources/implementations.rst.txt new file mode 100644 index 00000000..a0dbc818 --- /dev/null +++ b/_sources/implementations.rst.txt @@ -0,0 +1,270 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_fk2m2irwpeof: + +Implementations +=============== + +.. rubric:: Syntax + +.. syntax:: + + Implementation ::= + InherentImplementation + | TraitImplementation + + InherentImplementation ::= + $$impl$$ GenericParameterList? ImplementingType WhereClause? ImplementationBody + + TraitImplementation ::= + $$unsafe$$? $$impl$$ GenericParameterList? $$!$$? ImplementedTrait $$for$$ ImplementingType WhereClause? ImplementationBody + + ImplementingType ::= + TypeSpecification + + ImplementedTrait ::= + TypePath + + ImplementationBody ::= + $${$$ + InnerAttributeOrDoc* + AssociatedItem* + $$}$$ + +.. rubric:: Legality Rules + +:dp:`fls_ivxpoxggy7s6` +An :t:`implementation` is an :t:`item` that supplements an +:t:`implementing type` by extending its functionality. + +:dp:`fls_yopmjbnw8tbl` +An :t:`implementing type` is the :t:`type` that the :t:`[associated item]s` of +an :t:`implementation` are associated with. + +:dp:`fls_eIHc8Y9fBtr0` +Within an :t:`implementation`, the :t:`type` :c:`Self` acts as a :t:`type alias` +for the :t:`implementing type`. + +:dp:`fls_Mcpdzzcw43M7` +An :t:`implementation body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of an :t:`implementation`. + +:dp:`fls_v0n0bna40dqr` +An :t:`inherent implementation` is an :t:`implementation` that adds direct +functionality. + +:dp:`fls_797etpdk5dyb` +:t:`[Inherent implementation]s` of the same :t:`implementing type` shall be +defined within the same :t:`crate`. + +:dp:`fls_ry3an0mwb63g` +A :t:`trait implementation` is an :t:`implementation` that adds functionality +specified by a :t:`trait`. + +:dp:`fls_8pwr7ibvhmhu` +An :t:`unsafe trait implementation` is a :t:`trait implementation` subject to +:t:`keyword` ``unsafe``. + +:dp:`fls_47x0ep8of8wr` +An :t:`implemented trait` is a :t:`trait` whose functionality has been +implemented by an :t:`implementing type`. + +:dp:`fls_agitlryvyc16` +The :t:`type path` of a :t:`trait implementation` shall resolve to a :t:`trait`. + +:dp:`fls_mx5xjcejwa6u` +A :t:`trait implementation` shall be an :t:`unsafe trait implementation` if and +only if it implements an :t:`unsafe trait`. + +:dp:`fls_z78dg261oob6` +:t:`[Trait implementation]s` are subject to :t:`implementation coherence` and +:t:`implementation conformance`. + +:dp:`fls_89yNjGNB7KI3` +:t:`[Inherent implementation]s` of the same :t:`implementing type` shall not +define more than one :t:`associated item` with the same :t:`name` in the same +:t:`namespace`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Shape { + fn area(self) -> f64; + } + +:dp:`fls_yuyesijndu9n` +``Circle`` is an implementing type. + +.. code-block:: rust + + struct Circle { + radius: f64 + } + +:dp:`fls_o62i75sjzp9y` +The following is an inherent implementation: + +.. code-block:: rust + + impl Circle { + fn set_radius(mut self, new_radius: f64) { + self.radius = new_radius; + } + } + +:dp:`fls_a2utf0tmuhy4` +The following is a trait implementation: + +.. code-block:: rust + + impl Shape for Circle { + fn area(self) -> f64 { + self.radius.powi(2) * std::f64::consts::PI + } + } + +.. _fls_46ork6fz5o2e: + +Implementation Coherence +------------------------ + +.. rubric:: Legality Rules + +:dp:`fls_fv1l4yjuut7p` +A :t:`trait implementation` exhibits :t:`implementation coherence` when it is +valid and does not overlap with another :t:`trait implementation`. + +:dp:`fls_swdusjwzgksx` +Two :t:`[trait implementation]s` of the same :t:`implemented trait` overlap when +the intersection of the :t:`[implementing type]s` is non-empty. + +:dp:`fls_ir7hp941ky8t` +Given :t:`trait implementation` +``impl Trait for T0``, the +:t:`trait implementation` is considered valid when + +* :dp:`fls_3tbm20k2ixol` + ``Trait`` is :t:`fundamental` or a :t:`local trait`, or + +* :dp:`fls_lscc9ileg3gm` + All of + + * :dp:`fls_9klwbsh3vlxu` + At least one of :t:`[type]s` ``T0, T1, .., TN`` is :T:`fundamental` or a + :t:`local type`, and + + * :dp:`fls_9gmc1tcscq9v` + No :t:`type parameter` of ``P1, P2, .., PN`` that is not used in another + :t:`type` may appear in the :t:`non-[local type]s` and + :t:`non-[fundamental]` :t:`[type]s` of ``T0, T1, .., TN``. + +:dp:`fls_UkQhjEWSJpDq` +A :t:`trait` or :t:`type` is :t:`fundamental` when its +:t:`implementation coherence` rules are relaxed and the :t:`trait` or :t:`type` +is always treated as if it was a :t:`local trait` or a :t:`local type`. + +:dp:`fls_fSybUG40hA5r` +The following :t:`[type]s` are :t:`fundamental`: + +* :dp:`fls_z8APl0CEF7a0` + :t:`[reference type]s` + +* :dp:`fls_RJJafhpVsi6M` + :std:`core::pin::Pin` + +.. + also `alloc::boxed::Box` + +:dp:`fls_dtUJxhNkl8Ty` +The following :t:`[trait]s` are :t:`fundamental`: + +* :dp:`fls_zJKovQrXQWdU` + :std:`core::ops::Fn` + +* :dp:`fls_V6R8yQtsqNyv` + :std:`core::ops::FnMut` + +* :dp:`fls_CpC6XQN1iWqU` + :std:`core::ops::FnOnce` + +* :dp:`fls_dj7YGw4e4i4H` + :std:`core::marker::Sized` + +:dp:`fls_koy70k770ayu` +A :t:`trait implementation` shall be coherent. + +.. _fls_e1pgdlv81vul: + +Implementation Conformance +-------------------------- + +.. rubric:: Legality Rules + +:dp:`fls_YyUSuAYG4lX6` +A :t:`trait implementation` exhibits :t:`implementation conformance` when it +satisfies the constraints of its :t:`implemented trait`. + +:dp:`fls_v31idwjau90d` +An :t:`associated trait constant` is conformant with an :t:`associated constant` +of an :t:`implemented trait` when + +* :dp:`fls_k3wfh5japmyw` + The :t:`[name]s` of both :t:`[associated constant]s` are the same, and + +* :dp:`fls_11qrqfuc3rmh` + The :t:`type` of the :t:`associated constant` in the :t:`implementation` is a + :t:`subtype` of the :t:`type` of the :t:`associated trait constant`. + +:dp:`fls_qmhduwunxww0` +An :t:`associated trait function` is conformant with an :t:`associated function` +of an :t:`implemented trait` when + +* :dp:`fls_2500ivh0cc3y` + The :t:`function signature` of the :t:`associated function` of the + :t:`implemented trait` is a :t:`subtype` of the :t:`function signature` of + the :t:`associated trait function`, and + +* :dp:`fls_18gimgfy0kw9` + The :t:`[bound]s` of the :t:`associated function` of the + :t:`implemented trait` are more general that the :t:`[bound]s` of the + :t:`associated trait function`. + +:dp:`fls_fi4qmauirlsm` +An :t:`associated type` of a :t:`trait implementation` is conformant with an +:t:`associated type` of an :t:`implemented trait` when + +* :dp:`fls_2s8lh3k4rw6u` + The :t:`[name]s` of both :t:`[type]s` are the same, and + +* :dp:`fls_bb874uu2alt3` + The :t:`type specification` of the :t:`associated type` of the + :t:`implemented trait` conforms to the :t:`[bound]s` of the + :t:`associated type` of the :t:`trait implementation`. + +:dp:`fls_so8em6rphkhv` +A :t:`trait implementation` is conformant with an :t:`implemented trait` when: + +* :dp:`fls_ldu9bmb9cy10` + The :t:`trait implementation` has a conformant :t:`associated constant` + for each :t:`associated constant` of the :t:`implemented trait`, unless the + :t:`associated constant` of the :t:`implemented trait` has a default value, + and + +* :dp:`fls_5cr6un2gzdft` + The :t:`trait implementation` has a conformant :t:`associated function` + for each :t:`associated function` of the :t:`implemented trait`, unless + the :t:`associated function` of the :t:`implemented trait` has a default + implementation in the :t:`implemented trait`, and + +* :dp:`fls_pshfe3ioh0mg` + The :t:`trait implementation` has a conformant :t:`associated type` for each + :t:`associated type` of the :t:`implemented trait`. + +:dp:`fls_8yq1g7nzv9px` +A :t:`trait implementation` shall be conformant. + diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 00000000..51edad6a --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,47 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +Ferrocene Language Specification +================================ + +.. toctree:: + :numbered: + :maxdepth: 2 + :caption: Contents: + + general + lexical-elements + items + types-and-traits + patterns + expressions + values + statements + functions + associated-items + implementations + generics + attributes + entities-and-resolution + ownership-and-deconstruction + exceptions-and-errors + concurrency + program-structure-and-compilation + unsafety + macros + ffi + inline-assembly + +.. appendices:: + :numbered: + :maxdepth: 1 + :caption: Appendices: + + licenses + glossary + undefined-behavior + +Indices and tables +------------------ + +* :ref:`search` diff --git a/_sources/inline-assembly.rst.txt b/_sources/inline-assembly.rst.txt new file mode 100644 index 00000000..9754da23 --- /dev/null +++ b/_sources/inline-assembly.rst.txt @@ -0,0 +1,1696 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_z1il3w9nulzy: + +Inline Assembly +=============== + +.. informational-section:: + +.. rubric:: Legality Rules + +:dp:`fls_leamdp1r3hez` +:t:`Inline assembly` is hand-written assembly code that is integrated into a +Rust program. + +:dp:`fls_3fg60jblx0xb` +:t:`Inline assembly` is written as an :t:`assembly code block` that is +wrapped inside a :t:`macro invocation` of :t:`macro` :std:`core::arch::asm` or +:t:`macro` :std:`core::arch::global_asm`. + +:dp:`fls_helnk2iz8qhp` +:t:`Inline assembly` is available on the following architectures: + +* :dp:`fls_vanmt2dv7hzd` + AArch64 + +* :dp:`fls_g8fuy1qnebxe` + ARM + +* :dp:`fls_2n9el98anp8c` + RISC-V + +* :dp:`fls_pnoh31rvu9a6` + x86 and x86-64 + +.. _fls_j9l8wn6wgm06: + +Registers +--------- + +.. rubric:: Syntax + +.. syntax:: + + RegisterName ::= + $$"$$ ExplicitRegisterName $$"$$ + | RegisterClassName + + ExplicitRegisterName ::= + $$a$$[$$0$$-$$31$$] + | $$ah$$ | $$al$$ | $$ax$$ + | $$b$$[$$0$$-$$31$$] + | $$bh$$ | $$bl$$ | $$bp$$ | $$bpl$$ | $$bx$$ + | $$ch$$ | $$cl$$ | $$cx$$ + | $$d$$[$$0$$-$$31$$] + | $$dh$$ | $$di$$ | $$dil$$ | $$dl$$ | $$dx$$ + | $$eax$$ | $$ebp$$ | $$ebx$$ | $$ecx$$ | $$edi$$ | $$edx$$ | $$eip$$ | $$esi$$ + | $$esp$$ + | $$f$$[$$0$$-$$31$$] + | $$fa$$[$$0$$-$$7$$] + | $$ffr$$ | $$fp$$ + | $$fs$$[$$0$$-$$11$$] + | $$ft$$[$$0$$-$$11$$] + | $$gp$$ + | $$h$$[$$0$$-$$31$$] + | $$ip$$ + | $$k$$[$$0$$-$$7$$] + | $$lr$$ + | $$m$$[$$0$$-$$7$$] + | $$p$$[$$0$$-$$15$$] + | $$pc$$ + | $$q$$[$$0$$-$$31$$] + | $$r$$[$$0$$-$$15$$] + | $$r$$[$$8$$-$$15$$]$$d$$ + | $$r$$[$$8$$-$$15$$]$$w$$ + | $$ra$$ | $$rax$$ + | $$rb$$[$$8$$-$$15$$] + | $$rbp$$ | $$rbx$$ | $$rcx$$ + | $$rdi$$ | $$rdx$$ | $$rfp$$ | $$rip$$ | $$rsi$$ | $$rsp$$ + | $$s$$[$$0$$-$$31$$] + | $$si$$ | $$sil$$ | $$sl$$ | $$sp$$ | $$spl$$ + | $$st($$[$$0$$-$$7$$]$$)$$ + | $$t$$[$$0$$-$$6$$] + | $$tmm$$[$$0$$-$$7$$] + | $$tp$$ + | $$v$$[$$0$$-$$31$$] + | $$w$$[$$0$$-$$31$$] + | $$wsp$$ | $$wzr$$ + | $$x$$[$$0$$-$$31$$] + | $$xmm$$[$$0$$-$$31$$] + | $$xzr$$ + | $$ymm$$[$$0$$-$$31$$] + | $$zero$$ + | $$zmm$$[$$0$$-$$31$$] + +.. rubric:: Legality Rules + +:dp:`fls_w5a6rybvptn6` +A :t:`register` is a hardware component capable of holding data that can be +read and written. + +:dp:`fls_rr8rsy7oilf0` +An :t:`input register` is a :t:`register` whose :t:`register name` is used in +a :t:`register argument` subject to :t:`direction modifier` ``in``, ``inout``, +or ``inlateout``. + +:dp:`fls_5ruu8n6r9mvp` +An :t:`output register` is a :t:`register` whose :t:`register name` is +used in a :t:`register argument` subject to :t:`direction modifier` ``out``, +``lateout``, ``inout``, or ``inlateout``. + +:dp:`fls_HV3Y1A2xn0zr` +A :t:`register` that is not specified as an :t:`output register` shall have the +same :t:`value` upon exit from an :t:`assembly code block` as it did upon entry +into the :t:`assembly code block`. + +:dp:`fls_vesfzh8h6qzu` +A :t:`register name` is either the :t:`explicit register name` of a +:t:`register`, or the :t:`register class name` of the :t:`register class` a +:t:`register` belongs to. + +:dp:`fls_ffwqxlh60i5w` +An :t:`explicit register name` is a target-specific string that identifies +a :t:`register`. + +:dp:`fls_3p8akc7gcsnx` +An :t:`explicit register name` may be aliased as follows: + +.. list-table:: + + * - :dp:`fls_7dlx7nt77xk` + - **Architecture** + - **Explicit register name** + - **Aliases** + * - :dp:`fls_w4z7yh5qyyed` + - AArch64 + - ``sp`` + - ``wsp`` + * - :dp:`fls_rzp8eg6z6x3q` + - AArch64 + - ``v[0-31]`` + - ``b[0-31]``, ``d[0-31]``, ``h[0-31]``, ``q[0-31]``, ``s[0-31]`` + * - :dp:`fls_e1w41918j49` + - AArch64 + - ``x[0-30]`` + - ``w[0-30]`` + * - :dp:`fls_q0s90h7xmnn4` + - AArch64 + - ``x29`` + - ``fp`` + * - :dp:`fls_3pt63w76isay` + - AArch64 + - ``x30`` + - ``lr`` + * - :dp:`fls_f3clxd3vidhh` + - AArch64 + - ``xzr`` + - ``wzr`` + * - :dp:`fls_vyeczg1cjxys` + - ARM + - ``r[0-3]`` + - ``a[1-4]`` + * - :dp:`fls_h5t153uhzoq3` + - ARM + - ``r[4-9]`` + - ``v[1-6]`` + * - :dp:`fls_jhph577nqds1` + - ARM + - ``r9`` + - ``rfp`` + * - :dp:`fls_mobj1y67vxvb` + - ARM + - ``r10`` + - ``sl`` + * - :dp:`fls_9ke412je1hqn` + - ARM + - ``r11`` + - ``fp`` + * - :dp:`fls_hndlas58937e` + - ARM + - ``r12`` + - ``ip`` + * - :dp:`fls_5x0yvjil3z8p` + - ARM + - ``r13`` + - ``sp`` + * - :dp:`fls_gxvlvnqs436h` + - ARM + - ``r14`` + - ``lr`` + * - :dp:`fls_mra7zuu7uzmb` + - ARM + - ``r15`` + - ``pc`` + * - :dp:`fls_maa7w0jwvat2` + - RISC-V + - ``f[0-7]`` + - ``ft[0-7]`` + * - :dp:`fls_az7kcaq70h4d` + - RISC-V + - ``f[8-9]`` + - ``fs[0-1]`` + * - :dp:`fls_xudmsflrhvo3` + - RISC-V + - ``f[10-17]`` + - ``fa[0-7]`` + * - :dp:`fls_px77cr1k8coy` + - RISC-V + - ``f[18-27]`` + - ``fs[2-11]`` + * - :dp:`fls_y1m7tlqk2dv7` + - RISC-V + - ``f[28-31]`` + - ``ft[8-11]`` + * - :dp:`fls_3dqq9319okv5` + - RISC-V + - ``x0`` + - ``zero`` + * - :dp:`fls_5l9qo5c0gek8` + - RISC-V + - ``x1`` + - ``ra`` + * - :dp:`fls_1m68zqsxjuyp` + - RISC-V + - ``x2`` + - ``sp`` + * - :dp:`fls_bck9slu4hsn1` + - RISC-V + - ``x3`` + - ``gp`` + * - :dp:`fls_3x72q39c8iwt` + - RISC-V + - ``x4`` + - ``tp`` + * - :dp:`fls_yfbrla8c801g` + - RISC-V + - ``x[5-7]`` + - ``t[0-2]`` + * - :dp:`fls_3nuf1gcldamv` + - RISC-V + - ``x8`` + - ``fp``, ``s0`` + * - :dp:`fls_nquf1uaoezx6` + - RISC-V + - ``x9`` + - ``s1`` + * - :dp:`fls_91oeyxc75vu5` + - RISC-V + - ``x[10-17]`` + - ``a[0-7]`` + * - :dp:`fls_r5btazdpwqtw` + - RISC-V + - ``x[18-27]`` + - ``s[2-11]`` + * - :dp:`fls_vpibsan8aful` + - RISC-V + - ``x[28-31]`` + - ``t[3-6]`` + * - :dp:`fls_lj6xcaaecokk` + - x86 + - ``ax`` + - ``eax``, ``rax`` + * - :dp:`fls_bb1qjfin4zjc` + - x86 + - ``bp`` + - ``bpl``, ``ebp``, ``rbp`` + * - :dp:`fls_7qj6pxuq2x9e` + - x86 + - ``bx`` + - ``ebx``, ``rbx`` + * - :dp:`fls_2xkw4nqt1s5a` + - x86 + - ``cx`` + - ``ecx``, ``rcx`` + * - :dp:`fls_dpzi4ygox7jw` + - x86 + - ``di`` + - ``edi``, ``rdi`` + * - :dp:`fls_yr5ztipvgezk` + - x86 + - ``dx`` + - ``edx``, ``rdx`` + * - :dp:`fls_n8ccafjut1yd` + - x86 + - ``ip`` + - ``eip``, ``rip`` + * - :dp:`fls_iv23mcgw6l3r` + - x86 + - ``r[8-15]`` + - ``r[8-15]b``, ``r[8-15]d``, ``r[8-15]w`` + * - :dp:`fls_yr7bac5k3uk7` + - x86 + - ``si`` + - ``esi``, ``rsi`` + * - :dp:`fls_gvb2zcrseqci` + - x86 + - ``sp`` + - ``esp``, ``rsp``, ``spl`` + * - :dp:`fls_z1b9nf49nbjh` + - x86 + - ``st(0)`` + - ``st`` + * - :dp:`fls_etfkcesnrlwt` + - x86 + - ``xmm[0-31]`` + - ``ymm[0-31]``, ``zmm[0-31]`` + +:dp:`fls_8sqzva4ibf0i` +Certain :t:`[explicit register name]s` are not supported on selected +architectures, as follows: + +.. list-table:: + + * - :dp:`fls_8bo9p6mybuzi` + - **Architecture** + - **Explicit register name** + - **Reason** + * - :dp:`fls_dk4z9dracvps` + - all + - ``sp`` + - The stack pointer must be restored to its original value on exit from an + :t:`assembly code block`. + * - :dp:`fls_7c7lgvw8gbkb` + - AArch64 + - ``x18`` + - OS-reserved register on some AArch64 targets. + * - :dp:`fls_sb0ffx31gul9` + - AArch64 + - ``x19`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_f9psgjl6ervm` + - AArch64 + - ``x29`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_3y3b7znxznzu` + - AArch64 + - ``xzr`` + - The constant zero :t:`register` cannot be modified. + * - :dp:`fls_7y201ev5b0mq` + - ARM + - ``pc`` + - The program counter cannot be modified. + * - :dp:`fls_r2aoetnwhjkf` + - ARM + - ``r6`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_54n4ie3frc39` + - ARM + - ``r7``, ``r11`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_iok8gc906tc8` + - ARM + - ``r9`` + - OS-reserved :t:`register` on some ARM targets. + * - :dp:`fls_2mgjkyngbmbr` + - RISC-V + - ``gp``, ``tp`` + - Reserved :t:`[register]s`. + * - :dp:`fls_6tlnpguf23y3` + - RISC-V + - ``x0`` + - The constant zero :t:`register` cannot be modified. + * - :dp:`fls_bz5xyv89i5m7` + - RISC-V + - ``x8`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_soitzjqze3rf` + - RISC-V + - ``x9`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_b2c02r5y6zm9` + - x86 + - ``bp`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_2ufm8y5ttcxf` + - x86 + - ``ip`` + - The program counter cannot be modified. + * - :dp:`fls_ub321ic94bbl` + - x86-32 + - ``si`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_gtwmwsmyrdxe` + - x86-64 + - ``bx`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + +:dp:`fls_vy8alu9yuza9` +It is a static error to use an unsupported :t:`explicit register name`. + +.. rubric:: Undefined Behavior + +:dp:`fls_zEtLZ5KjQcHS` +It is undefined behavior if a :t:`register` that is not specified as an +:t:`output register` has a different :t:`value` upon exit from an +:t:`assembly code block` from the :t:`value` it had upon entry into the +:t:`assembly code block`. + +.. _fls_pz2ioqchjtym: + +Register Classes +---------------- + +.. rubric:: Syntax + +.. syntax:: + + RegisterClassName ::= + $$dreg$$ + | $$dreg_low16$$ + | $$dreg_low8$$ + | $$freg$$ + | $$kreg$$ + | $$kreg0$$ + | $$mmx_reg$$ + | $$preg$$ + | $$qreg$$ + | $$qreg_low4$$ + | $$qreg_low8$$ + | $$reg$$ + | $$reg_abcd$$ + | $$reg_byte$$ + | $$sreg$$ + | $$sreg_low16$$ + | $$tmm_reg$$ + | $$vreg$$ + | $$vreg_low16$$ + | $$x86_reg$$ + | $$xmm_reg$$ + | $$ymm_reg$$ + | $$zmm_reg$$ + +.. rubric:: Legality Rules + +:dp:`fls_7gxb7ztpuofj` +A :t:`register class` represents a set of :t:`[register]s`. + +:dp:`fls_on0i2cpk254y` +A :t:`register class name` is a target-specific string that identifies a +:t:`register class`. + +:dp:`fls_40ksem5g5xx9` +:t:`[Register]s` are organized into :t:`[register class]es` as follows: + +.. list-table:: + + * - :dp:`fls_fqvjk6caipq` + - **Architecture** + - **Register class name** + - **Explicit register names** + * - :dp:`fls_u0ie66ep3glg` + - AArch64 + - ``preg`` + - ``p[0-15]``, ``ffr`` + * - :dp:`fls_wcvcansd88je` + - AArch64 + - ``reg`` + - ``x[0-30]`` + * - :dp:`fls_sbllpky4d7ka` + - AArch64 + - ``vreg`` + - ``v[0-31]`` + * - :dp:`fls_nmx5xs829ms` + - AArch64 + - ``vreg_low16`` + - ``v[0-15]`` + * - :dp:`fls_nars4y8tv2w6` + - ARM / Thumb2 + - ``reg`` + - ``r[0-12]``, ``r14`` + * - :dp:`fls_b5juxguclqjs` + - ARM / Thumb1 + - ``reg`` + - ``r[0-7]`` + * - :dp:`fls_vmigixoxm5uf` + - ARM + - ``dreg`` + - ``d[0-31]`` + * - :dp:`fls_vdqtbc4t69v2` + - ARM + - ``dreg_low8`` + - ``d[0-8]`` + * - :dp:`fls_t2d77dazjyjo` + - ARM + - ``dreg_low16`` + - ``d[0-15]`` + * - :dp:`fls_jh02uk3ypett` + - ARM + - ``qreg`` + - ``q[0-15]`` + * - :dp:`fls_rjk5laiyqagy` + - ARM + - ``qreg_low4`` + - ``q[0-3]`` + * - :dp:`fls_26bq6wbwznx` + - ARM + - ``qreg_low8`` + - ``q[0-8]`` + * - :dp:`fls_6d25i0lkzd7u` + - ARM + - ``sreg`` + - ``s[0-31]`` + * - :dp:`fls_y52suhleyid2` + - ARM + - ``sreg_low16`` + - ``s[0-15]`` + * - :dp:`fls_7b7c8xtm8fr7` + - RISC-V + - ``freg`` + - ``f[0-31]`` + * - :dp:`fls_ue0se3dcop6w` + - RISC-V + - ``reg`` + - ``x1``, ``x[0-7]``, ``x[9-15]``, ``x[16-31]`` (on non-RV32E) + * - :dp:`fls_2m49cyfqffvo` + - RISC-V + - ``vreg`` + - ``v[0-31]`` + * - :dp:`fls_mj1t0f9lp6v8` + - x86 + - ``kreg`` + - ``k[1-7]`` + * - :dp:`fls_tpkkubhjt7lk` + - x86 + - ``kreg0`` + - ``k0`` + * - :dp:`fls_ivq874v4lmga` + - x86 + - ``mmx_reg`` + - ``mm[0-7]`` + * - :dp:`fls_2wdcrocczwyi` + - x86 + - ``reg`` + - ``ax``, ``bp``, ``bx``, ``cx``, ``di``, ``dx``, ``r[8-15]``, ``si`` + * - :dp:`fls_v04te7p28dth` + - x86 + - ``reg_abcd`` + - ``ax``, ``bx``, ``cx``, ``dx`` + * - :dp:`fls_uypct69j2h6a` + - x86 + - ``x87_reg`` + - ``st([0-7])`` + * - :dp:`fls_gyet9huf6nr` + - x86 + - ``xmm_reg`` + - ``xmm[0-7]``, ``xmm[8-15]`` (on 64bit only) + * - :dp:`fls_5ekbq9hacho9` + - x86 + - ``ymm_reg`` + - ``ymm[0-7]``, ``ymm[8-15]`` (on 64bit only) + * - :dp:`fls_furnyxmwqn09` + - x86 + - ``zmm_reg`` + - ``zmm[0-7]``, ``zmm[8-15]`` (on 64bit only) + * - :dp:`fls_1c4ts991vkpq` + - x86-32 + - ``reg_byte`` + - ``ah``, ``al``, ``bh``, ``bl``, ``ch``, ``cl``, ``dh``, ``dl`` + * - :dp:`fls_iwnb72jb9iwj` + - x86-64 + - ``reg_byte`` + - ``al``, ``bl``, ``bpl``, ``cl``, ``dil``, ``dl``, ``sil``, ``r[8-15]b`` + * - :dp:`fls_mw3axoixjgnq` + - x86-64 + - ``tmm_reg`` + - ``tmm[0-7]`` + +:dp:`fls_mnzt6bxhycv9` +If a :t:`value` has a smaller size than the :t:`register` it is allocated in, +then + +* :dp:`fls_drg7v8hxb5ca` + On RISC-V architectures, if the :t:`register` belongs to :t:`register class` + ``freg``, then :c:`f32` :t:`[value]s` are :t:`NaN-boxed `. in a + :c:`f64` :t:`value`. + +* :dp:`fls_78gb8z1fyluc` + Otherwise, for an :t:`input register`, the upper bits of the :t:`register` + have an undefined :t:`value`. + +* :dp:`fls_7dii7lee457t` + Otherwise, for an :t:`output register`, the upper bits are ignored. + +:dp:`fls_ujhjocg1361b` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and an +:t:`input-output register expression`, then the :t:`input register expression` +and the :t:`output register expression` shall have the same :t:`type`. + +.. _fls_hejgghwzblf: + +Register Arguments +------------------ + +.. rubric:: Syntax + +.. syntax:: + + RegisterArgument ::= + (Identifier $$=$$)? DirectionModifier $$($$ RegisterName $$)$$ RegisterExpression + + DirectionModifier ::= + $$in$$ + | $$inlateout$$ + | $$inout$$ + | $$lateout$$ + | $$out$$ + + RegisterExpression ::= + InputOutputRegisterExpression + | SimpleRegisterExpression + + InputOutputRegisterExpression ::= + InputRegisterExpression $$=>$$ OutputRegisterExpression + | InputRegisterExpression $$=>$$ UnderscoreExpression + + InputRegisterExpression ::= + Expression + + OutputRegisterExpression ::= + Expression + + SimpleRegisterExpression ::= + Expression + | UnderscoreExpression + +.. rubric:: Legality Rules + +:dp:`fls_455dmnp4cxqv` +A :t:`register argument` is a :t:`construct` that configures the input +and output of a :t:`register`, and optionally binds the configuration to an +:t:`identifier`. + +:dp:`fls_6bv3s8be5xif` +A :t:`register argument` shall be used within an :t:`assembly instruction`. + +:dp:`fls_uddjvkz4g899` +A :t:`named register argument` is a :t:`register argument` whose configuration +is bound to an :t:`identifier`. + +:dp:`fls_sqs5to20p0te` +A :t:`positional register argument` is a :t:`register argument` whose +configuration is not bound to an :t:`identifier`. + +:dp:`fls_dzlycyk24euk` +A :t:`named register argument` shall appear after a +:t:`positional register argument`. + +:dp:`fls_ics6gdzww1p` +An :t:`explicit register argument` is a :t:`register argument` that uses an +:t:`explicit register name`. + +:dp:`fls_mmc1w8jjr55r` +An :t:`explicit register argument` shall appear after a +:t:`named register argument`. + +:dp:`fls_9hhtcey2d4t6` +A :t:`register class argument` is a :t:`register argument` that uses a +:t:`register class name`. + +:dp:`fls_8aynifgq02gt` +A :t:`register class argument` causes an assembler to select a suitable +:t:`register` from the related :t:`register class`. + +:dp:`fls_5a3vfresnv5z` +A :t:`direction modifier` is a :t:`construct` that indicates whether a +:t:`register argument` initializes a :t:`register`, assigns the :t:`value` of a +:t:`register` to an :t:`expression`, or both. + +:dp:`fls_fta1gb5tzi3a` +An :t:`input register expression` is an :t:`expression` that provides the +initial :t:`value` of a :t:`register`. + +:dp:`fls_sopiivuae0x7` +An :t:`output register expression` is an :t:`expression` that is assigned the +:t:`value` of a :t:`register`. + +:dp:`fls_kkrcyk96w8x1` +An :t:`input-output register expression` is a :t:`construct` that specifies +both an :t:`input register expression` and an :t:`output register expression`. + +:dp:`fls_aniw4ehsn2kb` +A :t:`simple register expression` is either an :t:`expression` or an +:t:`underscore expression`. + +:dp:`fls_vu30cuq4y0ht` +A :t:`register expression` is either an :t:`input-output register expression` +or a :t:`simple register expression`. + +:dp:`fls_66owmltvhnu4` +The :t:`type` of an :t:`input register expression`, +:t:`output register expression`, or :t:`simple register expression` shall +depend on the architecture and the target feature in effect, as follows: + +.. list-table:: + + * - :dp:`fls_72p8e4bo6pns` + - **Architecture** + - **Register class name** + - **Target feature** + - **Allowed types** + * - :dp:`fls_z0dbmmp5yblf` + - AArch64 + - ``preg`` + - n/a + - Only clobbers + * - :dp:`fls_4jdnt8uap95i` + - AArch64 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_wd2hzsbzdg2y` + - AArch64 + - ``vreg`` + - ``neon`` + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_sqy00lg5j7c6` + - ARM + - ``dreg`` + - ``vfp2`` + - :c:`i64`, :c:`f64` + * - :dp:`fls_vxba1ttvz6hh` + - ARM + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_xkbnla2avrn0` + - ARM + - ``sreg`` + - ``vfp2`` + - :c:`i32`, :c:`f32` + * - :dp:`fls_w6jhcv616l9o` + - RISC-V + - ``freg`` + - ``f`` + - :c:`f32` + * - :dp:`fls_xweobiwapog1` + - RISC-V + - ``freg`` + - ``d`` + - :c:`f64` + * - :dp:`fls_4matyejw6cls` + - RISC-V + - ``vreg`` + - n/a + - Only clobbers + * - :dp:`fls_hklqabav1jju` + - RISC-V32 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_nq22h8gragil` + - RISC-V64 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_uxgcrs57bznk` + - x86 + - ``kreg`` + - ``avx512f`` + - :c:`i8`, :c:`i16` + * - :dp:`fls_ym05938ejwng` + - x86 + - ``kreg`` + - ``avx512bw`` + - :c:`i32`, :c:`i64` + * - :dp:`fls_5l77g8h8et2o` + - x86 + - ``mmx_reg`` + - n/a + - Only clobbers + * - :dp:`fls_xlcliuums5b0` + - x86 + - ``reg_byte`` + - none + - :c:`i8` + * - :dp:`fls_5p4hyl7mxgai` + - x86 + - ``tmm_reg`` + - n/a + - Only clobbers + * - :dp:`fls_ilepg263w5o7` + - x86 + - ``x87_reg`` + - n/a + - Only clobbers + * - :dp:`fls_tubmavru8wvn` + - x86 + - ``xmm_reg`` + - ``sse`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_b1xi3u9k4pdl` + - x86 + - ``ymm_reg`` + - ``avx`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_i9ds6724tv20` + - x86 + - ``zmm_reg`` + - ``avx512f`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_trldyekxxlzx` + - x86-32 + - ``reg`` + - none + - :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_efmpbyi4qjmf` + - x86-64 + - ``reg`` + - none + - :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + +:dp:`fls_4x3w50w7qm8w` +If a :t:`register argument` has :t:`direction modifier` ``in`` and a +:t:`simple register expression`, then + +* :dp:`fls_6cne58tlquze` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`simple register expression`. + +* :dp:`fls_5w718fne9jsh` + On exit from an :t:`assembly code block`, the :t:`register` shall contain + the same :t:`value`, unless the :t:`register` is subject to + :t:`direction modifier` ``lateout``. + +:dp:`fls_tel7kogaqytg` +If a :t:`register argument` has :t:`direction modifier` ``out`` and a +:t:`simple register expression`, then + +* :dp:`fls_aw61psz5drg8` + Upon entry of an :t:`assembly code block`, the :t:`register` contains an + undefined :t:`value`. + +* :dp:`fls_sv2x3x81b32j` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the :t:`simple register expression`. The + :t:`simple register expression` shall be a :t:`place expression`. + +* :dp:`fls_nebb0nhxf5ix` + If the :t:`simple register expression` is an :t:`underscore expression`, then + the :t:`value` of the :t:`register` is discarded. + +:dp:`fls_j0pxc8g8kcxm` +If a :t:`register argument` has :t:`direction modifier` ``lateout`` and a +:t:`simple register expression`, then the :t:`register argument` behaves as a +:t:`register argument` with :t:`direction modifier` ``out``, except that the +:t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_wwh6xyclxwqj` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and a +:t:`simple register expression`, then + +* :dp:`fls_qcb47z1ap9dz` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`simple register expression`. + +* :dp:`fls_h01au4vk8mjd` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the place indicated by the :t:`simple register expression`. + The :t:`simple register expression` shall be a :t:`mutable place expression`. + +:dp:`fls_92ijsf4p6yn` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and an +:t:`input-output register expression`, then + +* :dp:`fls_xkui7j3gnfg0` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`input register expression`. + +* :dp:`fls_eahyqniqs2pn` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the place indicated by the :t:`output register expression`. + The :t:`output register expression` shall be a :t:`place expression`. + +* :dp:`fls_5g7p2zo07gfe` + If the :t:`output register expression` is an :t:`underscore expression`, then + the :t:`value` of the :t:`register` is discarded. + +:dp:`fls_dobbatnjs0yt` +If a :t:`register argument` has :t:`direction modifier` ``inlateout`` and a +:t:`simple register expression`, then the :t:`register argument` behaves as a +:t:`register argument` with :t:`direction modifier` ``inout``, except that the +:t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_ax8t4uta34ym` +If a :t:`register argument` has :t:`direction modifier` ``inlateout`` and an +:t:`input-output register expression`, then the :t:`register argument` behaves +as a :t:`register argument` with :t:`direction modifier` ``inout``, except that +the :t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_dvft4ha00wj3` +It is a static error to specify a :t:`register argument` with +:t:`direction modifier` and :t:`register expression` other than the +combinations listed above. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2ekwpx2bwj1b` +The :t:`evaluation` of a :t:`register argument` proceeds as follows: + +* :dp:`fls_3s2n9dlrlhz9` + If a :t:`register argument` has an :t:`input-output register expression`, + then + + #. :dp:`fls_nbkkz6krcngi` + The :t:`input register expression` is evaluated. + + #. :dp:`fls_utrvenwrettz` + The :t:`output register expression` is evaluated. + +* :dp:`fls_n85sjh925x` + If a :t:`register argument` has a :t:`simple register expression`, then the + :t:`simple register expression` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let mut left_value: i32 = 1; + let right_value: i32 = 2; + + unsafe { + asm!( + "add {left} {right}", + left = inout(reg) left_value, + right = in(reg) right_value, + ); + } + +.. _fls_e0896uk0mdyl: + +Assembly Instructions +--------------------- + +.. rubric:: Syntax + +.. syntax:: + + AssemblyCodeBlock ::= + AssemblyInstruction ($$,$$ AssemblyInstruction)* + + AssemblyInstruction ::= + StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_4jr7eg6e0g4w` +An :t:`assembly instruction` is a :t:`string literal` that represents a +low-level assembly operation or an :t:`assembly directive`. + +:dp:`fls_ihjhpy4osl53` +An :t:`assembly instruction` shall use the syntax of format strings as +defined in :t:`module` :std:`std::fmt`, and contain zero or more +:t:`[register parameter]s`. + +:dp:`fls_2d05gcixjrzt` +An :t:`assembly code block` is a sequence of :t:`[assembly instruction]s`. + +:dp:`fls_z64f094aivp6` +When an :t:`assembly code block` contains multiple :t:`[assembly instruction]s`, +the :t:`[assembly instruction]s` are treated as concatenated into a single +:t:`string literal`, with character 0x0A (new line) between them. + +:dp:`fls_u8lifqig90gq` +The set of memory locations that an :t:`assembly code block` is allowed to +read and write are the same as those for an :t:`external function`, excluding +the memory locations that are private to the :t:`assembly code block`. + +:dp:`fls_lfeun3er5sc9` +A tool is not required to guarantee that an :t:`assembly code block` appears +exactly once in the final assembly output. + +:dp:`fls_mmdmymljq8a3` +A tool is not required to guarantee that two :t:`[assembly code block]s` +appear in the same declarative order in the final assembly output, or appear +contiguously in successive addresses. + +:dp:`fls_xugsn2ghh73c` +A :t:`register parameter` is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +:t:`register argument` in an :t:`assembly instruction`. + +:dp:`fls_opnxq5kyw9jo` +On x86 architectures, direction flag ``DF`` in :t:`register` ``EFLAGS`` shall +be cleared on exit from an :t:`assembly code block`. + +.. rubric:: Undefined Behavior + +:dp:`fls_wydu9yft7a3r` +On x86 architectures, it is undefined behavior if direction flag ``DF`` in +:t:`register` ``EFLAGS`` remains set on exit from an :t:`assembly code block`. + +.. rubric:: Examples + +.. code-block:: rust + + "shl {value} 2" + +.. _fls_lv19xysy1f7e: + +Register Parameter Modifiers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_2xilifichdqu` +A :t:`register parameter modifier` is a substring that starts with character +0x3A (colon), follows a :t:`register parameter`, and changes the formatting of +the related :t:`register parameter`. + +:dp:`fls_o3fx9397ib74` +The effects of a :t:`register parameter modifier` depends on the architecture +and :t:`register class`, as follows: + +.. list-table:: + + * - :dp:`fls_3atrad53m22a` + - **Architecture** + - **Register class** + - **Modifier** + - **Example output** + * - :dp:`fls_5zaqgz9jc8gy` + - AArch64 + - ``reg`` + - none + - ``x0`` + * - :dp:`fls_erjczjotwqc3` + - AArch64 + - ``reg`` + - **:w** + - ``w0`` + * - :dp:`fls_z8m45i9xqkct` + - AArch64 + - ``reg`` + - **:x** + - ``x0`` + * - :dp:`fls_adaavz3olha3` + - AArch64 + - ``vreg`` + - none + - ``v0`` + * - :dp:`fls_u5dzca5f2pfm` + - AArch64 + - ``vreg`` + - **:b** + - ``b0`` + * - :dp:`fls_6542a2hi5yhc` + - AArch64 + - ``vreg`` + - **:d** + - ``d0`` + * - :dp:`fls_94thqwabspw2` + - AArch64 + - ``vreg`` + - **:h** + - ``h0`` + * - :dp:`fls_xhp8xu8xvvgd` + - AArch64 + - ``vreg`` + - **:q** + - ``q0`` + * - :dp:`fls_g0p2ebuffnxb` + - AArch64 + - ``vreg`` + - **:s** + - ``s0`` + * - :dp:`fls_d0e2weni8q87` + - AArch64 + - ``vreg`` + - **:v** + - ``v0`` + * - :dp:`fls_bq3p4k42tzh8` + - ARM + - ``dreg`` + - none + - ``d0`` + * - :dp:`fls_l5mkfdot97fz` + - ARM + - ``qreg`` + - none + - ``q0`` + * - :dp:`fls_sarl1hoq0lco` + - ARM + - ``qreg`` + - **:e**, **:f** + - ``d0``, ``d1`` + * - :dp:`fls_f4q9a0jrs4ek` + - ARM + - ``reg`` + - none + - ``r0`` + * - :dp:`fls_w0hn6vkpuvpc` + - ARM + - ``sreg`` + - none + - ``s0`` + * - :dp:`fls_a7bvkyh5otx5` + - RISC-V + - ``freg`` + - none + - ``f0`` + * - :dp:`fls_klthi4cczkem` + - RISC-V + - ``reg`` + - none + - ``x1`` + * - :dp:`fls_pizgnxvcnj46` + - x86 + - ``kreg`` + - none + - ``k1`` + * - :dp:`fls_pvzfiuxka6wg` + - x86 + - ``reg`` + - **:e** + - ``eax`` + * - :dp:`fls_pf8yj3m81wk4` + - x86 + - ``reg`` + - **:x** + - ``ax`` + * - :dp:`fls_2bf3ady2idq1` + - x86 + - ``reg_abcd`` + - **:h** + - ``ah`` + * - :dp:`fls_x1se4r75v58o` + - x86 + - ``reg_byte`` + - none + - ``al`` / ``ah`` + * - :dp:`fls_rgovn5r3caif` + - x86 + - ``xmm_reg`` + - none + - ``xmm0`` + * - :dp:`fls_faxm8xkhruvz` + - x86 + - ``ymm_reg`` + - none + - ``ymm0`` + * - :dp:`fls_x1kkkvugpkyd` + - x86 + - ``zmm_reg`` + - none + - ``zmm0`` + * - :dp:`fls_uonqmj16oqxe` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:x** + - ``xmm0`` + * - :dp:`fls_ydhwlp56vmrz` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:y** + - ``ymm0`` + * - :dp:`fls_yolqzfqbfjoh` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:z** + - ``zmm0`` + * - :dp:`fls_ojzzhoed6t9l` + - x86-32 + - ``reg`` + - none + - ``eax`` + * - :dp:`fls_gw56ok8llid3` + - x86-32 + - ``reg_abcd`` + - **:l** + - ``al`` + * - :dp:`fls_ry7qoosmjrev` + - x86-64 + - ``reg`` + - none + - ``rax`` + * - :dp:`fls_i0ax45x2wskd` + - x86-64 + - ``reg`` + - **:l** + - ``al`` + * - :dp:`fls_op4dx1rqwhsf` + - x86-64 + - ``reg`` + - **:r** + - ``rax`` + +.. rubric:: Examples + +.. code-block:: rust + + let mut left_value: i32 = 1; + let right_value: i32 = 2; + + unsafe { + asm!( + "add {left}:e {right}:x", + left = inout(reg) left_value, + right = in(reg) right_value, + ); + } + +.. _fls_6momhvgx4w21: + +Directive Support +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4tfod2vgz2m6` +An :t:`assembly directive` is a request to the assembler to perform a +particular action or change a setting. + +:dp:`fls_3b0ab1nlo641` +If an :t:`assembly code block` contains stateful :t:`[assembly directive]s` +that modify how subsequent assembly code is processed, then the +:t:`assembly code block` shall undo the effects of the stateful +:t:`[assembly directive]s` before the :t:`assembly code block` is completed. + +:dp:`fls_caqznttql5p8` +The common :t:`[assembly directive]s` are as follows: + +#. :dp:`fls_bcheqswo7a1` + ``.2byte``, ``.4byte``, ``.8byte`` + +#. :dp:`fls_qxcl999rdwam` + ``.align``, ``.ascii``, ``.asciz``, ``.alt_entry`` + +#. :dp:`fls_2yi7kjnhkfme` + ``.balign``, ``.balignl``, ``.balignw``, ``.balign``, ``.balignl``, + ``.balignw``, ``.bss``, ``.byte`` + +#. :dp:`fls_q0jp60aj81nv` + ``.comm`` + +#. :dp:`fls_akny3esj88yy` + ``.data``, ``.def``, ``.double`` + +#. :dp:`fls_9jajt7jn9cxk` + ``.endef``, ``.equ``, ``.equiv``, ``.eqv`` + +#. :dp:`fls_i7dr87fyrei8` + ``.fill``, ``.float`` + +#. :dp:`fls_rjzgpxt8z8x` + ``.globl``, ``.global`` + +#. :dp:`fls_iqrjkvgae5k` + ``.inst`` + +#. :dp:`fls_tzb5diegx3d5` + ``.lcomm``, ``.long`` + +#. :dp:`fls_82nia9oagat` + ``.octa``, ``.option`` + +#. :dp:`fls_qg6wt4plwnw6` + ``.private_extern``, ``.p2align``, ``.pushsection``, ``.popsection`` + +#. :dp:`fls_8ci8ukk25nz3` + ``.quad`` + +#. :dp:`fls_ysbaz052rjg4` + ``.scl``, ``.section``, ``.set``, ``.short``, ``.size``, ``.skip``, + ``.sleb128``, ``.space``, ``.string`` + +#. :dp:`fls_lbazk0g9r350` + ``.text``, ``.type`` + +#. :dp:`fls_2dui79hn30o7` + ``.uleb128`` + +#. :dp:`fls_qzwyjj6xxwc2` + ``.word`` + +:dp:`fls_9flwdfh5crsk` +The following :t:`[assembly directive]s` are relevant on ELF targets that +support DWARF unwind info. + +#. :dp:`fls_u1c09ssrllil` + ``.cfi_adjust_cfa_offset`` + +#. :dp:`fls_tx58qbvh3jz3` + ``.cfi_def_cfa``, ``.cfi_def_cfa_offset``, ``.cfi_def_cfa_register`` + +#. :dp:`fls_anwe21ypcjws` + ``.cfi_endproc``, ``.cfi_escape`` + +#. :dp:`fls_43rchr5ffxsv` + ``.cfi_lsda`` + +#. :dp:`fls_rscmbo3kbrsm` + ``.cfi_offset`` + +#. :dp:`fls_hnol9houwn1f` + ``.cfi_personality`` + +#. :dp:`fls_es1lo6siw702` + ``.cfi_register``, ``.cfi_rel_offset``, ``.cfi_remember_state``, + ``.cfi_restore``, ``.cfi_restore_state``, ``.cfi_return_column`` + +#. :dp:`fls_xlk7kd26j2rm` + ``.cfi_same_value``, ``.cfi_sections``, ``.cfi_signal_frame``, + ``.cfi_startproc`` + +#. :dp:`fls_x9kaplz9g1z9` + ``.cfi_undefined`` + +#. :dp:`fls_928ermlgde11` + ``.cfi_window_save`` + +:dp:`fls_49bkqmxwl0d2` +The following :t:`[assembly directive]s` are relevant on targets with +structured exception handling. + +#. :dp:`fls_xlvkpe975b58` + ``.seh_endproc``, ``.seh_endprologue`` + +#. :dp:`fls_k3sy1ph0kvy` + ``.seh_proc``, ``.seh_pushreg`` + +#. :dp:`fls_ku6noqc0poxq` + ``.seh_savereg``, ``.seh_setframe``, ``.seh_stackalloc`` + +:dp:`fls_hny0patop479` +The following :t:`[assembly directive]s` are relevant on ARM targets. + +#. :dp:`fls_jm61m237cww` + ``.code`` + +#. :dp:`fls_wvje5eua16xm` + ``.even`` + +#. :dp:`fls_frxn2f6v584d` + ``.fnstart``, ``.fnend`` + +#. :dp:`fls_x6azw3td92b3` + ``.movsp`` + +#. :dp:`fls_twerrggztho5` + ``.save`` + +#. :dp:`fls_s4cbxrc4ijyp` + ``.thumb``, ``.thumb_func`` + +:dp:`fls_2hdsgqko25l5` +The following :t:`[assembly directive]s` are relevant on x86 targets. + +#. :dp:`fls_5tzwwove8mgq` + ``.code16``, ``.code32``, ``.code64`` + +#. :dp:`fls_e6nvq9xygvh` + ``.nops`` + +.. _fls_a3joqzqp1v9d: + +ABI Clobbers +------------ + +.. rubric:: Syntax + +.. syntax:: + + AbiClobber ::= + $$clobber_abi$$ $$($$ AbiKindList $$)$$ + + AbiKindList ::= + AbiKind ($$,$$ AbiKind)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_xa11ggykg0sh` +An :t:`ABI clobber` is an argument to :t:`macro` :std:`core::arch::asm` which +indicates that the :t:`[value]s` of selected :t:`[register]s` might be +overwritten during the :t:`execution` of an :t:`assembly code block`. + +:dp:`fls_e43sj9inlsym` +Multiple :t:`[ABI clobber]s` may be specified for an :t:`assembly code block`. +Clobber constraints are applied for all unique :t:`[register]s` in the union of +all specified :t:`[ABI]s`. + +:dp:`fls_gq2khxl1hixg` +The effects of an :t:`ABI clobber` depend on the :t:`ABI` in effect, as follows: + +.. list-table:: + + * - :dp:`fls_o2qn842y0vvc` + - **Architecture** + - :s:`AbiKind` + - **Clobbered registers** + * - :dp:`fls_msysjt5m2941` + - AArch64 + - ``"C"``, ``"efiapi"``, ``"system"`` + - ``ffr``, ``p[0-15]``, ``v[0-31]``, ``x[0-17]``, ``x18`` (when not + reserved), ``x30`` + * - :dp:`fls_vyhl5po6pl4x` + - ARM + - ``"aapcs"``, ``"C"``, ``"efiapi"``, ``"system"`` + - ``d[0-7]``, ``d[16-31]``, ``r[0-3]``, ``r12``, ``r14``, ``s[0-15]`` + * - :dp:`fls_d1be48ik4a8` + - RISC-V + - ``"C"``, ``"efiapi"``, ``"system"`` + - ``f[0-7]``, ``f[10-17]``, ``f[28-31]``, ``v[0-31]``, ``x1``, ``x[5-7]``, + ``x[10-17]``, ``x[28-31]`` + * - :dp:`fls_49pus6qqmf72` + - x86-32 + - ``"C"``, ``"cdecl"``, ``"efiapi"``, ``"fastcall"``, ``"stdcall"``, + ``"system"`` + - ``ax``, ``cx``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``st([0-7])``, + ``xmm[0-7]`` + * - :dp:`fls_tc727ietnawz` + - x86-64 + - ``"C"``, ``"efiapi"``, ``"system"`` (on Windows), ``"win64"`` + - ``ax``, ``cx``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``st([0-7])``, + ``r[8-11]``, ``tmm[0-7]``, ``xmm[0-31]`` + * - :dp:`fls_6jgsmfvww667` + - x86-64 + - ``"C"``, ``"system"`` (on non-Windows), ``"sysv64"`` + - ``ax``, ``cx``, ``di``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``r[8-11]``, + ``si``, ``st([0-7])``, ``tmm[0-7]``, ``xmm[0-31]`` + +:dp:`fls_gvzoq5mqwjx` +On x86 architectures, the x87 floating-point :t:`register` stack shall remain +unchanged unless all ``st(``\ [``0``-``7``]\ ``)`` :t:`[register]s` have been +clobbered. + +:dp:`fls_bnwzzpcmiero` +On x86 architectures, if all x87 :t:`[register]s` are clobbered, then the x87 +:t:`register` stack is presumed empty upon entry of an :t:`assembly code block`. +The x87 :t:`register` stack shall be empty on exit from an +:t:`assembly code block`. + +.. rubric:: Examples + +.. code-block:: rust + + clobber_abi("C", "system") + +.. _fls_ylli0ortyegk: + +Assembly Options +---------------- + +.. rubric:: Syntax + +.. syntax:: + + AssemblyOption ::= + $$options$$ $$($$ OptionList $$)$$ + + OptionList ::= + Option ($$,$$ Option)* $$,$$? + + Option ::= + $$att_syntax$$ + | $$nomem$$ + | $$noreturn$$ + | $$nostack$$ + | $$preserves_flags$$ + | $$pure$$ + | $$raw$$ + | $$readonly$$ + +.. rubric:: Legality Rules + +:dp:`fls_i21l6t3vn95t` +An :t:`assembly option` is used to specify a characteristic of or a restriction +on the related :t:`assembly code block`. + +:dp:`fls_g09kmp2a04g9` +:t:`Assembly option` ``att_syntax`` is applicable only to x86 architectures +and causes the assembler to use the ``.att_syntax`` prefix mode which prefixes +:t:`[register]s` with ``%``. + +:dp:`fls_quer8ltdwnf2` +:t:`Assembly option` ``nomem`` indicates that the :t:`assembly code block` does +not read or write memory. + +:dp:`fls_5wpgqpcm1v40` +:t:`Assembly option` ``noreturn`` indicates that the :t:`assembly code block` +does not return, preventing the :t:`dropping` of :t:`[variable]s`. + +:dp:`fls_ejuap3kkvs57` +:t:`Assembly option` ``nostack`` indicates that the :t:`assembly code block` +does not push on the stack, or write to the stack red-zone (if supported). + +:dp:`fls_1nopbk5bkeqm` +If :t:`assembly option` ``nostack`` is not in effect, then an +:t:`assembly code block` is allowed to use stack space below the stack pointer. +Upon entry of an :t:`assembly code block`, the stack pointer is suitably +aligned according to the target :t:`ABI` for :t:`[call expression]s`. The stack +pointer shall be restored to its original :t:`value` on exit from the +:t:`assembly code block`. + +:dp:`fls_e5b1mp3byll2` +:t:`Assembly option` ``preserves_flags`` indicates that the +:t:`assembly code block` does not modify the flags :t:`register`. + +:dp:`fls_2gf4wemrzaae` +If :t:`assembly option` ``preserves_flags`` is in effect, then the :t:`[value]s` +of the following flags :t:`[register]s` shall be restored on exit from an +:t:`assembly code block`: + +.. list-table:: + + * - :dp:`fls_5ebifab8dhy` + - **Architecture** + - **Flag registers** + * - :dp:`fls_ae2x4ho3i0zr` + - AArch64 + - Floating-point status ``FPRS`` :t:`register` + + Condition flags ``NZCV`` :t:`register` + * - :dp:`fls_188ib65a1z36` + - ARM + - Condition flags ``C``, ``N``, ``V``, ``Z`` in :t:`register` ``CPSR`` + + Condition flags ``C``, ``N``, ``V``, ``Z`` in :t:`register` ``FPSCR`` + + Floating-point exception flags ``DZC``, ``IDC``, ``IOC``, ``IXC``, + ``OFC``, ``UFC`` in :t:`register` ``FPSCR`` + + Greater than or equal flag ``GE`` in :t:`register` ``CPRS`` + + Saturation flag ``Q`` in :t:`register` ``CPRS`` + + Saturation flag ``QC`` in :t:`register` ``FPSCR`` + * - :dp:`fls_ia3cg424d601` + - RISC-V + - Floating-point exception flags ``fflags`` in :t:`register` ``fcsr`` + + Vector extension state ``vcsr``, ``vl``, ``vtype`` + * - :dp:`fls_j09bo53i5n69` + - x86 + - Status flags ``AF``, ``CF``, ``OF``, ``PF``, ``SF``, ``ZF`` in + :t:`register` ``EFLAGS`` + + Floating-point exception flags ``DE``, ``IE``, ``OE``, ``PE``, ``UE``, + ``ZE`` in :t:`register` ``MXCSR`` + + Floating-point status word + +:dp:`fls_eka6chp3hapa` +:t:`Assembly option` ``pure`` indicates that the :t:`assembly code block` has no +side effects, and its outputs depend only on direct inputs. + +:dp:`fls_nszx1gllufi2` +:t:`Assembly option` ``raw`` causes :t:`[assembly instruction]s` to be parsed +raw, without any special handling of :t:`[register parameter]s`. + +:dp:`fls_d169ppna563c` +:t:`Assembly option` ``readonly`` indicates that the :t:`assembly code block` +does not write memory. + +:dp:`fls_h8549stij7pj` +:t:`[Assembly option]s` ``att_syntax`` and ``raw`` shall appear only in +:s:`GlobalAsmArguments`. + +:dp:`fls_2drikpht6md9` +:t:`[Assembly option]s` ``nomem`` and ``readonly`` shall not be used together. + +:dp:`fls_x66j1cn6zi6p` +:t:`Assembly option` ``noreturn`` shall not be specified on an +:t:`assembly code block` that has :t:`[output register]s`. + +:dp:`fls_ikwbu1ho33is` +:t:`Assembly option` ``pure`` shall appear with either :t:`assembly option` +``nomem`` or :t:`assembly option` ``readonly``. + +:dp:`fls_nf0h9crdzhfg` +:t:`Assembly option` ``pure`` shall not be specified on an +:t:`assembly code block` that either lacks :t:`[output register]s` or all +:t:`[register expression]s` of :t:`[output register]s` are +:t:`[underscore expression]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_wh0wasawjj5s` +It is undefined behavior if an :t:`assembly code block` subject to +:t:`assembly option` ``pure`` has side effects other than its direct outputs. + +:dp:`fls_s0ivlbjefh1u` +It is undefined behavior if control reaches the end of an +:t:`assembly code block` subject to :t:`assembly option` ``noreturn``. + +.. rubric:: Examples + +.. code-block:: rust + + options(nomem, pure) + +.. _fls_qezwyridmjob: + +Macros asm and global_asm +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + AsmArguments ::= + $$($$ AssemblyCodeBlock ($$,$$ RegisterArgument)* ($$,$$ AbiClobber)* ($$,$$ AssemblyOption)* $$,$$? $$)$$ + + GlobalAsmArguments ::= + $$($$ AssemblyCodeBlock ($$,$$ RegisterArgument)* ($$,$$ AssemblyOption)* $$,$$? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_ecteot716j8j` +:t:`[Assembly code block]s` are embedded within Rust source code using +:t:`[macro]s` :std:`core::arch::asm` and :std:`core::arch::global_asm`. + +:dp:`fls_1ikzov7cxic1` +When invoking :t:`macro` :std:`core::arch::asm`, the :s:`DelimitedTokenTree` of +the related :t:`macro invocation` shall follow the syntax of :s:`AsmArguments`. + +:dp:`fls_4lb6yh12w1cv` +Invoking :t:`macro` :std:`core::arch::asm` causes the related +:t:`assembly code block` to be integrated into the generated assembly of the +:t:`function` where the :t:`macro invocation` took place. A tool is free to +encapsulate the :t:`assembly code block` in a separate :t:`function` and +generate a :t:`call expression` to it. + +:dp:`fls_tgzga1lanfuo` +When invoking :t:`macro` :std:`core::arch::global_asm`, the +:s:`DelimitedTokenTree` of the related :t:`macro invocation` shall follow the +syntax of :s:`GlobalAsmArguments`. + +:dp:`fls_nfkbvs86d6kz` +Invoking :t:`macro` :std:`core::arch::global_asm` causes the related +:t:`assembly code block` to be emitted outside the :t:`function` where the +:t:`macro invocation` took place. + +.. rubric:: Dynamic Semantics + +:dp:`fls_98vyqh9bzigx` +The :t:`evaluation` of a :t:`macro invocation` to :t:`macro` +:std:`core::arch::asm` or :t:`macro` :std:`core::arch::global_asm` evaluates +:t:`[register argument]s` in declarative order. + +:dp:`fls_ppnj8bcncdp9` +The :t:`execution` of an :t:`assembly code block` produced by +:t:`inline assembly` proceeds as follows: + +#. :dp:`fls_wmay1vd8u0da` + All :t:`[input register]s` are initialized to the :t:`[value]s` provided by + the respective :t:`[register argument]s`, in an undefined order. + +#. :dp:`fls_e613hpr50t9` + The :t:`[assembly instruction]s` of the :t:`assembly code block` are executed + in declarative order. + +#. :dp:`fls_bic6iyd1nvfm` + The :t:`[value]s` of all :t:`[output register]s` are assigned to the + :t:`[register expression]s` provided by the respective + :t:`[register argument]s`, in an undefined order. + +.. rubric:: Examples + +.. code-block:: rust + + fn asm_example() -> u32 { + let basepri; + unsafe { + asm!(" + mrs {}, BASEPRI + ", + out(reg) basepri, + options(nomem, nostack, preserves_flags)) + } + basepri + } + + global_asm!(" + do_nothing: + push {r7, lr} + mov r7, sp + pop {r7, pc} + ", + options(raw) + ); + + fn global_asm_example() { + extern "C" { + fn do_nothing(); + } + + unsafe { do_nothing() } + } diff --git a/_sources/items.rst.txt b/_sources/items.rst.txt new file mode 100644 index 00000000..b037c22b --- /dev/null +++ b/_sources/items.rst.txt @@ -0,0 +1,51 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_wb86edg02t6a: + +Items +===== + +.. rubric:: Syntax + +.. syntax:: + + Item ::= + OuterAttributeOrDoc* (ItemWithVisibility | MacroItem) + + ItemWithVisibility ::= + VisibilityModifier? ( + ConstantDeclaration + | EnumDeclaration + | ExternalBlock + | ExternalCrateImport + | FunctionDeclaration + | Implementation + | ModuleDeclaration + | StaticDeclaration + | StructDeclaration + | TraitDeclaration + | TypeAliasDeclaration + | UnionDeclaration + | UseImport + ) + + MacroItem ::= + MacroRulesDeclaration + | TerminatedMacroInvocation + +.. rubric:: Legality Rules + +:dp:`fls_s3b1cba9lfj5` +The :t:`macro expansion` of a :t:`terminated macro invocation` is treated as +zero or more :t:`[item]s` if the :t:`terminated macro invocation` appears as +an :t:`item`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_hil5f7y4xdhe` +:t:`Elaboration` is the process by which a :t:`declaration` achieves its runtime +effects. + diff --git a/_sources/lexical-elements.rst.txt b/_sources/lexical-elements.rst.txt new file mode 100644 index 00000000..646c4d6e --- /dev/null +++ b/_sources/lexical-elements.rst.txt @@ -0,0 +1,1449 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_411up5z0b6n6: + +Lexical Elements +================ + +.. informational-section:: + +:dp:`fls_pqwpf87b84tr` +The text of a Rust program consists of :t:`[module]s` organized into :t:`[source +file]s`. The text of a :t:`source file` is a sequence of :t:`[lexical +element]s`, each composed of characters, whose rules are presented in this +chapter. + +.. _fls_2i089jvv8j5g: + +Character Set +------------- + +:dp:`fls_itcth8292ud6` +The program text of a Rust program is written using the :t:`Unicode` character +set. + +.. rubric:: Syntax + +:dp:`fls_vfx8byq5zo8t` +A character is defined by this document for each cell in the coding space +described by :t:`Unicode`, regardless of whether or not :t:`Unicode` allocates a +character to that cell. + +:dp:`fls_pvslhm3chtlb` +A :dt:`whitespace character` is one of the following characters: + +* :dp:`fls_a5ec9cpn4sc8` + 0x09 (horizontal tabulation) + +* :dp:`fls_dgyrj49y3c7c` + 0x0A (new line) + +* :dp:`fls_5ocmngyur7by` + 0x0B (vertical tabulation) + +* :dp:`fls_1aj0rgi9kpib` + 0x0C (form feed) + +* :dp:`fls_bfzdxsbq2c2q` + 0x0D (carriage return) + +* :dp:`fls_vw0kq2y1o63m` + 0x20 (space) + +* :dp:`fls_ao296bmamwzh` + 0x85 (next line) + +* :dp:`fls_6kymhq7embdh` + 0x200E (left-to-right mark) + +* :dp:`fls_8mxmrxvhn3by` + 0x200F (right-to-left mark) + +* :dp:`fls_bc6D1ATvmJJr` + 0x2028 (line separator) + +* :dp:`fls_zfs15iel08y0` + 0x2029 (paragraph separator) + +:dp:`fls_7eifv4ksunu1` +A :t:`whitespace string` is a string that consists of one or more +:t:`[whitespace character]s`. + +:dp:`fls_PIDKEm8GiLNL` +An :ds:`AsciiCharacter` is any :t:`Unicode` character in the range 0x00 - 0x7F, both inclusive. + +.. rubric:: Legality Rules + +:dp:`fls_2brw13n9ldgy` +The coded representation of a character is tool-defined. + +.. _fls_fgnllgz5k3e6: + +Lexical Elements, Separators, and Punctuation +--------------------------------------------- + +.. rubric:: Syntax + +.. syntax:: + + LexicalElement ::= + Comment + | Identifier + | Keyword + | Literal + | Punctuation + + Punctuation ::= + Delimiter + | $$+$$ + | $$-$$ + | $$*$$ + | $$/$$ + | $$%$$ + | $$^$$ + | $$!$$ + | $$&$$ + | $$|$$ + | $$&&$$ + | $$||$$ + | $$<<$$ + | $$>>$$ + | $$+=$$ + | $$-=$$ + | $$*=$$ + | $$/=$$ + | $$%=$$ + | $$^=$$ + | $$&=$$ + | $$|=$$ + | $$<<=$$ + | $$>>=$$ + | $$=$$ + | $$==$$ + | $$!=$$ + | $$>$$ + | $$<$$ + | $$>=$$ + | $$<=$$ + | $$@$$ + | $$_$$ + | $$.$$ + | $$..$$ + | $$...$$ + | $$..=$$ + | $$,$$ + | $$;$$ + | $$:$$ + | $$::$$ + | $$->$$ + | $$=>$$ + | $$#$$ + | $$$$$ + | $$?$$ + + Delimiter ::= + $${$$ + | $$}$$ + | $$[$$ + | $$]$$ + | $$($$ + | $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_d4nvxsvxj537` +The text of a :t:`source file` is a sequence of separate :t:`[lexical +element]s`. The meaning of a program depends only on the particular sequence of +:t:`[lexical element]s`, excluding :t:`non-[doc comment]s`. + +:dp:`fls_a1zylpqha73x` +A :t:`lexical element` is the most basic syntactic element in program text. + +:dp:`fls_jy6wifn5r2bu` +The text of a :t:`source file` is divided into :t:`[line]s`. + +:dp:`fls_efdfq9nhpmp5` +A :t:`line` is a sequence of zero or more characters followed by an end of +line. + +:dp:`fls_go25sisi5fdp` +The representation of an end of line is tool-defined. + +:dp:`fls_a6t53o8h1vdk` +A :t:`separator` is a character or a string that separates adjacent :t:`[lexical +element]s`. A :t:`whitespace string` is a :t:`separator`. + +:dp:`fls_8fv63w6f4udl` +A :dt:`simple punctuator` is one of the following special characters: + +.. syntax:: + + $$+$$ + $$-$$ + $$*$$ + $$/$$ + $$%$$ + $$^$$ + $$!$$ + $$&$$ + $$|$$ + $$=$$ + $$>$$ + $$<$$ + $$@$$ + $$_$$ + $$.$$ + $$,$$ + $$;$$ + $$:$$ + $$#$$ + $$$$$ + $$?$$ + $${$$ + $$}$$ + $$[$$ + $$]$$ + $$($$ + $$)$$ + +:dp:`fls_es0tz1q9cmoo` +A :dt:`compound punctuator` is one of the following two or more adjacent special +characters: + +.. syntax:: + + $$&&$$ + $$||$$ + $$<<$$ + $$>>$$ + $$+=$$ + $$-=$$ + $$*=$$ + $$/=$$ + $$%=$$ + $$^=$$ + $$&=$$ + $$|=$$ + $$<<=$$ + $$>>=$$ + $$==$$ + $$!=$$ + $$>=$$ + $$<=$$ + $$..$$ + $$...$$ + $$..=$$ + $$::$$ + $$->$$ + $$=>$$ + +:dp:`fls_vm86olkeecer` +The following :t:`[compound punctuator]s` are :dt:`[flexible compound +punctuator]s`. + +.. syntax:: + + $$&&$$ + $$||$$ + $$<<$$ + $$>>$$ + +:dp:`fls_5zxdgxy8tjrq` +A :t:`flexible compound punctuator` may be treated as a single :t:`compound +punctuator` or two adjacent :t:`[simple punctuator]s`. + +:dp:`fls_x89vkq9rwlyt` +Each of the special characters listed for single character :t:`punctuator` +is a :t:`simple punctuator` except if this character is used as a character +of a :t:`compound punctuator`, or a character of a :t:`character literal`, a +:t:`comment`, a :t:`numeric literal`, or a :t:`string literal`. + +:dp:`fls_bo3xh8r60ji1` +The following names are used when referring to :t:`[punctuator]s`: + +.. list-table:: + + * - :dp:`fls_sslkjuxjnteu` + - **punctuator** + - **name** + * - :dp:`fls_9g1godm0jp0z` + - ``+`` + - Plus + * - :dp:`fls_6oith9q0soot` + - ``-`` + - Minus + * - :dp:`fls_1dledwdc8fa6` + - ``*`` + - Star + * - :dp:`fls_lunw7ucj5ius` + - ``/`` + - Slash + * - :dp:`fls_a4oiuhz95uiv` + - ``%`` + - Percent + * - :dp:`fls_137x9s6guj6h` + - ``^`` + - Caret + * - :dp:`fls_y0wdb09cpp1w` + - ``!`` + - Not + * - :dp:`fls_48b7mepiuupz` + - ``&`` + - And + * - :dp:`fls_g9h9bsvrsmk1` + - ``|`` + - Or + * - :dp:`fls_fxne2xd0zzzo` + - ``&&`` + - And and, lazy boolean and + * - :dp:`fls_il7zv5x3aw0q` + - ``||`` + - Or or, lazy boolean or + * - :dp:`fls_ovcs1qm86ss9` + - ``<<`` + - Shift left + * - :dp:`fls_wmhlvjm0b0j9` + - ``>>`` + - Shift right + * - :dp:`fls_gg42klb2gn9v` + - ``+=`` + - Plus equals + * - :dp:`fls_icahptg5enj4` + - ``-=`` + - Minus equals + * - :dp:`fls_baawlxoi7yd4` + - ``*=`` + - Star equals + * - :dp:`fls_m7gt3wfbtm81` + - ``/=`` + - Slash equals + * - :dp:`fls_6ewl7gn3sjm2` + - ``%=`` + - Percent equals + * - :dp:`fls_nb8q6oq8txv3` + - ``^=`` + - Caret equals + * - :dp:`fls_4nnky9ansr9j` + - ``&=`` + - And equals + * - :dp:`fls_h1gvudehmnn9` + - ``|=`` + - Or equals + * - :dp:`fls_6yj1c3lh691s` + - ``<<=`` + - Shift left equals + * - :dp:`fls_2d3oo9nou9vv` + - ``>>=`` + - Shift right equals + * - :dp:`fls_st2vhcy14ud9` + - ``=`` + - Equals + * - :dp:`fls_9gdyw71dl25` + - ``==`` + - Equals equals, logical equality + * - :dp:`fls_sp8ufz28l9w3` + - ``!=`` + - Not equals + * - :dp:`fls_7kdr8biodxvz` + - ``>`` + - Greater than + * - :dp:`fls_pf92l9bkte2u` + - ``<`` + - Less than + * - :dp:`fls_ui40thspgyav` + - ``>=`` + - Greater than equals, greater than or equal to + * - :dp:`fls_h33qzachmimc` + - ``<=`` + - Less than equals, less than or equal to + * - :dp:`fls_13ud1clgdnyv` + - ``@`` + - At + * - :dp:`fls_7fosi8l2ktz2` + - ``_`` + - Underscore + * - :dp:`fls_9qitp6r75ia6` + - ``.`` + - Dot + * - :dp:`fls_g0umao9roi2l` + - ``..`` + - Dot dot, exclusive range + * - :dp:`fls_lamrpdpko48` + - ``...`` + - Dot dot dot, ellipsis + * - :dp:`fls_s4lte9onbmqb` + - ``..=`` + - Dot dot equals, inclusive range + * - :dp:`fls_ywc297y8s0dt` + - ``,`` + - Comma + * - :dp:`fls_ijb0fws4gshu` + - ``;`` + - Semicolon + * - :dp:`fls_c25ur4xwbpk0` + - ``:`` + - Colon + * - :dp:`fls_9dd9479zzq30` + - ``::`` + - Colon colon, path separator + * - :dp:`fls_kwsu9d3ppv3f` + - ``->`` + - Right arrow + * - :dp:`fls_oh62j9unw4mg` + - ``=>`` + - Fat arrow, Hashrocket + * - :dp:`fls_g0tltt8qmbum` + - ``#`` + - Pound + * - :dp:`fls_ounkw8b8tk4f` + - ``$`` + - Dollar sign + * - :dp:`fls_8ywv8gftsfr1` + - ``?`` + - Question mark + * - :dp:`fls_hsn6zc29ifyx` + - ``{`` + - Left curly brace + * - :dp:`fls_o3amqe3ca82d` + - ``}`` + - Right curly brace + * - :dp:`fls_lkevfpj7sqd3` + - ``[`` + - Left square bracket + * - :dp:`fls_ff05ge2189z` + - ``]`` + - Right square bracket + * - :dp:`fls_nplkudde6oxf` + - ``(`` + - Left parenthesis + * - :dp:`fls_qwnrklmbz0b` + - ``)`` + - Right parenthesis + +.. _fls_21vnag69kbwe: + +Identifiers +----------- + +.. rubric:: Syntax + +.. syntax:: + + Identifier ::= + NonKeywordIdentifier + | RawIdentifier + + IdentifierList ::= + Identifier ($$,$$ Identifier)* $$,$$? + + NonKeywordIdentifier ::= + PureIdentifier + | WeakKeyword + + RawIdentifier ::= + $$r#$$ (PureIdentifier | RawIdentifierKeyword) + + PureIdentifier ::= + XID_Start XID_Continue* + | $$_$$ XID_Continue+ + + IdentifierOrUnderscore ::= + Identifier + | $$_$$ + + Renaming ::= + $$as$$ IdentifierOrUnderscore + +:dp:`fls_ls7ymvgd5kfa` +A :ds:`RawIdentifierKeyword` is any :t:`keyword` in category :s:`Keyword`, +except ``crate``, ``self``, ``Self``, and ``super``. + +:dp:`fls_aqj9aguczgqs` +:ds:`XID_Start` and :ds:`XID_Continue` are defined in Unicode Standard Annex +#31. + +.. rubric:: Legality Rules + +:dp:`fls_xsdmun5uqy4c` +An :t:`identifier` is a :t:`lexical element` that refers to a :t:`name`. + +:dp:`fls_ktnf6zkrdy45` +A :t:`pure identifier` is an :t:`identifier` that does not include :t:`[weak +keyword]s`. + +:dp:`fls_jpecw46eh061` +A :t:`pure identifier` shall follow the specification in Unicode Standard Annex +#31 for :t:`Unicode` version 13.0, with the following profile: + +* :dp:`fls_lwcflgezgs5z` + ``Start`` = ``XID_Start``, plus character 0x5F (low line). + +* :dp:`fls_uts0hywaw1rq` + ``Continue`` = ``XID_Continue`` + +* :dp:`fls_lju1avcn0pfd` + ``Medial`` = empty + +:dp:`fls_cs6cbw625np1` +Characters 0x200C (zero width non-joiner) and 0x200D (zero width joiner) shall +not appear in a :t:`pure identifier`. + +:dp:`fls_irwcldiotei2` +A :t:`pure identifier` shall be restricted to characters in category +:s:`AsciiCharacter` in the following contexts: + +* :dp:`fls_g72rxs2z5960` + :t:`[Crate import]s`, + +* :dp:`fls_w473jevurlt1` + :t:`[Name]s` of external :t:`[crate]s` represented in a :t:`simple path`, when + the :t:`simple path` starts with namespace qualifier ``::``, + +* :dp:`fls_mt1u4m3simhc` + :t:`[Name]s` of :t:`[outline module]s` that lack :t:`attribute` :c:`path`, + +* :dp:`fls_e2v58o233lvd` + :t:`[Name]s` of :t:`[item]s` that are subject to :t:`attribute` + :c:`no_mangle`, + +* :dp:`fls_op0lp1i065di` + :t:`[Name]s` of :t:`[item]s` within :t:`[external block]s`. + +:dp:`fls_vde7gev5rz4q` +:t:`[Identifier]s` are normalized using Normalization Form C as defined in +Unicode Standard Annex #15. + +:dp:`fls_j9yh8j8jgdeu` +Two :t:`[identifier]s` are considered the same if they consist of the same +sequence of characters after performing normalization. + +:dp:`fls_jejt5z8m1yew` +:t:`[Declarative macro]s` and :t:`[procedural macro]s` shall receive normalized +:t:`[identifier]s` in their input. + +.. rubric:: Examples + +.. code-block:: text + + foo + _identifier + r#true + Москва + 東京 + +.. _fls_nrkd5wpi64oo: + +Literals +-------- + +.. rubric:: Syntax + +.. syntax:: + + Literal ::= + BooleanLiteral + | ByteLiteral + | ByteStringLiteral + | CharacterLiteral + | NumericLiteral + | StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_s76un78zyd0j` +A :t:`literal` is a fixed :t:`value` in program text. + +.. _fls_2ifjqwnw03ms: + +Byte Literals +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ByteLiteral ::= + $$b'$$ ByteContent $$'$$ + + ByteContent ::= + ByteCharacter + | ByteEscape + + ByteEscape ::= + | $$\0$$ + | $$\"$$ + | $$\'$$ + | $$\t$$ + | $$\n$$ + | $$\r$$ + | $$\\$$ + | $$\x$$ OctalDigit HexadecimalDigit + +:dp:`fls_3hpzf12h60u4` +A :ds:`ByteCharacter` is any character in category :s:`AsciiCharacter` +except characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5C (reverse solidus). + +.. rubric:: Legality Rules + +:dp:`fls_q0qwr83frszx` +A :t:`byte literal` is a :t:`literal` that denotes a fixed byte :t:`value`. + +:dp:`fls_fggytrv5jvw0` +The :t:`type` of a :t:`byte literal` is :c:`u8`. + +.. rubric:: Examples + +.. code-block:: rust + + b'h' + b'\n' + b'\x1B' + +.. _fls_fqaffyrjob7v: + +Byte String Literals +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + ByteStringLiteral ::= + RawByteStringLiteral + | SimpleByteStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_t63zfv5JdUhj` +A :t:`byte string literal` is a :t:`literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_Xd6LnfzMb7t7` +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a :t:`byte string literal`. + +.. _fls_msbaxfC09VkK: + +Simple Byte String Literals +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + SimpleByteStringLiteral ::= + $$b"$$ SimpleByteStringContent* $$"$$ + + SimpleByteStringContent ::= + ByteEscape + | SimpleByteStringCharacter + | StringContinuation + +:dp:`fls_3dcqhuosqb84` +A :ds:`SimpleByteStringCharacter` is any character in category :s:`AsciiCharacter` +except characters 0x0D (carriage return), 0x22 (quotation mark), and 0x5C +(reverse solidus). + +.. rubric:: Legality Rules + +:dp:`fls_moe3zfx39ox2` +A :t:`simple byte string literal` is a :t:`byte string literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_vffxb6arj9jf` +The :t:`type` of a :t:`simple byte string literal` of size ``N`` is ``&'static [u8; +N]``. + +.. rubric:: Examples + +.. code-block:: rust + + b"" + b"a\tb" + b"Multi\ + line" + +.. _fls_jps9102q0qfi: + +Raw Byte String Literals +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RawByteStringLiteral ::= + $$br$$ RawByteStringContent + + RawByteStringContent ::= + NestedRawByteStringContent + | $$"$$ AsciiCharacter* $$"$$ + + NestedRawByteStringContent ::= + $$#$$ RawByteStringContent $$#$$ + +.. rubric:: Legality Rules + +:dp:`fls_yyw7nv651580` +A :t:`raw byte string literal` is a :t:`simple byte string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_5ybq0euwya42` +The :t:`type` of a :t:`raw byte string literal` of size ``N`` is ``&'static +[u8; N]``. + +.. rubric:: Examples + +.. code-block:: rust + + br"" + br#""# + br##"left #"# right"## + +.. _fls_hv9jtycp0o1y: + +Numeric Literals +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NumericLiteral ::= + FloatLiteral + | IntegerLiteral + +.. rubric:: Legality Rules + +:dp:`fls_fqpqnku27v99` +A :t:`numeric literal` is a :t:`literal` that denotes a number. + +.. _fls_2ed4axpsy9u0: + +Integer Literals +^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + IntegerLiteral ::= + IntegerContent IntegerSuffix? + + IntegerContent ::= + BinaryLiteral + | DecimalLiteral + | HexadecimalLiteral + | OctalLiteral + + BinaryLiteral ::= + $$0b$$ BinaryDigitOrUnderscore* BinaryDigit BinaryDigitOrUnderscore* + + BinaryDigitOrUnderscore ::= + BinaryDigit + | $$_$$ + + BinaryDigit ::= + [$$0$$-$$1$$] + + DecimalLiteral ::= + DecimalDigit DecimalDigitOrUnderscore* + + DecimalDigitOrUnderscore ::= + DecimalDigit + | $$_$$ + + DecimalDigit ::= + [$$0$$-$$9$$] + + HexadecimalLiteral ::= + $$0x$$ HexadecimalDigitOrUnderscore* HexadecimalDigit HexadecimalDigitOrUnderscore* + + HexadecimalDigitOrUnderscore ::= + HexadecimalDigit + | $$_$$ + + HexadecimalDigit ::= + [$$0$$-$$9$$ $$a$$-$$f$$ $$A$$-$$F$$] + + OctalLiteral ::= + $$0o$$ OctalDigitOrUnderscore* OctalDigit OctalDigitOrUnderscore* + + OctalDigitOrUnderscore ::= + OctalDigit + | $$_$$ + + OctalDigit ::= + [$$0$$-$$7$$] + + IntegerSuffix ::= + SignedIntegerSuffix + | UnsignedIntegerSuffix + + SignedIntegerSuffix ::= + $$i8$$ + | $$i16$$ + | $$i32$$ + | $$i64$$ + | $$i128$$ + | $$isize$$ + + UnsignedIntegerSuffix ::= + $$u8$$ + | $$u16$$ + | $$u32$$ + | $$u64$$ + | $$u128$$ + | $$usize$$ + +.. rubric:: Legality Rules + +:dp:`fls_vkk2krfn93ry` +An :t:`integer literal` is a :t:`numeric literal` that denotes a whole number. + +:dp:`fls_nxqncu5yq4eu` +A :t:`binary literal` is an :t:`integer literal` in base 2. + +:dp:`fls_rn8xfd66yvst` +A :t:`decimal literal` is an :t:`integer literal` in base 10. + +:dp:`fls_2268lchxkzjp` +A :t:`hexadecimal literal` is an :t:`integer literal` in base 16. + +:dp:`fls_4v7awnutbpoe` +An :t:`octal literal` is an :t:`integer literal` in base 8. + +:dp:`fls_f1e29aj0sqvl` +An :t:`integer suffix` is a component of an :t:`integer literal` that specifies +an explicit :t:`integer type`. + +:dp:`fls_u83mffscqm6` +A :t:`suffixed integer` is an :t:`integer literal` with an :t:`integer suffix`. + +:dp:`fls_g10nuv14q4jn` +An :t:`unsuffixed integer` is an :t:`integer literal` without an :t:`integer +suffix`. + +:dp:`fls_hpkkvuj1z1ez` +The :t:`type` of a :t:`suffixed integer` is determined by its :t:`integer +suffix` as follows: + +* :dp:`fls_7yq2fep848ky` + Suffix ``i8`` specifies type :c:`i8`. + +* :dp:`fls_bzm8lwq3qlat` + Suffix ``i16`` specifies type :c:`i16`. + +* :dp:`fls_l4cx36brc1r5` + Suffix ``i32`` specifies type :c:`i32`. + +* :dp:`fls_wthchinwx996` + Suffix ``i64`` specifies type :c:`i64`. + +* :dp:`fls_7uoaet2pm3am` + Suffix ``i128`` specifies type :c:`i128`. + +* :dp:`fls_p4rw583o2qbi` + Suffix ``isize`` specifies type :c:`isize`. + +* :dp:`fls_xrv4q56lmoo3` + Suffix ``u8`` specifies type :c:`u8`. + +* :dp:`fls_66e3q5um6cwc` + Suffix ``u16`` specifies type :c:`u16`. + +* :dp:`fls_5asyk66y7c9d` + Suffix ``u32`` specifies type :c:`u32`. + +* :dp:`fls_76fifqjka0lx` + Suffix ``u64`` specifies type :c:`u64`. + +* :dp:`fls_fsaimo419gf0` + Suffix ``u128`` specifies type :c:`u128`. + +* :dp:`fls_hvzacbu7yiwc` + Suffix ``usize`` specifies type :c:`usize`. + +:dp:`fls_50qipwqi3arw` +The :t:`type` of an :t:`unsuffixed integer` is determined by :t:`type inference` +as follows: + +* :dp:`fls_idzhusp2l908` + If an :t:`integer type` can be uniquely determined from the surrounding + program context, then the :t:`unsuffixed integer` has that :t:`type`. + +* :dp:`fls_qqrqyc6uhol` + If the program context under-constrains the :t:`type`, then the :t:`inferred + type` is :c:`i32`. + +* :dp:`fls_pexi5jazthq6` + If the program context over-constrains the :t:`type`, then this is considered + a static error. + +.. rubric:: Examples + +.. code-block:: rust + + 0b0010_1110_u8 + 1___2_3 + 0x4D8a + 0o77_52i128 + +.. _fls_29tlg1vyqay2: + +Float Literals +^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + FloatLiteral ::= + DecimalLiteral $$.$$ + | DecimalLiteral FloatExponent + | DecimalLiteral $$.$$ DecimalLiteral FloatExponent? + | DecimalLiteral ($$.$$ DecimalLiteral)? FloatExponent? FloatSuffix + + FloatExponent ::= + ExponentLetter ExponentSign? ExponentMagnitude + + ExponentLetter ::= + $$e$$ + | $$E$$ + + ExponentSign ::= + $$+$$ + | $$-$$ + + ExponentMagnitude ::= + DecimalDigitOrUnderscore* DecimalDigit DecimalDigitOrUnderscore* + + FloatSuffix ::= + $$f32$$ + | $$f64$$ + +.. rubric:: Legality Rules + +:dp:`fls_rzi7oeqokd6e` +A :t:`float literal` is a :t:`numeric literal` that denotes a fractional number. + +:dp:`fls_2ru1zyrykd37` +A :t:`float suffix` is a component of a :t:`float literal` that specifies an +explicit :t:`floating-point type`. + +:dp:`fls_21mhnhplzam7` +A :t:`suffixed float` is a :t:`float literal` with a :t:`float suffix`. + +:dp:`fls_drqh80k0sfkb` +An :t:`unsuffixed float` is a :t:`float literal` without a :t:`float suffix`. + +:dp:`fls_cbs7j9pjpusw` +The :t:`type` of a :t:`suffixed float` is determined by the :t:`float suffix` +as follows: + +* :dp:`fls_b9w7teaw1f8f` + Suffix ``f32`` specifies type :c:`f32`. + +* :dp:`fls_eawxng4ndhv0` + Suffix ``f64`` specifies type :c:`f64`. + +:dp:`fls_yuhza1muo7o` +The :t:`type` of an :t:`unsuffixed float` is determined by :t:`type inference` +as follows: + +* :dp:`fls_4sxt1ct7fyen` + If a :t:`floating-point type` can be uniquely determined from the surrounding + program context, then the :t:`unsuffixed float` has that :t:`type`. + +* :dp:`fls_wa72rssp0jnt` + If the program context under-constrains the :t:`type`, then the :t:`inferred + type` is :c:`f64`. + +* :dp:`fls_x2cw7g8g56f8` + If the program context over-constrains the :t:`type`, then this is considered + a static error. + +.. rubric:: Examples + +.. code-block:: rust + + 45. + 8E+1_820 + 3.14e5 + 8_031.4_e-12f64 + +.. _fls_ypa86oqxhn9u: + +Character Literals +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CharacterLiteral ::= + $$'$$ CharacterContent $$'$$ + + CharacterContent ::= + AsciiEscape + | CharacterLiteralCharacter + | UnicodeEscape + + AsciiEscape ::= + | $$\0$$ + | $$\"$$ + | $$\'$$ + | $$\t$$ + | $$\n$$ + | $$\r$$ + | $$\\$$ + | $$\x$$ OctalDigit HexadecimalDigit + +:dp:`fls_j9q9ton57rvl` +A :ds:`CharacterLiteralCharacter` is any :t:`Unicode` character except +characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5c (reverse solidus). + +:dp:`fls_5v9gx22g5wPm` +A :ds:`UnicodeEscape` starts with a ``\u{`` literal, followed by 1 to 6 +instances of a :s:`HexadecimalDigit`, inclusive, followed by a ``}`` character. +It can represent any :t:`Unicode` codepoint between U+00000 and U+10FFFF, +inclusive, except :t:`Unicode` surrogate codepoints, which exist between +the range of U+D800 and U+DFFF, inclusive. + +.. rubric:: Legality Rules + +:dp:`fls_vag2oy4q7d4n` +A :t:`character literal` is a :t:`literal` that denotes a fixed :t:`Unicode` +character. + +:dp:`fls_n8z6p6g564r2` +The :t:`type` of a :t:`character literal` is :c:`char`. + +.. rubric:: Examples + +.. code-block:: text + + 'a' + '\t' + '\x1b' + '\u{1F30}' + +.. _fls_boyhlu5srp6u: + +String Literals +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StringLiteral ::= + RawStringLiteral + | SimpleStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_7fuctvtvdi7x` +A :t:`string literal` is a :t:`literal` that consists of multiple characters. + +:dp:`fls_NyiCpU2tzJlQ` +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a :t:`string literal`. + +.. _fls_hucd52suu6it: + +Simple String Literals +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + SimpleStringLiteral ::= + $$"$$ SimpleStringContent* $$"$$ + + SimpleStringContent ::= + AsciiEscape + | SimpleStringCharacter + | StringContinuation + | UnicodeEscape + +:dp:`fls_1pdzwkt5txfj` +A :ds:`SimpleStringCharacter` is any :t:`Unicode` character except characters +0x0D (carriage return), 0x22 (quotation mark), and 0x5C (reverse solidus). + +:dp:`fls_wawtu6j3fiqn` +:ds:`StringContinuation` is the character sequence 0x5C 0x0A (reverse solidus, +new line). + +.. rubric:: Legality Rules + +:dp:`fls_ycy5ee6orjx` +A :t:`simple string literal` is a :t:`string literal` where the characters are +:t:`Unicode` characters. + +:dp:`fls_6nt5kls21xes` +The :t:`type` of a :t:`simple string literal` is ``&'static str``. + +.. rubric:: Examples + +.. code-block:: rust + + "" + "cat" + "\tcol\nrow" + "bell\x07" + "\uB80a" + "\ + multi\ + line\ + string" + +.. _fls_usr6iuwpwqqh: + +Raw String Literals +^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RawStringLiteral ::= + $$r$$ RawStringContent + + RawStringContent ::= + NestedRawStringContent + | $$"$$ ~[$$\r$$]* $$"$$ + + NestedRawStringContent ::= + $$#$$ RawStringContent $$#$$ + +.. rubric:: Legality Rules + +:dp:`fls_36suwhbwmq1t` +A :t:`raw string literal` is a :t:`simple string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_ms43w1towz40` +The :t:`type` of a :t:`raw string literal` is ``&'static str``. + +.. rubric:: Examples + +.. code-block:: rust + + r"" + r#""# + r##"left #"# right"## + +.. _fls_jkab8eevzbte: + +Boolean Literals +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BooleanLiteral ::= + $$false$$ + | $$true$$ + +.. rubric:: Legality Rules + +:dp:`fls_1lll64ftupjd` +A :t:`boolean literal` is a :t:`literal` that denotes the truth :t:`[value]s` of +logic and Boolean algebra. + +:dp:`fls_pgngble3ilyx` +The :t:`type` of a :t:`boolean literal` is :c:`bool`. + +.. rubric:: Examples + +.. code-block:: rust + + true + +.. _fls_q8l2jza7d9xa: + +Comments +-------- + +.. rubric:: Syntax + +.. syntax:: + + Comment ::= + BlockCommentOrDoc + | LineCommentOrDoc + + BlockCommentOrDoc ::= + BlockComment + | InnerBlockDoc + | OuterBlockDoc + + LineCommentOrDoc ::= + LineComment + | InnerLineDoc + | OuterLineDoc + + LineComment ::= + $$//$$ + | $$//$$ (~[$$!$$ $$/$$] | $$//$$) ~[$$\n$$]* + + BlockComment ::= + $$/*$$ (~[$$!$$ $$*$$] | $$**$$ | BlockCommentOrDoc) (BlockCommentOrDoc | ~[$$*/$$])* $$*/$$ + | $$/**/$$ + | $$/***/$$ + + InnerBlockDoc ::= + $$/*!$$ (BlockCommentOrDoc | ~[$$*/$$ $$\r$$])* $$*/$$ + + InnerLineDoc ::= + $$//!$$ ~[$$\n$$ $$\r$$]* + + OuterBlockDoc ::= + $$/**$$ (~[$$*$$] | BlockCommentOrDoc) (BlockCommentOrDoc | ~[$$*/$$ $$\r$$])* $$*/$$ + + OuterLineDoc ::= + $$///$$ (~[$$/$$] ~[$$\n$$ $$\r$$]*)? + +.. rubric:: Legality Rules + +:dp:`fls_8obn3dtzpe5f` +A :t:`comment` is a :t:`lexical element` that acts as an annotation or an +explanation in program text. + +:dp:`fls_qsbnl11be35s` +A :t:`block comment` is a :t:`comment` that spans one or more :t:`[line]s`. + +:dp:`fls_nayisy85kyq2` +A :t:`line comment` is a :t:`comment` that spans exactly one :t:`line`. + +:dp:`fls_k3hj30hjkdhw` +An :t:`inner block doc` is a :t:`block comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_tspijl68lduc` +An :t:`inner line doc` is a :t:`line comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_KZp0yiFLTqxb` +An :t:`inner doc comment` is either an :t:`inner block doc` or an +:t:`inner line doc`. + +:dp:`fls_63gzofa9ktic` +An :t:`outer block doc` is a :t:`block comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_scko7crha0um` +An :t:`outer line doc` is a :t:`line comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_RYVL9KgaxKvl` +An :t:`outer doc comment` is either an :t:`outer block doc` or an +:t:`outer line doc`. + +:dp:`fls_7n6d3jx61ose` +A :t:`doc comment` is a :t:`comment` class that includes :t:`[inner block +doc]s`, :t:`[inner line doc]s`, :t:`[outer block doc]s`, and :t:`[outer line +doc]s`. + +:dp:`fls_6fxcs17n4kw` +Character 0x0D (carriage return) shall not appear in a :t:`comment`. + +:dp:`fls_uze7l7cxonk1` +:t:`[Block comment]s`, :t:`[inner block doc]s`, and :t:`[outer block doc]s` +shall extend one or more :t:`[line]s`. + +:dp:`fls_gy23lwlqw2mc` +:t:`[Line comment]s`, :t:`[inner line doc]s`, and :t:`[outer line doc]s` shall +extend exactly one :t:`line`. + +:dp:`fls_w7d0skpov1is` +:t:`[Outer block doc]s` and :t:`[outer line doc]s` shall apply to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_32ncjvj2kn7z` +:t:`[Inner block doc]s` and :t:`[inner line doc]s` shall apply to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_ok0zvo9vcmzo` +:t:`[Inner block doc]s` and :t:`[inner line doc]s` are equivalent to +:t:`attribute` :c:`doc` of the form ``#![doc = content]``, where ``content`` +is a :t:`string literal` form of the :t:`comment` without the leading ``//!``, +``/*!`` amd trailing ``*/`` characters. + +:dp:`fls_nWtKuPi8Fw6v` +:t:`[Outer block doc]s` and :t:`[outer line doc]s` are equivalent to +:t:`attribute` :c:`doc` of the form ``#[doc = content]``, where ``content`` +is a :t:`string literal` form of the :t:`comment` without the leading ``///``, +``/**`` and trailing ``*/`` characters. + +.. rubric:: Examples + +.. code-block:: rust + + // This is a stand-alone line comment. So is the next line. + + //// + + /* This is a stand-alone + block comment. */ + + /* + /* This is a nested block comment */ + */ + + /// This outer line comment applies to commented_module. + + /** This outer block comment applies to commented_module, + and is considered documentation. */ + + pub mod commented_module { + + //! This inner line comment applies to commented_mode. + + /*! This inner block comment applies to commented_module, + and is considered documentation. */ + } + +.. _fls_lish33a1naw5: + +Keywords +-------- + +.. rubric:: Syntax + +.. syntax:: + + Keyword ::= + ReservedKeyword + | StrictKeyword + | WeakKeyword + +.. rubric:: Legality Rules + +:dp:`fls_dti0uu7rz81w` +A :t:`keyword` is a word in program text that has special meaning. + +:dp:`fls_sxg1o4oxql51` +:t:`[Keyword]s` are case sensitive. + +.. _fls_mec5cg5aptf8: + +Strict Keywords +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StrictKeyword ::= + $$as$$ + | $$async$$ + | $$await$$ + | $$break$$ + | $$const$$ + | $$continue$$ + | $$crate$$ + | $$dyn$$ + | $$enum$$ + | $$extern$$ + | $$false$$ + | $$fn$$ + | $$for$$ + | $$if$$ + | $$impl$$ + | $$in$$ + | $$let$$ + | $$loop$$ + | $$match$$ + | $$mod$$ + | $$move$$ + | $$mut$$ + | $$pub$$ + | $$ref$$ + | $$return$$ + | $$self$$ + | $$Self$$ + | $$static$$ + | $$struct$$ + | $$super$$ + | $$trait$$ + | $$true$$ + | $$type$$ + | $$unsafe$$ + | $$use$$ + | $$where$$ + | $$while$$ + +.. rubric:: Legality Rules + +:dp:`fls_bsh7qsyvox21` +A :t:`strict keyword` is a :t:`keyword` that always holds its special meaning. + +.. _fls_cbsgp6k0qa82: + +Reserved Keywords +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReservedKeyword ::= + $$abstract$$ + | $$become$$ + | $$box$$ + | $$do$$ + | $$final$$ + | $$macro$$ + | $$override$$ + | $$priv$$ + | $$try$$ + | $$typeof$$ + | $$unsized$$ + | $$virtual$$ + | $$yield$$ + +.. rubric:: Legality Rules + +:dp:`fls_w4b97ewwnql` +A :t:`reserved keyword` is a :t:`keyword` that is not yet in use. + +.. _fls_9kjpxri0axvg: + +Weak Keywords +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WeakKeyword ::= + $$macro_rules$$ + | $$'static$$ + | $$union$$ + +.. rubric:: Legality Rules + +:dp:`fls_bv87t1gvj7bz` +A :t:`weak keyword` is a :t:`keyword` whose special meaning depends on the +context. + +:dp:`fls_bl55g03jmayf` +Word ``macro_rules`` acts as a :t:`keyword` only when used in the context of a +:s:`MacroRulesDefinition`. + +:dp:`fls_c354oryv513p` +Word ``'static`` acts as a :t:`keyword` only when used in the context of a +:s:`LifetimeIndication`. + +:dp:`fls_r9fhuiq1ys1p` +Word ``union`` acts as a :t:`keyword` only when used in the context of a +:s:`UnionDeclaration`. + diff --git a/_sources/licenses.rst.txt b/_sources/licenses.rst.txt new file mode 100644 index 00000000..9da250ef --- /dev/null +++ b/_sources/licenses.rst.txt @@ -0,0 +1,302 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_kd7fcvfrwks0: + +Licenses +======== + +.. _fls_mwoe9jy6l7er: + +Ada Reference Manual Copyright Notice +------------------------------------- + +:dp:`fls_9rpvtm5tjrpp` +**Fourth Edition (Ada** 202x\ **)** + +:dp:`fls_7uhb9t9x8r0c` +Copyright © 2016, 2017, 2018, 2019, 2020, 2021 AXE Consultants. All Rights +Reserved. + +:dp:`fls_ej4g7lz5eqm8` +This document may be copied, in whole or in part, in any form or by any means, +as is, or with alterations, provided that (1) alterations are clearly marked as +alterations and (2) this copyright notice is included unmodified in any copy. +Any other use or distribution of this document is prohibited without the prior +express permission of AXE. + +:dp:`fls_l9uu4q48v1co` +You use this document on the condition that you indemnify and hold harmless +AXE, its board, officers, agents, and employees, from any and all liability or +damages to yourself or your hardware or software, or third parties, including +attorneys' fees, court costs, and other related costs and expenses, arising out +of your use of this document irrespective of the cause of said liability. + +:dp:`fls_3j7jx4qsqucs` +AXE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO WARRANTY, +EXPRESS OR IMPLIED, AS TO THE ACCURACY, CAPABILITY, EFFICIENCY MERCHANTABILITY, +OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL AXE BE LIABLE FOR ANY GENERAL, +CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL DAMAGES, EVEN IF AXE +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +.. _fls_w6b35kn6la40: + +Rust Reference Apache License +----------------------------- + +:dp:`fls_wn4kcs3skqra` +Apache License + +:dp:`fls_mtcsb64efiw1` +Version 2.0, January 2004 + +:dp:`fls_9tssu3wp22cz` +http://www.apache.org/licenses/ + +:dp:`fls_4pclfuqukw5o` +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +:dp:`fls_rgn86bsd9tl5` +1. Definitions. + +:dp:`fls_n6ash4u0e838` +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +:dp:`fls_4z50m2plw8lg` +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +:dp:`fls_bmx87il86j77` +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +:dp:`fls_467b9ucekcv3` +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +:dp:`fls_9ws2rqie234r` +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +:dp:`fls_j075fx75s7wg` +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +:dp:`fls_akjks1czkd7n` +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +:dp:`fls_6n4t2e7lxq3` +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +:dp:`fls_g0gyduo0wc55` +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in the +Work by the copyright owner or by an individual or Legal Entity authorized to +submit on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +:dp:`fls_w8npkgeox7u5` +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a contribution has been received by Licensor and subsequently +incorporated within the Work. + +:dp:`fls_iygftblnws72` +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +:dp:`fls_s32i8ovj5nqu` +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those patent +claims licensable by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) with the +Work to which such Contribution(s) was submitted. If You institute patent +litigation against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that the Work or a Contribution incorporated within the Work +constitutes direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of the date +such litigation is filed. + +:dp:`fls_c673i0mbecb9` +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and in +Source or Object form, provided that You meet the following conditions: + +:dp:`fls_pwpt8rg76oj3` +(a) You must give any other recipients of the Work or Derivative Works a copy of +this License; and + +:dp:`fls_yu3hgzo57bvm` +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and + +:dp:`fls_37aibo9w67e8` +(c) You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from the +Source form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and + +:dp:`fls_py9om9jvbulw` +(d) If the Work includes a "NOTICE" text file as part of its distribution, then +any Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of +the following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed as +modifying the License. + +:dp:`fls_wkf26wyy0ndr` +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +:dp:`fls_qsvzdiicam4f` +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you may have +executed with Licensor regarding such Contributions. + +:dp:`fls_n4zpph83hza1` +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +:dp:`fls_6gvjqsyyk3sg` +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License. + +:dp:`fls_evwltjyhvhz` +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including any +direct, indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of such +damages. + +:dp:`fls_xj0b5mrjgdbt` +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You agree to +indemnify, defend, and hold each Contributor harmless for any liability incurred +by, or claims asserted against, such Contributor by reason of your accepting any +such warranty or additional liability. + +:dp:`fls_ecitsmzb8l28` +END OF TERMS AND CONDITIONS + +:dp:`fls_wx0hv6f68i4f` +APPENDIX: How to apply the Apache License to your work. + +:dp:`fls_fgjjzdwbw1t8` +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should +be enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + +:dp:`fls_hnxekf2ahnif` +Copyright [yyyy] [name of copyright owner] + +:dp:`fls_e0ytxo6b451` +Licensed under the Apache License, Version 2.0 (the "License"); + +:dp:`fls_145e22m6bw47` +you may not use this file except in compliance with the License. + +:dp:`fls_9o0wr812ggf2` +You may obtain a copy of the License at + +:dp:`fls_cqaian5c7mwr` +http://www.apache.org/licenses/LICENSE-2.0 + +:dp:`fls_eil4b7ffojqa` +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +.. _fls_un9oqipiretc: + +Rust Reference MIT License +-------------------------- + +:dp:`fls_bkxw1o1hanmk` +**Copyright (c) 2010 The Rust Project Developers** + +:dp:`fls_yc3wyw3plm1s` +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +:dp:`fls_ypomxdgiswq8` +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +:dp:`fls_q6rhvbuhxa21` +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/_sources/macros.rst.txt b/_sources/macros.rst.txt new file mode 100644 index 00000000..75f01596 --- /dev/null +++ b/_sources/macros.rst.txt @@ -0,0 +1,1115 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_83182bfa9uqb: + +Macros +====== + +.. rubric:: Legality Rules + +:dp:`fls_j1jc83erljo0` +A :t:`macro` is a custom definition that extends Rust by defining callable +syntactic transformations. The effects of a :t:`macro` are realized through +:t:`[macro invocation]s` or :t:`attribute` use. :t:`[Macro]s` come in two +distinct forms: + +* :dp:`fls_23eapx3ckymf` + :t:`[Declarative macro]s` define rules for recognizing syntactic patterns and + generating direct syntax. + +* :dp:`fls_a5uemz2hnbi8` + :t:`[Procedural macro]s` define augmented :t:`[function]s` that operate on and + return a stream of :t:`[lexical element]s`. + +:dp:`fls_rnty1c8l5495` +:t:`[Token]s` are a subset of :t:`[lexical element]s` consumed by :t:`[macro]s`. + +.. _fls_xa7lp0zg1ol2: + +Declarative Macros +------------------ + +.. rubric:: Syntax + +.. syntax:: + + MacroRulesDeclaration ::= + $$macro_rules$$ $$!$$ Name MacroRulesDefinition + + MacroRulesDefinition ::= + $$($$ MacroRuleList $$)$$ $$;$$ + | $$[$$ MacroRuleList $$]$$ $$;$$ + | $${$$ MacroRuleList $$}$$ + + MacroRuleList ::= + MacroRule ($$;$$ MacroRule)* $$;$$? + + MacroRule ::= + MacroMatcher $$=>$$ MacroTranscriber + + MacroMatcher ::= + $$($$ MacroMatch* $$)$$ + | $$[$$ MacroMatch* $$]$$ + | $${$$ MacroMatch* $$}$$ + + MacroTranscriber ::= + DelimitedTokenTree + + MacroMatch ::= + MacroMatcher + | MacroMatchToken + | MacroMetavariableMatch + | MacroRepetitionMatch + +:dp:`fls_ikzjsq8heyk6` +A :ds:`MacroMatchToken` is any :t:`lexical element` in category +:s:`LexicalElement`, except punctuation ``$`` and category :s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_w44hav7mw3ao` +A :t:`declarative macro` is a :t:`macro` that associates a :t:`name` with a set +of syntactic transformation :t:`[macro rule]s`. + +:dp:`fls_dw1nq4r9ghhd` +A :t:`macro rule` is a :t:`construct` that consists of a :t:`macro matcher` and +a :t:`macro transcriber`. + +:dp:`fls_oq4xn8guos8f` +A :t:`macro matcher` is a :t:`construct` that describes a syntactic pattern that +a :t:`macro` must match. + +:dp:`fls_cdaf8viwmdfe` +A :t:`macro match` is the most basic form of a satisfied :t:`macro matcher`. + +:dp:`fls_ljavs0w61z3j` +A :t:`macro transcriber` is a :t:`construct` that describes the replacement +syntax of a :t:`macro`. + +:dp:`fls_3jspk8obv7sd` +A :t:`declarative macro` is invoked using a :t:`macro invocation`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! answer_to_life { + () => { 42 }; + } + +.. _fls_8nzypdu9j3ge: + +Metavariables +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MacroMetavariableMatch ::= + $$$$$ MacroMetavariable $$:$$ MacroFragmentSpecifier + + MacroMetavariable ::= + Keyword + | NonKeywordIdentifier + + MacroFragmentSpecifier ::= + $$block$$ + | $$expr$$ + | $$ident$$ + | $$item$$ + | $$lifetime$$ + | $$literal$$ + | $$meta$$ + | $$pat$$ + | $$pat_param$$ + | $$path$$ + | $$stmt$$ + | $$tt$$ + | $$ty$$ + | $$vis$$ + + MacroMetavariableIndication ::= + $$$$$ MacroMetavariable + +.. rubric:: Legality Rules + +:dp:`fls_g93r3teei8wo` +:t:`[Declarative macro]s` employ :t:`[metavariable]s` to match a :t:`token` of +a particular kind and bind its :t:`value` to a name for use during +:t:`macro transcription`. + +:dp:`fls_4zdait30exvn` +A :t:`metavariable` is a :t:`macro match` that describes a :t:`variable`. + +:dp:`fls_2HguXbL7DjKH` +A :t:`metavariable` is visible in the :t:`macro transcriber` of the +:t:`macro rule` of the :t:`macro matcher` it is declared in. + +:dp:`fls_8zypylq60zba` +A :t:`fragment specifier` is a :t:`construct` that indicates the :t:`type` of +a :t:`metavariable`. + +:dp:`fls_8o9mcV2KrKac` +:t:`Fragment specifier` kinds impose the following +:dt:`[fragment specifier restriction]s` on the :t:`[token]s` that follow them: + +* :dp:`fls_PxR9vNHsaFnI` + ``expr`` shall only be followed by ``=>``, ``,``, or ``;``. + +* :dp:`fls_ePyoTeJJ11N0` + ``pat`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``if``, or + ``in``. + +* :dp:`fls_0j7VOV4ewfeY` + ``path`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``;``, ``:``, + ``>``, ``>>``, ``[``, ``{``, ``as``, ``where``, or a :t:`metavariable` with + the ``block`` :t:`fragment specifier` kind. + +* :dp:`fls_80cOMpIMU2gx` + ``pat_param`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``if``, + or ``in``. + +* :dp:`fls_DFMRwsWI8e5z` + ``stmt`` shall only be followed by ``=>``, ``,``, or ``;``. + +* :dp:`fls_BoIGgrFdyhwH` + ``ty`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``;``, ``:``, + ``>``, ``>>``, ``[``, ``{``, ``as``, ``where``, or a :t:`metavariable` with + the ``block`` :t:`fragment specifier` kind. + +* :dp:`fls_NBbygZwUxjFp` + ``vis`` shall only be followed by ``,``, an :t:`identifier` except for + ``priv``, any token that may begin a :s:`TypeSpecification`, or a + :t:`metavariable` with the ``ident``, ``ty`` or ``block`` + :t:`fragment specifier` kind. + +* :dp:`fls_lZ8F1zUJju33` + Any other kind may be followed by any token. + +:dp:`fls_ephlmLsGTMgw` +A :t:`metavariable indication` is a :t:`construct` that indicates a +:t:`metavariable`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! square { + ($e:expr) => { $e * $e }; + } + +.. _fls_k01lsksqtq1r: + +Repetition +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MacroRepetitionMatch ::= + $$$$$ $$($$ MacroRepetitionMatchContent $$)$$ MacroRepetitionSeparator? MacroRepetitionOperator + + MacroRepetitionMatchContent ::= + MacroMatch* + + MacroRepetitionTranscriber ::= + $$$$$ $$($$ TokenTree* $$)$$ MacroRepetitionSeparator? MacroRepetitionOperator + + MacroRepetitionOperator ::= + $$+$$ + | $$*$$ + | $$?$$ + +:dp:`fls_4ps4x4513xau` +A :ds:`MacroRepetitionSeparator` is any :t:`lexical element` in category +:s:`LexicalElement`, except punctuation ``+``, ``*``, ``?``, and category +:s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_8byjmlgum2f3` +A :t:`macro repetition in matching` allows for a syntactic pattern to be matched +zero or multiple times during :t:`macro matching`. + +:dp:`fls_ltdp3zs60dzr` +A :t:`macro repetition in transcription` allows for a syntactic pattern to be +transcribed zero or multiple times during :t:`macro transcription`. + +:dp:`fls_V1WRuzZUWUGj` +A :t:`macro repetition` is either a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription`. + +:dp:`fls_u86j0zm2jshf` +A :t:`repetition operator` is a :t:`construct` that indicates the number +of times a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription` can be repeated. + +:dp:`fls_h5f8x4jdnvbu` +The effects of a :t:`repetition operator` are as follows: + +* :dp:`fls_hf4gj5pfl437` + ``*`` - Zero or more repetitions. + +* :dp:`fls_tm0w0680wf4x` + ``+`` - One or more repetitions. + +* :dp:`fls_10lsg5212ffb` + ``?`` - Zero or one repetition. + +:dp:`fls_UnfvR9NB1Nze` +A :t:`macro repetition` has the following additional restrictions: + +* :dp:`fls_Sm4qVsHKYLY2` + If the :t:`macro repetition` has a :t:`separator`, the :t:`separator` shall + be allowed by the :s:`MacroRepetitionMatchContent`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_Rdvs8Dz6OUU7` + If the :t:`repetition operator` is ``*`` or ``+``, then the + possible beginnings of the :s:`MacroRepetitionMatchContent` shall be allowed + by its :s:`MacroRepetitionMatchContent`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_UIlj6Csow81w` + If the :t:`repetition operator` is ``?`` or ``*``, then the succeeding + :s:`MacroMatch` must be allowed by the preceding :s:`MacroMatch`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_yp2XxDv4DzEi` + The possible beginnings of the :s:`MacroRepetitionMatchContent` must be + allowed by the preceding :s:`MacroMatch`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_n5TkJKWiDhCD` + The succeeding :s:`MacroMatch` must be allowed by the possible endings of the + :s:`MacroRepetitionMatchContent`'s :t:`[fragment specifier restriction]s`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! generate_pairs { + ( $( $first:ident )* ; $( &second:ident )* ) + => + { $( $first, $second )* }; + } + +.. _fls_wn1i6hzg2ff7: + +Procedural Macros +----------------- + +.. rubric:: Legality Rules + +:dp:`fls_ejbddhggstd2` +A :t:`procedural macro` is a :t:`macro` that encapsulates syntactic +transformations in a :t:`function`. :t:`[Procedural macro]s` consume one or more +streams of :t:`[token]s` and produce a stream of :t:`[token]s`. + +:dp:`fls_pcce9gmjpxba` +:t:`[Procedural macro]s` shall be defined in a :t:`crate` subject to +:t:`attribute` :c:`crate_type` where the type is ``proc-macro``. + +:dp:`fls_vtzuplb1p3s` +A :t:`macro implementation function` is the :t:`function` that encapsulates the +syntactic transformations of a :t:`procedural macro`. + +:dp:`fls_mewfehvgm16r` +A :t:`macro implementation function` enters the :t:`name` of the +:t:`procedural macro` into the :t:`macro namespace`. + +.. _fls_2d6bqnpy6tvs: + +Function-like Macros +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_utd3zqczix` +A :t:`function-like macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of :t:`[token]s`. + +:dp:`fls_ojr30lf6jfx0` +The :t:`macro implementation function` of a :t:`function-like macro` shall be +subject to the following restrictions: + +* :dp:`fls_ljkjmegynhiy` + It shall be subject to :t:`attribute` :c:`proc_macro`, + +* :dp:`fls_8a8qhzjw5hax` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_ofzql79i9if` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_j1wsyzip2qb3` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_etyo9bmzxby6` + It shall have a single :t:`function parameter` whose :t:`type specification` + indicates :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_mkl9b38m0sf1` + It shall have a :t:`return type` whose :t:`type specification` indicates + :t:`type` :std:`proc_macro::TokenStream`. + +:dp:`fls_lfmb22bfnrye` +A :t:`function-like macro` is invoked using a :t:`macro invocation`. + +:dp:`fls_fbgal48cgj44` +The sole parameter of the :t:`macro implementation function` captures the +:t:`token` stream produced from the :s:`DelimitedTokenTree` of the +:t:`macro invocation`, excluding outer :s:`[Delimiter]s`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro] + pub fn make_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_o8s3r7m90q59: + +Derive Macros +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_e5x92q2rq8a0` +A :t:`derive macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of :t:`[token]s`. :t:`[Derive macro]s` are +used to construct new syntax for :t:`[abstract data type]s`. + +:dp:`fls_ldw75sy5uj7p` +The :t:`macro implementation function` of a :t:`derive macro` shall be subject +to the following restrictions: + +* :dp:`fls_7gcnui9beky` + It shall be subject to :t:`attribute` :c:`proc_macro_derive`, + +* :dp:`fls_ef30ropg7dhx` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_mo00vqm9xfqc` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_gr9wugeqyb3b` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_npnze2cg8ae` + It shall have a single :t:`function parameter` whose :t:`type specification` + indicates :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_w2h4lk6bmht` + It shall have a :t:`return type` whose :t:`type specification` indicates + :t:`type` :std:`proc_macro::TokenStream`. + +:dp:`fls_x96a0xzcyrko` +A :t:`derive macro` is invoked using :t:`attribute` :c:`derive`. + +:dp:`fls_caa16usjxryg` +The sole parameter of the :t:`macro implementation function` captures +the :t:`token` stream produced from the related :s:`EnumDeclaration`, +:s:`StructDeclaration`, or :s:`UnionDeclaration`. + +:dp:`fls_H5ipqqlH3pJh` +A :t:`derive macro` adds all its declared :t:`[derive helper attribute]s` into +the :t:`derive helper attribute scope` of the :t:`abstract data type` the +:t:`attribute` is attached to. + +:dp:`fls_mobky5ck1mi` +A :dt:`derive helper attribute` is an :t:`inert attribute` that acts as a +hint to :t:`attribute` :c:`derive`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_derive(Answer)] + pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_4vjbkm4ceymk: + +Attribute Macros +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_l3epi1dqpi8o` +An :t:`attribute macro` is a :t:`procedural macro` that consumes two streams +of :t:`[token]s` to produce a single stream of :t:`[token]s`, and defines a +new :t:`outer attribute` that can be attached to :t:`[item]s`. +:t:`[Attribute macro]s` are used to replace :t:`[item]s` with other +:t:`[item]s`. + +:dp:`fls_3sublbi9bz7k` +The :t:`macro implementation function` of an :t:`attribute macro` shall be +subject to the following restrictions: + +* :dp:`fls_eb8jxl70wmeh` + It shall be subject to :t:`attribute` :c:`proc_macro_attribute`, + +* :dp:`fls_7ugtmobgb2t9` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_y700oif45wum` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_hhsf1a9p6o55` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_4g932k8ueyqp` + It shall have two :t:`[function parameter]s` whose :t:`[type specification]s` + indicate :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_f5qy1pnlbpng` + It shall have a :t:`return type` whose :t:`type specification` indicates type + :std:`proc_macro::TokenStream`. + +:dp:`fls_rzn48xylk4yj` +An :t:`attribute macro` is invoked using an :t:`attribute` of the form + +* :dp:`fls_78400zh02sdq` + ``#[SimplePath]``, or + +* :dp:`fls_eyesmvuwpjn1` + ``#[SimplePath DelimitedTokenTree]`` + +:dp:`fls_fku5beu3mr4c` +The first :t:`function parameter` of the :t:`macro implementation function` +captures the :t:`token` stream produced from the :s:`DelimitedTokenTree` +of the invoking :t:`attribute`, excluding outer :s:`[Delimiter]s`. If no +:s:`DelimitedTokenTree` is provided, then the :t:`token` stream is considered +empty. + +:dp:`fls_knjsslplv5ri` +The second :t:`function parameter` of the :t:`macro implementation function` +captures the :t:`token` stream produced from the related :t:`item`, including +all :t:`[outer attribute]s` that apply to that :t:`item`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_attribute] + pub fn output_and_return_item + (attr: TokenStream, item: TokenStream) -> TokenStream + { + println!("attr: \"{}\"", attr.to_string()); + println!("item: \"{}\"", item.to_string()); + item + } + +.. _fls_vnvt40pa48n8: + +Macro Invocation +---------------- + +.. rubric:: Syntax + +.. syntax:: + + MacroInvocation ::= + SimplePath $$!$$ DelimitedTokenTree + + DelimitedTokenTree ::= + $$($$ TokenTree* $$)$$ + | $$[$$ TokenTree* $$]$$ + | $${$$ TokenTree* $$}$$ + + TokenTree ::= + DelimitedTokenTree + | NonDelimitedToken + + TerminatedMacroInvocation ::= + SimplePath $$!$$ $$($$ TokenTree* $$)$$ $$;$$ + | SimplePath $$!$$ $$[$$ TokenTree* $$]$$ $$;$$ + | SimplePath $$!$$ $${$$ TokenTree* $$}$$ + +:dp:`fls_wushtmw9qt3y` +A :ds:`NonDelimitedToken` is any :t:`lexical element` in category +:s:`LexicalElement`, except category :s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_snpxxcqhtjfv` +A :t:`macro invocation` is a call of a :t:`declarative macro` or +:t:`function-like macro` that is expanded statically and replaced with the +result of the :t:`macro`. + +:dp:`fls_6v06zvi1ctub` +A :t:`terminated macro invocation` is a :t:`macro invocation` that may be used +as a :t:`statement`. + +.. rubric:: Examples + +:dp:`fls_338rmbazl67o` +See :p:`20.1. ` for the declaration of ``answer_to_life``. + +.. code-block:: rust + + answer_to_life!(); + +:dp:`fls_lrr7gg8tian` +See :p:`20.1.1. ` for the declaration of ``square``. + +.. code-block:: rust + + square!(5); + +:dp:`fls_8qxwwf4trnl` +See :p:`20.1.2. ` for the declaration of ``generate_pairs``. + +.. code-block:: rust + + generate_pairs!(1, 2, 3; 9, 8, 7); + +:dp:`fls_8z1sgtvchhhw` +See :p:`20.2.1. ` for the declaration of +``make_answer_to_life``. + +.. code-block:: rust + + make_answer_to_life!(); + +:dp:`fls_d9w3dn2yn7mo` +See :p:`20.2.2. ` for the declaration of ``Answer``. + +.. code-block:: rust + + #[derive(Answer)] + struct derive_macro_invoker; + +:dp:`fls_1tftbd91yfpd` +See :p:`20.2.3. ` for the declaration of +``output_and_return_item``. + +.. code-block:: rust + + #[output_and_return_item] + fn attribute_macro_invoker() {} + +.. _fls_wjldgtio5o75: + +Macro Expansion +--------------- + +.. rubric:: Legality Rules + +:dp:`fls_xscdaxvs4wx4` +:t:`Macro expansion` is the process of statically executing a +:t:`macro invocation` and replacing it with the produced output of the +:t:`macro invocation`. + +:dp:`fls_nz5stwcc41gk` +:t:`Macro expansion` of :t:`[declarative macro]s` proceeds as follows: + +#. :dp:`fls_40xq8Ri1OMZZ` + The :s:`TokenTree` of the :t:`macro invocation` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_76prdp6k1fga` + The :s:`TokenTree` of the :t:`macro invocation` is matched against the + :t:`[macro rule]s` of the resolved :t:`macro` by considering individual + :t:`[macro matcher]s`. It is a static error if no :t:`macro matcher` is + satisfied. + +#. :dp:`fls_76u274l4kew8` + The :t:`macro transcriber` of the satisfied :t:`macro rule` produces its + result, with all :t:`[metavariable indication]s` resolved. It is a static + error if the :t:`macro transcriber` fails to produce its result. + +#. :dp:`fls_lakpily1zwfl` + The :t:`macro invocation` is replaced with the result of the + :t:`macro transcriber`. It is a static error if the result cannot be parsed + according to the expected expansion syntax of the context where the + :t:`macro invocation` resides. The expected expansion syntax is as follows: + + #. :dp:`fls_y20pmwo3v3uu` + If the :t:`macro invocation` appears as part of an :t:`associated item`, + an :t:`item` within an :t:`external block`, or another + :t:`macro invocation`, the output is required to constitute zero or more + :t:`[item]s`. + + #. :dp:`fls_nsh2vwx8oiw` + If the :t:`macro invocation` appears as part of an + :t:`expression-without-block`, the output is required to constitute an + :t:`expression`. + + #. :dp:`fls_tu6kmwm4v9nj` + If the :t:`macro invocation` appears as part of a + :t:`pattern-without-range`, the output is required to constitute zero or + more :t:`[pattern]s`. + + #. :dp:`fls_3zn4dz19nyvq` + If the :t:`macro invocation` appears as part of a :t:`statement`, the + output is required to constitute zero or more :t:`[statement]s`. + + #. :dp:`fls_t89sw6az99z7` + If the :t:`macro invocation` appears as part of a + :t:`type specification` without :t:`[bound]s`, the output is required to + constitute a :t:`type`. + +:dp:`fls_417hvhvj2554` +:t:`Macro expansion` of :t:`[function-like macro]s` proceeds as follows: + +#. :dp:`fls_nNrs4EC3ff5T` + The :s:`TokenTree` of the :t:`macro invocation` has all :t:`[outer block + doc]s` and :t:`[outer line doc]s` contained within replaced by their + equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_srtqkdceaz5t` + The :s:`TokenTree` of the :t:`macro invocation` is transformed into a + corresponding :std:`proc_macro::TokenStream`. + +#. :dp:`fls_mi92etjtpamu` + The :t:`macro implementation function` is called with the + :std:`proc_macro::TokenStream` as its sole argument. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_n8beqlt54rhy` + The :t:`macro invocation` is replaced with the returned + :std:`proc_macro::TokenStream` of the :t:`macro implementation function` + call. It is a static error if the result can not be parsed according + to the expected expansion syntax of the context where the :t:`macro + invocation` resides. The expected expansion syntax is as follows: + + #. :dp:`fls_vd3dzvr6re19` + If the :t:`macro invocation` appears as part of an :t:`associated item`, + an :t:`item` within an :t:`external block`, or another + :t:`macro invocation`, the output is required to constitute zero or more + :t:`[item]s`. + + #. :dp:`fls_l8j2jiuuao4f` + If the :t:`macro invocation` appears as part of an + :t:`expression-without-block`, the output is required to constitute an + :t:`expression`. + + #. :dp:`fls_xvemyqj5gc6g` + If the :t:`macro invocation` appears as part of a + :t:`pattern-without-range`, the output is required to constitute zero or + more :t:`[pattern]s`. + + #. :dp:`fls_stseor6tln22` + If the :t:`macro invocation` appears as part of a :t:`statement`, the + output is required to constitute zero or more :t:`[statement]s`. + + #. :dp:`fls_u11o90szy68s` + If the :t:`macro invocation` appears as part of a + :t:`type specification` without :t:`[bound]s`, the output is required to + constitute a :t:`type`. + +:dp:`fls_qi5kyvj1e8th` +:t:`Macro expansion` of :t:`[derive macro]s` proceeds as follows: + +#. :dp:`fls_vqIZaEl4EKu5` + The :t:`item` subject to the :t:`derive macro` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_grtiwf7q8jah` + The :t:`item` subject to the :t:`derive macro` is transformed into a + corresponding :std:`proc_macro::TokenStream` without the + invoking :c:`derive` :t:`attribute` as well as any preceding :c:`derive` + :t:`[attribute]s`. + +#. :dp:`fls_tbe2qq7whq10` + The :t:`macro implementation function` is called with the + :std:`proc_macro::TokenStream` as its sole argument. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_my93neopj9x0` + The returned :std:`proc_macro::TokenStream` of the + :t:`macro implementation function` call is appended to the enclosing + :t:`block expression` or :t:`module` where the related :s:`EnumDeclaration`, + :s:`StructDeclaration`, or :s:`UnionDeclaration` resides. It is a static + error if the output :std:`proc_macro::TokenStream` does not constitute zero + or more :t:`[item]s`. + +:dp:`fls_zat7kwi5vc5c` +:t:`Macro expansion` of :t:`[attribute macro]s` proceeds as follows: + +#. :dp:`fls_tjn92evtlflq` + The :s:`DelimitedTokenTree` of the invoking :t:`attribute macro` is + transformed into a corresponding :std:`proc_macro::TokenStream` without + the outer :s:`[Delimiter]s`. If no :s:`DelimitedTokenTree` is provided, + and empty :std:`proc_macro::TokenStream` is used. This + :std:`proc_macro::TokenStream` constitutes the first :t:`function parameter` + of the :t:`macro implementation function`. + +#. :dp:`fls_AJmPrhHfZo6J` + The :t:`item` subject to the :t:`attribute macro` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_mpgh22bi8caz` + The :t:`item` subject to the :t:`attribute macro` is transformed into a + corresponding :std:`proc_macro::TokenStream` without the invoking + :t:`attribute`. This :std:`proc_macro::TokenStream` constitutes the second + :t:`function parameter` of the :t:`macro implementation function`. + +#. :dp:`fls_ul7nhfyvyzh` + The :t:`macro implementation function` is called with the two + :std:`[proc_macro::TokenStream]s` as the two arguments. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_z6xfhf71w10a` + The :t:`item` subject to the :t:`attribute macro` is replaced with the + returned :std:`proc_macro::TokenStream` of the + :t:`macro implementation function` call. It is a static error if the output + :std:`proc_macro::TokenStream` does not constitute zero or more :t:`[item]s`. + +.. _fls_4apk1exafxii: + +Macro Matching +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ZmQZ8HQWv77L` +:t:`Macro matching` is the process of performing :t:`rule matching` and +:t:`token matching`. + +.. _fls_n3ktmjqf87qb: + +Rule Matching +^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_77ucvwu6idms` +:t:`Rule matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy the :t:`macro matcher` of a :t:`macro rule` that belongs to a +resolved :t:`declarative macro`. + +:dp:`fls_6h1jqhxzku5v` +:t:`Rule matching` proceeds as follows: + +#. :dp:`fls_r6i1ykrhb49j` + The :t:`[macro matcher]s` of all :t:`[macro rule]s` that belong to a resolved + :t:`macro` are tried against the :s:`TokenTree` of the :t:`macro invocation`, + in declarative order. In the event of a static error, no further attempts at + selecting a subsequent :t:`macro matcher` are made. + +#. :dp:`fls_3qzes4lr8yuv` + The :t:`macro match` of a candidate :t:`macro matcher` is tried against + the :s:`TokenTree` of the :t:`macro invocation` by matching individual + :t:`[token]s`, in left-to-right order. Matching does not employ lookahead. + It is a static error if matching a candidate :t:`macro matcher` is ambiguous. + Matching does not employ backtracking. It is a static error if matching a + candidate :t:`macro matcher` fails while parsing into a :t:`metavariable` and + having consumed at least one :t:`token` while parsing the :t:`metavariable`. + +#. :dp:`fls_r878ysvsy4jb` + It is a static error if no :t:`macro matcher` is selected. + +.. _fls_qpx6lgapce57: + +Token Matching +^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_k6a24sbon5v9` +:t:`Token matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy a :t:`macro match` of a selected :t:`macro matcher` that +belongs to a resolved :t:`declarative macro`. + +:dp:`fls_6uuxv91xgmfz` +:t:`Token matching` proceeds as follows: + +:dp:`fls_g1rml9tavh8v` +The outer :s:`[Delimiter]s` of a :t:`macro matcher` match any outer +:s:`[Delimiter]s` in the :t:`macro invocation`. + +:dp:`fls_h7x3tc208zpk` +A :t:`metavariable` in a :t:`macro matcher` is matched against a sequence of +:t:`[token]s` in the :t:`macro invocation` based on its :t:`fragment specifier`: + +* :dp:`fls_p9eqa17d3dx` + :t:`Fragment specifier` **block** requires a :t:`block expression`. + +* :dp:`fls_k00bck2k8tde` + :t:`Fragment specifier` **expr** requires an :t:`expression`. + +* :dp:`fls_pf0qrz5nadl2` + :t:`Fragment specifier` **ident** requires a :t:`pure identifier`. + +* :dp:`fls_9fioah171ojx` + :t:`Fragment specifier` **item** requires an :t:`item`. + +* :dp:`fls_j2o0f52zyvyb` + :t:`Fragment specifier` **lifetime** requires character sequence 0x27 + 0x5F (apostrophe, low line), or character 0x27 (apostrophe) followed by an + :t:`identifier`. + +* :dp:`fls_w5dzv3z4zd5a` + :t:`Fragment specifier` **literal** requires optional character 0x2D + (hyphen-minus), followed by a :t:`literal expression`. + +* :dp:`fls_wtol98rrqka5` + :t:`Fragment specifier` **meta** requires an :t:`attribute content`. + +* :dp:`fls_iorqt9q4ie9j` + :t:`Fragment specifier` **pat** requires a :t:`pattern`. + +* :dp:`fls_2zjed913qpvi` + :t:`Fragment specifier` **pat_param** requires a + :t:`pattern-without-alternation`. + +* :dp:`fls_3zdts0fsa36u` + :t:`Fragment specifier` **path** requires a :t:`type path`. + +* :dp:`fls_mb3yr1j7npv5` + :t:`Fragment specifier` **stmt** requires a :t:`statement` without trailing + character 0x3B (semicolon), excluding :t:`[item]s` that require character + 0x3B (semicolon). + +* :dp:`fls_xbuixjt9pum6` + :t:`Fragment specifier` **tt** requires a :s:`TokenTree`. + +* :dp:`fls_6annifhk6cd8` + :t:`Fragment specifier` **ty** requires a :t:`type specification`. + +* :dp:`fls_2zu22efr6ncy` + :t:`Fragment specifier` **vis** requires a possibly empty visibility modifier. + +:dp:`fls_dqroklsaayzb` +Once a :t:`metavariable` is matched, the matching sequence of :t:`[token]s` is +bound to that :t:`metavariable`. + +:dp:`fls_ghqjk6xj85ng` +Repetition in a :t:`macro matcher` is matched based on how many times the +:t:`pattern` appears consecutively optionally separated by a :t:`separator` in +the :s:`TokenTree` of the :t:`macro invocation`, as follows: + +* :dp:`fls_lzwl4en5wcw0` + If the repeated :t:`pattern` includes a :t:`separator`, then the + :t:`separator` must be able to follow the repeated :t:`pattern`. + +* :dp:`fls_cz44evkjzv29` + If the repeated :t:`pattern` can appear multiple times, then the repeated + :t:`pattern` must be able to follow itself. + +* :dp:`fls_o2exsai4m0gy` + If the repeated :t:`pattern` can appear zero times, then the preceding + :t:`pattern` must be able to follow the succeeding :t:`pattern`. + +* :dp:`fls_1ch299zp8h7` + The repeated :t:`pattern` must be able to follow the preceding :t:`pattern`. + +* :dp:`fls_55ptfjlvoo8o` + The succeeding :t:`pattern` must be able to follow the repeated :t:`pattern`. + +:dp:`fls_finzfb5ljkf8` +A :dt:`repetition index` is a monotonically increasing number that is +initialized to zero, and incremented by one. + +:dp:`fls_s1ccs6jocsgr` +Once a :t:`metavariable` is matched, the matching sequence of :t:`[token]s` is +treated as follows: + +#. :dp:`fls_wpi2i6hoj3li` + The matching sequence of :t:`[token]s` is stored in an ordered collection at + the current :t:`repetition index`. + +#. :dp:`fls_uuey421a8n96` + The current :t:`repetition index` is incremented by one. + +:dp:`fls_b5u47tuu136r` +Each matched :t:`metavariable` in a :t:`macro repetition in matching` is bound +separately, where the matches are stored in an ordered collection. + +:dp:`fls_rb1tu4e7dpma` +Any other :t:`token` in a :t:`macro matcher` is matched literally against the +:s:`TokenTree` of the :t:`macro invocation`. + +:dp:`fls_c76sdvos5xeo` +It is a static error if the :s:`TokenTree` of the :t:`macro invocation` contains +leftover :t:`[token]s` after :t:`macro matching`. + +.. _fls_ym00b6ewf4n3: + +Macro Transcription +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_y21i8062mft0` +:t:`Macro transcription` is the process of producing the expansion of a +:t:`declarative macro`. + +:dp:`fls_n2dx4ug5nd5w` +:t:`Macro transcription` proceeds as follows: + +:dp:`fls_iw7322ycvhkc` +Every :t:`metavariable indication` found in the :s:`DelimitedTokenTree` of the +:t:`macro transcriber` that belongs to a matched :t:`macro rule` is replaced by +the matched sequence of :t:`[token]s` of the :t:`metavariable`. + +:dp:`fls_jgitbqmyixem` +Unresolved :t:`[metavariable indication]s` are kept as :t:`[token]s` in the +output verbatim. + +:dp:`fls_ihcwl6taptas` +Every :t:`macro repetition in transcription` found in the +:s:`DelimitedTokenTree` of the :t:`macro transcriber` shall be transcribed by +repeatedly transcribing the :t:`[token]s` inside of it. + +:dp:`fls_g3dtpw4rtgdr` +The number of transcription repetitions for a +:t:`macro repetition in transcription` shall depend on its +:t:`repetition operator`, as follows: + +* :dp:`fls_pvp6dxykuv66` + A :t:`repetition operator` denoted by ``+`` shall require one or more + repetitions. + +* :dp:`fls_bd673n5awwbz` + A :t:`repetition operator` denoted by ``*`` shall require zero or more + repetitions. + +* :dp:`fls_zbtwrtcy7pzf` + A :t:`repetition operator` denoted by ``?`` shall require zero or one + repetition. + +:dp:`fls_eacyb6jap9ru` +A :t:`metavariable indication` that is matched inside of a +:t:`macro repetition` shall not be used outside of a +:t:`macro repetition in transcription`. + +:dp:`fls_y4podc7ee8lf` +A :t:`metavariable indication` shall be used in a +:t:`macro repetition in transcription` of the same nesting depth as its +corresponding :t:`metavariable` appears in the :t:`macro matcher`. + +:dp:`fls_wbys0m4a1omg` +A :t:`metavariable indication` within a :t:`macro repetition in transcription` +shall repeat the same number of times in its matching :t:`macro repetition` if +the :t:`macro repetition` occurs at the same nesting depth. + +:dp:`fls_g445ovedgo4q` +Multiple transcribed :t:`[metavariable indication]s` in the same :t:`macro +repetition in transcription` shall repeat the same number of times. + +:dp:`fls_ctzthi6keit2` +When transcribing a :t:`metavariable indication` in a +:t:`macro repetition in transcription`, the :t:`metavariable indication` is +replaced with the matched sequence of :t:`[token]s` of the corresponding +iteration of the repetition :t:`metavariable` taken from the ordered collection. + +:dp:`fls_9n46ugmcqmix` +A :t:`metavariable indication` in a :t:`macro repetition in transcription` shall +be transcribed to the matched :t:`[token]s` in order, as follows: + +.. code-block:: rust + + macro_rules! foo { + ( $($expr:expr)* ) => { + $( $expr ; )* + // $expr is an error + }; + ( $( $( $expr:expr )* )* ) => { + $($($expr)*)* + } + } + + foo! { + 0 + 1 + 2 + } + +:dp:`fls_JinrPA0pMZCr` +yields ``0;1;2;`` + +:dp:`fls_95rn4cvgznmd` +Given a :t:`macro invocation` with ``N`` :t:`metavariable` arguments, a +:t:`macro` of the form + +.. code-block:: rust + + macro_rules! m { + ( $(param: expr)* ) => { + $( $param )* + } + } + +:dp:`fls_yg4c9x7049y4` +is equivalent to a :t:`macro` of the form + +.. code-block:: rust + + macro_rules! m { + ( $param_1: expr $param_2: expr ... $param_N: expr) => { + $param_1 $param_2 ... $param_N + } + } + +:dp:`fls_o9rwz9z0a2h4` +where the :t:`metavariable` of the :t:`macro repetition in matching` are +repeated ``N`` times, and the :t:`[metavariable indication]s` of the +:t:`macro repetition in transcription` are repeated ``N`` times. Invoking such +a :t:`macro` relates the first :t:`metavariable` argument of the +:t:`macro invocation` with the first :t:`metavariable` of the +:t:`macro repetition in matching`, the second :t:`metavariable` argument with +the second :t:`metavariable`, and so on. + +.. _fls_xlfo7di0gsqz: + +Hygiene +------- + +:dp:`fls_7ezc7ncs678f` +:t:`Hygiene` is a property of :t:`[macro]s` and :t:`[identifier]s` that appear +within them, which aims to eliminate the syntactic interference between a +:t:`macro` and its environment. + +.. rubric:: Legality Rules + +:dp:`fls_3axjf28xb1nt` +:t:`Hygiene` is categorized as follows: + +* :dp:`fls_dz2mvodl818d` + :t:`Definition site hygiene`, which resolves to a :s:`MacroRulesDeclaration` + site. :t:`[Identifier]s` with :t:`definition site hygiene` cannot reference + the environment of the :s:`MacroRulesDeclaration`, cannot be referenced by the + environment of a :s:`MacroInvocation`, and are considered :t:`hygienic`. + +* :dp:`fls_puqhytfzfsg6` + :t:`Call site hygiene`, which resolves to a :s:`MacroInvocation` site. + :t:`[Identifier]s` with :t:`call site hygiene` can reference the environment + of the :s:`MacroRulesDeclaration`, can reference the environment of the + :s:`MacroInvocation`, and are considered :t:`unhygienic`. + +* :dp:`fls_uyvnq88y9gk3` + :t:`Mixed site hygiene`, which resolves to a :s:`MacroRulesDeclaration` + site for :t:`[label]s`, :t:`[variable]s`, and the ``$crate`` + :t:`metavariable`, and to the :s:`MacroInvocation` site otherwise, and is + considered :dt:`partially hygienic`. + +:dp:`fls_yxqcr19dig18` +Every :t:`macro` has associated :t:`hygiene` that depends on its kind: + +* :dp:`fls_kx25olky1jov` + :t:`[Declarative macro]s` have :t:`mixed site hygiene`. + +* :dp:`fls_v46v0t2vh6x4` + :t:`[Procedural macro]s` have :t:`call site hygiene` and + :t:`mixed site hygiene` depending on the implementation of the + :t:`procedural macro`. + +:dp:`fls_7eqqk2cj0clr` +The :t:`metavariable` ``$crate`` in a :t:`declarative macro`'s expansion refers +to the crate the :t:`declarative macro` was declared in. + diff --git a/_sources/ownership-and-deconstruction.rst.txt b/_sources/ownership-and-deconstruction.rst.txt new file mode 100644 index 00000000..9465b125 --- /dev/null +++ b/_sources/ownership-and-deconstruction.rst.txt @@ -0,0 +1,734 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_ronnwodjjjsh: + +Ownership and Destruction +========================= + +.. _fls_svkx6szhr472: + +Ownership +--------- + +.. rubric:: Legality Rules + +:dp:`fls_wt81sbsecmu0` +:t:`Ownership` is a property of :t:`[value]s` that is central to the resource +management model of Rust. + +:dp:`fls_ckcnkbb6y3cq` +An :t:`owner` is a :t:`variable` that holds a :t:`value`. + +:dp:`fls_ze0u9gfylmhn` +A :t:`value` shall have only one :t:`owner`. + +.. _fls_3xvm61x0t251: + +Initialization +-------------- + +.. rubric:: Legality Rules + +:dp:`fls_drfzu02bo7oe` +:t:`Initialization` is the act of supplying an initial :t:`value` to a +:t:`variable`. + +:dp:`fls_wnhci8phdu4m` +When a :t:`variable` holds a :t:`value`, the :t:`variable` is considered to be +:dt:`initialized`. + +:dp:`fls_ch2lvm50olqd` +When a :t:`variable` lacks a :t:`value` or its :t:`value` has been +:t:`passed ` :t:`by move`, the :t:`variable` is considered +to be :dt:`uninitialized`. + +:dp:`fls_46910buiwvv9` +A :t:`variable` shall be :t:`initialized` before it is accessed. + +.. rubric:: Runtime Semantics + +:dp:`fls_caufcwkpz689` +All memory starts as uninitialized. + +.. rubric:: Examples + +:dp:`fls_4lg92b9yima6` +Variable ``a`` is initialized. + +.. code-block:: rust + + let a: i32 = 42; + +:dp:`fls_xn1au0blioa3` +Variable ``b`` starts off as uninitialized, but is later initialized by virtue +of the assignment statement. + +.. code-block:: rust + + let b: i32; + b = 42; + +:dp:`fls_jmcjboopvytb` +Variable ``c`` starts off initialized, but is later uninitialized by virtue of a +transfer by move. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + let c: AtomicI32 = AtomicI32::new(42); + let d: AtomicI32 = c; + +.. _fls_v5x85lt5ulva: + +References +---------- + +.. rubric:: Legality Rules + +:dp:`fls_7x9pi2o7pee7` +A :t:`reference` is a :t:`value` of a :t:`reference type`. A :t:`reference` +can be obtained explicitly by using a :t:`borrow expression` or implicitly in +certain scenarios. + +:dp:`fls_tsqvr3fmcel` +A :t:`referent` is the :t:`value` pointed-to by a :t:`reference`. + +:dp:`fls_ev4a82fdhwr8` +A :t:`reference` shall point to an :t:`initialized` :t:`referent`. + +:dp:`fls_cckf6dtkgwb4` +The :t:`lifetime` of a :t:`referent` shall be at least as long as the +:t:`lifetime` of its :t:`reference`. + +:dp:`fls_8kqb8754e6p4` +A :t:`reference` is :dt:`active` from the point of obtaining its :t:`referent` +upto the last use of the :t:`reference`, prior to another assignment to the +:t:`reference` or the end of the :t:`scope` of the :t:`reference`. + +:dp:`fls_v69rptdjao42` +A :t:`referent` shall not be :t:`passed ` :t:`by move` while +a :t:`reference` to it is :t:`active`. + +:dp:`fls_vg9h6tz6z37w` +A :t:`referent` shall not be modified while a :t:`reference` to it is +:t:`active`. + +:dp:`fls_wcf5mxrzbujn` +An :t:`immutable reference` is a :t:`value` of a :t:`shared reference type`, and +prevents the mutation of its :t:`referent`. + +:dp:`fls_fckoj1jh5mrc` +A :t:`mutable reference` is a :t:`value` of a :t:`mutable reference type`, and +allows the mutation of its :t:`referent`. + +:dp:`fls_hqxsuyn285he` +The :t:`referent` of an :t:`immutable reference` shall be mutated only when the +:t:`type` of the :t:`referent` is subject to :t:`interior mutability`. + +:dp:`fls_i1ny0k726a4a` +While a :t:`mutable reference` is :t:`active`, no other :t:`reference` shall +refer to a :t:`value` that :t:`[overlap]s` with the :t:`referent` of the +:t:`mutable reference`. + +.. rubric:: Undefined Behavior + +:dp:`fls_eT1hnLOx6vxk` +It is undefined behavior to access a :t:`value` through aliasing +:t:`[mutable reference]s` from :t:`unsafe context`. + +.. rubric:: Examples + +.. code-block:: rust + + let immutable_reference: &i32 = &42; + let mutable_reference: &mut i32 = &mut 42; + +.. _fls_a14slch83hzn: + +Borrowing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_c02flohk54pc` +:t:`Borrowing` is the process of temporarily associating a :t:`reference` with a +:t:`value` without transferring :t:`ownership` permanently. + +:dp:`fls_j9kof0px3l7s` +A :t:`borrow` is a :t:`reference` produced by :t:`borrowing`. + +:dp:`fls_zepwytjwy049` +An :t:`implicit borrow` is a :t:`borrow` that is not present syntactically in +program text. An :t:`implicit borrow` occurs in the following contexts: + +* :dp:`fls_nordokzfy36d` + The :t:`call operand` of a :t:`call expression`, + +* :dp:`fls_bjf3futso849` + The :t:`[operand]s` of a :t:`comparison expression`, + +* :dp:`fls_yfmy4v5zlgw9` + The :t:`assigned operand` of a :t:`compound assignment expression`, + +* :dp:`fls_jv18y618j2s3` + The :t:`operand` of a :t:`field access expression`, + +* :dp:`fls_g4i0jb27iryr` + The :t:`operand` of a :t:`dereference expression`, + +* :dp:`fls_kky9ufexrvaw` + The :t:`indexed operand` of an :t:`index expression`, + +* :dp:`fls_o5oq4jfswr4q` + The :t:`receiver operand` of a :t:`method call expression`. + +:dp:`fls_MT69AGRXH9pS`` +An :t:`implicit borrow` may be an :t:`immutable borrow` or a :t:`mutable borrow` +if required. + +:dp:`fls_hyl4bdjbuzbw` +An :t:`immutable borrow` is an :t:`immutable reference` produced by +:t:`borrowing`. + +:dp:`fls_pu19i4sj6yg0` +A :t:`mutable borrow` is a :t:`mutable reference` produced by :t:`borrowing`. + +:dp:`fls_kxws4zmaahj6` +:t:`Borrowing` a :t:`field` of a :t:`union type` borrows all remaining +:t:`[field]s` using the same :t:`lifetime`. + +:dp:`fls_kup2ou22nwyl` +Immutably :t:`borrowing` a :t:`value` proceeds as follows: + +#. :dp:`fls_5bf2x4sm5ei` + **???** (**this should describe the order of borrowing and when the borrow + is returned**) + +#. :dp:`fls_8q5ly4x104ai` + An :t:`immutable borrow` of :t:`type` ``&'a T`` is created, where + :t:`lifetime` ``'a`` is replaced by a :t:`lifetime variable`, and + ``T`` is replaced by the borrowed :t:`type`. + +#. :dp:`fls_yhchu2bpil4m` + Lifetime inference is performed. + +#. :dp:`fls_568o7nyihndd` + The :t:`immutable borrow` is checked against other :t:`[borrow]s` and + :t:`by move` passing within the enclosing :t:`item`. + +#. :dp:`fls_Z2n7EJiLY5CT` + An :t:`immutable reference` to the borrowed :t:`value` is produced. + +#. :dp:`fls_ibi9mqGeHNLp` + The :t:`immutable borrow` is released immediately after the last usage of its + related :t:`immutable reference`. + +:dp:`fls_f9we73i8vwq3` +Mutably :t:`borrowing` a :t:`value` proceeds as follows: + +#. :dp:`fls_w5bjgaov8w60` + A :t:`mutable borrow` of :t:`type` ``&'a mut T`` is created, where + :t:`lifetime` ``'a`` is replaced by a :t:`lifetime variable`, and + ``T`` is replaced by the borrowed :t:`type`. + +#. :dp:`fls_gbqizu6gu6kk` + Lifetime inference is performed. + +#. :dp:`fls_ovkkxeybumvt` + The :t:`mutable borrow` is checked against other :t:`[borrow]s` and + :t:`by move` passing within the enclosing :t:`item`. + +#. :dp:`fls_7Kzu0qXiBUCb` + A :t:`mutable reference` to the borrowed :t:`value` is produced. + +#. :dp:`fls_VDHBP4oAoqT5` + The :t:`mutable borrow` is released immediately after the last usage of its + related :t:`mutable reference`. + +.. rubric:: Examples + +.. code-block:: rust + + let mutable_borrow = &mut 42; + let immutable_borrow = &42; + +.. _fls_77scxuomlbgs: + +Passing Conventions +------------------- + +.. rubric:: Legality Rules + +:dp:`fls_fvwx2ufeyzcs` +A :t:`passing convention` is the mechanism that defines how a :t:`value` is +transferred between :t:`[place]s`. + +:dp:`fls_h2pgsij1rbms` +A :t:`copy type` is a :t:`type` that implements the :std:`core::marker::Copy` +:t:`trait`. + +:dp:`fls_yx2knbby70fy` +A :t:`value` of a :t:`copy type` is :t:`passed ` +:dt:`by copy`. Passing :t:`by copy` does not change the :t:`owner` of the +:t:`value`. + +:dp:`fls_6ul3f6v0foma` +A :t:`move type` is a :t:`type` that implements the :std:`core::marker::Sized` +:t:`trait` and is not a :t:`copy type`. + +:dp:`fls_3ztdz02efeoc` +A :t:`value` of a :t:`move type` is :t:`passed ` +:dt:`by move`. Passing :t:`by move` changes the :t:`owner` of the :t:`value`. + +:dp:`fls_konzgoybhfqm` +A :t:`value` of a :t:`place expression` shall be +:t:`passed ` :t:`by move` only when it denotes: + +* :dp:`fls_4bnbv7mqod57` + A :t:`field` of a :t:`place expression` that can be + :t:`passed ` :t:`by move` and whose :t:`type` does not + implement the :std:`core::ops::Drop` :t:`trait`, or + +* :dp:`fls_3xk3p1unbjy5` + A :t:`temporary`, or + +* :dp:`fls_vk1xhvdaakh0` + A :t:`variable` which is not currently :t:`borrowed`. + +:dp:`fls_vveEJn7lngT8` +A :t:`value` of a :t:`value expression` is always +:t:`passed ` :t:`by move`. + +:dp:`fls_gq35gqagw35` +A :t:`value` not subject to :t:`by copy` or :t:`by move` :t:`passing convention` +shall not be :t:`passed ` between :t:`[place]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_cfqzpmnfeh8h` +Passing a :t:`value` :t:`by copy` from a source :t:`owner` to a target +:t:`owner` proceeds as follows: + +#. :dp:`fls_go9gdlk5d3km` + The :t:`value` of the source :t:`owner` is copied. + +#. :dp:`fls_459xx6febmf0` + The copy is assigned to the target :t:`owner`. + +:dp:`fls_3xyq50abdiv6` +Passing a :t:`value` :t:`by move` from a source :t:`owner` to a target +:t:`owner` proceeds as follows: + +#. :dp:`fls_7kcx3u8gvl1d` + The :t:`value` is unassigned from the source :t:`owner`. + +#. :dp:`fls_i4hrifsb9msr` + The :t:`value` is assigned to the target :t:`owner`. + +.. rubric:: Examples + +:dp:`fls_7tadh1zel0fc` +Type ``i32`` is a copy type. By the end of the second let statement, ``x`` is +the owner of the original ``42`` and ``y`` is the owner of a cloned ``42``. + +.. code-block:: rust + + let x: i32 = 42; + let y: i32 = x; + +:dp:`fls_ywt328hcieka` +Type :std:`core::sync::atomic::AtomicI32` is a move type. By the end of the +second let statement, ``x`` is uninitialized and ``y`` is the sole owner of the +atomic ``42``. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + let x: AtomicI32 = AtomicI32::new(42); + let y: AtomicI32 = x; + +.. _fls_4jiw35pan7vn: + +Destruction +----------- + +.. rubric:: Legality Rules + +:dp:`fls_e7ucq87s806d` +:t:`Destruction` is the process of recovering resources associated with a +:t:`value` as it goes out of scope. + +.. _fls_u2mzjgiwbkz0: + +Destructors +----------- + +.. rubric:: Legality Rules + +:dp:`fls_9m0gszdle0qb` +A :t:`drop type` is a :t:`type` that implements the :std:`core::ops::Drop` +:t:`trait` or contains a :t:`field` that has a :t:`drop type`. + +:dp:`fls_4nkzidytpi6` +A :t:`destructor` is a :t:`function` that is invoked immediately before the +:t:`destruction` of a :t:`value` of a :t:`drop type`. + +:dp:`fls_wzuwapjqtyyy` +:t:`Dropping` a :t:`value` is the act of invoking the :t:`destructor` of the +related :t:`type`. Such an object is said to be :dt:`dropped`. + +:dp:`fls_gfvm70iqu1l4` +An :t:`uninitialized` :t:`variable` is not :t:`dropped`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_l2xkdjeydqtx` +:t:`Dropping` an :t:`initialized` :t:`variable` proceeds as follows: + +#. :dp:`fls_bync24y6gp93` + If the :t:`drop type` implements the :std:`core::ops::Drop` :t:`trait`, then + ``core::ops::Drop::drop`` of the :t:`drop type` is invoked. + +#. :dp:`fls_jzancf72i95f` + If the :t:`drop type` is an :t:`array type`, then its elements are + :t:`dropped` from the first element to the last element. + +#. :dp:`fls_gjn2jnsal9gs` + Otherwise, if the :t:`drop type` is a :t:`closure type`, then all + :t:`[capture target]s` whose :t:`capture mode` is :t:`by move mode` are + :t:`dropped` in unspecified order. + +#. :dp:`fls_ol2w2292frfi` + Otherwise, if the :t:`drop type` is an :t:`enum type`, then the :t:`[field]s` + of the active :t:`enum variant` are :t:`dropped` in declaration order. + +#. :dp:`fls_6ii5o68vuymj` + Otherwise, if the :t:`drop type` is a :t:`slice type`, then its elements are + :t:`dropped` from the first element to the last element. + +#. :dp:`fls_sup43es8ps8r` + Otherwise, if the :t:`drop type` is a :t:`struct type`, then its + :t:`[field]s` are :t:`dropped` in declaration order. + +#. :dp:`fls_y9q0eqr865b3` + Otherwise, if the :t:`drop type` is a :t:`trait object type`, then the + :t:`destructor` of the underlying :t:`type` is invoked. + +#. :dp:`fls_kdqng6eovxns` + Otherwise, if the :t:`drop type` is a :t:`tuple type`, then its :t:`[field]s` + are :t:`dropped` in declaration order. + +#. :dp:`fls_ag249y74jg6c` + Otherwise, :t:`dropping` has no effect. + +.. rubric:: Examples + +.. code-block:: rust + + struct PrintOnDrop(&'static str); + + impl core::ops::Drop for PrintOnDrop { + fn drop(&mut self) { + println!("{}", self.0); + } + } + +:dp:`fls_tw36n3g32a0y` +When object ``array`` is dropped, its destructor drops the first element, then +the second element. + +.. code-block:: rust + + let array = [PrintOnDrop("first element to be dropped"), + PrintOnDrop("second element to be dropped")]; + +:dp:`fls_fmn33zhorkf` +Object ``uninitialized`` is not dropped. + +.. code-block:: rust + + let uninitialized: PrintOnDrop; + +.. _fls_rm4ncoopcdvj: + +Drop Scopes +----------- + +.. rubric:: Legality Rules + +:dp:`fls_7uav7vkcv4pz` +A :t:`drop scope` is a region of program text that governs the :t:`dropping` of +:t:`[value]s`. When control flow leaves a :t:`drop scope`, all :t:`[value]s` +associated with that :t:`drop scope` are :t:`dropped` based on a +:t:`drop order`. + +:dp:`fls_txvxrn6wbyql` +A :t:`drop construct` is a :t:`construct` that employs a :t:`drop scope`. The +following :t:`[construct]s` are :t:`[drop construct]s`: + +* :dp:`fls_n6y6brm6pghr` + :t:`[Expression]s`, + +* :dp:`fls_gdh6wwvi7ci6` + :t:`[Function]s`, + +* :dp:`fls_owqk2fcpvc4s` + A :t:`match arm` of a :t:`match expression`, + +* :dp:`fls_ckh8wkq0y5ja` + :t:`[Statement]s`. + +:dp:`fls_2zwwnzepgmje` +:t:`[Drop scope]s` are nested within one another as follows: + +* :dp:`fls_vlbx5ukw5c8l` + The :t:`drop scope` of a :t:`function` is the outermost :t:`drop scope`. + +* :dp:`fls_d5yg6w8gv6aq` + The parent :t:`drop scope` of a :t:`function body` is the :t:`drop scope` of + its related :t:`function`. + +* :dp:`fls_qidma4fpkhb0` + The parent :t:`drop scope` of an :t:`operand` in an :t:`expression statement` + is the :t:`drop scope` of the :t:`expression statement`. + +* :dp:`fls_1o9ye6cwoyiq` + The parent :t:`drop scope` of the :t:`expression` of a :t:`let statement` is + the :t:`drop scope` of the :t:`let statement`. + +* :dp:`fls_16htxf824xbk` + The parent :t:`drop scope` of a :t:`statement` is the :t:`drop scope` of the + :t:`block expression` that contains the :t:`statement`. + +* :dp:`fls_lbsfhg42yiqy` + The parent :t:`drop scope` of the :t:`operand` of a :t:`match arm guard` is + the :t:`drop scope` of the :t:`match arm` that contains the + :t:`match arm guard`. + +* :dp:`fls_5m3u3k6f00bd` + The parent :t:`drop scope` of the :t:`operand` of a :t:`match arm` is the + :t:`drop scope` of the :t:`match arm` that contains the :t:`operand`. + +* :dp:`fls_m86ljncnmo7j` + The parent :t:`drop scope` of a :t:`match arm` is the :t:`drop scope` of the + related :t:`match expression`. + +* :dp:`fls_bewcu5xceu8i` + The parent :t:`drop scope` of all other :t:`[drop scope]s` is the + :t:`drop scope` of the immediately enclosing :t:`expression`. + +:dp:`fls_iHHhlxCiqNWZ` +A :t:`binding` declared in a :t:`for loop expression` is associated with +the :t:`drop scope` of the :t:`block expression` of the +:t:`for loop expression`. + +:dp:`fls_swXXkbZGLPKa` +A :t:`binding` declared in an :t:`if let expression` is associated with the +:t:`drop scope` of the :t:`block expression` of the :t:`if let expression`. + +:dp:`fls_vrqgac634wpr` +A :t:`binding` declared in a :t:`let statement` is associated with the +:t:`drop scope` of the :t:`block expression` that contains the +:t:`let statement`. + +:dp:`fls_fnvr5w2wzxns` +A :t:`binding` declared in a :t:`match expression` is associated with the +:t:`drop scope` of the :t:`match arm` of the :t:`match expression`. + +:dp:`fls_1vZFa5mDEbXW` +A :t:`binding` declared in a :t:`while let loop expression` is associated with +the :t:`drop scope` of the :t:`block expression` of the +:t:`while let loop expression`. + +:dp:`fls_3jtU8grRaMM9` +A :t:`value` or :t:`binding` of a :t:`function parameter` is associated with the +:t:`drop scope` of the :t:`function` of the :t:`function parameter`. + +:dp:`fls_8r39duatupxw` +A :t:`temporary` that is not subject to :t:`constant promotion` is associated +with the innermost :t:`drop scope` that contains the :t:`expression` which +produced the :t:`temporary`, taking into account :t:`drop scope extension`. The +possible :t:`[drop scope]s` are as follows: + +* :dp:`fls_2peq1tihglnr` + The :t:`drop scope` of a :t:`function body`. + +* :dp:`fls_il09n7sq0a3k` + The :t:`drop scope` of a :t:`statement`. + +* :dp:`fls_s1wbqld139gz` + The :t:`drop scope` of a :t:`block expression` of an :t:`if expression`, an + :t:`infinite loop expression`, or a :t:`while loop expression`. + +* :dp:`fls_asvuef2pc3m0` + The :t:`drop scope` of an :t:`else expression`. + +* :dp:`fls_560437qmeqtr` + The :t:`drop scope` of the :t:`subject expression` of an :t:`if expression`. + +* :dp:`fls_8cunkfc6x24q` + The :t:`drop scope` of the :t:`iteration expression` of a + :t:`while loop expression`. + +* :dp:`fls_n108lvc4otoc` + The :t:`drop scope` of the :t:`operand` of a :t:`match arm`. + +* :dp:`fls_ptk6yibqyfzi` + The :t:`drop scope` of the :t:`operand` of a :t:`match arm guard`. + +* :dp:`fls_dltmd8e8c5ia` + The :t:`drop scope` of the :t:`right operand` of a + :t:`lazy boolean expression`. + +.. _fls_5eima0pd31c0: + +Drop Scope Extension +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kflqez2mtbit` +:t:`Drop scope extension` is the process of extending a :t:`drop scope` +associated with a :t:`temporary` to prevent the premature :t:`dropping` of the +:t:`temporary`. + +:dp:`fls_xjw82bujm148` +An :dt:`extending pattern` is either + +* :dp:`fls_965wt48ooqyw` + A :t:`reference identifier pattern`, or + +* :dp:`fls_r8nt0zp8dnyp` + A :t:`slice pattern`, a :t:`struct pattern`, :t:`tuple pattern` or a + :t:`tuple struct pattern` that contains at least one :t:`subpattern` that is + an :t:`extending pattern`. + +:dp:`fls_3ycn4u1fe9h` +If the :t:`pattern-without-alternation` of a :t:`let statement` is an +:t:`extending pattern`, then the :t:`drop scope` of the :t:`expression` of +the :t:`let statement` is extended to the :t:`drop scope` of the +:t:`block expression` that contains the :t:`let statement`. + +:dp:`fls_wyzau8hhq74d` +An :dt:`extending expression` is either + +* :dp:`fls_ju7cpftd8r2g` + The :t:`expression` of a :t:`let statement`, or + +* :dp:`fls_gjd1ow3l7swe` + The :t:`operand` of an :t:`extending expression` that is an + :t:`array expression`, a :t:`borrow expression`, a :t:`struct expression`, a + :t:`tuple expression`, or a :t:`type cast expression`, or + +* :dp:`fls_iqw0d1l1lj3i` + The :t:`tail expression` of a :t:`block expression` that is an + :t:`extending expression`. + +:dp:`fls_aq01wjpkxhq9` +The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an +:t:`extending expression` is extended to the :t:`drop scope` of the +:t:`block expression` that contains the :t:`let statement`. + +:dp:`fls_VDPi1dJzJMUb` +The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression`, a +:t:`dereference expression`, or a :t:`field access expression` that has an +extended :t:`drop scope` is extended to the :t:`drop scope` of the +:t:`expression`. + +:dp:`fls_elGH7HSawMRb` +The :t:`drop scope` of the :t:`indexed operand` of an :t:`index expression` that +has an extended :t:`drop scope` is extended to the :t:`drop scope` of the +:t:`expression`. + +.. rubric:: Examples + +:dp:`fls_29y59x8bmw75` +See :p:`15.6.1. ` for the declaration of ``PrintOnDrop``. + +:dp:`fls_subo2w7ln43q` +The drop scope of the temporary created for expression ``AtomicI32::new(42)`` is +extended to the drop scope of the block expression. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + { + let ref mut a = AtomicI32::new(42); + println!("{}", a); + } + +.. _fls_afafmafz4hf2: + +Drop Order +---------- + +.. rubric:: Legality Rules + +:dp:`fls_n6o1xzjiz8cv` +:t:`Drop order` is the order by which :t:`[value]s` are :t:`dropped` when a +:t:`drop scope` is left. + +:dp:`fls_jwofws3022ar` +When a :t:`drop scope` is left, all :t:`[value]s` associated with that +:t:`drop scope` are :t:`dropped` as follows: + +* :dp:`fls_g07zq3n55094` + :t:`[Binding]s` are :t:`dropped` in reverse declaration order. + +* :dp:`fls_a5tmilqxdb6f` + :t:`Temporaries ` are :t:`dropped` in reverse creation order. + +:dp:`fls_zQGkVGWIzMQ7` +When a :t:`drop scope` of a :t:`function` is left, then each +:t:`function parameter` is :t:`dropped` from right to left as follows: + +#. :dp:`fls_K8whhUwAUVqR` + All :t:`[binding]s` introduced by the :t:`pattern` of the + :t:`function parameter` are :t:`dropped` in reverse declaration order, + +#. :dp:`fls_NpCrm4t03oQg` + The :t:`value` of the :t:`function parameter` is :t:`dropped`. + +:dp:`fls_3i348l3pbtrx` +When multiple :t:`[drop scope]s` are left at once, the :t:`[value]s` are +:t:`dropped` from the innermost :t:`drop scope` to the outermost +:t:`drop scope`. + +.. rubric:: Examples + +:dp:`fls_oe8l81y0wnao` +See :p:`15.6.1. ` for the declaration of ``PrintOnDrop``. + +:dp:`fls_4sgca9wcl8h0` +The drop order of the following variables is ``b``, ``c``, ``a``. Dropping +proceeds as follows: + +#. :dp:`fls_a2m4ibzhgupa` + The scope of the block expression is left first because it is an inner scope. + +#. :dp:`fls_go3bvd23vzi9` + ``b`` is dropped. + +#. :dp:`fls_7rwo0he8x143` + The outer scope is left. + +#. :dp:`fls_43yqlxjr3a10` + ``c`` is dropped because dropping occurs in reverse declarative order. + +#. :dp:`fls_a7lsq2kkzkk4` + ``a`` is dropped. + +.. code-block:: rust + + let a = PrintOnDrop("3"); + { + let b = PrintOnDrop("1"); + } + let c = PrintOnDrop("2"); + diff --git a/_sources/patterns.rst.txt b/_sources/patterns.rst.txt new file mode 100644 index 00000000..ec52d1a3 --- /dev/null +++ b/_sources/patterns.rst.txt @@ -0,0 +1,1573 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_xgqh0ju6bmbn: + +Patterns +======== + +.. rubric:: Syntax + +.. syntax:: + + Pattern ::= + $$|$$? PatternWithoutAlternation ($$|$$ PatternWithoutAlternation)* + + PatternList ::= + Pattern ($$,$$ Pattern)* $$,$$? + + PatternWithoutAlternation ::= + PatternWithoutRange + | RangePattern + + PatternWithoutRange ::= + IdentifierPattern + | LiteralPattern + | MacroInvocation + | ParenthesizedPattern + | PathPattern + | ReferencePattern + | RestPattern + | SlicePattern + | StructPattern + | TuplePattern + | UnderscorePattern + +.. rubric:: Legality Rules + +:dp:`fls_imegtsi224ts` +A :t:`pattern` is a :t:`construct` that matches a :t:`value` which satisfies all +the criteria of the :t:`pattern`. + +:dp:`fls_mp6i4blzexnu` +A :t:`pattern-without-alternation` is a :t:`pattern` that cannot be alternated. + +:dp:`fls_JJ1fJa1SsaWh` +A :t:`pattern-without-range` is a :t:`pattern-without-alternation` that +excludes :t:`[range pattern]s`. + +:dp:`fls_6xx34zr069bj` +A :t:`subpattern` is a :t:`pattern` nested within another pattern. + +:dp:`fls_8xzjb0yzftkd` +A :t:`pattern` has a :t:`type`, with the exception of the :t:`rest pattern` if +it is not the inner :t:`pattern` of a :t:`slice pattern` or the :t:`pattern` of +a possibly nested :t:`identifier pattern` of a :t:`slice pattern`\ ``.`` + +:dp:`fls_cma5t8waon0x` +The :t:`expected type` of a :t:`pattern` is the :t:`type` the :t:`pattern` is being matched against. + +:dp:`fls_TUanRT7WU14E` +It is a static error when :t:`[lexical element]s` match multiple alternations +of a :t:`pattern-without-range`, except for when the :t:`pattern` is ``&mut`` +:s:`Identifier`. Such a :t:`pattern` is interpreted as a :t:`reference pattern` +with :t:`keyword` ``mut`` containing an :t:`identifier pattern`. + +:dp:`fls_8luyomzppck` +Any two :t:`[pattern-without-alternation]s` that are or-ed using character 0x7C +(vertical line) are subject to the following restrictions: + +* :dp:`fls_rpvdfmy3n05a` + The :t:`[type]s` of the two :t:`[pattern-without-alternation]s` shall be + :t:`unifiable`. + +* :dp:`fls_kv533rntni1x` + The :t:`[binding]s` of the two :t:`[pattern-without-alternation]s` shall + be the same, shall have :t:`[unifiable type]s`, and shall have the same + :t:`[binding mode]s`. + +.. _fls_uh76pw6ykd57: + +Refutability +------------ + +.. rubric:: Legality Rules + +:dp:`fls_9ntc4qmjmo90` +:t:`Refutability` is a property of :t:`[pattern]s` that expresses the ability to +match all possible values of a :t:`type`. + +:dp:`fls_9fjspnefoyvz` +An :t:`irrefutable pattern` is a :t:`pattern` that always matches the :t:`value` +it is being matched against. + +:dp:`fls_uq7ftuuq1sig` +A :t:`refutable pattern` is a :t:`pattern` that has a possibility of not +matching the :t:`value` it is being matched against. + +:dp:`fls_mnbyt7jfYAZ9` +A :t:`pattern` that is not an :t:`irrefutable pattern` is a +:t:`refutable pattern`. + +:dp:`fls_l76ycteulo8e` +An :t:`irrefutable constant` is a :t:`constant` of a :t:`type` that has at most +one :t:`value`. + +:dp:`fls_lh0d85tl4qvy` +A :t:`refutable constant` is a :t:`constant` of a :t:`refutable type`. + +.. rubric:: Examples + +:dp:`fls_sgu9bnp7xajv` +``x`` is an :t:`irrefutable pattern` because it always matches ``42``. + +.. code-block:: rust + + let x = 42; + +:dp:`fls_cl1g4fxfa020` +``y`` is a :t:`refutable pattern` because it does not match ``value`` when +``value`` denotes :std:`core::option::Option::None`. + +.. code-block:: rust + + if let core::option::Option::Some(y) = value { + +.. _fls_7bxv8lybxm18: + +Identifier Patterns +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IdentifierPattern ::= + $$ref$$? $$mut$$? Binding BoundPattern? + + BoundPattern ::= + $$@$$ Pattern + +.. rubric:: Legality Rules + +:dp:`fls_uljdw9rf7ies` +An :t:`identifier pattern` is a :t:`pattern` that binds the :t:`value` it +matches to a :t:`binding`. + +:dp:`fls_vy9uw586wy0d` +A :t:`bound pattern` is a :t:`pattern` that imposes a constraint on a related +:t:`identifier pattern`. + +:dp:`fls_hqwt3fvr063y` +An :t:`identifier pattern` yields a :t:`binding`. An :t:`identifier pattern` +with :t:`keyword` ``mut`` yields a :t:`mutable binding`. + +:dp:`fls_joIQdDn44oIT` +An :t:`identifier pattern` with :t:`keyword` ``ref`` is a +:t:`reference identifier pattern`. + +:dp:`fls_24c95c56tugl` +The :t:`identifier pattern` enters its :t:`binding` into :t:`binding scope` in +the :t:`value namespace` if it does not resolve to a :t:`constant`, a +:t:`unit struct constant` or a :t:`unit enum variant`. + +:dp:`fls_twcavjk7iquy` +It is a static error if the :t:`identifier pattern` consists of anything other +than a :t:`binding` when the :t:`binding` resolves to a :t:`constant`, a +:t:`unit struct constant`, or a :t:`unit enum variant`. + +:dp:`fls_k1yBTstX7jEE` +It is a static error if the :t:`binding` of an :t:`identifier pattern` resolves +to a :t:`tuple struct` or a :t:`tuple enum variant`. + +:dp:`fls_hw26hy33guk5` +An :t:`identifier pattern` is an :t:`irrefutable pattern` when: + +* :dp:`fls_svfxwz4yy5i` + It has a :t:`bound pattern` and the :t:`bound pattern` is an + :t:`irrefutable pattern`, or + +* :dp:`fls_x6f6q22b5jpc` + It does not have a :t:`bound pattern` and its :t:`binding` resolves to an + :t:`irrefutable constant`. + +* :dp:`fls_r2mb8v2lh3x0` + It does not have a :t:`bound pattern` and its :t:`binding` does not resolve to + a :t:`constant`, a :t:`unit struct constant`, or a :t:`unit enum variant`. + +:dp:`fls_7oioaitb075g` +If the :t:`identifier pattern` does not have a :t:`bound pattern`, then the +:t:`type` of its :t:`binding` is determined as follows: + +* :dp:`fls_40qin0ss5sqd` + If the :t:`identifier pattern` has only :t:`keyword` ``ref``, then the + :t:`type` is ``& inferred_type``, where ``inferred_type`` is the :t:`type` + determined by :t:`type inference`. + +* :dp:`fls_pivz0v7ey6sw` + If the :t:`identifier pattern` has :t:`[keyword]s` ``ref`` ``mut``, then the + :t:`type` is ``&mut inferred_type``, where ``inferred_type`` is the :t:`type` + determined by :t:`type inference`. + +* :dp:`fls_2ahkrddxwj1n` + Otherwise the :t:`type` is ``inferred_type``, where ``inferred_type`` is the + :t:`type` determined by :t:`type inference`. + +:dp:`fls_eucnafj3uedy` +If the :t:`identifier pattern` has a :t:`bound pattern`, then the :t:`type` of +its :t:`binding` is determined as follows: + +* :dp:`fls_f8zo4scodhcr` + If the :t:`identifier pattern` has only :t:`keyword` ``ref``, then the + :t:`type` ``& bound_pattern_type``, where ``bound_pattern_type`` is the + :t:`type` of the :t:`bound pattern`. + +* :dp:`fls_d3fs2h7oqjl0` + If the :t:`identifier pattern` has :t:`[keyword]s` ``ref mut``, then the + :t:`type` is ``&mut bound_pattern_type``, where ``bound_pattern_type`` is the + :t:`type` of the :t:`bound pattern`. + +* :dp:`fls_exo8asevh5x1` + Otherwise the :t:`type` is ``inferred_type``, where ``inferred_type`` is the + :t:`type` determined by :t:`type inference`. + +.. rubric:: Examples + +:dp:`fls_sfyfdxhvhk44` +An identifier pattern in the context of a let expression. + +.. code-block:: rust + + let x = 42; + +:dp:`fls_as0pqqmo1des` +An identifier pattern with a bound pattern in the context of a match expression. + +.. code-block:: rust + + match x { + small @ 1 ..= 5 => (), + _ => (), + } + +.. _fls_2krxnq8q9ef1: + +Literal Patterns +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LiteralPattern ::= + BooleanLiteral + | ByteLiteral + | ByteStringLiteral + | CharacterLiteral + | $$-$$? NumericLiteral + | RawByteStringLiteral + | RawStringLiteral + | SimpleStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_pah15qa54irs` +A :t:`literal pattern` is a :t:`pattern` that matches a :t:`literal`. + +:dp:`fls_co60bzvwashg` +The :t:`type` of a :t:`literal pattern` is the :t:`type` of the specified +:t:`literal`. + +.. rubric:: Examples + +:dp:`fls_fqclaznjgtb1` +Two literal patterns in the context of a match expression. See :p:`5.1.1. +` for the declaration of ``x``. + +.. code-block:: rust + + match x { + -2 => (), + 36 => (), + _ => (), + } + +.. _fls_1xit18et4ohh: + +Parenthesized Patterns +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedPattern ::= + $$($$ Pattern $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_kvqzmt7my5dh` +A :t:`parenthesized pattern` is a :t:`pattern` that controls the precedence of +its :t:`[subpattern]s`. + +:dp:`fls_mrjhpiq5refe` +A :t:`parenthesized pattern` is an :t:`irrefutable pattern` when its nested +:t:`pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_pe5kh8y8u664` +The :t:`type` of a :t:`parenthesized pattern` is the :t:`type` of its nested +:t:`pattern`. + +.. rubric:: Examples + +:dp:`fls_2xq8852gihn9` +See :p:`5.1.1. ` for the declaration of ``x``. + +.. code-block:: rust + + let ref_x = &x; + +:dp:`fls_2dmeukyjqz9y` +A parenthesized pattern inside a reference pattern in the context of a match +expression. + +.. code-block:: rust + + match ref_x { + &(1 ..= 5) => (), + _ => (), + } + +.. _fls_uloyjbaso8pz: + +Path Patterns +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + PathPattern ::= + PathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_1crq0mexo5r1` +A :t:`path pattern` is a :t:`pattern` that matches a :t:`constant`, a +:t:`unit enum variant`, or a :t:`unit struct constant` indicated by a :t:`path`. + +:dp:`fls_xz5otkhogn31` +A :t:`path pattern` expressed as a :t:`path expression` shall refer to either +an :t:`associated constant`, or a :t:`constant`. + +:dp:`fls_t8sjzsif2ilf` +When a :t:`path pattern` refers to an :t:`associated constant` or a +:t:`constant`, the :t:`associated constant` or :t:`constant` shall not be of a +:t:`union type`. + +:dp:`fls_zCswsyuitexI` +When a :t:`path pattern` refers to an :t:`associated constant` or a +:t:`constant`, the :t:`type` of the :t:`associated constant` or :t:`constant` +shall be :t:`structurally equal`. + +:dp:`fls_hF19K8sWU8FF` +When the type of the :t:`path pattern` is of an :t:`enum type` or +:t:`struct type`, then the :t:`enum type` or :t:`struct type` shall be subject +to :t:`attribute` :c:`derive` with arguments :std:`core::cmp::Eq` and +:std:`core::cmp::PartialEq`. + +:dp:`fls_bv9psmitxfuw` +A :t:`path pattern` expressed as a :t:`qualified path expression` shall refer +to an :t:`associated constant`. + +:dp:`fls_sl47k9oj5p7t` +A :t:`path pattern` is an :t:`irrefutable pattern` when it refers to: + +* :dp:`fls_cfoy86mkmqa4` + A :t:`constant` whose :t:`type` is an :t:`irrefutable pattern`, or + +* :dp:`fls_rnppz6y5z8pi` + An :t:`enum variant` of an :t:`enum type` with a single :t:`enum variant` + where the :t:`[type]s` of all :t:`[field]s` are :t:`[irrefutable pattern]s`, + or + +* :dp:`fls_ag6m4mvpturw` + A :t:`struct` where the :t:`[type]s` of all :t:`[field]s` are + :t:`[irrefutable pattern]s`. + +:dp:`fls_pedy2pqrvnx7` +The :t:`type` of a :t:`path pattern` is the :t:`type` of the :t:`constant`, +:t:`unit enum variant`, or :t:`unit struct constant` the :t:`path` resolved to. + +.. rubric:: Examples + +.. code-block:: rust + + mod module { + pub const ZERO: i32 = 0; + } + + enum Enum { Variant } + +:dp:`fls_u59rilepu8z9` +See :p:`5.1.1. ` for the declaration of ``x``. + +.. code-block:: rust + + match x { + module::ZERO => (), + Enum::Variant => (), + _ => (), + } + +.. _fls_6tl1fx99yn6c: + +Range Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RangePattern ::= + HalfOpenRangePattern + | InclusiveRangePattern + | ObsoleteRangePattern + + HalfOpenRangePattern ::= + RangePatternLowBound $$..$$ + + InclusiveRangePattern ::= + RangePatternLowBound $$..=$$ RangePatternHighBound + + ObsoleteRangePattern ::= + RangePatternLowBound $$...$$ RangePatternHighBound + + RangePatternLowBound ::= + RangePatternBound + + RangePatternHighBound ::= + RangePatternBound + + RangePatternBound ::= + ByteLiteral + | CharacterLiteral + | $$-$$? NumericLiteral + | PathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_okupyoav13rm` +A :t:`range pattern` is a :t:`pattern` that matches :t:`[value]s` which fall +within a range. + +:dp:`fls_jhchm7dy927k` +A :t:`half-open range pattern` is a :t:`range pattern` with only a +:t:`range pattern low bound`. + +:dp:`fls_q86j23iiqv8w` +An :t:`inclusive range pattern` is a :t:`range pattern` with both a +:t:`range pattern low bound` and a :t:`range pattern high bound`. + +:dp:`fls_akf9x5r6e0ta` +An :t:`obsolete range pattern` is a :t:`range pattern` that uses obsolete syntax +to express an :t:`inclusive range pattern`. + +:dp:`fls_vrpr6ttpfpal` +A :t:`range pattern bound` is a constraint on the range of a :t:`range pattern`. + +:dp:`fls_nk48gregn3me` +A :t:`range pattern low bound` is a :t:`range pattern bound` that specifies the +start of a range. + +:dp:`fls_83v1xqbebs58` +A :t:`range pattern high bound` is a :t:`range pattern bound` that specifies the +end of a range. + +:dp:`fls_2hpuccwh2xml` +A :t:`half-open range pattern` shall appear within a :t:`parenthesized pattern` +when the context is a :t:`slice pattern`. + +:dp:`fls_9kk81isk0mlp` +The :t:`range pattern low bound` of an :t:`inclusive range pattern` shall be +less than or equal to its :t:`range pattern high bound`. + +:dp:`fls_s2b5n4snc4d7` +An :t:`obsolete range pattern` is equivalent to an :t:`inclusive range pattern`. + +:dp:`fls_4o4ge6x9a8rs` +A :t:`range pattern` is an :t:`irrefutable pattern` only when it spans the +entire set of possible :t:`[value]s` of a :t:`type`. + +:dp:`fls_6o995ak4hywq` +The :t:`[type]s` of the :t:`range pattern low bound` and the +:t:`range pattern high bound` of a :t:`range pattern` shall be :t:`unifiable`. + +:dp:`fls_3js1645tgh31` +The :t:`type` of a :t:`range pattern` is determined as follows: + +* :dp:`fls_wfqrbwrogjnq` + If the :t:`range pattern` is expressed as an :t:`inclusive range pattern` or + an :t:`obsolete range pattern`, then the :t:`type` is the :t:`unified type` of + the :t:`[type]s` of the :t:`range pattern low bound` and the + :t:`range pattern high bound`. + +* :dp:`fls_rgr7t33s0m7m` + Otherwise the :t:`type` is the :t:`type` of the :t:`range pattern low bound`. + +:dp:`fls_5ey5mj8t8knd` +A :t:`path expression` of a :t:`range pattern` shall refer to a :t:`constant` +of a :t:`scalar type`. + +:dp:`fls_z4js96mchcsv` +A :t:`qualified path expression` of a :t:`range pattern` shall refer to an +:t:`associated constant` of a :t:`scalar type`. + +.. rubric:: Examples + +:dp:`fls_3wwpq8i6mo2a` +Two range patterns in the context of a match expression. See :p:`5.1.1. +` for the declaration of ``x``. + +.. code-block:: rust + + match x { + -30 ..= 2 => (), + 57 .. => (), + _ => (), + } + +.. _fls_d2sc9hl3v0mk: + +Reference Patterns +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReferencePattern ::= + $$&$$ $$mut$$? PatternWithoutRange + +.. rubric:: Legality Rules + +:dp:`fls_fhahcc1mz2qh` +A :t:`reference pattern` is a :t:`pattern` that dereferences a :t:`pointer` that +is being matched. + +:dp:`fls_x0bmzl1315gq` +A :t:`reference pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_fedo8zhgpla5` +The :t:`type` of a :t:`reference pattern` is determined as follows: + +* :dp:`fls_30u9ij164ww3` + If the :t:`reference pattern` appears with :t:`keyword` ``mut``, + then the :t:`type` is ``&mut pattern_without_range_type``, + where ``pattern_without_range_type`` is the :t:`type` of the + :s:`PatternWithoutRange`. + +* :dp:`fls_d1kc73hpncpo` + If the :t:`reference pattern` appears without :t:`keyword` + ``mut``, then the :t:`type` is ``& pattern_without_range_type``, + where ``pattern_without_range_type`` is the :t:`type` of the + :s:`PatternWithoutRange`. + +.. rubric:: Examples + +:dp:`fls_mpeuhov0umfa` +A reference pattern in the context of a match expression. See :p:`5.1.3. +` for the declaration of ``ref_x``. + +.. code-block:: rust + + match ref_x { + &23 => (), + _ => (), + } + +.. _fls_7wpgnp4kjq82: + +Rest Patterns +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RestPattern ::= + $$..$$ + +.. rubric:: Legality Rules + +:dp:`fls_eso51epfofxb` +A :t:`rest pattern` is a :t:`pattern` that matches zero or more elements that +have not already been matched. + +:dp:`fls_5a75a2y43uev` +A :t:`rest pattern` shall appear at most once within a :t:`slice pattern`, an +:t:`identifier pattern` of a :t:`slice pattern`, a :t:`tuple pattern`, and a +:t:`tuple struct pattern`. + +:dp:`fls_rsqyza99vl3x` +A :t:`rest pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_w1pw40phsv2o` +If a :t:`rest pattern` appears within a :t:`slice pattern` or the +:t:`identifier pattern` of a :t:`slice pattern`, then the :t:`type` of the +:t:`rest pattern` is determined as follows: + +* :dp:`fls_x8ylgxrf9ca` + If the :t:`type` of the :t:`slice pattern` is an :t:`array type`, then the + :t:`type` is ``[T; N]`` where ``T`` is the :t:`element type` of the + :t:`array type`, and ``N`` is the :t:`[array type]'s` size minus the number + of matched elements of the :t:`slice pattern`. + +* :dp:`fls_zgoke73xrhk3` + If the :t:`type` of the :t:`slice pattern` is a :t:`slice type`, then the + :t:`type` is that :t:`slice type`. + +.. rubric:: Examples + +:dp:`fls_bdcv6rwx0fsv` +A rest pattern in an identifier pattern of a slice pattern, followed by a rest +pattern in a slice pattern. + +.. code-block:: rust + + match slice { + [1, 5, .., 7] => (), + [start, end @ ..] => (), + } + +:dp:`fls_qz9guhlg19j3` +Rest patterns in tuple patterns. + +.. syntax:: + + match tuple { + (1, .., y) => (), + (.., 5) => (), + (..) => (), + } + +.. _fls_qte70mgzpras: + +Slice Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + SlicePattern ::= + $$[$$ PatternList? $$]$$ + +.. rubric:: Legality Rules + +:dp:`fls_qqiu594hki8g` +A :t:`slice pattern` is a :t:`pattern` that matches :t:`[array]s` of fixed size +and :t:`[slice]s` of dynamic size. + +:dp:`fls_h6x9xlxi7y5n` +A :t:`slice pattern` is an :t:`irrefutable pattern` when it refers to: + +* :dp:`fls_jbmxu7y5fnm6` + An :t:`array`, where each :t:`subpattern` is an :t:`irrefutable pattern`, or + +* :dp:`fls_r78zzw7yyg34` + A :t:`slice`, where the :s:`PatternList` consists of a single + :t:`rest pattern`, or a single possibly nested :t:`identifier pattern` whose + last :t:`bound pattern` is a :t:`rest pattern`. + +:dp:`fls_ndor56nou676` +The :t:`type` of a :t:`slice pattern` is the same as the :t:`expected type`. + +.. rubric:: Examples + +.. syntax:: + + let v = vec![1, 2, 3]; + +:dp:`fls_9yuobz1jsehf` +A slice pattern in the context of a match expression. + +.. syntax:: + + match v { + [a, b, c] => (), + _ => () + } + +.. _fls_7dbd5t2750ce: + +Struct Patterns +--------------- + +.. rubric:: Syntax + +.. syntax:: + + StructPattern ::= + RecordStructPattern + | TupleStructPattern + + Deconstructee ::= + PathExpression + +.. rubric:: Legality Rules + +:dp:`fls_vjdkpr3zml51` +A :t:`struct pattern` is a :t:`pattern` that matches an :t:`enum value`, a +:t:`struct value`, or a :t:`union value`. + +:dp:`fls_6o3x101wo478` +A :t:`deconstructee` indicates the :t:`enum variant` or :t:`type` that is being +deconstructed by a :t:`struct pattern`. + +:dp:`fls_k9zih9s0oe5h` +A :t:`struct pattern` is interpreted based on the :t:`deconstructee`. It is a +static error if a :t:`struct pattern` cannot be interpreted. + +:dp:`fls_r8rat3qmc4hy` +A :t:`struct pattern` is an :t:`irrefutable pattern` if + +* :dp:`fls_hUX723DmLg2a` + All of its :t:`[subpattern]s` are :t:`[irrefutable pattern]s`, and + +* :dp:`fls_p4OplpUvS04l` + The :t:`deconstructree` is either: + + * :dp:`fls_pre3YwAv01FE` + A :t:`struct type` or a :t:`union type`, or + + * :dp:`fls_MK83WE0iDqNf` + An :t:`enum variant` of an :t:`enum` with a single :t:`enum variant`. + +.. _fls_nruvg0es3kx7: + +Record Struct Patterns +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RecordStructPattern ::= + Deconstructee $${$$ RecordStructPatternContent? $$}$$ + + RecordStructPatternContent ::= + RecordStructRestPattern + | FieldDeconstructorList (, RecordStructRestPattern | ,?) + + RecordStructRestPattern ::= + OuterAttributeOrDoc* RestPattern + + FieldDeconstructorList ::= + FieldDeconstructor (, FieldDeconstructor)* + + FieldDeconstructor ::= + OuterAttributeOrDoc* ( + IndexedDeconstructor + | NamedDeconstructor + | ShorthandDeconstructor + ) + + IndexedDeconstructor ::= + FieldIndex $$:$$ Pattern + + NamedDeconstructor ::= + Identifier $$:$$ Pattern + + ShorthandDeconstructor ::= + $$ref$$? $$mut$$? Binding + + FieldIndex ::= + DecimalLiteral + +.. rubric:: Legality Rules + +:dp:`fls_g6dytd6aq62d` +A :t:`record struct pattern` is a :t:`pattern` that matches a +:t:`enum variant value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_3px4oiweg9dm` +The :t:`deconstructee` of a :t:`record struct pattern` shall resolve to an +:t:`enum variant`, a :t:`struct type`, or a :t:`union type`. + +:dp:`fls_mnh35ehva8tx` +An :t:`indexed deconstructor` is a :t:`construct` that matches the position of +a :t:`field`. + +:dp:`fls_p2rjnlbvifaa` +An :t:`indexed deconstructor` matches a :t:`field` of the :t:`deconstructee` +when its :t:`field index` and the position of the :t:`field` in the +:t:`deconstructee` are the same. Such an :t:`indexed deconstructor` is a +:dt:`matched indexed deconstructor`. + +:dp:`fls_23be2x50at14` +The :t:`type` of a :t:`matched indexed deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_46u4ddj0yf93` +A :t:`named deconstructor` is a :t:`construct` that matches the :t:`name` of +a :t:`field`. + +:dp:`fls_qu3dvfdq6oy7` +A :t:`named deconstructor` matches a :t:`field` of the :t:`deconstructee` when +its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such a +:t:`named deconstructor` is a :dt:`matched named deconstructor`. + +:dp:`fls_4b2hchdzv30u` +The :t:`type` of a :t:`matched named deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_9wfizujx0szd` +A :t:`shorthand deconstructor` is a :t:`construct` that matches the :t:`name` +of a :t:`field` and binds the :t:`value` of the matched :t:`field` to a +:t:`binding`. + +:dp:`fls_jTh9Hur0qsIb` +A :t:`shorthand deconstructor` with :t:`keyword` ``mut`` yields a +:t:`mutable binding`. + +:dp:`fls_as54u97xis8z` +It is a static error if a :t:`shorthand deconstructor` has only :t:`keyword` +``ref`` or :t:`[keyword]s` ``ref`` ``mut``, and its :t:`binding` shadows a +:t:`constant`, a :t:`unit enum variant`, or a :t:`unit struct constant`. + +:dp:`fls_8364ueejn5y3` +A :t:`shorthand deconstructor` is equivalent to a :t:`named deconstructor` where +the :t:`name` of the :t:`shorthand deconstructor` denotes the :t:`identifier` +of the :t:`named deconstructor` and the entire content of the :t:`shorthand +deconstructor` denotes the :t:`pattern` of the :t:`named deconstructor`. + +:dp:`fls_7t0be1w2hq3c` +A :t:`shorthand deconstructor` matches a :t:`field` of the :t:`deconstructee` +when its :t:`name` and the :t:`name` of the :t:`field` are the same. Such a +:t:`shorthand deconstructor` is a :dt:`matched shorthand deconstructor`. + +:dp:`fls_3vgmkm2mzwwy` +The :t:`type` of a :t:`matched shorthand deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_m91ith3rjy79` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`record enum variant` or a :t:`record struct`, then + +* :dp:`fls_c09jf2vpcr58` + For each :t:`field` of the :t:`deconstructee`, the :t:`record struct pattern` + shall either: + + * :dp:`fls_4h00oqypa8qg` + Contain at most one :t:`matched named deconstructor`, or + + * :dp:`fls_195mqijyrnam` + Contain at most one :t:`matched shorthand deconstructor`, or + + * :dp:`fls_ta0vdoqmt2k1` + Have exactly one :s:`RecordStructRestPattern`. + +* :dp:`fls_f0u0j4q90lpl` + A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the + :t:`deconstructee` have been matched. + +:dp:`fls_8bi8q3usubby` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`tuple enum variant` or a :t:`tuple struct type`, then + +* :dp:`fls_1x0o71kxj3yq` + For each :t:`field` of the :t:`deconstructee`, the :t:`record struct pattern` + shall either: + + * :dp:`fls_1thgpx95lfg5` + Contain at most one :t:`matched indexed deconstructor`, or + + * :dp:`fls_rpo1wimbmzhc` + Have exactly one ``RecordStructRestPattern.`` + +* :dp:`fls_brhtaaxt1s3s` + A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the + :t:`deconstructee` have been matched. + +:dp:`fls_jwz3arnfkxwn` +If the :t:`deconstructee` of a :t:`record struct pattern` is a :t:`union type`, +then + +* :dp:`fls_pfz8xlwezbw1` + The :s:`RecordStructPatternContent` of the :t:`record struct + pattern` shall contain exactly one :s:`FieldDeconstructor`. + +* :dp:`fls_XFKBJZe6k1o2` + The :t:`record struct pattern` shall not contain a + :s:`RecordStructRestPattern`. + +* :dp:`fls_mu166csowj71` + For the single :t:`field` of the :t:`deconstructee`, the + :t:`record struct pattern` shall either: + + * :dp:`fls_y09fygnglu3n` + Contain exactly one :t:`matched named deconstructor`, or + + * :dp:`fls_2tadaatmauzk` + Contain exactly one :t:`matched shorthand deconstructor`. + +* :dp:`fls_oq30xkmvyz72` + The :t:`record struct pattern` shall require :t:`unsafe context`. + +:dp:`fls_9y1gbv47z23o` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`unit enum variant` or a :t:`unit struct`, then the +:t:`record struct pattern` shall have at most one :s:`RecordStructRestPattern`. + +.. rubric:: Undefined Behavior + +:dp:`fls_dHtV2BPRFVBB` +It is undefined behavior reading the :t:`field` of a :t:`deconstructee` that is +a :t:`union type` when the :t:`field` contains data that is invalid for the +:t:`field`'s type. + +.. rubric:: Examples + +.. code-block:: rust + + struct RecordStruct { + first : u32, + second: u32, + } + + let record_struct_value = RecordStruct { first: 11, second: 22 }; + + match record_struct_value { + RecordStruct { second: 33, ref first } => (), + RecordStruct { first: 44, .. } => (), + RecordStruct { .. } => (), + } + + struct TupleStruct ( + u32, + u32, + ); + + let tuple_struct_value = TupleStruct { 0: 11, 1: 22 }; + + match tuple_struct_value { + TupleStruct { 1: 33, 0: 44 } => (), + TupleStruct { 0: 55, .. } => (), + TupleStruct { .. } => (), + } + + union Union { + first : u32, + second: u32, + } + + let union_value = Union { second: 11 }; + + unsafe { + match union_value { + Union { first: 22 } => (), + Union { second: 33 } => (), + _ => (), + } + } + +.. _fls_vlrto778v49m: + +Tuple Struct Patterns +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TupleStructPattern ::= + Deconstructee $$($$ PatternList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_ks6y1syab2bp` +A :t:`tuple struct pattern` is a :t:`pattern` that matches a +:t:`tuple enum variant value`, or a :t:`tuple struct value`. + +:dp:`fls_t1mrijw16k9a` +The :t:`deconstructee` of a :t:`tuple struct pattern` shall resolve to a +:t:`tuple enum variant` or a :t:`tuple struct type`. + +:dp:`fls_ryfcrqrkp28y` +A :t:`subpattern` of a :t:`tuple struct pattern` matches a :t:`field` of the +:t:`deconstructee` when its position and the position of the :t:`field` in +the :t:`deconstructee` are the same. Such a :t:`subpattern` is a +:dt:`matched tuple struct subpattern`. + +:dp:`fls_ehf9r6halgh1` +The position of a :t:`subpattern` is determined as follows: + +* :dp:`fls_5lo1hs8wzz0t` + If the :t:`tuple struct pattern` has a :s:`RecordStructRestPattern`, then + + * :dp:`fls_gwuc2xffosu` + If the :t:`subpattern` precedes the :s:`RecordStructRestPattern`, then its + position is the position within the :s:`PatternList` in left-to-right order, + starting from zero. + + * :dp:`fls_w369n8lmwr7g` + If the :t:`subpattern` succeeds the :s:`RecordStructRestPattern`, then its + position is the position within the :s:`PatternList` list in right-to-left + order, starting from the :t:`arity` of the :t:`deconstructee` minus one. + +* :dp:`fls_4is6h95jj3gd` + Otherwise the position is the position within the :s:`PatternList` in + left-to-right order, starting from zero. + +:dp:`fls_budf0rpsa4lx` +The :t:`type` of the :t:`subpattern` of a :t:`tuple struct pattern` and the +:t:`type` of the matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_vo6mtauh4qhb` +For each :t:`field` of the :t:`deconstructee`, the :t:`tuple struct pattern` +shall either: + +* :dp:`fls_rco3fwlx2a76` + Contain at most one :t:`matched tuple struct subpattern`, or + +* :dp:`fls_4vrnxslad09e` + Have exactly one :s:`RecordStructRestPattern`. + +:dp:`fls_qgilaqy5zx7q` +A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the +:t:`deconstructee` have been matched. + +.. rubric:: Examples + +:dp:`fls_2u99arsbnlnk` +See :p:`5.1.9.1. ` for the declarations of ``TupleStruct`` and +``tuple_struct_value``. + +.. code-block:: rust + + match tuple_struct_value { + TupleStruct ( 11, 22 ) => (), + TupleStruct ( 33, .., 44 ) => (), + TupleStruct ( .., 55 ) => (), + TupleStruct ( 66, .. ) => (), + TupleStruct ( .. ) => (), + } + +.. _fls_urbr5rg9206v: + +Tuple Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TuplePattern ::= + $$($$ PatternList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_e2manugp4e0b` +A :t:`tuple pattern` is a :t:`pattern` that matches a :t:`tuple` which satisfies +all criteria defined by its :t:`[subpattern]s`. + +:dp:`fls_xk8udu4k61kj` +A :t:`tuple pattern` is an :t:`irrefutable pattern` when all of its +:t:`[subpattern]s` are :t:`[irrefutable pattern]s`. + +:dp:`fls_yhcaz6v49ub2` +The :t:`type` of a :t:`tuple pattern` is the :t:`type` of the :t:`tuple` being +destructured. + +:dp:`fls_6WCm0Ra8NQl4` +A :t:`subpattern` of a :t:`tuple pattern` matches a :t:`tuple field` of the +:t:`tuple type` when its position and the position of the :t:`tuple field` in +the :t:`tuple type` are the same. Such a :t:`subpattern` is a +:dt:`matched tuple subpattern`. + +:dp:`fls_a3qvQjyilORx` +The position of a :t:`subpattern` is determined as follows: + +* :dp:`fls_KmIHFxlBYelZ` + If the :t:`tuple pattern` has a :s:`RestPattern`, then + + * :dp:`fls_5bXqIaKiFcLg` + If the :t:`subpattern` precedes the :s:`RestPattern`, then its + position is the position within the :s:`PatternList` in left-to-right order, + starting from zero. + + * :dp:`fls_soHCAVfGlv5f` + If the :t:`subpattern` succeeds the :s:`RestPattern`, then its + position is the position within the :s:`PatternList` list in right-to-left + order, starting from the :t:`arity` of the :t:`tuple type` minus one. + +* :dp:`fls_iiKvYs61959S` + Otherwise the position is the position within the :s:`PatternList` in + left-to-right order, starting from zero. + +:dp:`fls_F4k6ljuP8Amf` +The :t:`type` of the :t:`subpattern` of a :t:`tuple pattern` and the +:t:`type` of the matched :t:`tuple field` shall be :t:`unifiable`. + +:dp:`fls_GjjCDkVJPQS8` +For each :t:`tuple field` of the :t:`tuple type`, the :t:`tuple pattern` shall +either: + +* :dp:`fls_9Qw9N87swwNe` + Contain at most one :t:`matched tuple subpattern`, or + +* :dp:`fls_CQ84wkLyrAJv` + Have exactly one :s:`RestPattern`. + +:dp:`fls_cC6ohNuiltfL` +A :s:`RestPattern` is allowed even if all :t:`[tuple field]s` of the +:t:`tuple type` have been matched. + +.. rubric:: Examples + +:dp:`fls_8r81vtv5hnrd` +A tuple pattern in the context of a let statement. + +.. code-block:: rust + + let pair = (1, "two"); + let (first, second) = pair; + +.. _fls_qfsfnql1t7m: + +Underscore Patterns +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnderscorePattern ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_dreny9e0ei6r` +An :t:`underscore pattern` is a :t:`pattern` that matches any single :t:`value`. + +:dp:`fls_42fye1v0th8l` +An :t:`underscore pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_b87mvrcc13f2` +The :t:`type` of an :t:`underscore pattern` is the :t:`type` of the :t:`value` +it matches. + +.. rubric:: Examples + +:dp:`fls_j3u6x1ensrbe` +An underscore pattern in the context of a let statement. See :p:`5.1.10. +` for the declaration of ``pair``. + +.. code-block:: rust + + let (first, _) = pair; + +.. _fls_qssijtofa9i8: + +Binding Modes +------------- + +.. rubric:: Syntax + +.. syntax:: + + Binding ::= + Name + +.. rubric:: Legality Rules + +:dp:`fls_7xby6d1903kw` +A :t:`binding pattern` is either an :t:`identifier pattern` or a +:t:`shorthand deconstructor`. + +:dp:`fls_vnh9wfrvumdz` +A :t:`binding` of a :t:`binding pattern` binds a matched :t:`value` to a +:t:`name`. + +:dp:`fls_RViC5UEZPQUV` +A :t:`binding` with :t:`binding mode` :dt:`by value` binds the matched +:t:`value` by :t:`passing ` the :t:`value` to the :t:`place` +indicated by the :t:`name`. + +:dp:`fls_6lXtoxebD5It` +A :t:`binding` with :t:`binding mode` :dt:`by reference` binds an +:t:`immutable reference` to the matched :t:`value` to the :t:`name`. + +:dp:`fls_xNxQN8sgpZ3O` +A :t:`binding` with :t:`binding mode` :dt:`by mutable reference` binds a +:t:`mutable reference` to the matched :t:`value` to the :t:`name`. + +:dp:`fls_dqe75i8h2fie` +A :t:`non-reference pattern` is any :t:`pattern` except +:t:`non-[binding pattern]s`, :t:`[path pattern]s`, :t:`[reference pattern]s`, +and :t:`[underscore pattern]s`. + +:dp:`fls_y3wuvj1y5j20` +If a :t:`binding pattern` does not explicitly specify :t:`keyword` ``ref``, +:t:`keyword` ``mut``, or :t:`[keyword]s` ``ref mut``, then its :t:`binding mode` +uses the current :t:`binding mode` of :t:`pattern matching`. + +:dp:`fls_55jtzh6a292x` +Initially, the :t:`binding mode` of a :t:`binding` is :t:`by value`. + +:dp:`fls_qcaf2kup7zn0` +During the process of :t:`pattern matching`, each time a :t:`reference` +is matched against a :t:`non-[reference pattern]`, the :t:`reference` is +dereferenced and the :t:`binding mode` is updated as follows: + +* :dp:`fls_6acdqz8rwnn` + If the :t:`reference` is an :t:`immutable reference`, then the + :t:`binding mode` is updated to :t:`by reference`. + +* :dp:`fls_tv0avib387bv` + If the :t:`reference` is a :t:`mutable reference` and the :t:`binding mode` + is :t:`by value`, then the :t:`binding mode` is updated to + :t:`by mutable reference`. + +:dp:`fls_dbgmwldye42e` +The process repeats if the dereferenced :t:`value` is a :t:`reference`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_t34oqarwcusu` +A :t:`[binding pattern]s` binds its :t:`binding` to a matched :t:`value` as +follows: + +* :dp:`fls_7gxb74u1np36` + If the :t:`binding mode` is :t:`by reference` or the :t:`binding pattern` + appears only with :t:`keyword` ``ref``, then the :t:`binding` is bound to a + :t:`reference` of the matched :t:`value`. + +* :dp:`fls_7y56d0ulxomf` + If the :t:`binding mode` is :t:`by mutable reference` or the :t:`binding + pattern` appears with keywords ``ref`` ``mut``, then the :t:`binding` is bound + to a :t:`mutable reference` of the matched :t:`value`. + +* :dp:`fls_pxvtqxke1enp` + If the :t:`binding mode` is :t:`by value`, then the :t:`binding` is + bound to a copy of the matched :t:`value` if its :t:`type` implements the + :std:`core::marker::Copy` :t:`trait`, otherwise the :t:`binding` is bound to + the move of the matched :t:`value`. + +.. _fls_jm6l7b90h6wa: + +Pattern Matching +---------------- + +.. rubric:: Legality Rules + +:dp:`fls_tlwr4u7bjhh5` +:t:`Pattern matching` that involves a :t:`pattern` and a context :t:`value` +proceeds as follows: + +#. :dp:`fls_67ajub7d2b4c` + For each :t:`pattern-without-alternation` of the :t:`pattern`: + + #. :dp:`fls_62626ws222op` + If the :t:`pattern-without-alternation` is an :t:`identifier pattern`, + then perform :t:`identifier pattern matching`. + + #. :dp:`fls_q0z46h1gnzez` + If the :t:`pattern-without-alternation` is a :t:`literal pattern`, then + perform :t:`literal pattern matching`. + + #. :dp:`fls_1r0vm6rg13o9` + If the :t:`pattern-without-alternation` is a :t:`parenthesized pattern`, + then perform :t:`parenthesized pattern matching`. + + #. :dp:`fls_am5h8r887bz5` + If the :t:`pattern-without-alternation` is a :t:`path pattern`, then + perform :t:`path pattern matching`. + + #. :dp:`fls_eppmiloh7bgg` + If the :t:`pattern-without-alternation` is a :t:`range pattern`, then + perform :t:`range pattern matching`. + + #. :dp:`fls_gwc08xayno7q` + If the :t:`pattern-without-alternation` is a :t:`reference pattern`, then + perform :t:`reference pattern matching`. + + #. :dp:`fls_19iygu12s315` + If the :t:`pattern-without-alternation` is a :t:`slice pattern`, then + perform :t:`slice pattern matching`. + + #. :dp:`fls_r307spfk6cs9` + If the :t:`pattern-without-alternation` is a :t:`record struct pattern`, + then perform :t:`record struct pattern matching`. + + #. :dp:`fls_qhdofvbso3gl` + If the :t:`pattern-without-alternation` is a :t:`tuple struct pattern`, + then perform :t:`tuple struct pattern matching`. + + #. :dp:`fls_drb114dtvlpt` + If the :t:`pattern-without-alternation` is a :t:`tuple pattern`, then + perform :t:`tuple pattern matching`. + + #. :dp:`fls_uxysntb3u03j` + If the :t:`pattern-without-alternation` is an :t:`underscore pattern`, + then perform :t:`underscore pattern matching`. + + #. :dp:`fls_wh201rmh6u6d` + Otherwise :t:`pattern matching` fails. + +:dp:`fls_vstdqifqipbh` +Only the :t:`[binding]s` of a matched :t:`pattern-without-alternation` are +introduced into a :t:`binding scope`. + +.. _fls_vnai6ag4qrdb: + +Identifier Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4f3lzw64myhk` +An :t:`identifier pattern` with :t:`keyword` ``mut`` shall require that the +context :t:`value` is a :t:`mutable place expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_wauqwmdbcpna` +:dt:`Identifier pattern matching` proceeds as follows: + +#. :dp:`fls_3jyog8n6x2aa` + If the :t:`identifier pattern` has a :t:`bound pattern`, then + + #. :dp:`fls_w637uvlbzsyo` + Performed :t:`pattern matching` with the :t:`bound pattern` and the same + context :t:`value`. + + #. :dp:`fls_arz8ik3gf6u4` + If matching the :t:`bound pattern` fails, then matching fails. + +#. :dp:`fls_u6o5ndnezwbe` + The context :t:`value` is bound to the :t:`binding` of the + :t:`identifier pattern` according to the :t:`binding mode`. + +#. :dp:`fls_h1er04t0yta7` + Matching succeeds. + +.. _fls_azzf1llv3wf: + +Literal Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_fqkhhgushje9` +:dt:`Literal pattern matching` proceeds as follows: + +#. :dp:`fls_m01eo9sa55s` + If the :t:`literal` of the :t:`literal pattern` and the context :t:`value` + are equal, then matching succeeds. + +#. :dp:`fls_294jtwbfq3p9` + Otherwise matching fails. + +.. _fls_5loglxds6zik: + +Parenthesized Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_jajvvwoy3399` +:dt:`Parenthesized pattern matching` performs :t:`pattern matching` with its +:t:`subpattern` and the same context :t:`value`. + +.. _fls_d44aflefat88: + +Path Pattern Matching +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_4faltss0xbn4` +:dt:`Path pattern matching` proceeds as follows: + +#. :dp:`fls_fqt5w3qsykca` + If the :t:`constant`, :t:`unit enum variant` or :t:`unit struct` the + :t:`path` of the :t:`path pattern` resolved to and the context :t:`value` + are equal, then matching succeeds. + +#. :dp:`fls_h3y8r4298s53` + Otherwise matching fails. + +.. _fls_fyskeih6twyb: + +Range Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_mrh9vfdek5fi` +:dt:`Range pattern matching` proceeds as follows: + +#. :dp:`fls_7nxkgls0a5os` + If the :t:`range pattern` is expressed as a :t:`half-open range pattern` and + the context :t:`value` is in the inclusive range from the + :t:`range pattern low bound` to the maximum :t:`value` of the + :t:`range pattern low bound`'s :t:`type`, then matching succeeds. + +#. :dp:`fls_6kgj2fjccoig` + If the :t:`range pattern` is expressed as either an :t:`inclusive range + pattern` or an :t:`obsolete range pattern` and the context :t:`value` is in + the inclusive range from the :t:`range pattern low bound` to the + :t:`range pattern high bound`, then matching succeeds. + +#. :dp:`fls_n4t3xah1pk7i` + Otherwise matching fails. + +.. _fls_org6hqv397fp: + +Reference Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_ysfgdzaiww8z` +:dt:`Reference pattern matching` proceeds as follows: + +#. :dp:`fls_7rxnxd4ybxbt` + Dereference the context :t:`value`. + +#. :dp:`fls_l2nwz166curc` + Perform :t:`pattern matching` with its :t:`subpattern` and the dereferenced + :t:`value`. + +.. _fls_57ic33pwdvp3: + +Slice Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_hzyv4ofu0ny` +:dt:`Slice pattern matching` proceeds as follows: + +#. :dp:`fls_x10AKxoXXbs8` + If the expected :t:`type` is a :t:`slice type` then, + + #. :dp:`fls_69bnxrtj0nar` + If the number of :t:`[subpattern]s` of the :t:`slice pattern` is greater + than the length of the context :t:`value`, then matching fails. + + #. :dp:`fls_twhwiy213ibf` + If the number of :t:`[subpattern]s` of the :t:`slice pattern` is less than + the size of the context :t:`value` and one of those :t:`[subpattern]s` is + not a :t:`rest pattern`, then matching fails. + + #. :dp:`fls_ei7y4ul6n6hu` + For each :t:`subpattern` of the :t:`slice pattern`: + + #. :dp:`fls_ad2jud5h1rfp` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`value` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_pc97m47p34wq` + If matching the :t:`subpattern` fails, then matching fails. + +#. :dp:`fls_kwQyiSoyAwZ8` + Otherwise, if the expected :t:`type` is an :t:`array type`, then + + #. :dp:`fls_zAdtysiuUwBX` + For each :t:`subpattern` of the :t:`slice pattern`: + + #. :dp:`fls_SezcYXcSlEq7` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`value` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_6xRXEt2pGnZi` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_asj8rgccvkoe: + +Record Struct Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_evuhau2rwm8i` +:dt:`Record struct pattern matching` proceeds as follows: + +#. :dp:`fls_bde1hpvrosui` + If the number of :t:`[subpattern]s` of the :t:`record struct pattern` is less + than the number of :t:`[field]s` of the context :t:`value` and one of those + :t:`[subpattern]s` is not a :t:`rest pattern`, then matching fails. + +#. :dp:`fls_447s4hc07ozn` + For each :t:`subpattern` of the :t:`struct pattern` + + #. :dp:`fls_vfdb1i5l41yk` + If the :t:`subpattern` is a :t:`shorthand deconstructor`, then the + corresponding :t:`field` of the context :t:`value` is bound to the + :t:`binding` of the :t:`shorthand deconstructor` according to the + :t:`binding mode`. + + #. :dp:`fls_yfk52fr7trw3` + Otherwise perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring :t:`[rest + pattern]s`. + + #. :dp:`fls_6sdcykdrpe5d` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_eexupzdsu7f: + +Tuple Struct Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_dexg9g9cct30` +:dt:`Tuple struct pattern matching` proceeds as follows: + +#. :dp:`fls_boc7juqj69hw` + For each :t:`subpattern` of the :t:`tuple struct pattern` + + #. :dp:`fls_4dr1stiw82v9` + Otherwise perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_h14emtt6iyk3` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_rce8bb7nz2jy: + +Tuple Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_w4xypnrnhycb` +:dt:`Tuple pattern matching` proceeds as follows: + +#. :dp:`fls_vnx1bpval595` + For each :t:`subpattern` of the :t:`tuple pattern` + + #. :dp:`fls_dzf32f40y7fr` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_krl32txvxxkz` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_yc4xm4hrfyw7: + +Underscore Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_dvk7r1gf7pwp` +:dt:`Underscore pattern matching` proceeds as follows: + +#. :dp:`fls_e0uprihqn1y6` + The context :t:`value` is matched unconditionally. + +#. :dp:`fls_ljcq2vyo052q` + Matching succeeds. diff --git a/_sources/program-structure-and-compilation.rst.txt b/_sources/program-structure-and-compilation.rst.txt new file mode 100644 index 00000000..ff5f02bb --- /dev/null +++ b/_sources/program-structure-and-compilation.rst.txt @@ -0,0 +1,226 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_hdwwrsyunir: + +Program Structure and Compilation +================================= + +.. _fls_s35hob3i7lr: + +Source Files +------------ + +.. rubric:: Syntax + +.. syntax:: + + SourceFile ::= + ZeroWidthNoBreakSpace? + Shebang? + InnerAttributeOrDoc* + Item* + + ZeroWidthNoBreakSpace ::= + $$\u{FEFF}$$ + + Shebang ::= + $$#!$$ ~[NewLine]* + + NewLine ::= + $$\n$$ + +.. rubric:: Legality Rules + +:dp:`fls_4vicosdeaqmp` +A :t:`source file` contains the program text consisting of :t:`[inner +attribute]s`, :t:`[inner doc comment]s`, and :t:`[item]s`. The location of a +:t:`source file` is tool defined. + +:dp:`fls_ann3cha1xpek` +A :s:`Shebang` does not have an effect on the compilation. + +.. _fls_e9hwvqsib5d5: + +Modules +------- + +.. rubric:: Syntax + +.. syntax:: + + ModuleDeclaration ::= + $$unsafe$$? $$mod$$ Name ModuleSpecification + + ModuleSpecification ::= + InlineModuleSpecification + | OutlineModuleSpecification + + InlineModuleSpecification ::= + $${$$ + InnerAttributeOrDoc* + Item* + $$}$$ + + OutlineModuleSpecification ::= + $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_odd1hj3y1mgu` +A :t:`module` is a container for zero or more :t:`[item]s`. + +:dp:`fls_whgv72emrm47` +The ``unsafe`` :t:`keyword` of an :t:`module` is rejected, but may still +be consumed by :t:`[macro]s`. + +:dp:`fls_qypjjpcf8uwq` +An :t:`inline module` is a :t:`module` with an :s:`InlineModuleSpecification`. + +:dp:`fls_cavwpr1ybk37` +An :t:`outline module` is a :t:`module` with an :s:`OutlineModuleSpecification`. + +:dp:`fls_plepew2319g4` +An :t:`outline module` loads a :t:`source file` and considers the text of the +:t:`source file` to be inlined within the context of the :t:`outline module`. + +:dp:`fls_1aruwps62c4p` +The location of a :t:`module` :t:`source file` can be specified using +:t:`attribute` :c:`path`. + +.. rubric:: Examples + +.. code-block:: rust + + #[path = "path/to/module"] + pub mod module { + #![allow(dead_code)] + + struct Struct; + pub mod other; + } + +.. _fls_maw4u1o8q37u: + +Crates +------ + +.. rubric:: Legality Rules + +:dp:`fls_qwghk79ok5h0` +A :t:`crate` is a unit of compilation and linking that contains a tree of +nested :t:`[module]s`. + +:dp:`fls_9ub6ks8qrang` +A :t:`binary crate` is a :t:`crate` that contains a :t:`main function`. A tool +can compile a :t:`binary crate` to an executable. + +:dp:`fls_d9nn4yuiw1ja` +A :t:`library crate` is either a :t:`crate` without a :t:`main function` or a +:t:`crate` subject to :t:`attribute` :c:`no_main`. A tool is free to compile a +:t:`library crate` to a shared library. + +:dp:`fls_Mf62VqAhoZ3c` +A :t:`proc-macro crate` is a :t:`crate` that contains :t:`[procedural macro]s`. +A tool is free to compile a :t:`proc-macro crate` to a shared library. + +:dp:`fls_cXLyCjs9T3Mj` +A :t:`proc-macro crate` shall not declare :t:`[item]s` with +:t:`public visibility` unless the :t:`item` is a :t:`procedural macro`. + +:dp:`fls_h93C3wfbAoz1` +Only a :t:`proc-macro crate` shall declare :t:`[procedural macro]s`. + +.. _fls_gklst7joeo33: + +Crate Imports +------------- + +.. rubric:: Syntax + +.. syntax:: + + ExternalCrateImport ::= + $$extern$$ $$crate$$ CrateIndication Renaming? $$;$$ + + CrateIndication ::= + Identifier + | $$self$$ + +.. rubric:: Legality Rules + +:dp:`fls_d0pa807s5d5h` +A :t:`crate import` specifies a required dependency on an external :t:`crate`. + +:dp:`fls_vfam3wzeAiah` +A :t:`crate indication` is a :t:`construct` that indicates a :t:`crate`. + +:dp:`fls_ft860vkz0lkc` +A :t:`crate import` binds an external :t:`crate` to its :t:`crate indication`. + +:dp:`fls_k90qtnf8kgu1` +:t:`Crate indication` ``self`` shall require a :t:`renaming`. + +:dp:`fls_siv8bl6s2ndu` +A :t:`crate import` with a :t:`renaming` with an :t:`identifier` binds the +external :t:`crate` to a local :t:`name` and introduces the local :t:`name` into +the enclosing :t:`scope`. + +:dp:`fls_7vz5n3x6jo1s` +If a :t:`crate import` appears at the :t:`crate root module`, then the +:t:`crate indication` is added to the :t:`external prelude`. + +:dp:`fls_3bgpc8m8yk4p` +A :t:`crate indication` shall resolve to an external :t:`crate`. The process of +resolving a :t:`crate indication` to an external :t:`crate` is tool-defined. + +.. _fls_5w50kf83oo1u: + +Compilation Roots +----------------- + +.. rubric:: Legality Rules + +:dp:`fls_fhiqvgdamq5` +A :t:`crate root module` is the root of the nested :t:`module` tree of a +:t:`crate`. + +:dp:`fls_tk8tl2e0a34` +A tool can define a :t:`crate root module` for a single :t:`crate`. + +:dp:`fls_bsyfxdk3ap1t` +A :t:`compilation root` is an input to a compilation performed by a tool. A +:t:`crate root module` is a :t:`compilation root`. + +.. _fls_u1afezy1ye99: + +Conditional Compilation +----------------------- + +.. rubric:: Legality Rules + +:dp:`fls_9stc6nul6vq9` +:t:`Conditionally-compiled source code` is source code that may or may +not be considered a part of a Rust program depending on +:t:`[configuration predicate]s`. + +:dp:`fls_a0u9nnaf6drz` +:t:`Conditional compilation` is the process of compiling +:t:`conditionally-compiled source code`. + +:dp:`fls_pf1v89h7pjhh` +A :t:`construct` subject to :t:`attribute` :c:`cfg` where the related +:t:`configuration predicate` evaluates to ``false`` is not considered part of a +Rust program. + +:dp:`fls_y56RGw3cbFex` +A :t:`crate root module` subject to :t:`attribute` :c:`cfg` where the related +:t:`configuration predicate` evaluates to ``false`` is considered empty except +for all :t:`[attribute]s` up to the invoked :t:`attribute` :c:`cfg`. + +:dp:`fls_h6b1fuw4nvi1` +An :t:`attribute` :c:`cfg_attr` where the related :t:`configuration predicate` +evaluates to ``false`` is not considered part of a Rust program. + diff --git a/_sources/statements.rst.txt b/_sources/statements.rst.txt new file mode 100644 index 00000000..0b500d58 --- /dev/null +++ b/_sources/statements.rst.txt @@ -0,0 +1,209 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_wdicg3sqa98e: + +Statements +========== + +.. rubric:: Syntax + +.. syntax:: + + Statement ::= + ExpressionStatement + | Item + | LetStatement + | TerminatedMacroInvocation + | $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_7zh6ziglo5iy` +An :t:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_kdxe1ukmgl1` +An :t:`item statement` is a :t:`statement` that is expressed as an :t:`item`. + +:dp:`fls_fftdnwe22xrb` +An :t:`empty statement` is a :t:`statement` expressed as character 0x3B +(semicolon). + +:dp:`fls_or125cqtxg9j` +A :t:`macro statement` is a :t:`statement` expressed as a +:t:`terminated macro invocation`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_estqu395zxgk` +:t:`Execution` is the process by which a :t:`statement` achieves its runtime +effects. + +:dp:`fls_dl763ssb54q1` +The :t:`execution` of an :t:`empty statement` has no effect. + +.. _fls_yivm43r5wnp1: + +Let Statements +-------------- + +.. rubric:: Syntax + +.. syntax:: + + LetStatement ::= + OuterAttributeOrDoc* $$let$$ PatternWithoutAlternation TypeAscription? LetInitializer? $$;$$ + + LetInitializer ::= + $$=$$ Expression ($$else$$ BlockExpression)? + +.. rubric:: Legality Rules + +:dp:`fls_ct7pp7jnfr86` +A :t:`let statement` is a :t:`statement` that introduces new :t:`[binding]s` +produced by its :t:`pattern-without-alternation` that are optionally +initialized to a :t:`value`. + +:dp:`fls_SR3dIgR5K0Kq` +A :t:`let initializer` is a :t:`construct` that provides the :t:`value` of +the :t:`[binding]s` of the :t:`let statement` using an :t:`expression`, or +alternatively executes a :t:`block expression`. + +:dp:`fls_iqar7vvtw22c` +If a :t:`let statement` lacks a :t:`block expression`, then the :t:`pattern` of +the :t:`let statement` shall be an :t:`irrefutable pattern`. + +:dp:`fls_iB25BeFys0j8` +The :t:`expected type` of the :t:`pattern` of the :t:`let statement` is determined as follows: + +* :dp:`fls_zObyLdya4DYc` + If the :t:`let statement` lacks a :t:`type ascription` and a :t:`let initializer, then the :t:`expected type` is the :t:`inferred type`. + +* :dp:`fls_r38TXWKQPjxv` + If the :t:`let statement` lacks a :t:`type ascription`, then the :t:`expected type` is the :t:`type` of the :t:`let initializer`. + +* :dp:`fls_6QSdwF4pzjoe` + Otherwise the :t:`expected type` is the :t:`type` specified by the :t:`type ascription`. + +:dp:`fls_1prqh1trybwz` +The :t:`type` of a :t:`binding` introduced by a :t:`let statement` is +determined as follows: + +* :dp:`fls_djkm8r2iuu6u` + If the :t:`let statement` appears with a :t:`type ascription`, then the + :t:`type` is the :t:`type` specified by the :t:`type ascription`. + +* :dp:`fls_ppj9gvhp8wcj` + If the :t:`let statement` lacks a :t:`type ascription`, then the :t:`type` is + inferred using :t:`type inference`. + +:dp:`fls_1eBQDZdBuDsN` +The :t:`type` of the :t:`block expression` of a :t:`let statement` shall be the +:t:`never type`. + +:dp:`fls_m8a7gesa4oim` +The :t:`value` of a :t:`binding` introduced by a :t:`let statement` is +determined as follows: + +* :dp:`fls_oaxnre7m9s10` + If the :t:`let statement` appears with a :t:`let initializer`, then the + :t:`value` is the :t:`value` of the :t:`expression` of the + :t:`let initializer`. + +* :dp:`fls_t5bjwluyv8za` + Otherwise the :t:`binding` is uninitialized. + +.. rubric:: Dynamic Semantics + +:dp:`fls_4j9riqyf4p9` +The :t:`execution` of a :t:`let statement` with a :t:`let initializer` proceeds +as follows: + +#. :dp:`fls_t53g5hlabqw1` + The :t:`expression` of the :t:`let initializer` is evaluated. + +#. :dp:`fls_7j4qlwg72ege` + If the :t:`value` of the :t:`expression` is matched successfully against the + :t:`pattern` of the :t:`let statement`, then the :t:`value` is assigned to + each :t:`binding` introduced by the :t:`let statement`. + +#. :dp:`fls_ea9bRFZjH8Im` + Otherwise the :t:`block expression` of the :t:`let initializer` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let local = 0; + let local: u32; + let (a, b) = (0, 0); + let Some(value) = vector.pop() else { + panic!(); + }; + +.. _fls_1pg5ig740tg1: + +Expression Statements +--------------------- + +.. rubric:: Syntax + +.. syntax:: + + ExpressionStatement ::= + ExpressionWithBlock $$;$$? + | ExpressionWithoutBlock $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_xmdj8uj7ixoe` +An :t:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_gzzmudc1hl6s` +The :t:`expected type` of an :t:`expression statement` without character 0x3B +(semicolon) is the :t:`unit type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_kc99n8qrszxh` +The :t:`execution` of an :t:`expression statement` proceeds as follows: + +#. :dp:`fls_r8poocwqaglf` + The :t:`operand` is evaluated. + +#. :dp:`fls_88e6s3erk8tj` + The :t:`value` of the :t:`operand` is :t:`dropped`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut values = vec![1, 2, 3]; + +:dp:`fls_4q90jb39apwr` +The following expression statement ignores the result from ``pop()``. + +.. code-block:: rust + + values.pop(); + +:dp:`fls_xqtztcu8ibwq` +The following expression statement does not require a semicolon. + +.. code-block:: rust + + if values.is_empty() { + values.push(42); + } + else { + values.remove(0); + } + +:dp:`fls_2p9xnt519nbw` +The following expression statement is not an index expression. + +.. code-block:: rust + + [42]; diff --git a/_sources/types-and-traits.rst.txt b/_sources/types-and-traits.rst.txt new file mode 100644 index 00000000..b918cc56 --- /dev/null +++ b/_sources/types-and-traits.rst.txt @@ -0,0 +1,3373 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_vgb6ev541b2r: + +Types and Traits +================ + +.. _fls_kwsBxMQNTRnL: + +Types +----- + +.. rubric:: Syntax + +.. syntax:: + + TypeSpecification ::= + ImplTraitTypeSpecification + | TraitObjectTypeSpecification + | TypeSpecificationWithoutBounds + + TypeSpecificationList ::= + TypeSpecification (, TypeSpecification)* $$,$$? + + TypeSpecificationWithoutBounds ::= + ArrayTypeSpecification + | FunctionPointerTypeSpecification + | ImplTraitTypeSpecificationOneBound + | InferredType + | MacroInvocation + | NeverType + | ParenthesizedTypeSpecification + | QualifiedTypePath + | RawPointerTypeSpecification + | ReferenceTypeSpecification + | SliceTypeSpecification + | TraitObjectTypeSpecificationOneBound + | TupleTypeSpecification + | TypePath + + TypeAscription ::= + $$:$$ TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_4rhjpdu4zfqj` +A :t:`type` defines a set of :t:`[value]s` and a set of operations that act on +those :t:`[value]s`. + +:dp:`fls_0yaYKnFrJkhG` +A :t:`local type` is a :t:`type` that is defined in the current :t:`crate`. + +.. _fls_963gsjp2jas2: + +Type Classification +------------------- + +.. informational-section:: + +.. rubric:: Legality Rules + +:dp:`fls_c4xe3pkn0n3o` +:t:`[Type]s` are organized in the following categories: + +* :dp:`fls_69zyas59o8ff` + :t:`[Scalar type]s` + + * :dp:`fls_65hcyqizo1da` + :c:`Bool` :t:`type` + + * :dp:`fls_zge99l49az8w` + :c:`Char` :t:`type` + + * :dp:`fls_vizoconv3ir` + :t:`[Numeric type]s` + + * :dp:`fls_ne6bgnh1eyrj` + :t:`Floating-point type` + + * :dp:`fls_jvj8l8366kl2` + :t:`Integer type` + +* :dp:`fls_eek1jn1rwjh9` + :t:`[Sequence type]s` + + * :dp:`fls_s0aduyvz4i7f` + :t:`[Array type]s` + + * :dp:`fls_zb5e79ai7w5i` + :t:`[Slice type]s` + + * :dp:`fls_yjp19vt46asy` + :c:`Str` :t:`type` + + * :dp:`fls_xflj5df6upc7` + :t:`[Tuple type]s` + +* :dp:`fls_u43jnp9jnw29` + :t:`[Abstract data type]s` + + * :dp:`fls_lric8bf631nw` + :t:`[Enum type]s` + + * :dp:`fls_98djh9avlqc0` + :t:`[Struct type]s` + + * :dp:`fls_b3ymsm8dmo4` + :t:`[Union type]s` + +* :dp:`fls_9x5atvhdq0j2` + :t:`[Function type]s` + + * :dp:`fls_n5rgqgnxk9to` + :t:`[Closure type]s` + + * :dp:`fls_s7ndqc5sizdy` + :t:`[Function item type]s` + +* :dp:`fls_jrohsv7hx7yw` + :t:`[Indirection type]s` + + * :dp:`fls_1kg1mknf4yx7` + :t:`[Function pointer type]s` + + * :dp:`fls_bw8zutjcteki` + :t:`[Raw pointer type]s` + + * :dp:`fls_nqezuc9u6wpn` + :t:`[Reference type]s` + +* :dp:`fls_lh52q6f6snfh` + :t:`[Trait type]s` + + * :dp:`fls_qqg0uixrd1a4` + :t:`[Impl trait type]s` + + * :dp:`fls_b8ecqp2argmn` + :t:`[Trait object type]s` + +* :dp:`fls_m5vtcars8aga` + Other :t:`[type]s` + + * :dp:`fls_lw38557rqikt` + :t:`[Inferred type]s` + + * :dp:`fls_jxn63ow9xby3` + :t:`Never type` + + * :dp:`fls_a81tweobvm0p` + :t:`[Parenthesized type]s` + +.. _fls_id66vnaqw0zt: + +Scalar Types +------------ + +.. _fls_tiqp1gxf116z: + +Bool Type +~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_h5994su1yft3` +:c:`Bool` is a :t:`type` whose :t:`[value]s` denote the truth :t:`[value]s` of +logic and Boolean algebra. + +:dp:`fls_v8atmrwz6wzk` +:t:`Type` :c:`bool` appears in the :t:`language prelude` under the name +``bool``. + +:dp:`fls_iye7ho2ynyhn` +Boolean :t:`value` ``false`` has bit pattern ``0x00``. Boolean :t:`value` +``true`` has bit pattern ``0x01``. + +:dp:`fls_7nd5tixyqir8` +The following operations are defined on :t:`type` :c:`bool`: + +:dp:`fls_w2dzqq54fjhb` +**Logical not** + +.. list-table:: + + * - :dp:`fls_ufmd38hi9t9y` + - **a** + - **!a** + * - :dp:`fls_5allcjkjnon2` + - ``true`` + - ``false`` + * - :dp:`fls_3bibysz95ktn` + - ``false`` + - ``true`` + +:dp:`fls_fxq19dqtmifj` +**Logical and** + +.. list-table:: + + * - :dp:`fls_drhpcwoblcux` + - **a** + - **b** + - **a & b** + * - :dp:`fls_v86qrsqcs3nd` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_dd49lb2k3erc` + - ``true`` + - ``false`` + - ``false`` + * - :dp:`fls_t6ef5x4x5poi` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_kqtgjgn1hqrj` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_ws15ilzf8n6z` +**Logical or** + +.. list-table:: + + * - :dp:`fls_ni4mgq3mouek` + - **a** + - **b** + - **a | b** + * - :dp:`fls_6c9ax4qsr1gy` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_sqcgvpr4egtx` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_9ys0itbp4okd` + - ``false`` + - ``true`` + - ``true`` + * - :dp:`fls_b46gbyid15zx` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_f8ag276ecbze` +**Logical exclusive or (xor)** + +.. list-table:: + + * - :dp:`fls_twwjcrcfirdi` + - **a** + - **b** + - **a ^ b** + * - :dp:`fls_wovu7330vdrq` + - ``true`` + - ``true`` + - ``false`` + * - :dp:`fls_7xopdco6iy74` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_nb5cb6en2p5w` + - ``false`` + - ``true`` + - ``true`` + * - :dp:`fls_gd28wfcfs2pv` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_67a7p57nzbul` +**Equality** + +.. list-table:: + + * - :dp:`fls_cq0qunw51m94` + - **a** + - **b** + - **a == b** + * - :dp:`fls_o1e4tnh7v3db` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_6vnv3ygisjr` + - ``true`` + - ``false`` + - ``false`` + * - :dp:`fls_s6m9abmmtc9i` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_s19vu65z96y5` + - ``false`` + - ``false`` + - ``true`` + +:dp:`fls_2d4aqspw0wlt` +**Greater than** + +.. list-table:: + + * - :dp:`fls_msjo2zd67zn1` + - **a** + - **b** + - **a > b** + * - :dp:`fls_w1oti03tm1y6` + - ``true`` + - ``true`` + - ``false`` + * - :dp:`fls_9gqd7eevbknt` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_r4o2rmhqg4br` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_1n7p6ij1dpm` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_4x27kfiodb8` +Operation ``a != b`` is equivalent to ``!(a == b)``. + +:dp:`fls_me6bf9m2ypt` +Operation ``a >= b`` is equivalent to ``a == b | a > b``. + +:dp:`fls_2j659ns8wop4` +Operation ``a < b`` is equivalent to ``!(a >= b)``. + +:dp:`fls_d09l2rl0161l` +Operation ``a <= b`` is equivalent to ``a == b | a < b``. + +.. rubric:: Undefined Behavior + +:dp:`fls_2sd39mj05mb9` +It is a :t:`validity invariant` for a :t:`value` of :t:`type` :c:`bool` to have +a bit pattern of ``0x00`` and ``0x01``. + +.. _fls_wrvjizrqf3po: + +Char Type +~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_vnwbs0exbwcn` +:c:`Char` is a :t:`type` whose :t:`[value]s` are represented as a 32-bit +unsigned word in the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges +of :t:`Unicode`. + +.. rubric:: Undefined Behavior + +:dp:`fls_juysxea25owj` +It is a :t:`validity invariant` for a :t:`value` of :t:`type` :c:`char` to be +inside the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges of +:t:`Unicode`. + +.. _fls_qwljwqr07slp: + +Numeric Types +~~~~~~~~~~~~~ + +.. _fls_b4xporvr64s: + +Floating Point Types +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_30yny2xb9b6b` +:t:`Type` :c:`f32` is equivalent to the IEEE 754-2008 binary32 :t:`type`. + +:dp:`fls_yqflrq9s6p6n` +:t:`Type` :c:`f64` is equivalent to the IEEE 754-2008 binary64 :t:`type`. + +.. _fls_3qnpv2z7yjil: + +Integer Types +^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_cokwseo3nnr` +:t:`[Unsigned integer type]s` define the following inclusive ranges over the +domain of whole numbers: + +.. list-table:: + + * - :dp:`fls_vk1skn6ek36u` + - **Type** + - **Minimum** + - **Maximum** + * - :dp:`fls_iikexw8ps6mk` + - :c:`u8` + - 0 + - 2\ :sup:`8` - 1 + * - :dp:`fls_cavasxxlgs7g` + - :c:`u16` + - 0 + - 2\ :sup:`16` - 1 + * - :dp:`fls_7sx92xsjx3pl` + - :c:`u32` + - 0 + - 2\ :sup:`32` - 1 + * - :dp:`fls_q9f95uet7gq4` + - :c:`u64` + - 0 + - 2\ :sup:`64` - 1 + * - :dp:`fls_yjb3kzijd19v` + - :c:`u128` + - 0 + - 2\ :sup:`128` - 1 + +:dp:`fls_75lntwhg20l` +:t:`Type` :c:`usize` has the same number of bits as the platform's +:t:`pointer type`, and is at least 16-bits wide. + +:dp:`fls_p2shoji3xg5a` +:t:`[Signed integer type]s` define the following inclusive ranges over the +domain of whole numbers: + +.. list-table:: + + * - :dp:`fls_fsyt05u9y4sl` + - **Type** + - **Minimum** + - **Maximum** + * - :dp:`fls_p9ffvtajr832` + - :c:`i8` + - \- (2\ :sup:`7`) + - 2\ :sup:`7` - 1 + * - :dp:`fls_j6xan9f8udw7` + - :c:`i16` + - \- (2\ :sup:`15`) + - 2\ :sup:`15` - 1 + * - :dp:`fls_4t39p3ibkzu7` + - :c:`i32` + - \- (2\ :sup:`31`) + - 2\ :sup:`31` - 1 + * - :dp:`fls_egfoxke0lzje` + - :c:`i64` + - \- (2\ :sup:`63`) + - 2\ :sup:`63` - 1 + * - :dp:`fls_4c4qpel1tbqs` + - :c:`i128` + - \- (2\ :sup:`127`) + - 2\ :sup:`127` - 1 + +:dp:`fls_t9oyfmgqka6u` +:t:`Type` :c:`isize` has the same number of bits as the platform's +:t:`pointer type`, and is at least 16-bits wide. + +.. _fls_fbchw64p6n2x: + +Sequence Types +-------------- + +.. _fls_uj0kpjwyld60: + +Array Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ArrayTypeSpecification ::= + $$[$$ ElementType $$;$$ SizeOperand $$]$$ + + ElementType ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_fx7b3qv3ghca` +An :t:`array type` is a :t:`sequence type` that represents a fixed sequence +of elements. + +:dp:`fls_pkts1p2dnxo` +The :t:`element type` shall be a :t:`fixed sized type`. + +:dp:`fls_imr2jx6cbuzq` +The :t:`size operand` shall be a :t:`constant expression`. + +:dp:`fls_r8nqxry2dlww` +The :t:`type` of the :t:`size operand` is :t:`type` :c:`usize`. + +.. rubric:: Examples + +:dp:`fls_9vjijqi9w8wn` +An array type in the context of a let statement: + +.. code-block:: rust + + let array: [i32; 3] = [1, 2, 3]; + +.. _fls_vpbikb73dw4k: + +Slice Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + SliceTypeSpecification ::= + $$[$$ ElementType $$]$$ + +.. rubric:: Legality Rules + +:dp:`fls_ftvua2hlvr08` +A :t:`slice type` is a :t:`sequence type` that provides a view into a sequence +of elements. + +:dp:`fls_acgtczhk8ci0` +The :t:`element type` shall be a :t:`fixed sized type`. + +:dp:`fls_5gl67ftc3m21` +A :t:`slice type` is a :t:`dynamically sized type`. + +.. rubric:: Examples + +:dp:`fls_nsny832ap4v1` +A slice type in the context of a let statement: + +.. code-block:: rust + + let array: [i32; 3] = [1, 2, 3]; + let slice: &[i32] = &array[0..1]; + +.. _fls_4agmmu5al6gt: + +Str Type +~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_wlnoq1qoq2kr` +:c:`Str` is a :t:`sequence type` that represents a :t:`slice` of 8-bit unsigned +bytes. + +:dp:`fls_1xa6fas6laha` +:t:`Type` :c:`str` is a :t:`dynamically sized type`. + +:dp:`fls_yu7r2077n9m7` +A :t:`value` of :t:`type` :c:`str` shall denote a valid UTF-8 sequence of +characters. + +.. rubric:: Undefined Behavior + +:dp:`fls_wacoqrtzvrwu` +It is a :t:`safety invariant` for a :t:`value` of :t:`type` :c:`str` to denote +a valid UTF-8 sequence of characters. + +.. _fls_4ckl3n2ko3i4: + +Tuple Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TupleTypeSpecification ::= + $$($$ TupleFieldList? $$)$$ + + TupleFieldList ::= + TupleField (, TupleField)* ,? + + TupleField ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_bn7wmf681ngt` +A :t:`tuple type` is a :t:`sequence type` that represents a heterogeneous list +of other :t:`[type]s`. + +:dp:`fls_s9a36zsrfqew` +If the :t:`type` of a :t:`tuple field` is a :t:`dynamically-sized type`, then +the :t:`tuple field` shall be the last :t:`tuple field` in the +:s:`TupleFieldList`. + +.. rubric:: Examples + +.. code-block:: rust + + () + (char,) + (i32, f64, Vec) + +.. _fls_wdec78luqh5b: + +Abstract Data Types +------------------- + +.. _fls_szibmtfv117b: + +Enum Types +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + EnumDeclaration ::= + $$enum$$ Name GenericParameterList? WhereClause? $${$$ EnumVariantList? $$}$$ + + EnumVariantList ::= + EnumVariant ($$,$$ EnumVariant)* $$,$$? + + EnumVariant ::= + OuterAttributeOrDoc* VisibilityModifier? Name EnumVariantKind? + + EnumVariantKind ::= + DiscriminantInitializer + | RecordStructFieldList + | TupleStructFieldList + + DiscriminantInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_gbdd37seqoab` +An :t:`enum type` is an :t:`abstract data type` that contains +:t:`[enum variant]s`. + +:dp:`fls_il9a1olqmu38` +A :t:`zero-variant enum type` has no :t:`[value]s`. + +:dp:`fls_wQTFwl88VujQ` +An :t:`enum variant` is a :t:`construct` that declares one of the +possible variations of an :t:`enum`. + +:dp:`fls_g5qle7xzaoif` +The :t:`name` of an :t:`enum variant` shall be unique within the related +:s:`EnumDeclaration`. + +:dp:`fls_t4yeovFm83Wo` +A :t:`discriminant` is an opaque integer that identifies an :t:`enum variant`. + +:dp:`fls_hp5frc752dam` +A :t:`discriminant initializer` shall be specified only when all :t:`[enum +variant]s` appear without an :s:`EnumVariantKind`. + +:dp:`fls_pijczoq4k9ij` +The :t:`type` of the :t:`expression` of a :t:`discriminant initializer` shall +be either: + +* :dp:`fls_x7nh42on06bg` + The :t:`type` of the :t:`primitive representation` specified by :t:`attribute` + :c:`repr`, or + +* :dp:`fls_duqbzvpuehvv` + :t:`Type` :c:`isize`. + +:dp:`fls_ly183pj4fkgh` +The :t:`value` of the :t:`expression` of a :t:`discriminant initializer` shall +be a :t:`constant expression`. + +:dp:`fls_w7sggezgq9o4` +The :t:`value` of a :t:`discriminant` of an :t:`enum variant` is determined +as follows: + +#. :dp:`fls_93l5o6qar5p2` + If the :t:`enum variant` contains a :t:`discriminant initializer`, then the + :t:`value` is the value of its :t:`expression`. + +#. :dp:`fls_t36rk3wikq28` + Otherwise, if the :t:`enum variant` is the first :t:`enum variant` in the + :s:`EnumVariantList`, then the :t:`value` is zero. + +#. :dp:`fls_8ajw5trd23wi` + Otherwise the :t:`value` is one greater than the :t:`value` of the + :t:`discriminant` of the previous :t:`enum variant`. + +:dp:`fls_w9xj26ej869w` +It is a static error if two :t:`[enum variant]s` have :t:`[discriminant]s` +with the same :t:`value`. + +:dp:`fls_wqbuof7kxsrg` +It is a static error if the :t:`value` of a :t:`discriminant` exceeds the +maximum :t:`value` of the :t:`type` of the :t:`expression` of a :t:`discriminant +initializer`. + +.. rubric:: Undefined Behavior + +:dp:`fls_f046du2fkgr6` +It is a :t:`validity invariant` for a :t:`value` of an :t:`enum type` to have a +:t:`discriminant` specified by the :t:`enum type`. + +.. rubric:: Examples + +.. code-block:: rust + + enum ZeroVariantEnumType {} + + enum Animal { + Cat, + Dog(String), + Otter { name: String, weight: f64, age: u8 } + } + + enum Discriminants { + First, // The discriminant is 0. + Second, // The discriminant is 1. + Third = 12, // The discriminant is 12. + Fourth, // The discriminant is 13. + Fifth = 34, // The discriminant is 34. + Sixth // The discriminant is 35. + } + +.. _fls_9ucqbbd0s2yo: + +Struct Types +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StructDeclaration ::= + RecordStructDeclaration + | TupleStructDeclaration + | UnitStructDeclaration + + RecordStructDeclaration ::= + $$struct$$ Name GenericParameterList? WhereClause? RecordStructFieldList + + RecordStructFieldList ::= + $${$$ (RecordStructField ($$,$$ RecordStructField)* $$,$$?)? $$}$$ + + RecordStructField ::= + OuterAttributeOrDoc* VisibilityModifier? Name TypeAscription + + TupleStructDeclaration ::= + $$struct$$ Name GenericParameterList? TupleStructFieldList WhereClause? $$;$$ + + TupleStructFieldList ::= + $$($$ (TupleStructField ($$,$$ TupleStructField)* $$,$$?)? $$)$$ + + TupleStructField ::= + OuterAttributeOrDoc* VisibilityModifier? TypeSpecification + + UnitStructDeclaration ::= + $$struct$$ Name GenericParameterList? WhereClause? $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_g1azfj548136` +A :t:`struct type` is an :t:`abstract data type` that is a product of other +:t:`[type]s`. + +:dp:`fls_r885av95eivp` +The :t:`name` of a :t:`record struct field` shall be unique within the +related :s:`RecordStructDeclaration`. + +:dp:`fls_auurdv1zvzb` +If the :t:`type` of a :t:`record struct field` is a :t:`dynamically sized type`, +then the :t:`record struct field` shall be the last :t:`record struct field` in +the :s:`RecordStructFieldList`. + +:dp:`fls_vce7w0904du5` +If the :t:`type` of a :t:`tuple struct field` is a :t:`dynamically sized type`, +then the :t:`tuple struct field` shall be the last :t:`tuple struct field` in +the :s:`TupleStructFieldList`. + +.. rubric:: Examples + +.. code-block:: rust + + struct UnitStruct; + + struct AnimalRecordStruct { + name: String, + weight: f64, + age: u8 + } + + struct AnimalTupleStruct ( + String, + f64, + u8 + ); + +.. _fls_fmdn7n7s413d: + +Union Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnionDeclaration ::= + $$union$$ Name GenericParameterList? WhereClause? RecordStructFieldList + +.. rubric:: Legality Rules + +:dp:`fls_nskmnzq95yqm` +A :t:`union type` is an :t:`abstract data type` that is a sum of other +:t:`types`. + +:dp:`fls_1caus8ybmfli` +The :t:`name` of a :t:`union field` shall be unique within the related +:s:`RecordStructDeclaration`. + +:dp:`fls_ZJG2Q6lJYXhY` +The :t:`type` of a :t:`union field` shall be either: + +* :dp:`fls_hLTnHnZuaHve` + A :t:`copy type`, or + +* :dp:`fls_JWgSckDtN13c` + A :t:`mutable reference type`, or + +* :dp:`fls_sXZknxozJxtC` + :std:`core::mem::ManuallyDrop`, or + +* :dp:`fls_vgNK01SXacnx` + A :t:`tuple type` whose :t:`[tuple field]s`' :t:`[type]s` are all valid + :t:`union field` :t:`[type]s`, or + +* :dp:`fls_bQhh3zHAKjSu` + An :t:`array type` whose :t:`element type` is a valid :t:`union field` + :t:`[type]s`. + +.. rubric:: Examples + +.. code-block:: rust + + union LeafNode { + int: i32, + float: f32, + double: f64 + } + +.. _fls_hbbek3z4wtcs: + +Function Types +-------------- + +.. _fls_xd2oxlebhs14: + +Closure Types +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_bsykgnbatpmi` +A :t:`closure type` is a unique anonymous :t:`function type` that encapsulates +all :t:`[capture target]s` of a :t:`closure expression`. + +:dp:`fls_zfj4l8bigdg0` +A :t:`closure type` implements the :std:`core::ops::FnOnce` :t:`trait`. + +:dp:`fls_bn0ueivujnqk` +A :t:`closure type` that does not move out its :t:`[capture target]s` +implements the :std:`core::ops::FnMut` :t:`trait`. + +:dp:`fls_u01kt5glbuz8` +A :t:`closure type` that does not move out or mutate its :t:`[capture target]s` +implements the :std:`core::ops::Fn` :t:`trait`. + +:dp:`fls_3jeootwe6ucu` +A :t:`closure type` that does not encapsulate :t:`[capture target]s` is +coercible to a :t:`function pointer type`. + +:dp:`fls_63jqtyw0rz8c` +A :t:`closure type` implicitly implements the :std:`core::marker::Copy` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::marker::Copy` :t:`trait`. + +:dp:`fls_3c4g9njja5s5` +A :t:`closure type` implicitly implements the :std:`core::clone::Clone` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::clone::Clone` :t:`trait`. + +:dp:`fls_2nuhy0ujgq18` +A :t:`closure type` implicitly implements the :std:`core::marker::Send` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::marker::Send` :t:`trait`. + +:dp:`fls_5jh07heok8sy` +A :t:`closure type` implicitly implements the :std:`core::marker::Sync` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the :t:`capturing +environment` implement the :std:`core::marker::Send` :t:`trait`. + +.. _fls_airvr79xkcag: + +Function Item Types +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_t24iojx7yc23` +A :t:`function item type` is a unique anonymous :t:`function type` that +identifies a :t:`function`. + +:dp:`fls_sas3ahcshnrh` +An :t:`external function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`external function`. + +:dp:`fls_liwnzwu1el1i` +An :t:`unsafe function item type` is a :t:`function item type` where the related +:t:`function` is an :t:`unsafe function`. + +:dp:`fls_e9x4f7qxvvjv` +A :t:`function item type` is coercible to a :t:`function pointer type`. + +:dp:`fls_1941wid94hlg` +A :t:`function item type` implements the :std:`core::clone::Clone` :t:`trait`, +the :std:`core::marker::Copy` :t:`trait`, the :std:`core::ops::Fn` :t:`trait`, +the :std:`core::ops::FnMut` :t:`trait`, the :std:`core::ops::FnOnce` :t:`trait`, +the :std:`core::marker::Send` :t:`trait`, and the :std:`core::marker::Sync` +:t:`trait`. + +.. _fls_3i4ou0dq64ny: + +Indirection Types +----------------- + +.. _fls_xztr1kebz8bo: + +Function Pointer Types +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + FunctionPointerTypeSpecification ::= + ForGenericParameterList? FunctionPointerTypeQualifierList $$fn$$ + $$($$ FunctionPointerTypeParameterList? $$)$$ ReturnTypeWithoutBounds? + + FunctionPointerTypeQualifierList ::= + $$unsafe$$? AbiSpecification? + + FunctionPointerTypeParameterList ::= + FunctionPointerTypeParameter ($$,$$ FunctionPointerTypeParameter)* + ($$,$$ VariadicPart | $$,$$?) + + VariadicPart ::= + OuterAttributeOrDoc* $$...$$ + + FunctionPointerTypeParameter ::= + OuterAttributeOrDoc* (IdentifierOrUnderscore $$:$$)? TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_v2wrytr3t04h` +A :t:`function pointer type` is an :t:`indirection type` that refers to a +:t:`function`. + +:dp:`fls_5dd7icjcl3nt` +An :t:`unsafe function pointer type` is a function pointer type subject to +:t:`keyword` ``unsafe``. + +:dp:`fls_B0SMXRqQMS1E` +A :t:`variadic part` indicates the presence of :t:`C`-like optional +parameters. + +:dp:`fls_hbn1l42xmr3h` +A :t:`variadic part` shall be specified only when the :t:`ABI` of the +:t:`function pointer type` is either ``extern "C"`` or ``extern "cdecl"``. + +:dp:`fls_g1iYVw7upBnH` +The :t:`return type` of a :t:`function pointer type` is determined as follows: + +* :dp:`fls_8gpvNJfVlyaD` + If the :t:`function pointer type` specifies a :s:`ReturnTypeWithoutBounds`, then the :t:`return type` is the specified :s:`ReturnTypeWithoutBounds`. + +* :dp:`fls_KcI6yK0P8Onn` + Otherwise the :t:`return type` is the :t:`unit type`. + +.. rubric:: Undefined Behavior + +:dp:`fls_52thmi9hnoks` +It is a :t:`validity invariant` for a :t:`value` of a :t:`function pointer type` +to be not :c:`null`. + +.. rubric:: Examples + +.. code-block:: rust + + unsafe extern "C" fn (value: i32, ...) -> f64 + +.. _fls_ppd1xwve3tr7: + +Raw Pointer Types +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RawPointerTypeSpecification ::= + $$*$$ ($$const$$ | $$mut$$) TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_rpbhr0xukbx9` +A :t:`raw pointer type` is an :t:`indirection type` without validity guarantees. + +:dp:`fls_bYWfGDAQcWfA` +A :t:`mutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``mut``. + +:dp:`fls_8uWfFAsZeRCs` +An :t:`immutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``const``. + +:dp:`fls_hrum767l6dte` +Comparing two :t:`[value]s` of :t:`[raw pointer type]s` compares the addresses +of the :t:`[value]s`. + +:dp:`fls_k6ues2936pjq` +Comparing a :t:`value` of a :t:`raw pointer type` to a :t:`value` of a +:t:`dynamically sized type` compares the data being pointed to. + +.. rubric:: Examples + +.. code-block:: rust + + *const i128 + *mut bool + +.. _fls_142vncdktbin: + +Reference Types +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReferenceTypeSpecification ::= + $$&$$ LifetimeIndication? $$mut$$? TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_twhq24s8kchh` +A :t:`reference type` is an :t:`indirection type` with :t:`ownership`. + +:dp:`fls_w4NbA7WhZfR2` +A :t:`shared reference type` is a :t:`reference type` not subject to +:t:`keyword` ``mut``. + +:dp:`fls_ie0avzljmxfm` +A :t:`shared reference type` prevents the direct mutation of a referenced +:t:`value`. + +:dp:`fls_15zdiqsm1q3p` +A :t:`shared reference type` implements the :std:`core::marker::Copy` +:t:`trait`. Copying a :t:`shared reference` performs a shallow copy. + +:dp:`fls_csdjfwczlzfd` +Releasing a :t:`shared reference` has no effect on the :t:`value` it refers to. + +:dp:`fls_GUZuiST7ucib` +A :t:`mutable reference type` is a :t:`reference type` subject to :t:`keyword` +``mut``. + +:dp:`fls_vaas9kns4zo6` +A :t:`mutable reference type` allows the direct mutation of a referenced +:t:`value`. + +:dp:`fls_n6ffcms5pr0r` +A :t:`mutable reference type` does not implement the :std:`copy::marker::Copy` +:t:`trait`. + +.. rubric:: Undefined Behavior + +:dp:`fls_ezh8aq6fmdvz` +It is :t:`validity invariant` for a :t:`value` of a :t:`reference type` to be +not :c:`null`. + +.. rubric:: Examples + +.. code-block:: rust + + &i16 + &'a mut f32 + +.. _fls_1ompd93w7c9f: + +Trait Types +----------- + +.. _fls_3xqobbu7wfsf: + +Impl Trait Types +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ImplTraitTypeSpecification ::= + $$impl$$ TypeBoundList + + ImplTraitTypeSpecificationOneBound ::= + $$impl$$ TraitBound + +.. rubric:: Legality Rules + +:dp:`fls_a6zlvyxpgsew` +An :t:`impl trait type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is known at compile time. + +:dp:`fls_ieyqx5vzas2m` +An :t:`impl trait type` shall appear only within a :t:`function parameter` or +the :t:`return type` of a :t:`function`. + +:dp:`fls_ECjhEI7eCwAj` +An :t:`impl trait type` shall not contain :t:`[opt-out trait bound]s`. + +.. rubric:: Examples + +.. code-block:: rust + + fn anonymous_type_parameter + (arg: impl Copy + Send + Sync) { ... } + + fn anonymous_return_type () -> impl MyTrait { ... } + +.. _fls_qa98qdi42orq: + +Trait Object Types +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TraitObjectTypeSpecification ::= + $$dyn$$ TypeBoundList + + TraitObjectTypeSpecificationOneBound ::= + $$dyn$$ TraitBound + +.. rubric:: Legality Rules + +:dp:`fls_sgrvona1nb6h` +A :t:`trait object type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is not known at compile time. + +:dp:`fls_9z8oleh0wdel` +The first :t:`trait bound` of a :t:`trait object type` shall denote an +:t:`object safe` :t:`trait`. Any subsequent :t:`[trait bound]s` shall denote +:t:`[auto trait]s`. + +:dp:`fls_s0oy2c8t4yz9` +A :t:`trait object type` shall not contain :t:`[opt-out trait bound]s`. + +:dp:`fls_CcoUug6b9ohU` +A :t:`trait object type` shall contain at most one :t:`lifetime bound`. + +:dp:`fls_88b9bmhra55f` +A :t:`trait object type` is a :t:`dynamically sized type`. A +:t:`trait object type` permits late binding of :t:`[method]s`. A :t:`method` +invoked via a :t:`trait object type` involves dynamic dispatching. + +.. rubric:: Examples + +.. code-block:: rust + + dyn MyTrait + dyn MyTrait + Send + dyn MyTrait + 'static + Copy + +.. _fls_3pbipk8ki18d: + +Other Types +----------- + +.. _fls_s45k21yn4qur: + +Inferred Types +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + InferredType ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_xdtgr5toulpb` +An :t:`inferred type` is a placeholder for a :t:`type` deduced by +:t:`type inference`. + +:dp:`fls_3abhsuaa8nas` +An :t:`inferred type` shall not appear in the following positions: + +* :dp:`fls_hBXlJhbhuoHY` + Within the :s:`InitializationType` of a :s:`TypeAliasDeclaration`, + +* :dp:`fls_Vxlr9ZcqiOvY` + Within the :s:`ReturnType` of a :s:`FunctionDeclaration`, + +* :dp:`fls_gE9VC8JXrl1N` + Within the :s:`TypeAscription` of a :s:`ConstantDeclaration`, a + :s:`ConstantParameter`, a :s:`FunctionParameterPattern`, a + :s:`RecordStructField`, a :s:`StaticDeclaration`, or a :s:`TypedSelf`, + +* :dp:`fls_ybyQjFamI1Q5` + Within the :s:`TypeSpecification` of a :s:`FunctionParameter`, an + :s:`ImplementingType`, a :s:`TupleStructField`, a :s:`TypeBoundPredicate`, or + a :s:`TypeParameter`. + +:dp:`fls_9d8wbugmar1m` +An :t:`inferred type` forces a tool to deduce a :t:`type`, if possible. + +.. rubric:: Examples + +.. code-block:: rust + + let values: Vec<_> = (0 .. 10).collect(); + +.. _fls_XJCXBAJHzP3D: + +Type Parameters +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_dCIIVXGhXDlO` +A :t:`type parameter type` is a placeholder :t:`type` of a :t:`type parameter` +to be substituted by :t:`generic substitution`. + +.. rubric:: Examples + +.. code-block:: rust + + fn type_parameter(parameter: T) {} + +.. _fls_98lnexk53ru4: + +Never Type +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NeverType ::= + $$!$$ + +.. rubric:: Legality Rules + +:dp:`fls_4u0v5uy95pyf` +The :t:`never type` is a :t:`type` that represents the result of a computation +that never completes. + +:dp:`fls_xmtc10qzw0ui` +The :t:`never type` has no :t:`[value]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_22e8quna7ed5` +It is :t:`validity invariant` to not have a :t:`value` of the :t:`never type`. + +.. rubric:: Examples + +.. code-block:: rust + + let never_completes: ! = panic!(); + +.. _fls_olbj67eyxz2k: + +Parenthesized Types +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedTypeSpecification ::= + $$($$ TypeSpecification $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_1dvo1epstrdv` +A :t:`parenthesized type` is a :t:`type` that disambiguates the interpretation +of :t:`[lexical element]s`. + +.. rubric:: Examples + +.. code-block:: rust + + &'a (dyn MyTrait + Send) + +.. _fls_kgvleup5mdhq: + +Type Aliases +------------ + +.. rubric:: Syntax + +.. syntax:: + + TypeAliasDeclaration ::= + $$type$$ Name GenericParameterList? ($$:$$ TypeBoundList)? WhereClause? + ($$=$$ InitializationType WhereClause?)? $$;$$ + + InitializationType ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_bibigic4jjad` +A :t:`type alias` is an :t:`item` that defines a :t:`name` for a :t:`type`. + +:dp:`fls_rosdkeck5ax2` +A :t:`type alias` shall not have a :s:`TypeBoundList` unless it is an +:t:`associated item`. + +:dp:`fls_drxl7u3etfp9` +The last :t:`where clause` is rejected, but may still be consumed by +:t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + type Point = (f64, f64); + +.. _fls_7pby13muw48o: + +Representation +-------------- + +.. _fls_g1z6bpyjqxkz: + +Type Layout +~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kdbq02iguzgl` +All :t:`[value]s` have an :t:`alignment` and a :t:`size`. + +:dp:`fls_muxfn9soi47l` +The :t:`alignment` of a :t:`value` specifies which addresses are valid for +storing the :t:`value`. :t:`Alignment` is measured in bytes, is at least one, +and always a power of two. A :t:`value` of :t:`alignment` ``N`` is stored at an +address that is a multiple of ``N``. + +:dp:`fls_1pbwigq6f3ha` +The :t:`size` of a :t:`type` is the offset in bytes between successive elements +in :t:`array type` ``[T, N]`` where ``T`` is the :t:`type` of the :t:`value`, +including any padding for :t:`alignment`. :t:`Size` is a multiple of the +:t:`alignment`. + +:dp:`fls_bk3nm2n47afu` +The :t:`size` of :t:`[scalar type]s` is as follows: + +.. list-table:: + + * - :dp:`fls_z3i758jshvhx` + - **Type** + - **Size** + * - :dp:`fls_uixe1ruv52be` + - :c:`bool` + - 1 + * - :dp:`fls_7at60xlxm9u4` + - :c:`u8`, :c:`i8` + - 1 + * - :dp:`fls_395247pkxv48` + - :c:`u16`, :c:`i16` + - 2 + * - :dp:`fls_tbe9sc75timc` + - :c:`u32`, :c:`i32` + - 4 + * - :dp:`fls_7jaqx33re3hg` + - :c:`u64`, :c:`i64` + - 8 + * - :dp:`fls_asys0iz6m0md` + - :c:`u128`, :c:`i128` + - 16 + * - :dp:`fls_wfv5vcxl2lc7` + - :c:`f32` + - 4 + * - :dp:`fls_x8dfw50z9c` + - :c:`f64` + - 8 + * - :dp:`fls_nyxnnlwmt5gu` + - :c:`char` + - 4 + +:dp:`fls_lwmrljw9m0pb` +Types :c:`usize` and :c:`isize` have :t:`size` big enough to contain every +address on the target platform. + +:dp:`fls_pzi6izljfv0f` +For :t:`type` :c:`str`, the :t:`layout` is that of :t:`slice type` +``[u8]``. + +:dp:`fls_7cjbxleo998q` +For :t:`array type` ``[T; N]`` where ``T`` is the :t:`element type` and ``N`` +is :t:`size operand`, the :t:`alignment` is that of ``T``, and the :t:`size` is +calculated as ``core::mem::size_of::() * N``. + +:dp:`fls_veotnstzigw2` +For a :t:`slice type`, the :t:`layout` is that of the :t:`array type` it slices. + +:dp:`fls_nmoqk7jo1kzf` +For a :t:`tuple type`, the :t:`layout` is tool-defined. For a :t:`unit tuple`, +the :t:`size` is zero and the :t:`alignment` is one. + +:dp:`fls_gd7wozpn2ecp` +For a :t:`closure type`, the :t:`layout` is tool-defined. + +:dp:`fls_18ke90udyp67` +For a :t:`thin pointer`, the :t:`size` and :t:`alignment` are those of :t:`type` +:c:`usize`. + +:dp:`fls_nrqG8i3fmpm4` +For a :t:`function pointer type`, the :t:`size` and :t:`alignment` are those of +a :c:`thin pointer`. + +:dp:`fls_e5hivr6m5s3h` +For a :t:`fat pointer`, the :t:`size` and :t:`alignment` are tool-defined, but +are at least those of a :t:`thin pointer`. + +:dp:`fls_hlbsjggfxnt2` +For a :t:`trait object type`, the :t:`layout` is the same as the :t:`value` +being coerced into the :t:`trait object type` at runtime. + +:dp:`fls_sdrb0k2r18my` +For a :t:`struct type`, the memory layout is undefined, unless the +:t:`struct type` is subject to :t:`attribute` :c:`repr`. + +:dp:`fls_gt3tkbn4bsa6` +For a :t:`union type`, the memory layout is undefined, unless the +:t:`union type` is subject to :t:`attribute` :c:`repr`. All :t:`[union field]s` +share a common storage. + +:dp:`fls_njvdevz0xqc0` +The :t:`size` of a :t:`recursive type` shall be finite. + +.. _fls_ohhsmifo0urd: + +Type Representation +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_mpqlyi3lgrfv` +:t:`Type representation` specifies the :t:`layout` of :t:`[field]s` of +:t:`[abstract data type]s`. :t:`Type representation` changes the bit padding +between :t:`[field]s` of :t:`[abstract data type]s` as well as their order, but +does not change the :t:`layout` of the :t:`[field]s` themselves. + +:dp:`fls_9dhnanv21y9z` +:t:`Type representation` is classified into: + +* :dp:`fls_3dwtkr7vzha0` + :t:`C representation`, + +* :dp:`fls_q465p1xuzxi` + :t:`Default representation`, + +* :dp:`fls_hrsdn21jmgx2` + :t:`Primitive representation`, + +* :dp:`fls_ergdb18tpx25` + :t:`Transparent representation`. + +:dp:`fls_8s1vddh8vdhy` +:t:`C representation` lays out a :t:`type` such that the :t:`type` is +interoperable with the :t:`C` language. + +:dp:`fls_b005bktrkrxy` +:t:`Default representation` makes no guarantees about the :t:`layout`. + +:dp:`fls_7plbkqlmed0r` +:t:`Primitive representation` is the :t:`type representation` of individual +:t:`[integer type]s`. :t:`Primitive representation` applies only to an +:t:`enum type` that is not a :t:`zero-variant enum type`. It is possible to +combine :t:`C representation` and :t:`primitive representation`. + +:dp:`fls_ml4khttq3w5k` +:t:`Transparent representation` applies only to an :t:`enum type` with a +single :t:`enum variant` or a :t:`struct type` where the :t:`struct type` or +:t:`enum variant` has a single :t:`field` of non-zero :t:`size` and any number +of :t:`[field]s` of :t:`size` zero and :t:`alignment` one. + +:dp:`fls_9q2iqzbup8oy` +:t:`[Type]s` subject to :t:`transparent representation` have the same +:t:`type representation` as the :t:`type` of their :t:`field` with non-zero +:t:`size`. + +:dp:`fls_fsbf6ist38ix` +:t:`Type representation` may be specified using :t:`attribute` :c:`repr`. An +:t:`enum type`, a :t:`struct type`, or a :t:`union type` that is not subject to +:t:`attribute` :c:`repr` has :t:`default representation`. + +:dp:`fls_qkkc8x2oghst` +:t:`Type representation` may be specified using :t:`attribute` :c:`[repr]` and +modified further using :t:`attribute` :c:`[repr]`'s :s:`Alignment` +:t:`[representation modifier]s`. A :t:`representation modifier` shall apply only +to a :t:`struct type` or a :t:`union type` subject to :t:`C representation` or +:t:`default representation`. + +.. _fls_xc1hof4qbf6p: + +Enum Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_p0c62ejo1u1t` +:t:`[Zero-variant enum type]s` shall not be subject to :t:`C representation`. + +:dp:`fls_efp1kfgkpba8` +The :t:`size` and :t:`alignment` of an :t:`enum type` without :t:`[field]s` +subject to :t:`C representation`, :t:`default representation`, or +:t:`primitive representation` are those of its :t:`discriminant`. + +:dp:`fls_s9c0a0lg6c0p` +The :t:`discriminant type` of an :t:`enum type` with :t:`C representation` is +the corresponding :t:`c signed int type` for the target platform's :t:`C` +:t:`ABI`. + +:dp:`fls_slhvf3gmqz4h` +The :t:`discriminant type` of an :t:`enum type` with :t:`default representation` +is tool-defined. + +:dp:`fls_u1zy06510m56` +The :t:`discriminant type` of an :t:`enum type` with +:t:`primitive representation` is the :t:`integer type` specified by the +:t:`primitive representation`. + +:dp:`fls_ryvqkcx48u74` +It is a static error if the :t:`discriminant type` cannot hold all the +:t:`discriminant` :t:`[value]s` of an :t:`enum type`. + +:dp:`fls_zhle0rb0vhpc` +An :t:`enum type` subject to :t:`transparent representation` shall have a single +:t:`enum variant` with + +* :dp:`fls_45f57s1gmmh5` + a single :t:`field` of non-zero :t:`size`, or + +* :dp:`fls_hz012yus6b4g` + any number of :t:`[field]s` of zero :t:`size` and :t:`alignment` one. + +:dp:`fls_q5akku2idrwh` +An :t:`enum type` subject to :t:`C representation` or :t:`primitive +representation` has the same :t:`type representation` as a :t:`union type` with +:t:`C representation` that is laid out as follows: + +* :dp:`fls_r6o1wv76yw6m` + Each :t:`enum variant` corresponds to a :t:`struct` whose :t:`struct type` is + subject to :t:`C representation` and laid out as follows: + + * :dp:`fls_3k1tcfxp0g63` + The :t:`type` of the first :t:`field` of the :t:`struct type` is the + :t:`discriminant type` of the :t:`enum type`. + + * :dp:`fls_ebs77rxvk9st` + The remaining :t:`[field]s` of the :t:`struct type` are the :t:`[field]s` of + the :t:`enum variant`, in the same declarative order. + +:dp:`fls_k907i6w83s2` +An :t:`enum type` subject to :t:`transparent representation` has the same +:t:`type representation` as the single :t:`field` of non-zero :t:`size` of its +:t:`enum variant` if one is present, otherwise the :t:`enum type` has :t:`size` +zero and :t:`alignment` one. + +.. _fls_rjxpof29a3nl: + +Struct Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_jr9dykj6rydn` +The :t:`alignment` of a :t:`struct type` subject to :t:`C representation` is +the :t:`alignment` of the most-aligned :t:`field` in it. + +:dp:`fls_6ck71twmnbg5` +The :t:`size` of a :t:`struct type` subject to :t:`C representation` is +determined as follows: + +#. :dp:`fls_hydq3pvm00bn` + Initialize a current offset to zero. + +#. :dp:`fls_yzcdffahxcz` + For each :t:`field` of the :t:`struct type` in declarative order: + + #. :dp:`fls_t2yqmphfd6he` + Calculate the :t:`size` and :t:`alignment` of the :t:`field`. + + #. :dp:`fls_fa5nkvu07jlp` + If the current offset is not a multiple of the :t:`[field]'s` + :t:`alignment`, add byte padding to the current offset until it is a + multiple of the :t:`alignment`. The offset of the :t:`field` is the + current offset. + + #. :dp:`fls_x2pkmgbp63xx` + Increase the current offset by the :t:`size` of the :t:`field`. + + #. :dp:`fls_y6dwc1ndm395` + Proceed with the next :t:`field`. + +#. :dp:`fls_2npku94ookdn` + Round up the current offset to the nearest multiple of the :t:`[struct + type]'s` :t:`alignment`. + +#. :dp:`fls_h7nvs25rsi0y` + The :t:`size` of the :t:`struct type` is the current offset. + +:dp:`fls_iu93vpyihrpj` +A :t:`struct type` subject to :t:`transparent representation` shall have: + +* :dp:`fls_7sjkej5otxo` + A single :t:`field` of non-zero :t:`size`, or + +* :dp:`fls_gwhceoy0m3or` + Any number of :t:`[field]s` of :t:`size` zero and :t:`alignment` one. + +:dp:`fls_hvkalvr4e2v0` +A :t:`struct type` subject to :t:`transparent representation` has the same +:t:`type representation` as the single :t:`field` of non-zero :t:`size` if one +is present, otherwise the :t:`struct type` has :t:`size` zero and :t:`alignment` +one. + +.. _fls_cmq8ogs84ivh: + +Union Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_opz1p1neldsg` +The :t:`size` of a :t:`union type` subject to :t:`C representation` is +the maximum of the :t:`[size]s` of all its :t:`[field]s`, rounded up to +:t:`alignment` of the :t:`union type`. + +:dp:`fls_y5qtvbx5m90g` +The :t:`alignment` of a :t:`union type` subject to :t:`C representation` is the +maximum of the :t:`[alignment]s` of all of its :t:`[field]s`. + +.. _fls_j02707n615z0: + +Type Model +---------- + +.. _fls_3gapgqys3ceb: + +Recursive Types +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_z22std1crl49` +A :t:`recursive type` is a :t:`type` whose contained :t:`[type]s` refer back to +the containing :t:`type`, either directly or by referring to another :t:`type` +which refers back to the original :t:`recursive type`. + +:dp:`fls_eddnwlr0rz59` +A :t:`type` that is not an :t:`abstract data type` shall not be recursive. + +.. rubric:: Examples + +.. code-block:: rust + + enum List { + Nil, + Cons(T, Box>) + } + +.. _fls_exe4zodlwfez: + +Type Unification +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ryvdhkgm7vzj` +:t:`Type unification` is the process by which :t:`type inference` propagates +known :t:`[type]s` across the :t:`type inference root` and assigns concrete +:t:`[type]s` to :t:`[type variable]s`, as well as a general mechanism to check +for compatibility between two :t:`[type]s` during :t:`method resolution`. + +:dp:`fls_67VZrx6dw68H` +A :t:`type` is said to :t:`unify` with another :t:`type` when the domains, +ranges, and structures of both :t:`[type]s` are compatible according to the +rules detailed below. + +:dp:`fls_aie0tr62vhw5` +Two types that :t:`unify` are said to be :t:`[unifiable type]s`. + +:dp:`fls_3U7Ue6Xzuv9M` +:t:`Type unification` is a symmetric operation. If :t:`type` ``A`` unifies +with :t:`type` ``B``, then ``B`` also unifies with ``A`` and such +:t:`type unification` results in the same observable effects. + +:dp:`fls_tIiw5WkTRNf7` +If one of the two :t:`[type]s` is a :t:`type variable`, :t:`type unification` +proceeds as follows: + +#. :dp:`fls_EoEbldkKBQW0` + If either :t:`type` is a :t:`global type variable`, the + :t:`global type variable` is assigned the :t:`type` of the other unification + operand. + +#. :dp:`fls_16ZDp8PaKi5P` + Otherwise, if either :t:`type` is a :t:`diverging type variable`, the + :t:`diverging type variable` is assigned the :t:`type` of the other + unification operand. + +#. :dp:`fls_pGRLTACDvzv2` + Otherwise, if one :t:`type` ``T`` is an :t:`integer type variable`, behavior + depends on the other :t:`type` ``U``: + + #. :dp:`fls_fTy3FVt0fK9g` + If ``U`` is an :t:`integer type` or an :t:`integer type variable`, the + :t:`integer type variable` ``T`` is assigned :t:`type` ``U``. + + #. :dp:`fls_7IsrfUoPXSZU` + Otherwise, :t:`type unification` fails. + +#. :dp:`fls_Hb95CPyUpCmc` + Otherwise, if one :t:`type` ``T`` is an :t:`floating-point type variable`, + behavior depends on the other :t:`type` ``U``: + + #. :dp:`fls_jEZVWlfVPevb` + If ``U`` is an :t:`floating-point type` or an + :t:`floating-point type variable`, the :t:`floating-point type variable` + ``T`` is assigned :t:`type` ``U``. + + #. :dp:`fls_nKcqFo7yIDBe` + Otherwise, :t:`type unification` fails. + +#. :dp:`fls_jkaiBnApJAtt` + Otherwise, neither :t:`type` is a :t:`type variable`, and the rules below + are in effect. + +:dp:`fls_dhksyjrvx9a` +A :t:`scalar type` is unifiable only with itself. + +:dp:`fls_hf0cfkrmt655` +The :t:`never type` is unifiable with any other :t:`type`. + +:dp:`fls_k9dag68qpe93` +An :t:`array type` is unifiable only with another :t:`array type` when + +* :dp:`fls_m6d9qj9q9u1i` + The :t:`[element type]s` of both :t:`[array type]s` are unifiable, and + +* :dp:`fls_gg3x25qvymmq` + The sizes of both :t:`[array type]s` are the same. + +:dp:`fls_ni296ev8x9v9` +A :t:`slice type` is unifiable only with another :t:`slice type` when the +:t:`[element type]s` of both :t:`[slice type]s` are unifiable. + +:dp:`fls_i1m41c4wkfc0` +:t:`Type` :c:`str` is unifiable only with itself. + +:dp:`fls_mpq64eal9jo3` +A :t:`tuple type` is unifiable only with another :t:`tuple type` when: + +* :dp:`fls_kcr8npsmy0e5` + The :t:`arity` of both :t:`[tuple type]s` is the same, and + +* :dp:`fls_kq3lv1zbangz` + The :t:`[type]s` of the corresponding :t:`[tuple field]s` are unifiable. + +:dp:`fls_so2cgqmawlm7` +An :t:`abstract data type` is unifiable only with another +:t:`abstract data type` when: + +* :dp:`fls_vsax8w6y794m` + The two :t:`[abstract data type]s` are the same :t:`type`, and + +* :dp:`fls_1j1wc3uxs7h6` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_9dpea9ty0c2l` +A :t:`closure type` is unifiable only with another :t:`closure type` when: + +* :dp:`fls_42oj1ekjihq1` + The two :t:`[closure type]s` are the same closure, and + +* :dp:`fls_gebpqqqvvklf` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_i221hm7rssik` +A :t:`function item type` is unifiable only with another :t:`function item type` +when: + +* :dp:`fls_74cug5zfv2wv` + The two :t:`[function item type]s` are the same function, and + +* :dp:`fls_keezxl8v4snf` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_wz2etmkpvxed` +A :t:`function pointer type` is unifiable only with another +:t:`function pointer type` when: + +* :dp:`fls_rmqcbb5ja4va` + The :t:`[lifetime]s` are :t:`variance`-conformant, and + +* :dp:`fls_uu8je75y5pss` + The :t:`unsafety` is the same, and + +* :dp:`fls_oksjiq3nmq2k` + The :t:`ABI` is the same, and + +* :dp:`fls_52ymp79ert2` + The number of :t:`[function parameter]s` is the same, and + +* :dp:`fls_g2u1dfhphrrg` + The :t:`[type]s` of the corresponding :t:`[function parameter]s` are + unifiable, and + +* :dp:`fls_2xgq66qp3h95` + The presence of a :t:`variadic part` is the same, and + +* :dp:`fls_5dh8c5gg0hmk` + The :t:`[return type]s` are unifiable. + +:dp:`fls_ismr7wwvek4q` +A :t:`raw pointer type` is unifiable only with another :t:`raw pointer type` +when: + +* :dp:`fls_x9933rjecrna` + The :t:`mutability` is the same, and + +* :dp:`fls_mizmcykgdisb` + The :t:`[target type]s` are unifiable. + +:dp:`fls_paoh0wttde2z` +A :t:`reference type` is unifiable only with another :t:`reference type` when: + +* :dp:`fls_akko4dmp4nkw` + The :t:`mutability` is the same, and + +* :dp:`fls_8gldjjxbyyb4` + The :t:`[target type]s` are unifiable. + +:dp:`fls_8jad1ztcuxha` +An :t:`anonymous return type` is unifiable with another :t:`type` when: + +* :dp:`fls_j3w9ap9zaqud` + The :t:`[lifetime]s` are :t:`variance`-conformant, and + +* :dp:`fls_yvllot5qnc4s` + The other :t:`type` implements all :t:`[trait]s` specified by the + :t:`anonymous return type`. + +:dp:`fls_hza5n5eb18ta` +An :t:`impl trait type` is unifiable only with itself. + +:dp:`fls_ww16urcjrj6i` +A :t:`trait object type` is unifiable only with another :t:`trait object type` +when: + +* :dp:`fls_bnp6or49voxp` + The :t:`[bound]s` are unifiable, and + +* :dp:`fls_hdo4c849q3lo` + The :t:`[lifetime]s` are unifiable. + +:dp:`fls_w9dx5h7m31sj` +A :t:`type alias` is unifiable with another :t:`type` when the aliased :t:`type` +is unifiable with the other :t:`type`. + +.. _fls_dw33yt5g6m0k: + +Type Coercion +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_w5pjcj9qmgbv` +:t:`Type coercion` is an implicit operation that changes the :t:`type` of a +:t:`value`. Any implicit conversion allowed by :t:`type coercion` can be made +explicit using a :t:`type cast expression`. + +:dp:`fls_5v0n2a32bk95` +A :t:`type coercion` takes place at a :t:`coercion site` or within a +:t:`coercion-propagating expression`. + +:dp:`fls_j3kbaf43sgpj` +The following :t:`[construct]s` constitute a :dt:`coercion site`: + +* :dp:`fls_wxrugvlazy6v` + The :t:`[argument operand]s` of a :t:`call expression` or a + :t:`method call expression`. + +* :dp:`fls_bhzmble1itog` + A :t:`constant` declaration. + +* :dp:`fls_eu4bt3dw1b8c` + A :t:`field` of an :t:`abstract data type`. + +* :dp:`fls_apstt4elv2k7` + A :t:`function` result. + +* :dp:`fls_sp794uzfiofr` + A :t:`let statement` with an explicit :t:`type specification`. + +* :dp:`fls_xfqny6bwzsu9` + A :t:`static` declaration. + +:dp:`fls_u0e42y7nvn7e` +The following :t:`[expression]s` constitute a +:dt:`coercion-propagating expression`: + +* :dp:`fls_p8hp5y506nam` + Each :t:`operand` of an :t:`array expression`. + +* :dp:`fls_fjc9xev8rcu6` + The :t:`tail expression` of a :t:`block expression`. + +* :dp:`fls_n1kh3z8d4q8y` + The :t:`operand` of a :t:`parenthesized expression`. + +* :dp:`fls_dgoypa3hcxc0` + Each :t:`operand` of a :t:`tuple expression`. + +:dp:`fls_h8dkehit8rza` +:t:`Type coercion` from a source :t:`type` to a target :t:`type` is allowed to +occur when: + +* :dp:`fls_z00wtlna6grk` + The source :t:`type` is a :t:`subtype` of the target :t:`type`. + +* :dp:`fls_rfjdh79k0wou` + The source :t:`type` ``T`` coerces to intermediate :t:`type` ``W``, and + intermediate :t:`type` ``W`` coerces to target :t:`type` ``U``. + +* :dp:`fls_e3lgrtqb7jwe` + The source :t:`type` is ``&T`` and the target :t:`type` is ``*const T``. + +* :dp:`fls_fwy2z11c1sji` + The source :t:`type` is ``&T`` and the target :t:`type` is ``&U``, where ``T`` + implements the ``core::ops::Deref`` :t:`trait`. + +* :dp:`fls_aujb44849tq1` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&T``. + +* :dp:`fls_p3ym3ycrnd5m` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``*mut T``. + +* :dp:`fls_jmo42qgix5uw` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&U``, where + ``T`` implements the ``core::ops::Deref`` :t:`trait`. + +* :dp:`fls_tbt4236igdzb` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&mut U``, + where ``T`` implements the ``core::ops::DerefMut`` :t:`trait`. + +* :dp:`fls_7ri4jk2dydfn` + The source :t:`type` is ``*mut T`` and the target :t:`type` is ``*const T``. + +* :dp:`fls_6r3kn0nk5b8o` + The source :t:`type` is ``type_constructor(T)`` and the target :t:`type` is + ``type_constructor(U)``, where ``type_constructor`` is one of ``&W``, + ``&mut W``, ``*const W``, or ``*mut W``, and ``U`` can be obtained from ``T`` + using :t:`unsized coercion`. + +* :dp:`fls_ulcdetwp6x96` + The source :t:`type` is a :t:`function item type`, the target :t:`type` is + a :t:`function pointer type` and the source's :t:`function signature` is a :t:`subtype` of the target's :t:`function signature`. + +* :dp:`fls_2uv1r0gni1fk` + The source :t:`type` is a non-capturing :t:`closure type`, the target + :t:`type` is a :t:`function pointer type` and the source's :t:`function signature` is a :t:`subtype` of the target's :t:`function signature`. + +* :dp:`fls_sf0c3fbx8z57` + The source :t:`type` is the :t:`never type` and the target :t:`type` is any + :t:`type`. + +:dp:`fls_iiiu2q7pym4p` +An :t:`unsized coercion` is a :t:`type coercion` that converts a :t:`sized type` +into an :t:`unsized type`. :t:`Unsized coercion` from a source :t:`type` to a +target :t:`type` is allowed to occur when: + +* :dp:`fls_jte6n2js32af` + The source :t:`type` is :t:`array type` ``[T; N]`` and the target :t:`type` is + :t:`slice type` ``[T]``. + +* :dp:`fls_20pvqqayzqra` + The source :t:`type` is ``T`` and the target :t:`type` is ``dyn U``, where + ``T`` implements ``U + core::marker::Sized``, and ``U`` is :t:`object safe`. + +* :dp:`fls_j8rcy0xvd155` + The source type is + +.. code-block:: rust + + S<..., T, ...> { + ... + last_field: X + } + +:dp:`fls_wuka4uyo3oj7` +where + +* :dp:`fls_w15yo8yvuxq3` + ``S`` is a :t:`struct type`, + +* :dp:`fls_7aw3ifbvfgbd` + ``T`` implements ``core::marker::Unsize``, + +* :dp:`fls_cnkth59djwgl` + ``last_field`` is a :t:`struct field` of ``S``, + +* :dp:`fls_4wbk7pqj010i` + The :t:`type` of ``last_field`` involves ``T`` and if the :t:`type` of + ``last_field`` is ``W``, then ``W`` implements + ``core::marker::Unsize>``, + +* :dp:`fls_47u0039t0l8f` + ``T`` is not part of any other :t:`struct field` of ``S``. + +:dp:`fls_bmh6g3jju7eq` +and the target ``type`` is ``S<..., U, ...>``. + +:dp:`fls_da4w32rsrwxc` +:dt:`Least upper bound coercion` is a :t:`multi-[type coercion]` that is used in +the following scenarios: + +* :dp:`fls_zi5311z1w7re` + To find the common :t:`type` of multiple :t:`if expression` branches. + +* :dp:`fls_zst5pa29rpt` + To find the common :t:`type` of multiple :t:`if let expression` branches. + +* :dp:`fls_agw1aej616vf` + To find the common :t:`type` for multiple :t:`match expression` + :t:`[match arm]s`. + +* :dp:`fls_tnbga5dl4gz8` + To find the common :t:`type` of :t:`array expression` :t:`[operand]s`. + +* :dp:`fls_yoreux8tn65x` + To find the :t:`return type` of a :t:`closure expression` with multiple + :t:`[return expression]s`. + +* :dp:`fls_r11shke69uu6` + To find the :t:`return type` of a :t:`function` with multiple + :t:`[return expression]s`. + +:dp:`fls_ky7ykpufb95t` +:t:`Least upper bound coercion` considers a set of source :t:`[type]s` ``T1``, +``T2``, ``...``, ``TN`` and target :t:`type` ``U``. The target :t:`type` is +obtained as follows: + +#. :dp:`fls_8kvme0u4u8r6` + Initialize target :t:`type` ``U`` to source :t:`type` ``T1``. + +#. :dp:`fls_rl9yrdfwnu03` + For each current source :t:`type` ``TC`` in the inclusive range ``T1`` to + ``TN`` + + #. :dp:`fls_iqtmhn8flws7` + If ``TC`` can be coerced to ``U``, then continue with the next source + :t:`type`. + + #. :dp:`fls_sr8d5har4s03` + Otherwise, if ``U`` can be coerced to ``TC``, make ``TC`` the target + :t:`type` ``U``. + + #. :dp:`fls_92pwnd1xbp5r` + Otherwise, if ``TC`` and ``U`` are non-capturing :t:`[closure type]s`, + :t:`[function item type]s`, :t:`[function pointer type]s`, or a + combination of those :t:`[type]s`, and a :t:`function pointer type` exists + that both ``TC`` and ``U`` can coerce to, make that + :t:`function pointer type` be target :t:`type` ``U``. + + #. :dp:`fls_bWHQIL4DSN4S` + Otherwise, no coercion is performed. + + #. :dp:`fls_ju4ypa5ysga0` + Continue with the next source :t:`type`. + + +.. _fls_wsfw8xF3vniL: + +Structural Equality +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_uVTpA7gbLCYX` +A :t:`type` is :t:`structurally equal` when its :t:`[value]s` can be compared +for equality by structure. + +:dp:`fls_2DZAP6JJjJ9h` +The following :t:`[type]s` are :t:`structurally equal`: + +* :dp:`fls_emcNJzl2tHSA` + :c:`Bool`, :c:`char`, :t:`[function pointer type]s`, :t:`[integer type]s`, + :c:`str`, and :t:`[raw pointer type]s`. + +* :dp:`fls_HpWSAfaTA1Dz` + An :t:`abstract data type`, if it implements the + :std:`core::cmp::Eq` and :std:`core::cmp::PartialEq` :t:`[trait]s` using + :t:`[derive macro]s` :std:`core::cmp::Eq` and :std:`core::cmp::PartialEq`. + +* :dp:`fls_5RcnETrW6f9m` + :t:`[Array type]s` and :t:`[slice type]s`, if the :t:`[element type]` is + :t:`structurally equal`. + +* :dp:`fls_jMeWhn4sNTPF` + :t:`[Reference type]s`, if their inner :t:`type` is :t:`structurally equal`. + +* :dp:`fls_hBFlaUrrhqZ6` + :t:`[Tuple type]s`, if the :t:`[type]s` of the :t:`[tuple field]s` are + :t:`structurally equal`. + +.. _fls_omaq7psg83n3: + +Interior Mutability +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_khy2e23i9o7z` +:t:`Interior mutability` is a property of :t:`[type]s` whose :t:`[value]s` can +be modified through :t:`[immutable reference]s`. + +:dp:`fls_sWiU26n2xS3r` +A :t:`type` is subject to :t:`interior mutability` when it contains a +:std:`core::cell::UnsafeCell`. + +.. _fls_lv7w7aalpwm5: + +Type Inference +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_h8sedxew0d4u` +:t:`Type inference` is the process of automatically determining the :t:`type` of +:t:`[expression]s` and :t:`[pattern]s` within a :t:`type inference root`. + +:dp:`fls_ybvrhh96fc7y` +A :t:`type inference root` is an :t:`expression` whose inner :t:`[expression]s` +and :t:`[pattern]s` are subject to :t:`type inference` independently of those +found in other :t:`[type inference root]s`. + +:dp:`fls_EWBilpepaDcX` +The following :t:`[expression]s` are considered :t:`[type inference root]s`: + +* :dp:`fls_NYSzcvf5nQpi` + A :t:`constant argument`. + +* :dp:`fls_htLp5J5ObgNh` + The :t:`expression` of a :t:`constant initializer`. + +* :dp:`fls_cPlCLGCcl7EK` + The :t:`expression` of a :t:`static initializer`. + +* :dp:`fls_KphY5qHev0Dc` + The :t:`expression` of a :t:`discriminant initializer`. + +* :dp:`fls_67Bf5kR5OtYW` + The :t:`expression` of a :t:`constant parameter initializer`. + +* :dp:`fls_sAS3vQpkjksr` + The :t:`expression` of a :t:`constant argument`. + +* :dp:`fls_Sowatt1V988J` + A :t:`function body`. + +* :dp:`fls_A1NVYkepoaMk` + The :t:`size operand` of an :t:`array expression` or an :t:`array type`. + +:dp:`fls_J77VeAlD8rsv` +A :t:`type inference root` imposes an :dt:`expected type` on its :t:`expression` +depending on the :t:`type inference root` as follows: + +* :dp:`fls_P9uiamxA4HE3` + The :t:`expected type` of a :t:`constant argument` is the :t:`type ascription` + of the :t:`constant parameter`. + +* :dp:`fls_5d4hw3gj4w4n` + The :t:`expected type` of the :t:`expression` of a :t:`constant initializer` + is the :t:`type` specified by the :t:`type ascription` of the related + :t:`constant`. + +* :dp:`fls_qlovdtcj1v1b` + The :t:`expected type` of the :t:`expression` of a :t:`static initializer` is + the :t:`type` specified by the :t:`type ascription` of the related + :t:`static`. + +* :dp:`fls_Z5gKFjZW5rRA` + The :t:`expected type` of the :t:`expression` of a + :t:`discriminant initializer` is determined as follows: + + * :dp:`fls_vYvumjTQH9Xg` + If the :t:`enum type` that contains the :t:`discriminant` is subject to + :t:`attribute` :c:`repr` that specifies a :t:`primitive representation`, the + :t:`expected type` is the specified :t:`integer type`. + + * :dp:`fls_QaGKt99CmvF6` + Otherwise, the :t:`expected type` is :c:`isize`. + +* :dp:`fls_RJIeW597XRvS` + The :t:`expected type` of a :t:`function body` is the :t:`return type` of the + :t:`function`. + +* :dp:`fls_veG2D64fIXvo` + The :t:`expected type` of a :t:`size operand` of an :t:`array expression` or + an :t:`array type` is :c:`usize`. + +:dp:`fls_uvvn4usfsbhr` +A :t:`type variable` is a placeholder used during :t:`type inference` to stand +in for an undetermined :t:`type` of an :t:`expression` or a :t:`pattern`. + +:dp:`fls_gDalJm1XS0mi` +A :t:`global type variable` is a :t:`type variable` that can refer to any +:t:`type`. + +:dp:`fls_7ov36fpd9mwe` +An :t:`integer type variable` is a :t:`type variable` that can refer only to +:t:`[integer type]s`. + +:dp:`fls_3hv3wxkhjjp1` +A :t:`floating-point type variable` is a :t:`type variable` that can refer only +to :t:`[floating-point type]s`. + +:dp:`fls_bXQ63GYYDuMp` +A :t:`diverging type variable` is a :t:`type variable` that can refer to any +:t:`type` and originates from a :t:`diverging expression`. + +:dp:`fls_JryXiKBIFvF3` +A :dt:`lifetime variable` is a placeholder used during :t:`type inference` to +stand in for an undetermined :t:`lifetime` of a :t:`type`. + +:dp:`fls_rvj3XspFZ1u3` +The :t:`type inference` algorithm uses :t:`type unification` to propagate known +:t:`[type]s` of :t:`[expression]s` and :t:`[pattern]s` across the +:t:`type inference root` being inferred. In the rules detailed below, a static +error occurs when :t:`type unification` fails. + +:dp:`fls_6GrNr2izovRN` +Performing :t:`type inference` may introduce a requirement that some :t:`type` +must implement a :t:`trait`, or that a :t:`type` or :t:`lifetime` must outlive +some other :t:`lifetime`. Such requirements are referred to as +:dt:`[obligation]s` and are detailed in the inference rules below. + +:dp:`fls_9dSltJ6U98Fo` +If insufficient :t:`type` information is available at the time an +:t:`obligation` is introduced, it may be deferred to be resolved later. +Any time new :t:`type` information is derived during :t:`type inference`, the +tool attempts to resolve all outstanding :t:`[obligation]s` and propagate +any resulting :t:`type` information via :t:`type unification`. + +:dp:`fls_v5dWGuBKvQSJ` +When an :t:`associated type` ``::Assoc`` is referenced within a +:t:`type inference root` (either explicitly within the source code, or via the +inferece rules below), an :t:`obligation` requiring that ``Type`` implements +``Trait`` is introduced. + +:dp:`fls_SZgixDCAx6PQ` +:t:`Type inference` for a :t:`type inference root` proceeds as follows: + +#. :dp:`fls_XYY1U9h9HlAa` + Recursively process all :t:`[expression]s` and :t:`[statement]s` in the + :t:`type inference root` in program order. + + #. :dp:`fls_1rnssw39aRWn` + For each :t:`statement`, apply the :t:`statement` inference rules outlined below. + + #. :dp:`fls_aYJaZXcOVVyk` + For each :t:`expression`, apply the :t:`expression` inference rules outlined below. + +#. :dp:`fls_X8kLC7JwiF0A` + If there are any remaining :t:`[integer type variable]s` that have not been + unified with a concrete :t:`integer type`, perform integer type fallback by + unifying them with :c:`i32`. + +#. :dp:`fls_ZFQhOxO3jpby` + If there are any remaining :t:`[floating-point type variable]s` that have not + been unified with a concrete :t:`floating-point type`, perform floating-point + type fallback by unifying them with :c:`f64`. + +#. :dp:`fls_l1G52a0qqEes` + If there are any remaining :t:`[diverging type variable]s` that have not been + unified with a concrete :t:`type`, unify them with the :t:`unit type`. + +#. :dp:`fls_Tx4Sx4Qy8y2d` + If there are any remaining :t:`[global type variable]s` that have not been + unified with a concrete :t:`type`, raise a static error. + +#. :dp:`fls_Nbdth8N0PSRq` + If there are any remaining :t:`[obligation]s` that do not hold or cannot be + resolved with the available :t:`type` information, raise a static error. + +:dp:`fls_hISRWZUuqE4Q` +The :t:`type inference` rules for :t:`[statement]s` are as follows: + +* :dp:`fls_ygi1ACJ0RkfS` + :t:`[Item statement]s` are not subject to :t:`type inference`. + +* :dp:`fls_97Fxlv2KN6QF` + :t:`[Expression statement]s` apply the :t:`expression` inference rules outlined below + to the related :t:`expression`, with the :t:`expected type` set to the + :t:`unit type` if the :t:`expression statement` lacks the character 0x3B + (semicolon), unset otherwise. + +* :dp:`fls_hzXqj6YT1mFr` + :t:`[Let statement]s` are inferred as follows: + + #. :dp:`fls_Kv0dzoMODtdy` + If the :t:`let statement` has a :t:`type ascription`, :t:`unify` that + :t:`type` with the :t:`type` of the :t:`pattern`. + + #. :dp:`fls_5v6TR7oqOwFM` + If the :t:`let statement` has a :t:`let initializer`, apply the + :t:`expression` inference rules outlined below to the contained :t:`expression`, + with the :t:`expected type` set to the type of the :t:`pattern`. + + #. :dp:`fls_Gwx0Kfx68DXL` + If the :t:`let statement` has a :t:`let initializer` with a + :t:`block expression`, apply the :t:`expression` inference rules outlined below to + the contained :t:`block expression`, with the :t:`expected type` set to + the :t:`never type`. + +:dp:`fls_J6ydUCCJp1Sn` +:t:`Type inference` of :t:`[expression]s` may incorporate an :t:`expected type`, +derived from the context the :t:`expression` appears in. If the :t:`expression` +is a :t:`coercion site` or a :t:`coercion-propagating expression`, the :t:`type` +derived via :t:`type inference` may be coerced to the :t:`expected type`. If no +:t:`type coercion` to the :t:`expected type` is possible, or the :t:`expression` +is not a :t:`coercion site` or a :t:`coercion-propagating expression`, the +inferred :t:`expression` :t:`type` is unified with the :t:`expected type`. + +:dp:`fls_FSQqHs8T4bUx` +The :t:`type inference` rules for :t:`[expression]s` are as follows: + +* :dp:`fls_0HHC1iOk5dwz` + An :t:`if expression` is inferred by inferring its :t:`subject expression` + with an :t:`expected type` of :c:`bool`, then inferring its + :t:`block expression` with the :t:`expected type` of the :t:`if expression`. + Then, if the :t:`if expression` has an :t:`else expression`, apply the + inference rules below to it. + +* :dp:`fls_QZWTS0Giy3I3` + An :t:`if let expression` is inferred by inferring its + :t:`subject let expression` with the :t:`expected type` set to the :t:`type` + of its :t:`pattern`, then inferring its :t:`block expression` with the + :t:`expected type` of the :t:`if-let expression`. If the + :t:`if let expression` has an :t:`else expression`, apply the inference rules + below to it. + +* :dp:`fls_KJsIu1lgVZxP` + An :t:`else expression` that is part of an :t:`if expression` or + :t:`if let expression` is inferred as follows: + + * :dp:`fls_KRQxdSav1KBA` + If the :t:`else expression` has a :t:`block expression`, infer the + :t:`block expression` with the :t:`expected type` of the :t:`if expression` + or :t:`if let expression`. + + * :dp:`fls_Mcpwyvz47SoG` + If the :t:`else expression` has an :t:`if expression`, infer that nested + :t:`if expression` with the :t:`expected type` of the original + :t:`if expression`, then :t:`unify` its :t:`type` with the :t:`type` of + the original :t:`if expression` or :t:`if let expression`. + + * :dp:`fls_34AQ9g7xhdUj` + Otherwise, the :t:`else expression` has an :t:`if let expression`. Infer + that nested :t:`if let expression` with the :t:`expected type` of the + original :t:`if expression`, then :t:`unify` its :t:`type` with the + :t:`type` of the original :t:`if expression` or :t:`if let expression`. + +* :dp:`fls_4ZT35povCL04` + A :t:`match expression` is inferred as follows: + + #. :dp:`fls_62OcWZaVN9hh` + :t:`Unify` the :t:`[type]s` of the :t:`[pattern]s` of every :t:`match arm`, + then infer the :t:`subject expression` with the :t:`expected type` set to + the :t:`type` of the :t:`[pattern]s`. + + #. :dp:`fls_st9onPgDrc8y` + Infer the :t:`[operand]s` of all :t:`[match arm guard]s` with + :t:`expected type` :c:`bool`. + + #. :dp:`fls_F999gqcBfff9` + Infer the :t:`match arm body` of every :t:`match arm` with the + :t:`expected type` of the :t:`match expression`. + +* :dp:`fls_Esa4ST7lLp8T` + A :t:`for loop expression` is inferred by unifying the :t:`type` of its + :t:`pattern` with the :t:`type` ``::Item``, + where ``T`` is the :t:`type` of the :t:`subject expression`, and then + inferring its :t:`loop body`. + +* :dp:`fls_9GDElCkL1UbH` + A :t:`while let loop expression` is inferred by unifying the :t:`type` of its + :t:`subject let expression` with the :t:`type` of its :t:`pattern`, and then + inferring its :t:`loop body`. + +* :dp:`fls_0eATa6RtDNtA` + An :t:`array expression` using an :t:`array element constructor` is inferred + by attempting a :t:`least upper bound coercion` from each element :t:`type` to + the :t:`expected type`. If no such :t:`type coercion` is possible, all element + :t:`[type]s` are unified instead. + +* :dp:`fls_q1JZZMxqWXCk` + A :t:`negation expression` is inferred as follows: + + #. :dp:`fls_hH58ftCxBYzm` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_aiSI99pbAYqT` + - **Operator** + - **Trait** + * - :dp:`fls_zRdxowO4eDMN` + - ``!`` + - :std:`core::ops::Not` + * - :dp:`fls_IoceMi7HfqsK` + - ``-`` + - :std:`core::ops::Neg` + + #. :dp:`fls_lDkPMB5UI58B` + Infer the :t:`type` of the :t:`expression` to be the :t:`associated type` + ``::Output``, where ``T`` is the :t:`type` of the + :t:`operand`, and ``Trait`` is the operator :t:`trait` determined from + the table above. + +* :dp:`fls_JKZHF3ZDHshw` + A :t:`bit expression` or :t:`arithmetic expression` is inferred as follows: + + #. :dp:`fls_rT6zpG3cYhaF` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_UFMyHzk6ucsT` + - **Operator** + - **Trait** + * - :dp:`fls_hPZmcfQiNasT` + - ``+`` + - :std:`core::ops::Add` + * - :dp:`fls_rgC3Iea5p9Kr` + - ``-`` + - :std:`core::ops::Sub` + * - :dp:`fls_5jDBPymVKzDv` + - ``*`` + - :std:`core::ops::Mul` + * - :dp:`fls_f21GNntBOxaz` + - ``/`` + - :std:`core::ops::Div` + * - :dp:`fls_NpwLzJJH9cGw` + - ``%`` + - :std:`core::ops::Mod` + * - :dp:`fls_56J8BlLOuvr4` + - ``&`` + - :std:`core::ops::BitAnd` + * - :dp:`fls_jK2pIVxOmtJ8` + - ``|`` + - :std:`core::ops::BitOr` + * - :dp:`fls_fjV22WcosNnt` + - ``^`` + - :std:`core::ops::BitXor` + * - :dp:`fls_h3OVuCdsKPhV` + - ``<<`` + - :std:`core::ops::Shl` + * - :dp:`fls_be2djziKJw3I` + - ``>>`` + - :std:`core::ops::Shr` + + #. :dp:`fls_nHt0LVSiwTB3` + If the :t:`expression` is a :t:`shift left expression` or a + :t:`shift right expression`, and the :t:`expected type` is an + :t:`integer type`, :t:`unify` the :t:`type` of the :t:`left operand` with + the :t:`expected type`. + + #. :dp:`fls_sLCBZ3vG1AWs` + If the :t:`expression` is neither a :t:`shift left expression` nor a + :t:`shift right expression`, and the :t:`expected type` is a + :t:`numeric type`, :t:`unify` the :t:`[type]s` of both :t:`[operand]s` with + the :t:`expected type`. + + #. :dp:`fls_mCISAdm7sjRs` + Infer the :t:`type` of the :t:`expression` to be the :t:`associated type` + ``>::Output``, where ``L`` is the :t:`type` of the + :t:`left operand`, ``Trait`` is the operator :t:`trait` determined from + the table above, and ``R`` is the :t:`type` of the :t:`right operand`. + +* :dp:`fls_Fv8fj9R8prUV` + A :t:`compound assignment expression` is inferred as follows: + + #. :dp:`fls_QDWVv2nTufX7` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_O2r51Xrmmj38` + - **Operator** + - **Trait** + * - :dp:`fls_b96Zca6oFn82` + - ``+=`` + - :std:`core::ops::AddAssign` + * - :dp:`fls_07AIc06bGnZt` + - ``-=`` + - :std:`core::ops::SubAssign` + * - :dp:`fls_A36NBOl1FTCb` + - ``*=`` + - :std:`core::ops::MulAssign` + * - :dp:`fls_h3mmmIBR72kV` + - ``/=`` + - :std:`core::ops::DivAssign` + * - :dp:`fls_8edzBBIo7jF7` + - ``%=`` + - :std:`core::ops::ModAssign` + * - :dp:`fls_lUg26vFuSePP` + - ``&=`` + - :std:`core::ops::BitAndAssign` + * - :dp:`fls_21ay7EUUUmhx` + - ``|=`` + - :std:`core::ops::BitOrAssign` + * - :dp:`fls_8VgAhOgDOk0y` + - ``^=`` + - :std:`core::ops::BitXorAssign` + * - :dp:`fls_OVVY9CE0pGtJ` + - ``<<=`` + - :std:`core::ops::ShlAssign` + * - :dp:`fls_FojOvB6l3lAh` + - ``>>=`` + - :std:`core::ops::ShrAssign` + + #. :dp:`fls_CVfHkJq1PixR` + Introduce an :t:`obligation` ``L: $Trait``, where ``L`` is the + :t:`type` of the :t:`assigned operand`, ``Trait`` is the operator + :t:`trait` determined from the table above, and ``R`` is the :t:`type` of + the :t:`modifying operand`. + + #. :dp:`fls_0RZ7w0YqmzE3` + The :t:`type` of the :t:`expression` is the :t:`unit type`. + +* :dp:`fls_YppNCEPMYqWJ` + A :t:`comparison expression` is inferred by introducing an :t:`obligation` + ``L: PartialEq``, where ``L`` is the :t:`type` of the :t:`left operand`, + and ``R`` is the :t:`type` of the :t:`right operand`. The :t:`type` of the + :t:`expression` is :c:`bool`. + +* :dp:`fls_SZmiJjI43fQL` + An :t:`assignment expression` is inferred by unifying the :t:`type` of its + :t:`assignee operand` with the :t:`type` of its :t:`value operand`. + +* :dp:`fls_ipWTrhF4xakC` + A :t:`closure expression` is inferred by deducing its signature from the + surrounding context, unifying the deduced :t:`closure parameter` :t:`[type]s` + and return :t:`type` with the user-written :t:`closure parameter` + :t:`[pattern]s` and :t:`[type ascription]s` and return :t:`type`, and then + inferring the :t:`closure body` with the :t:`expected type` set to the + closure's return :t:`type`. The closure signature is deduced as follows: + + * :dp:`fls_zgRFKbfdI6ro` + If the :t:`expected type` is a :t:`function pointer type`, the closure + signature is the signature of that :t:`function pointer type`. + + * :dp:`fls_z2UkZX5Qdmws` + Otherwise, if there is a pending :t:`obligation` requiring that the + :t:`expected type` implements :std:`core::ops::FnOnce` or a :t:`trait` that + has :std:`core::ops::FnOnce` as one of its :t:`[supertrait]s`, derive the + closure signature from the parameters and return :t:`type` of the + :std:`core::ops::FnOnce` :t:`bound` or :t:`supertrait`. + + * :dp:`fls_U46IXItEKMCB` + Otherwise, the closure signature remains undeduced. No outside type + information is provided and the parameter :t:`[type]s` and return :t:`type` + are subject to regular :t:`type inference`. + +* :dp:`fls_TAJ3JJwIeDbQ` + Other :t:`[expression]s` are inferred by applying the typing rules specified + in the section for that :t:`expression`. + +:dp:`fls_VrpaTruoBwtF` +If an :t:`expression` is a :t:`diverging expression`, its :t:`type` is a new +:t:`diverging type variable`. + +.. _fls_85vx1qfa061i: + +Traits +------ + +.. rubric:: Syntax + +.. syntax:: + + TraitDeclaration ::= + $$unsafe$$? $$trait$$ Name GenericParameterList? ($$:$$ SupertraitList?)? WhereClause? TraitBody + + SupertraitList ::= + TypeBoundList + + TraitBody ::= + $${$$ + InnerAttributeOrDoc* + AssociatedItem* + $$}$$ + +.. rubric:: Legality Rules + +:dp:`fls_tani6lesan9u` +A :t:`trait` is an :t:`item` that describes an interface a :t:`type` can +implement. + +:dp:`fls_PiAR1B26SoZV` +A :t:`trait body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of a :t:`trait`. + +:dp:`fls_Y28596CVBzDG` +Within a :t:`trait`, the :t:`type` :c:`Self` acts as a placeholder for a +:t:`type` implementing the :t:`trait`, and behaves like a :t:`type parameter`. + +:dp:`fls_AdbbUZZgMEsQ` +A :t:`local trait` is a :t:`trait` that is defined in the current :t:`crate`. + +:dp:`fls_I9JaKZelMiby` +A :t:`subtrait` is a :t:`trait` with a :t:`supertrait`. + +:dp:`fls_CYtxPjK3zq2T` +A :t:`supertrait` is a transitive :t:`trait` that a :t:`type` must additionally +implement. + +:dp:`fls_ytn5cdonytyn` +A :t:`subtrait` shall not be its own :t:`supertrait`. + +:dp:`fls_vucd1u38sq7i` +A :t:`trait` of the form + +.. code-block:: rust + + trait T: Bound {} + +:dp:`fls_kyr81mi01me2` +is equivalent to a :t:`where clause` of the following form: + +.. code-block:: rust + + trait T where Self: Bound {} + +:dp:`fls_YynbrIceKmsJ` +An :t:`auto trait` is a :t:`trait` that is implicitly and automatically +implemented by a :t:`type` when the types of its constituent :t:`[field]s` +implement the :t:`trait`. + +:dp:`fls_Bd4HwdrRuXMm` +A :t:`type` that has no :t:`[field]s` implements all :t:`[auto trait]s`. + +:dp:`fls_UzfG5ic8PUIH` +If determining whether a :t:`type` ``T`` implements an :t:`auto trait` +would recursively depend on whether ``T`` implements said :t:`auto trait`, this +requirement is ignored and assumed to hold. + +:dp:`fls_02D6ku4Sd6yL` +The following :t:`[trait]s` are :t:`[auto trait]s`: + +* :dp:`fls_RLFIzQeAPhG6` + :std:`core::marker::Send` + +* :dp:`fls_avSxO0LEka2x` + :std:`core::marker::Sync` + +* :dp:`fls_ft8axGGOe3aL` + :std:`core::marker::Unpin` + +* :dp:`fls_M4EoT1NMyxJS` + :std:`core::panic::UnwindSafe` + +* :dp:`fls_Tir2kpKNP1KC` + :std:`core::panic::RefUnwindSafe` + +:dp:`fls_WxHiKr8BGGvz` +No other :t:`[trait]s` are :t:`[auto trait]s`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Sequence { + fn length(&self) -> u32; + fn element_at(&self, position: u32) -> T; + } + +:dp:`fls_mjg7yrq66hh0` +Shape is a supertrait of Circle. + +.. code-block:: rust + + trait Shape { + fn area(&self) -> f64; + } + +:dp:`fls_ydowwijzirmm` +Circle is a subtrait of Shape. + +.. code-block:: rust + + trait Circle: Shape { + fn radius(&self) -> f64; + } + +.. _fls_4ikc07mfrez5: + +Object Safety +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_lrdki56hpc3k` +A :t:`trait` is :t:`object safe` when: + +* :dp:`fls_5wlltclogfkw` + Its :t:`[supertrait]s` are :t:`object safe`, and + +* :dp:`fls_droy0w5gtqaw` + :std:`core::marker::Sized` is not a :t:`supertrait`, and + +* :dp:`fls_46gd1q80c6bn` + It lacks :t:`[associated constant]s`, and + +* :dp:`fls_kwo4cknx0yat` + Its :t:`[associated function]s` are :t:`object safe`, and + +* :dp:`fls_vmLLL82EQasI` + Its :t:`[associated type alias]es` specify a :std:`core::marker::Sized` + :t:`[trait bound]` for :c:`Self` in a :t:`type bound predicate`. + +:dp:`fls_uixekv82g2e5` +An :t:`associated function` is :t:`object safe` when it is either an +:t:`object safe` dispatchable :t:`function` or an :t:`object safe` +non-dispatchable :t:`function`. + +:dp:`fls_72tvfoemwpyy` +A dispatchable :t:`function` is :t:`object safe` when: + +* :dp:`fls_j7nb34o87l1z` + It lacks :t:`[generic parameter]s`, and + +* :dp:`fls_k1vc9vd8at92` + Is a :t:`method` that does not use :c:`Self` in its :t:`function signature` + except in the :t:`type` of its :t:`self parameter` or as the :t:`type` of a + :t:`type bound predicate`, and + +* :dp:`fls_kqylg31sm5wv` + It lacks :t:`[type bound predicate]s` with :c:`Self` as the predicate's + :t:`type` and :t:`[trait]s` as the predicate's :t:`[trait bound]s` other than + :std:`core::marker::Send`, :std:`core::marker::Sync` and + :std:`core::marker::Unpin` + +:dp:`fls_aer3gaur7avp` +A :t:`function` is :t:`object safe` when it specifies a +:std:`core::marker::Sized` :t:`[trait bound]` for :c:`Self` in a +:t:`type bound predicate`. + +.. _fls_jeoas4n6su4: + +Trait and Lifetime Bounds +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + TypeBoundList ::= + TypeBound ($$+$$ TypeBound)* $$+$$? + + TypeBound ::= + LifetimeIndication + | ParenthesizedTraitBound + | TraitBound + + LifetimeIndication ::= + Lifetime + | $$'_$$ + | $$'static$$ + + LifetimeIndicationList ::= + LifetimeIndication ($$+$$ LifetimeIndication)* $$+$$? + + ParenthesizedTraitBound ::= + $$($$ TraitBound $$)$$ + + TraitBound ::= + $$?$$? ForGenericParameterList? TypePath + + ForGenericParameterList ::= + $$for$$ GenericParameterList + +.. rubric:: Legality Rules + +:dp:`fls_5g508z6c7q5f` +A :t:`bound` imposes a constraint on a :t:`generic parameter` by limiting the +set of possible :t:`[generic substitution]s`. + +:dp:`fls_BqLPVaSyyXRG` +A :t:`bound` does not impose a constraint on a :t:`generic parameter` of a +:t:`type alias` unless it is an :t:`associated item`. + +:dp:`fls_grby8tmmd8sb` +A :t:`lifetime bound` is a :t:`bound` that imposes a constraint on the +:t:`[lifetime]s` of :t:`[generic parameter]s`. + +:dp:`fls_knut10hoz6wc` +A :t:`trait bound` is a :t:`bound` that imposes a constraint on the +:t:`[trait]s` of :t:`[generic parameter]s`. + +:dp:`fls_sf6zg0ez9hbb` +A :s:`ForGenericParameterList` shall not specify :s:`[ConstantParameter]s` or +:s:`[TypeParameter]s`. + +:dp:`fls_vujl3fblz6x2` +A :t:`higher-ranked trait bound` is a :t:`bound` that specifies an infinite +list of :t:`[bound]s` for all possible :t:`[lifetime]s` specified by the +:s:`ForGenericParameterList`. + +:dp:`fls_AzuZmR9DXSQh` +An :t:`opt-out trait bound` is a :t:`trait bound` with :s:`Punctuation` ``?`` +that nullifies an implicitly added :t:`trait bound`. + +:dp:`fls_1Sm2Yq1Ow76f` +An :t:`outlives bound` is a :t:`trait bound` which requires that a +:t:`lifetime parameter` or :t:`type` outlives a :t:`lifetime parameter`. + +:dp:`fls_tx4uspewnk7w` +:t:`Outlives bound` ``'a: 'b`` indicates that ``'a`` outlives ``'b``. + +:dp:`fls_5kj8bmvb8xfc` +:t:`Outlives bound` ``T: 'a`` indicates that all :t:`[lifetime parameter]s` of +``T`` outlive ``'a``. + +:dp:`fls_J9DEsd06Ttu9` +An :t:`implied bound` is a :t:`bound` that is not expressed in syntax, but is +is the byproduct of relations between :t:`[lifetime parameter]s` and +:t:`[function parameter]s`, between :t:`[lifetime parameter]s` and a +:t:`return type`, and between :t:`[lifetime parameter]s` and :t:`[field]s`. + +:dp:`fls_IfHRxSasGAih` +A :t:`reference` of the form ``&'a T``, where ``'a`` is a +:t:`lifetime parameter` and ``T`` is a :t:`type`, yields :t:`implied bound` +``T: 'a``. + +:dp:`fls_K8nPGP5xbLb7` +If an :t:`outlives bound` applies to the :t:`type` of a :t:`field`, then this +bound also applies to the related :t:`abstract data type` as an +:t:`implied bound`. + +:dp:`fls_Uw6y5ZlaK6RY` +If an :t:`outlives bound` applies to the :t:`type` of a :t:`function parameter` +or to a :t:`return type`, then this bound also applies to the related +:t:`function` as an :t:`implied bound`. + +.. rubric:: Examples + +.. code-block:: rust + + fn draw(shape: T) { ... } + +.. _fls_yqcygq3y6m5j: + +Lifetimes +~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + Lifetime ::= + $$'$$ NonKeywordIdentifier + + AttributedLifetime ::= + OuterAttributeOrDoc* Lifetime + + AttributedLifetimeList ::= + AttributedLifetime ($$,$$ AttributedLifetime)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_nne91at3143t` +A :t:`lifetime` specifies the expected longevity of a :t:`value`. + +:dp:`fls_vbclxg9dq4yo` +A :t:`lifetime bound` shall apply to :t:`[type]s` and other :t:`[lifetime]s`. + +.. rubric:: Examples + +.. code-block:: rust + + &'a i32 + &'static Shape + +:dp:`fls_gcszhqg6hnva` +See :p:`4.12. ` for the declaration of Shape. + +.. _fls_ikfvbeewame7: + +Subtyping and Variance +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_atq2cltx487m` +:t:`Subtyping` is a property of :t:`[type]s`, allowing one :t:`type` to be used +where another :t:`type` is expected. + +:dp:`fls_df87d44kgwcv` +:t:`Variance` is a property of :t:`[lifetime parameter]s` and +:t:`[type parameter]s` that describes the circumstances under which a +:t:`generic type` is a :t:`subtype` of an instantiation of itself with +different :t:`[generic argument]s`. + +:dp:`fls_7ex941yysuhq` +A :t:`type` is its own :t:`subtype`. + +:dp:`fls_7qud6i05ze2` +``F`` is said to be + +* :dp:`fls_wpm0p0gtctvi` + :dt:`Covariant` over ``T``, when ``T`` being a :t:`subtype` of ``U`` implies + that ``F`` is a :t:`subtype` of ``F``, or + +* :dp:`fls_3rfs58i2kg6l` + :dt:`Contravariant` over ``T``, when ``T`` being a :t:`subtype` of ``U`` + implies that ``F`` is a :t:`subtype` of ``F``, or + +* :dp:`fls_kbo3e3bosr0m` + :dt:`Invariant` over ``T``. + +:dp:`fls_n36p6w2a75sm` +:t:`Variance` is determined as follows: + +.. list-table:: + + * - :dp:`fls_xw7eo3us0ow4` + - **Type** + - **Variance in 'a** + - **Variance in T** + * - :dp:`fls_qc6jma5g9vpn` + - ``&'a T`` + - :t:`covariant` + - :t:`covariant` + * - :dp:`fls_hpiiwxzg16rj` + - ``&'a mut T`` + - :t:`covariant` + - :t:`invariant` + * - :dp:`fls_aspdlqluwh9w` + - ``*const T`` + - + - :t:`covariant` + * - :dp:`fls_8ohuze7hqtc1` + - ``*mut T`` + - + - :t:`invariant` + * - :dp:`fls_7pkqgxabojkn` + - ``[T]`` + - + - :t:`covariant` + * - :dp:`fls_ln9pqd4xu5e` + - ``[T; N]`` + - + - :t:`covariant` + * - :dp:`fls_z4jo3ojkcu9v` + - ``fn() -> T`` + - + - :t:`covariant` + * - :dp:`fls_67w6yslr3e25` + - ``fn(T) -> ()`` + - + - :t:`contravariant` + * - :dp:`fls_ojal3qytkqql` + - ``fn(T) -> T`` + - + - :t:`invariant` + * - :dp:`fls_owp42z12l4lc` + - ``core::call::UnsafeCell`` + - + - :t:`invariant` + * - :dp:`fls_i1vuix3gj9ej` + - ``core::marker::PhantomData`` + - + - :t:`covariant` + * - :dp:`fls_mlf39pl0b931` + - ``dyn Trait + 'a`` + - :t:`covariant` + - :t:`invariant` + +:dp:`fls_yknymnlsasyw` +A :t:`trait` is :t:`invariant` in all inputs, including the :c:`Self` parameter. + +:dp:`fls_xkzo7nj40rbn` +:t:`[Lifetime parameter]s` and :t:`[type parameter]s` are subject to +:t:`variance`. + +:dp:`fls_abn5ycx11zpm` +The :t:`variance` of a :t:`generic parameter` of an :t:`abstract data type` or +an :t:`tuple type` is determined as follows: + +#. :dp:`fls_hvfyog9ygn6q` + For each :t:`generic parameter` ``G``: + + #. :dp:`fls_mduolmcawb30` + Initialize :t:`variance` ``V`` of the :t:`generic parameter` to ``any``. + + #. :dp:`fls_y81gmqweqc9w` + For each :t:`field` of the :t:`abstract data type` or the + :t:`tuple type`: + + #. :dp:`fls_etgfvgvymn8o` + If :t:`field` :t:`type` ``T`` uses ``G``, then + + #. :dp:`fls_4kjxxrsk1igf` + If ``V`` is ``any``, set ``V`` to the :t:`variance` of ``T`` over + ``G``. + + #. :dp:`fls_y4zmb3vrym7p` + Otherwise if ``V`` and the :t:`variance` of ``T`` over ``G`` differ, + set ``V`` to :t:`invariant`. + + #. :dp:`fls_9ae3idezsths` + It is a static error if :t:`variance` ``V`` is ``any``. + +:dp:`fls_WD6uyTCziRac` +:t:`[Expression]s` and :t:`[statement]s` may impose :t:`subtyping` requirements +on their :t:`[subexpression]s`. Such requirements are applied after +:t:`type inference`, on the :t:`[inferred type]s` of the respective +:t:`[expression]s` and :t:`[pattern]s`. + +:dp:`fls_xURR0owesaIE` +It is a static error if any :t:`subtyping` requirements are not met. + +:dp:`fls_CvZNYIfnOUcc` +The :t:`subtyping` requirements for :t:`[statement]s` are as follows: + +* :dp:`fls_xrLYQX7W9OnR` + :t:`[Item statement]s` impose no additional :t:`subtyping` requirements. + +* :dp:`fls_DWPN8DRysgMa` + :t:`[Let statement]s` require that the :t:`type` of the :t:`expression` of the + :t:`let initializer` (if any) is a :t:`subtype` of the :t:`type` of the + :t:`let statement`'s :t:`pattern`. + +* :dp:`fls_tOn5oKtp300J` + :t:`[Expression statement]s` impose the :t:`subtyping` requirements for the + contained :t:`expression`, as outlined below. + +:dp:`fls_HqXTVi7gr9wR` +The :t:`subtyping` requirements for :t:`[expression]s` are as follows: + +* :dp:`fls_lxfPvK7NDNlj` + The requirements for any :t:`arithmetic expression`, :t:`bit expression`, + :t:`comparison expression`, :t:`compound assignment expression`, + :t:`index expression`, or :t:`negation expression` are the same requirements + as for an explicit invocation of the corresponding operator :t:`trait` + :t:`method`. + +* :dp:`fls_awJeqcAHn5O3` + An :t:`assignment expression` requires that the :t:`type` of its + :t:`value operand` is a :t:`subtype` of the :t:`type` of its + :t:`assignee operand`. + +* :dp:`fls_AD1IXzsnlwyg` + A :t:`type cast expression` requires that the :t:`type` of its :t:`operand` is + a :t:`subtype` of its :t:`target type`. + +* :dp:`fls_p2II8E6cc9zt` + A :t:`call expression` or :t:`method call expression` requires that the + :t:`[type]s` of its :t:`[argument operand]s` are :t:`[subtype]s` of the + :t:`[type]s` of the corresponding parameter. + +* :dp:`fls_pN5C4FHWEWdK` + A :t:`return expression` requires that the :t:`type` of its :t:`operand` is + a :t:`subtype` of the :t:`return type` of the containing :t:`function` or + :t:`closure expression`. + +* :dp:`fls_RdqV0hI8h8BI` + A :t:`break expression` requires that its :t:`break type` is a :t:`subtype` of + the :t:`type` of the :t:`block expression` or :t:`loop expression` that the + :t:`break expression` breaks out of. + +* :dp:`fls_Uv5CcMHPX79J` + Other :t:`[expression]s` do not impose any additional :t:`subtyping` + requirements. + +:dp:`fls_LyvV4pOG7E4l` +Any :t:`type coercion` resulting in a :t:`method` invocation imposes the same +:t:`subtyping` requirements as an explicit invocation of that :t:`method` would. + +.. _fls_l9ebxrlxyawd: + +Lifetime Elision +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_9wtuclhm7yz5` +:t:`Lifetime elision` is a set of rules that automatically insert +:t:`[lifetime parameter]s` and/or :t:`[lifetime argument]s` when they are +elided in the source code. + +:dp:`fls_JmP6O9zj8fkV` +A :t:`lifetime` may be elided either implicitly or explicitly. + +:dp:`fls_5ZAQ9p7jQuc2` +A :t:`lifetime` is elided explicitly if it is the ``'_`` :t:`lifetime`. + +:dp:`fls_YmUQ8ZiQuycp` +A :t:`lifetime` is elided implicitly if it is absent. + +:dp:`fls_sIMN6Sd8xUZz` +:t:`Lifetime elision` rules are introduced by certain :t:`[construct]s` and may +be nested. + +:dp:`fls_dIyisjNIx9dC` +An elided :t:`lifetime` is subject to the set of :t:`lifetime elision` rules +introduced by the innermost :t:`construct` containing the elided :t:`lifetime`. + +:dp:`fls_cD0ZYi23VqWg` +It is a static error to elide a :t:`lifetime` in a position where no +:t:`lifetime elision` rules are active. + +:dp:`fls_sA4Lqc5o6cX3` +:t:`[Lifetime]s` cannot be implicitly elided within :t:`[impl trait type]s`. +If no :t:`lifetime bound` is present, the :t:`impl trait type` is not considered +to be bound by any :t:`lifetime`. + +.. _fls_HEtHxXBcg7JA: + +Function Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_lAdIRCFFlydD` +:t:`Function lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[function]s`, :t:`[function pointer type parameter]s`, and :t:`[path]s` +that resolve to one of the :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and +:std:`core::ops::FnOnce` :t:`[trait]s`. + +:dp:`fls_dpudys82dhdc` +An :dt:`input lifetime` is one of the following :t:`[lifetime]s`: + +* :dp:`fls_pjil71kk0r25` + Any :t:`lifetime` related to a :t:`function parameter`. + +* :dp:`fls_1jnn9bsb71k7` + Any :t:`lifetime` related to a :t:`function pointer type parameter`. + +* :dp:`fls_2p29p1fvi182` + Any :t:`lifetime` related to the :t:`[function parameter]s` of the + :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and :std:`core::ops::FnOnce` + :t:`[trait]s`. + +* :dp:`fls_ks8wlufmhz6d` + Any :t:`lifetime` related to an :t:`implementing type` and an + :t:`implemented trait` of an :t:`implementation`. + +:dp:`fls_hsg9kfyvh35m` +An :dt:`output lifetime` is one of the following :t:`[lifetime]s`: + +* :dp:`fls_ofqy10q4a9jk` + Any :t:`lifetime` related to the :t:`return type` of a :t:`function`. + +* :dp:`fls_yofbo96tjppf` + Any :t:`lifetime` related to the :t:`return type` of a + :t:`function pointer type`. + +* :dp:`fls_vf7cxiir91ps` + Any :t:`lifetime` related to the :t:`[return type]s` of the + :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and :std:`core::ops::FnOnce` + :t:`[trait]s`. + +:dp:`fls_g56br27hq2zj` +:t:`Lifetime elision` proceeds as follows: + +#. :dp:`fls_1j204m1wy333` + Each :t:`elided` :t:`input lifetime` is a distinct :t:`lifetime parameter` in + its related :t:`construct`. + +#. :dp:`fls_6km3cbchuxr2` + If a :t:`construct` has exactly one :t:`input lifetime`, then that + :t:`lifetime` is assigned to all :t:`elided` :t:`[output lifetime]s`. + +#. :dp:`fls_crb6m6b3cdwh` + If a :t:`function` has a :t:`self parameter` of the form ``&self``, + ``&mut self``, or ``self: T`` where ``T`` is a :t:`type` with a + :t:`lifetime`, then the :t:`lifetime` of the :t:`self parameter` is assigned + to all :t:`elided` :t:`[output lifetime]s`. + +#. :dp:`fls_ac9tdlfwp5et` + Otherwise this is a static error. + +.. rubric:: Examples + +:dp:`fls_qtjc7334wzhj` +Given :t:`function` ``f`` of the form + +.. code-block:: rust + + fn f <'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command; + +:dp:`fls_vcmmkp9uruhr` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + fn f (&mut self, args: &[T]) -> &mut Command; + +.. _fls_u5lQkU2rS6uV: + +Static Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_l4RDXaFwnQZ6` +:t:`Static lifetime elision` is a form of :t:`lifetime elision` that applies to +the :t:`type ascription` of :t:`[constant]s` and :t:`[static]s`. + +:dp:`fls_8irr97rZWfSC` +An :t:`elided` :t:`lifetime` of a :t:`reference type` or :t:`path` in the +:t:`type specification` of a :t:`constant` or :t:`static` is inferred to be the +``'static'`` lifetime. + +:dp:`fls_37udexenqv3p` +The :t:`lifetime` of an :t:`associated implementation constant` shall not be +:t:`elided`. + +:dp:`fls_xi86he5vvill` +The :t:`lifetime` of an :t:`associated trait constant` shall not be :t:`elided`. + +.. rubric:: Examples + +:dp:`fls_2GKCEI9MwMn9` +Given :t:`static` ``S`` of the form + +.. code-block:: rust + + static S: &[&usize] = &[]; + +:dp:`fls_f3yZ31dRuTPG` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + static S: &'static [&'static usize] = &[]; + +.. _fls_XTBOhK2Yk4lA: + +Trait Object Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_fuBYWRrgxlbQ` +:t:`Trait object lifetime elision` is a form of :t:`lifetime elision` that +applies to :t:`[trait object type]s`. + +:dp:`fls_URl9CeIVsiWs` +An :t:`elided` :t:`lifetime` of a :t:`trait object type` is inferred as follows: + +* :dp:`fls_SHhw6lYHeYyQ` + If the :t:`trait object type` is used as the :t:`type specification` of a + :t:`reference type`, then the :t:`lifetime` of the :t:`reference type` is the + :t:`elided` :t:`lifetime`, + +* :dp:`fls_lC2rwdPLRwaf` + If the :t:`trait object type` is used as a :t:`generic argument` and + + * :dp:`fls_e36Hh4oJvfhv` + if the corresponding :t:`generic parameter` has exactly one + :t:`lifetime bound`, then the :t:`lifetime` of that :t:`bound` is the + :t:`elided` :t:`lifetime`, + + * :dp:`fls_ptejalcnIQtm` + Otherwise it is a static error to infer the :t:`lifetime` :t:`bound`. + +* :dp:`fls_rGbdKtTijby4` + If the :t:`trait` of the :t:`trait object type` has exactly one + :t:`lifetime bound` specified, then the :t:`lifetime` of that :t:`bound` is + the inferred :t:`lifetime`, + +* :dp:`fls_JhmQpUoExiNZ` + If the :t:`trait` of the :t:`trait object type` has no :t:`[lifetime bound]s` + specified, then the :t:`elided` :t:`lifetime` is the ``'static`` + :t:`lifetime` unless it is :t:`elided` in :t:`[expression]s` where it is + instead inferred, + +* :dp:`fls_cglZigwAnASl` + Otherwise it is a static error to infer the :t:`lifetime bound`. + +.. rubric:: Examples + +:dp:`fls_MipY2emZFF6d` +Given :t:`type alias` ``T`` of the form + +.. code-block:: rust + + type T<'a> = &'a dyn Trait; + +:dp:`fls_YPesUZqYHVUX` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + type T<'a> = &'a (dyn Trait + 'a); + +.. _fls_ZQPv1ybdDsE1: + +Impl Header Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_FUdsmzN0T8XP` +:t:`Impl header lifetime elision` is a form of :t:`lifetime elision` that +applies to the :t:`implementing type` and :t:`implemented trait` (if any) of an +:t:`implementation`. + +:dp:`fls_3p5BdLn3JbKz` +The :t:`impl header lifetime elision` rules are as follows: + +* :dp:`fls_PfS5AlkN6ANl` + Every explicitly elided :t:`lifetime` is replaced with a new + :t:`lifetime parameter` defined on the :t:`implementation`. + +* :dp:`fls_QV6zE5Mdor5E` + An implicitly elided :t:`lifetime` of a :t:`reference` is also replaced with a + new :t:`lifetime parameter` defined on the :t:`implementation`. + +* :dp:`fls_P2V1DqrdCjCi` + An implicitly elided :t:`lifetime` in any other :t:`type` is a static error. + +.. rubric:: Examples + +:dp:`fls_MBa35hfS8J9l` +Given an :t:`implementation` of the form + +.. code-block:: rust + + impl Trait<&u8, Strukt<'_>> for &i32 {} + +:dp:`fls_w0vwdmO8qV9j` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + impl<'a, 'b, 'c> Trait<&'a u8, Strukt<'b>> for &'c i32 {} + +:dp:`fls_vImY3BrpNvNY` +where ``'a``, ``'b``, and ``'c`` are anonymous :t:`[lifetime parameter]s` that +cannot be named by user-written code. diff --git a/_sources/undefined-behavior.rst.txt b/_sources/undefined-behavior.rst.txt new file mode 100644 index 00000000..5ecc9956 --- /dev/null +++ b/_sources/undefined-behavior.rst.txt @@ -0,0 +1,16 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec +.. informational-page:: + +.. _fls_EBwqH60SUHiN: + +List of undefined behavior +========================== + +:dp:`fls_f9mkI99mzPxY` +The following sections of the Ferrocene Language Specification document +undefined behavior: + +.. items-with-rubric:: Undefined Behavior diff --git a/_sources/unsafety.rst.txt b/_sources/unsafety.rst.txt new file mode 100644 index 00000000..1ede11bd --- /dev/null +++ b/_sources/unsafety.rst.txt @@ -0,0 +1,49 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_jep7p27kaqlp: + +Unsafety +======== + +.. rubric:: Legality Rules + +:dp:`fls_8kqo952gjhaf` +:t:`Unsafety` is the presence of :t:`[unsafe operation]s` and :t:`[unsafe trait +implementation]s` in program text. + +:dp:`fls_ovn9czwnwxue` +An :t:`unsafe operation` is an operation that may result in +:t:`undefined behavior` that is not diagnosed as a static error. +:t:`[Unsafe operation]s` are referred to as :t:`unsafe Rust`. + +:dp:`fls_pfhmcafsjyf7` +The :t:`[unsafe operation]s` are: + +* :dp:`fls_jd1inwz7ulyw` + Dereferencing a :t:`value` of a :t:`raw pointer type`. + +* :dp:`fls_3ra8s1v1vbek` + Reading or writing an :t:`external static`. + +* :dp:`fls_6ipl0xo5qjyl` + Reading or writing a :t:`mutable static`. + +* :dp:`fls_ucghxcnpaq2t` + Accessing a :t:`field` of a :t:`union`, other than to assign to it. + +* :dp:`fls_ljocmnaz2m49` + Calling an :t:`unsafe function`. + +* :dp:`fls_s5nfhBFOk8Bu` + Calling :t:`macro` :std:`core::arch::asm`. + +:dp:`fls_jb6krd90tjmc` +An :t:`unsafe context` is either an :t:`unsafe block` or an +:t:`unsafe function`. + +:dp:`fls_ybnpe7ppq1vh` +An :t:`unsafe operation` shall be used only within an :t:`unsafe context`. + diff --git a/_sources/values.rst.txt b/_sources/values.rst.txt new file mode 100644 index 00000000..f3849f8c --- /dev/null +++ b/_sources/values.rst.txt @@ -0,0 +1,284 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_94a8v54bufn8: + +Values +====== + +.. rubric:: Legality Rules + +:dp:`fls_buyaqara7am4` +A :t:`value` is either a :t:`literal` or the result of a computation, that may +be stored in a memory location, and interpreted based on some :t:`type`. + +:dp:`fls_rixdyyc525xp` +Two :t:`[value]s` :t:`overlap` when + +* :dp:`fls_m6ctqq70vcxr` + Both :t:`[value]s` are the same, or + +* :dp:`fls_s231d18x5eay` + One :t:`value` is of an :t:`abstract data type` and the other denotes a + :t:`field` of the same :t:`value`, or + +* :dp:`fls_dfr4yqo93fsn` + One :t:`value` denotes an :t:`array` and the other denotes an element of the + same :t:`value`, or + +* :dp:`fls_eoak5mdl6ma` + Both :t:`[value]s` are elements of the same :t:`array`. + +.. rubric:: Undefined Behavior + +:dp:`fls_6lg0oaaopc26` +It is undefined behavior to create a :t:`value` from uninitialized memory unless +the :t:`type` of the :t:`value` is a :t:`union type`. + +.. _fls_ixjc5jaamx84: + +Constants +--------- + +.. rubric:: Syntax + +.. syntax:: + + ConstantDeclaration ::= + $$const$$ (Name | $$_$$) TypeAscription ConstantInitializer? $$;$$ + + ConstantInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_5o5iu4j8in4l` +A :t:`constant` is an :t:`immutable` :t:`value` whose uses are substituted by +the :t:`value`. + +:dp:`fls_3mhj0kkupwuz` +An :t:`unnamed constant` is a :t:`constant` declared with character 0x5F (low +line). + +:dp:`fls_ka4y2yd100dx` +The :t:`type specification` of a :t:`constant` shall have ``'static`` +:t:`lifetime`. + +:dp:`fls_vt9tlkd676ql` +The :t:`type` of a :t:`constant` shall implement the :std:`core::marker::Sized` +:t:`trait`. + +:dp:`fls_ndmfqxjpvsqy` +A :t:`constant initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`constant`. + +:dp:`fls_6rxwbbhf5tc5` +A :t:`constant` shall have a :t:`constant initializer`, unless it is an +:t:`associated trait constant`. + +:dp:`fls_vnc3ttnid1qr` +The :t:`expression` of a :t:`constant initializer` shall be a +:t:`constant expression`. + +:dp:`fls_deuo1pn8cjd6` +The value of a :t:`constant` is determined by evaluating its +:t:`constant initializer`. + +:dp:`fls_5x0jv4cgbolx` +A use of a :t:`constant` is a :t:`value expression` and creates a copy of the +constant's value. + +.. rubric:: Dynamic Semantics + +:dp:`fls_xezt9hl069h4` +The :t:`elaboration` of a :t:`constant` evaluates its :t:`constant initializer`. + +:dp:`fls_ndobth7s92if` +A :t:`path` that refers to a :t:`constant` is replaced with the :t:`value` of +the :t:`constant`. + +.. rubric:: Examples + +.. code-block:: rust + + const ZERO: u32 = 0; + +.. _fls_xdvdl2ssnhlo: + +Statics +------- + +.. rubric:: Syntax + +.. syntax:: + + StaticDeclaration ::= + $$static$$ $$mut$$? Name TypeAscription StaticInitializer? $$;$$ + + StaticInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_ibrmiwfypldh` +A :t:`static` is a :t:`value` that is associated with a specific memory +location. + +:dp:`fls_mt94jvoot9dx` +A :t:`static` defined within a :t:`generic function` exists once in the +output executable or library. + +:dp:`fls_k0r2c6uq29tu` +The :t:`type specification` of a :t:`static` shall have ``'static`` +:t:`lifetime`. + +:dp:`fls_b6ods85htuyn` +The :t:`type` of a :t:`static` shall implement the :std:`core::marker::Sized` +:t:`trait`. + +:dp:`fls_doi4z6u55bi7` +A :t:`mutable static` is a :t:`static` with :t:`keyword` ``mut`` whose +:t:`value` can be modified. + +:dp:`fls_74hp208pto22` +Access to a :t:`mutable static` shall require :t:`unsafe context`. + +:dp:`fls_jfde2vg6mtww` +An :t:`immutable static` is a :t:`static` whose :t:`value` cannot be modified. + +:dp:`fls_k4tyqb1j6zjo` +The type of an :t:`immutable static` shall implement the +:std:`core::marker::Sync` :t:`trait`. + +:dp:`fls_t17h5h6a6v4c` +A :t:`static initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`static`. + +:dp:`fls_yq0hpy4jx2qb` +A :t:`static` shall have a :t:`static initializer`, unless it is an +:t:`external static`. + +:dp:`fls_vgidvfwzm4ks` +The :t:`expression` of a :t:`static initializer` shall be a +:t:`constant expression`. + +:dp:`fls_8dcldbvu7lav` +A use of a :t:`static` is a :t:`place expression` referring to the unique +location of the :t:`static`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_w0nb0mphho7b` +The :t:`elaboration` of a :t:`static` evaluates its :t:`static initializer`. + +:dp:`fls_eeocxst9vafn` +All :t:`[path]s` that refer to a :t:`static` refer to the same memory location. + +:dp:`fls_47khd5ljsxeq` +A :t:`static` is not :t:`dropped` during :t:`destruction`. + +:dp:`fls_dowxbphqvk3n` +A :t:`mutable static` whose :t:`type` is not subject to +:t:`interior mutability` may reside in read-only memory. + +.. rubric:: Undefined Behavior + +:dp:`fls_b5wsmii7vz3v` +It is undefined behavior to mutate an :t:`immutable static` whose :t:`type` is +not subject to :t:`interior mutability`. + +.. rubric:: Examples + +.. code-block:: rust + + static mut GLOBAL: u32 = 0; + +.. _fls_cleoffpn5ew6: + +Temporaries +----------- + +.. rubric:: Legality Rules + +:dp:`fls_awpw61yofckz` +A :t:`temporary` is an anonymous :t:`variable` produced by some intermediate +computation. + +.. _fls_gho955gmob73: + +Variables +--------- + +.. rubric:: Legality Rules + +:dp:`fls_hl5tnd9yy252` +A :t:`variable` is a placeholder for a :t:`value` that is allocated on the +stack. + +:dp:`fls_vgi0gh5zmoiu` +The following :t:`[construct]s` are :t:`[variable]s`: + +* :dp:`fls_81dlbula47nu` + A :t:`binding`. + +* :dp:`fls_3p0sb9ppmg3w` + A :t:`temporary`. + +:dp:`fls_r9km9f969bu8` +A :t:`variable` shall be used only after it has been initialized through all +:t:`[reachable control flow path]s` up to the point of its usage. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g8etd5lsgn9j` +A :t:`variable` is not initialized when allocated. + +.. _fls_wttihxen35as: + +Constant Promotion +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_udn9lyf3m0z6` +:t:`Constant promotion` is the process of converting a :t:`value expression` +into a :t:`constant`. + +:dp:`fls_yvkdcs4pmxjf` +:t:`Constant promotion` is possible only when + +* :dp:`fls_n570za6a9nqd` + The :t:`value expression` is a :t:`constant expression`, and + +* :dp:`fls_tms5r9f5ogcb` + The :t:`type` of the :t:`value expression` does not have a :t:`destructor`, + and + +* :dp:`fls_bysv5r7iuf5j` + The :t:`value expression` does not employ a :t:`struct expression` + constructing a :std:`core::cell::UnsafeCell`, and + +* :dp:`fls_3h5vr7xk2rrt` + The :t:`value expression` only consists of operations that will always succeed + evaluation, and + +* :dp:`fls_3BGncWvMumEt` + The :t:`value expression` is the :t:`operand` of an + :t:`immutable borrow expression`. + +:dp:`fls_m690b8qg9d9r` +:t:`Constant promotion` is always possible for :t:`expression` ``&mut []``, +promoting the produced :t:`mutable borrow` to have ``'static`` :t:`lifetime`. + +:dp:`fls_uf0sg25awre6` +:t:`Constant promotion` proceeds as follows: + +#. :dp:`fls_o7cqfdnr253y` + An anonymous :t:`constant` is created, whose :t:`constant initializer` holds + the result of the :t:`value expression`. + +#. :dp:`fls_ap85svxyuhvg` + The :t:`value` of the anonymous :t:`constant` is :t:`borrowed` with + ``'static`` :t:`lifetime`. diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..7577acb1 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,903 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..d06a71d7 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..b57ae3b8 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/favicon.svg b/_static/favicon.svg new file mode 100644 index 00000000..ea409960 --- /dev/null +++ b/_static/favicon.svg @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/_static/ferrocene.css b/_static/ferrocene.css new file mode 100644 index 00000000..0ccc59a0 --- /dev/null +++ b/_static/ferrocene.css @@ -0,0 +1,693 @@ +/* SPDX-License-Identifier: MIT OR Apache-2.0 */ +/* SPDX-FileCopyrightText: The Ferrocene Developers */ + +/************* + * Fonts * + *************/ + +@font-face { + font-family: 'Raleway'; + font-weight: 400; + font-style: normal; + src: url('fonts/raleway-400.ttf') format('truetype'), url('fonts/raleway-400.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 400; + font-style: italic; + src: url('fonts/raleway-400-italic.ttf') format('truetype'), url('fonts/raleway-400-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 700; + font-style: normal; + src: url('fonts/raleway-700.ttf') format('truetype'), url('fonts/raleway-700.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 700; + font-style: italic; + src: url('fonts/raleway-700-italic.ttf') format('truetype'), url('fonts/raleway-700-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 400; + font-style: normal; + src: url('fonts/roboto-mono-400.ttf') format('truetype'), url('fonts/roboto-mono-400.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 400; + font-style: italic; + src: url('fonts/roboto-mono-400-italic.ttf') format('truetype'), url('fonts/roboto-mono-400-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 700; + font-style: normal; + src: url('fonts/roboto-mono-700.ttf') format('truetype'), url('fonts/roboto-mono-700.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 700; + font-style: italic; + src: url('fonts/roboto-mono-700-italic.ttf') format('truetype'), url('fonts/roboto-mono-700-italic.woff2') format('woff2'); +} + +/********************* + * Basic styling * + *********************/ + +:root { + --text-fg: #1b1b1b; + --link-fg: #3168b0; + --inline-code-bg: #fafafa; + --inline-code-border: #ebebeb; + --code-block-bg: #f7f7f7; + --focus-border: #68a4e8; + --table-border: #dbdbdb; + + --body-bg: #fff; + --header-fg: #194e80; + + --sidebar-width: 21rem; + --sidebar-bg: #f7f7f7; + --sidebar-inactive-fg: var(--text-fg); + --sidebar-active-fg: var(--link-fg); + + --sidebar-search-border: #dbdbdb; + --sidebar-search-bg: #fff; + --sidebar-search-placeholder-fg: #5f5f5f; + --sidebar-search-button-fg: var(--text-fg); + --sidebar-search-button-hover-fg: #194e80; + + --footer-fg: #747474; + + --admonition-green-border: #7ddd83; + --admonition-blue-border: #88cff0; + --admonition-yellow-border: #ffe033; + --admonition-red-border: #ee7f68; + + --numbers-width: 5.5rem; + --numbers-fg: #747474; + + --blockquote-border: #dbdbdb; + + --content-width: 50rem; + + --spec-error-fg: #f00; + --spec-syntax-literal-bg: #dbdbdb; + + /* Vertical offset for the page. Defaults to 0, but can be set to an higher + * value by additional CSS files. */ + --header-offset: 0rem; +} + +* { + box-sizing: border-box; +} + +html { + /* Ensure we always scroll to the right position, even when there is a + * fixed header at the top of the page */ + scroll-padding-top: var(--header-offset); +} + +body { + font-family: 'Raleway', sans-serif; + color: var(--text-fg); + background: var(--body-bg); + margin: 0; +} + +:focus { + outline: 2px solid var(--focus-border); +} + +/************ + * Text * + ************/ + +a { + color: var(--link-fg); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +p { + margin: 1em 0; + line-height: 1.5em; +} + +a { + color: var(--link-fg); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +/**************** + * Headings * + ****************/ + +h1, h2, h3, h4, h5, h6 { + margin: 2.5em 0 1em 0; +} + +h1 span.section-number, h2 span.section-number, h3 span.section-number, h4 span.section-number, h5 span.section-number, h6 span.section-number { + display: block; + position: absolute; + left: 0; + + color: var(--numbers-fg); + width: var(--numbers-width); + padding-right: 1rem; + text-align: right; +} + +a.headerlink { + display: none; +} + +a.headerlink:hover { + text-decoration: none; +} + +h1:hover a.headerlink, h2:hover a.headerlink, h3:hover a.headerlink, h4:hover a.headerlink, h5:hover a.headerlink, h6:hover a.headerlink { + display: inline-block; + margin-left: 1rem; + color: var(--link-fg); +} + +p.rubric { + margin: 2em 0 1em 0; + font-weight: 700; +} + +h1 + p.rubric, h2 + p.rubric, h3 + p.rubric, h4 + p.rubric, h5 + p.rubric, h6 + p.rubric { + margin-top: 1rem; +} + +/* Prevent too much margin with one header after the other */ +/* I am sorry, browser's CSS engine */ +section > h1:first-child + section > h2:first-child, +section > h2:first-child + section > h3:first-child, +section > h3:first-child + section > h4:first-child, +section > h4:first-child + section > h5:first-child, +section > h5:first-child + section > h6:first-child, +section > h1:first-child + section > span[id]:first-child + h2, +section > h2:first-child + section > span[id]:first-child + h3, +section > h3:first-child + section > span[id]:first-child + h4, +section > h4:first-child + section > span[id]:first-child + h5, +section > h5:first-child + section > span[id]:first-child + h6, +section > span[id]:first-child + h1 + section > h2:first-child, +section > span[id]:first-child + h2 + section > h3:first-child, +section > span[id]:first-child + h3 + section > h4:first-child, +section > span[id]:first-child + h4 + section > h5:first-child, +section > span[id]:first-child + h5 + section > h6:first-child, +section > span[id]:first-child + h1 + section > span[id]:first-child + h2, +section > span[id]:first-child + h2 + section > span[id]:first-child + h3, +section > span[id]:first-child + h3 + section > span[id]:first-child + h4, +section > span[id]:first-child + h4 + section > span[id]:first-child + h5, +section > span[id]:first-child + h5 + section > span[id]:first-child + h6 { + margin-top: 0; +} + +/******************************** + * Code snippets and blocks * + ********************************/ + +pre, code { + font-family: 'Roboto Mono', monospace; +} + +pre { + background: var(--code-block-bg); + padding: 1rem; + border-radius: 0.3rem; + line-height: 1.5em; + font-size: 0.9rem; + overflow-y: scroll; +} + +code { + display: inline-block; + background: var(--inline-code-bg); + padding: 0 0.2em; + border-radius: 0.2em; + outline: 0.1em solid var(--inline-code-border); +} + +pre code { + background: transparent; + padding: 0; + border-radius: 0; + outline: none; +} + +a:hover code { + text-decoration: underline; +} + +/************* + * Lists * + *************/ + +li { + margin: 0.5em 0; +} + +/* Sphinx generates a

inside each

  • . */ +li > p:first-child { + margin-top: 0; +} + +li > p:last-child { + margin-bottom: 0; +} + +/************** + * Layout * + **************/ + +div.wrapper { + margin-top: var(--header-offset); +} + +@media (max-width: 55rem) { + + div.wrapper div.sidebar div.toctree { + display: none; + } + + div.wrapper div.sidebar input#toggle-toctree:checked + div.toctree { + display: block; + } +} + +@media (min-width: 55rem) { + div.wrapper { + display: flex; + min-height: calc(100vh - var(--header-offset)); + } + + div.wrapper div.sidebar { + position: sticky; + top: var(--header-offset); + width: var(--sidebar-width); + max-height: calc(100vh - var(--header-offset)); + overflow-y: scroll; + flex-shrink: 0; + } + + div.wrapper div.sidebar label.toggle { + display: none; + } + + div.wrapper div.content { + flex: 1; + min-width: 0; + } + + div.wrapper div.content div.page { + max-width: calc(var(--numbers-width) + var(--content-width)); + } +} + +div.wrapper div.content { + display: flex; + flex-direction: column; +} + +div.wrapper div.content div.page { + width: 100%; + flex: 1; +} + +input#toggle-toctree { + display: none; +} + +/********************** + * Header styling * + **********************/ + +header a { + display: block; + padding: 1.25rem; +} + +header a:hover { + text-decoration: none; +} + +header img { + display: block; + height: 2.25em; + margin: auto; +} + +header h1 { + color: var(--header-fg); + font-size: 1.25rem; + font-weight: 400; + text-align: center; + margin: 0.4rem 0 0 0; +} + +/************************** + * Search box styling * + **************************/ + +form.side-search { + display: flex; + margin: 0 1rem; +} + +form.side-search input { + flex: 1; + padding: 0.5rem 1rem; + + border: 1px solid var(--sidebar-search-border); + border-right: 0; + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; + background: var(--sidebar-search-bg); +} + +form.side-search input::placeholder { + color: var(--sidebar-search-placeholder-fg); + opacity: 1; +} + +form.side-search button { + padding: 0.5rem 1rem 0.5rem 0.75rem; + + background: var(--sidebar-search-bg); + border: 1px solid var(--sidebar-search-border); + border-left: 0; + border-top-right-radius: 1rem; + border-bottom-right-radius: 1rem; +} + +form.side-search button svg { + height: 1rem; + fill: var(--sidebar-search-button-fg); +} + +form.side-search button:hover { + cursor: pointer; +} + +form.side-search button:hover svg { + fill: var(--sidebar-search-button-hover-fg); +} + +/*********************** + * Sidebar styling * + ***********************/ + +div.sidebar { + background: var(--sidebar-bg); +} + +/************************** + * Navigation styling * + **************************/ + +nav label.toggle { + display: block; + cursor: pointer; + text-align: center; + padding: 1rem; +} + +nav label.toggle:hover { + color: var(--sidebar-active-fg); +} + +nav div.toctree { + padding: 1.25rem 0 1rem 0; +} + +nav p.caption { + font-weight: 700; + margin: 1.25rem 1rem 0.5rem 1rem; +} + +nav p.caption:first-child { + margin-top: 0; +} + +nav ul { + margin: 0; + padding: 0; +} + +nav li { + margin: 0; + list-style: none; +} + +nav a { + color: var(--sidebar-inactive-fg); + text-decoration: none; + padding: 0.35rem 1rem; + display: block; +} + +nav a:hover, +nav a.current { + color: var(--sidebar-active-fg); + text-decoration: none; +} + +/******************** + * Page styling * + ********************/ + +div.page { + padding: 2rem 1rem 1rem var(--numbers-width); + position: relative; +} + +div.page > :first-child, div.page > section:first-child > :first-child { + margin-top: 0; +} + +div.page > :last-child, div.page > section:last-child > :last-child { + margin-bottom: 0; +} + +/************** + * Footer * + **************/ + +footer { + color: var(--footer-fg); + padding: 1rem; + text-align: center; +} + +footer p { + margin: 0.3em 0; +} + +footer :first-child { + margin-top: 0; +} + +footer :last-child { + margin-bottom: 0; +} + +/**************** + * TocTrees * + ****************/ + +div.toctree-wrapper p.caption { + font-weight: 700; +} + +/************** + * Tables * + **************/ + +table { + border-collapse: collapse; + + /* Let the table overflow on the right */ + white-space: nowrap; + overflow-x: visible; +} + +table .hide-inside-tables { + display: none; +} + +table caption { + text-align: left; + font-weight: bold; + padding-left: 0.4em; +} + +table td, table th { + padding: 0.4em; + border-bottom: 1px solid var(--table-border); + text-align: left; +} + +table tr:last-child td { + border: 0; +} + +td > :first-child, th > :first-child { + margin-top: 0; +} + +td > :last-child, th > :last-child { + margin-bottom: 0; +} + +td span.spec-paragraph-id, th span.spec-paragraph-id { + margin-top: -0.8em; +} + +/******************* + * Admonitions * + *******************/ + +div.admonition { + margin: 1em 0; + padding-left: 1em; + border-left: 0.2rem solid transparent; +} + +div.admonition.tip, div.admonition.hint { + border-color: var(--admonition-green-border); +} + +div.admonition.note { + border-color: var(--admonition-blue-border); +} + +div.admonition.warning, div.admonition.caution, div.admonition.important { + border-color: var(--admonition-yellow-border); +} + +div.admonition.danger, div.admonition.error { + border-color: var(--admonition-red-border); +} + +div.admonition p { + margin: 0.5em 0 0 0; +} + +div.admonition p.admonition-title { + font-size: 0.8em; + font-weight: 700; + text-transform: uppercase; + margin: 0 0 -0.25em 0; +} + +/* Fix margin when admonitions are added at the top of the page */ +div.page > div.admonition:first-child + section h1 { + margin-top: 1.5em; +} + +/******************* + * Definitions * + *******************/ + +dl dt { + margin-top: 1.5em; + font-weight: 700; +} + +dl dt:first-child { + margin-top: 0; +} + +dl dd { + margin-left: 0; +} + +dl dd > p:first-child { + margin-top: 0.25em; +} + +dl dd > p:last-child { + margin-bottom: 0; +} + +/*************** + * Figures * + ***************/ + +figure { + margin: 1.5em 0; +} + +figure img { + max-width: 100%; +} + +figure figcaption { + font-style: italic; +} + +/******************* + * Blockquotes * + *******************/ + +blockquote { + margin: 1em 0; + padding-left: 1.5em; + border-left: 0.3rem solid var(--blockquote-border); + font-style: italic; +} + +blockquote code { + font-style: normal; +} + +/************************************************** + * Ferrocene Language Specification extension * + **************************************************/ + +span.spec-paragraph-id { + display: block; + position: absolute; + left: 0; + + color: var(--numbers-fg); + width: var(--numbers-width); + padding-right: 1rem; + text-align: right; +} + +span.spec-paragraph-id { + font-size: 0.8em; +} + +.spec-missing-ref { + color: var(--spec-error-fg); +} + +pre.spec-syntax .spec-syntax-literal { + font-weight: 700; + background: var(--spec-syntax-literal-bg); + border-radius: 0.2em; +} diff --git a/_static/ferrocene.svg b/_static/ferrocene.svg new file mode 100644 index 00000000..db97bda0 --- /dev/null +++ b/_static/ferrocene.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 00000000..a858a410 Binary files /dev/null and b/_static/file.png differ diff --git a/_static/fonts/raleway-400-italic.ttf b/_static/fonts/raleway-400-italic.ttf new file mode 100644 index 00000000..ba0598a9 Binary files /dev/null and b/_static/fonts/raleway-400-italic.ttf differ diff --git a/_static/fonts/raleway-400-italic.ttf.license b/_static/fonts/raleway-400-italic.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-400-italic.woff2 b/_static/fonts/raleway-400-italic.woff2 new file mode 100644 index 00000000..9887c1ee Binary files /dev/null and b/_static/fonts/raleway-400-italic.woff2 differ diff --git a/_static/fonts/raleway-400-italic.woff2.license b/_static/fonts/raleway-400-italic.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-400.ttf b/_static/fonts/raleway-400.ttf new file mode 100644 index 00000000..5428c9c6 Binary files /dev/null and b/_static/fonts/raleway-400.ttf differ diff --git a/_static/fonts/raleway-400.ttf.license b/_static/fonts/raleway-400.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-400.woff2 b/_static/fonts/raleway-400.woff2 new file mode 100644 index 00000000..5a8a2617 Binary files /dev/null and b/_static/fonts/raleway-400.woff2 differ diff --git a/_static/fonts/raleway-400.woff2.license b/_static/fonts/raleway-400.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700-italic.ttf b/_static/fonts/raleway-700-italic.ttf new file mode 100644 index 00000000..9c16440f Binary files /dev/null and b/_static/fonts/raleway-700-italic.ttf differ diff --git a/_static/fonts/raleway-700-italic.ttf.license b/_static/fonts/raleway-700-italic.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700-italic.woff2 b/_static/fonts/raleway-700-italic.woff2 new file mode 100644 index 00000000..4c9eb873 Binary files /dev/null and b/_static/fonts/raleway-700-italic.woff2 differ diff --git a/_static/fonts/raleway-700-italic.woff2.license b/_static/fonts/raleway-700-italic.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700.ttf b/_static/fonts/raleway-700.ttf new file mode 100644 index 00000000..87632314 Binary files /dev/null and b/_static/fonts/raleway-700.ttf differ diff --git a/_static/fonts/raleway-700.ttf.license b/_static/fonts/raleway-700.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700.woff2 b/_static/fonts/raleway-700.woff2 new file mode 100644 index 00000000..c9a77e65 Binary files /dev/null and b/_static/fonts/raleway-700.woff2 differ diff --git a/_static/fonts/raleway-700.woff2.license b/_static/fonts/raleway-700.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/roboto-mono-400-italic.ttf b/_static/fonts/roboto-mono-400-italic.ttf new file mode 100644 index 00000000..4ee4dc49 Binary files /dev/null and b/_static/fonts/roboto-mono-400-italic.ttf differ diff --git a/_static/fonts/roboto-mono-400-italic.ttf.license b/_static/fonts/roboto-mono-400-italic.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-400-italic.woff2 b/_static/fonts/roboto-mono-400-italic.woff2 new file mode 100644 index 00000000..7c0566a5 Binary files /dev/null and b/_static/fonts/roboto-mono-400-italic.woff2 differ diff --git a/_static/fonts/roboto-mono-400-italic.woff2.license b/_static/fonts/roboto-mono-400-italic.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-400.ttf b/_static/fonts/roboto-mono-400.ttf new file mode 100644 index 00000000..7c4ce36a Binary files /dev/null and b/_static/fonts/roboto-mono-400.ttf differ diff --git a/_static/fonts/roboto-mono-400.ttf.license b/_static/fonts/roboto-mono-400.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-400.woff2 b/_static/fonts/roboto-mono-400.woff2 new file mode 100644 index 00000000..dab25851 Binary files /dev/null and b/_static/fonts/roboto-mono-400.woff2 differ diff --git a/_static/fonts/roboto-mono-400.woff2.license b/_static/fonts/roboto-mono-400.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700-italic.ttf b/_static/fonts/roboto-mono-700-italic.ttf new file mode 100644 index 00000000..4bfe29ae Binary files /dev/null and b/_static/fonts/roboto-mono-700-italic.ttf differ diff --git a/_static/fonts/roboto-mono-700-italic.ttf.license b/_static/fonts/roboto-mono-700-italic.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700-italic.woff2 b/_static/fonts/roboto-mono-700-italic.woff2 new file mode 100644 index 00000000..672a1469 Binary files /dev/null and b/_static/fonts/roboto-mono-700-italic.woff2 differ diff --git a/_static/fonts/roboto-mono-700-italic.woff2.license b/_static/fonts/roboto-mono-700-italic.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700.ttf b/_static/fonts/roboto-mono-700.ttf new file mode 100644 index 00000000..900fce68 Binary files /dev/null and b/_static/fonts/roboto-mono-700.ttf differ diff --git a/_static/fonts/roboto-mono-700.ttf.license b/_static/fonts/roboto-mono-700.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700.woff2 b/_static/fonts/roboto-mono-700.woff2 new file mode 100644 index 00000000..9eeebd15 Binary files /dev/null and b/_static/fonts/roboto-mono-700.woff2 differ diff --git a/_static/fonts/roboto-mono-700.woff2.license b/_static/fonts/roboto-mono-700.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 00000000..250f5665 --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 00000000..d96755fd Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 00000000..7107cec9 Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..348ec444 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,7 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #ffffff; } \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 00000000..97d56a74 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,566 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 00000000..aae669d7 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,144 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/associated-items.html b/associated-items.html new file mode 100644 index 00000000..f8be3e00 --- /dev/null +++ b/associated-items.html @@ -0,0 +1,274 @@ + + + + + + + + + + + + 10. Associated Items — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    10. Associated Items

    +

    Syntax

    +
    AssociatedItem ::=
    +    OuterAttributeOrDoc* (AssociatedItemWithVisibility | TerminatedMacroInvocation)
    +
    +AssociatedItemWithVisibility ::=
    +    VisibilityModifier? (
    +        ConstantDeclaration
    +      | FunctionDeclaration
    +      | TypeAliasDeclaration
    +    )
    +

    Legality Rules

    +

    10:1 +An associated item is an item that appears within an +implementation or a trait.

    +

    10:2 +An associated constant is a constant that appears as an +associated item.

    +

    10:3 +An associated function is a function that appears as an +associated item.

    +

    10:4 +An associated type is a type alias that appears as an +associated item.

    +

    10:5 +An associated type shall not be used in the path expression of a +struct expression.

    +

    10:6 +An associated type with a TypeBoundList shall appear only as an +associated trait type.

    +

    10:7 +A generic associated type is an associated type with +generic parameters.

    +

    10:8 +A lifetime parameter of a generic associated type requires a +bound of the form T: 'lifetime, where T is a type parameter +or Self and 'lifetime is the lifetime parameter, when

    + +

    10:12 +An associated implementation constant is an associated constant that +appears within an implementation.

    +

    10:13 +An associated implementation constant shall have a constant +initializer.

    +

    10:14 +An associated implementation function is an associated function that +appears within an implementation.

    +

    10:15 +An associated implementation function shall have a function body.

    +

    10:16 +An associated implementation type is an associated type that appears +within an implementation.

    +

    10:17 +An associated implementation type shall have an initialization type.

    +

    10:18 +An associated trait item is an associated item that appears +within a trait.

    +

    10:19 +An associated trait implementation item is an associated item that +appears within a trait implementation.

    +

    10:20 +An associated trait constant is an associated constant that appears +within a trait.

    +

    10:21 +An associated trait function is an associated function that appears +within a trait.

    +

    10:22 +An associated trait function shall not be subject to keyword const.

    +

    10:23 +Every occurrence of an impl trait type in the return type of an +associated trait function is equivalent to referring to a new +anonymous associated trait type of the implemented trait.

    +

    10:24 +An associated trait type is an associated type that appears within +a trait.

    +

    10:25 +An associated trait type shall not have an initialization type.

    +

    10:26 +An associated trait type has an implicit core::marker::Sized +bound.

    +

    10:27 +An associated trait type of the form

    +
    trait T {
    +    type X: Bound;
    +}
    +
    +
    +

    10:28 +is equivalent to a where clause of the following form:

    +
    trait T where Self::X: Bound {
    +    type X;
    +}
    +
    +
    +

    10:29 +An associated trait implementation function is an associated function +that appears within a trait implementation.

    +

    10:30 +Every occurrence of an impl trait type in the return type of an +associated trait implementation function is equivalent to referring to the +corresponding associated trait type of the corresponding associated +trait function.

    +

    10:31 +A method is an associated function with a self parameter.

    +

    10:32 +The type of a self parameter shall be one of the following:

    + +

    10:37 +The visibility modifier of an associated trait item or associated +trait implementation item is rejected, but may still be consumed by +macros.

    +

    Examples

    +
    trait Greeter {
    +    const MAX_GREETINGS: i32;
    +
    +    fn greet(self, message: &str);
    +}
    +
    +struct Implementor {
    +    delivered_greetings: i32
    +}
    +
    +impl Greeter for Implementor {
    +    const MAX_GREETINGS: i32 = 42;
    +
    +    fn greet(mut self, message: &str) {
    +        if self.delivered_greetings < Self::MAX_GREETINGS {
    +            self.delivered_greetings += 1;
    +            println!("{}", message);
    +        }
    +    }
    +}
    +
    +
    +

    10:38 +Generic associated type with lifetime bound.

    +
    trait LendingIterator {
    +    type Item<'x> where Self: 'x;
    +
    +    fn next<'a>(&'a mut self) -> Self::Item<'a>;
    +}
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/attributes.html b/attributes.html new file mode 100644 index 00000000..1a73cc3a --- /dev/null +++ b/attributes.html @@ -0,0 +1,1649 @@ + + + + + + + + + + + + 13. Attributes — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    13. Attributes

    +

    Syntax

    +
    InnerAttributeOrDoc ::=
    +    InnerAttribute
    +  | InnerBuiltinAttribute
    +  | InnerBlockDoc
    +  | InnerLineDoc
    +
    +InnerAttribute ::=
    +    #![ AttributeContent ]
    +
    +OuterAttributeOrDoc ::=
    +    OuterAttribute
    +  | OuterBuiltinAttribute
    +  | OuterBlockDoc
    +  | OuterLineDoc
    +
    +OuterAttribute ::=
    +    #[ AttributeContent ]
    +
    +AttributeContent ::=
    +    SimplePath AttributeInput?
    +
    +AttributeInput ::=
    +    ( TokenTree* )
    +  | = Expression
    +
    +AttributeContentList ::=
    +    AttributeContent (, AttributeContent)* ,?
    +

    Legality Rules

    +

    13:1 +An attribute is a general, free-form metadatum that is interpreted based on +its name, convention, language, and tool.

    +

    13:2 +An inner attribute is an attribute that applies to an enclosing +item.

    +

    13:3 +An outer attribute is an attribute that applies to a subsequent +item.

    +

    13:4 +An attribute content is a construct that provides the content of +an attribute.

    +

    Examples

    +
    #[cfg[target_os = "linux"]]
    +mod linux_only_module {
    +    #![allow(unused_variables)]
    +
    +    let unused = ();
    +}
    +
    +
    +
    +

    13.1. Attribute Properties

    +

    Legality Rules

    +

    13.1:1 +An active attribute is an attribute that is removed from the item +it decorates.

    +

    13.1:2 +An inert attribute is an attribute that remains with the item +it decorates.

    +

    13.1:3 +The following attributes are active attributes:

    + +

    13.1:7 +Attribute test is an inert attribute when compiling for testing +purposes, otherwise it is an active attribute.

    +

    13.1:8 +All remaining attributes are inert attributes.

    +
    +
    +

    13.2. Built-in Attributes

    +

    Syntax

    +
    InnerBuiltinAttribute ::=
    +    #![ BuiltinAttributeContent ]
    +
    +OuterBuiltinAttribute ::=
    +    #[ BuiltinAttributeContent ]
    +
    +BuiltinAttributeContent ::=
    +    AutomaticallyDerivedContent
    +  | CfgAttrContent
    +  | CfgContent
    +  | ColdContent
    +  | CrateNameContent
    +  | CrateTypeContent
    +  | DeriveContent
    +  | DocContent
    +  | ExportNameContent
    +  | GlobalAllocatorContent
    +  | InlineContent
    +  | IgnoreContent
    +  | LinkContent
    +  | LinkNameContent
    +  | LinkSectionContent
    +  | LinkOrdinalContent
    +  | MacroExportContent
    +  | MacroUseContent
    +  | NoBinutilsContent
    +  | NoImplicitPreludeContent
    +  | NoLinkContent
    +  | NoMainContent
    +  | NoMangleContent
    +  | NonExhaustiveContent
    +  | NoStdContent
    +  | PanicHandlerContent
    +  | PathContent
    +  | ProcMacroAttributeContent
    +  | ProcMacroContent
    +  | ProcMacroDeriveContent
    +  | RecursionLimitContent
    +  | ReprContent
    +  | ShouldPanicContent
    +  | TargetFeatureContent
    +  | TestContent
    +  | TrackCallerContent
    +  | TypeLengthLimitContent
    +  | UsedContent
    +  | WindowsSubsystemContent
    +

    Legality Rules

    +

    13.2:1 +A built-in attribute is a language-defined attribute.

    +

    13.2:2 +The following built-in attributes are code generation attributes:

    + +

    13.2:8 +The following built-in attributes are +conditional compilation attributes:

    + +

    13.2:11 +The following built-in attributes are derivation attributes:

    + +

    13.2:14 +The following built-in attributes are diagnostics attributes:

    + +

    13.2:21 +The following built-in attributes are documentation attributes:

    + +

    13.2:23 +The following built-in attributes are +foreign function interface attributes:

    + +

    13.2:35 +The following built-in attributes are limits attributes:

    + +

    13.2:38 +The following built-in attributes are macro attributes:

    + +

    13.2:44 +The following built-in attributes are modules attributes:

    + +

    13.2:46 +The following built-in attributes are prelude attributes:

    + +

    13.2:49 +The following built-in attributes are runtime attributes:

    + +

    13.2:53 +The following built-in attributes are testing attributes:

    + +

    13.2:57 +The following built-in attributes are type attributes:

    + +
    +

    13.2.1. Code Generation Attributes

    +
    +

    13.2.1.1. Attribute cold

    +

    Syntax

    +
    ColdContent ::=
    +    cold
    +

    Legality Rules

    +

    13.2.1.1:1 +Attribute cold shall apply to functions.

    +

    13.2.1.1:2 +Attribute cold indicates that its related function is unlikely +to be called.

    +

    Examples

    +
    #[cold]
    +fn rarely_called_function () {}
    +
    +
    +
    +
    +

    13.2.1.2. Attribute inline

    +

    Syntax

    +
    InlineContent ::=
    +    inline InlineHint?
    +
    +InlineHint ::=
    +    ( (always | never) )
    +

    Legality Rules

    +

    13.2.1.2:1 +Attribute inline shall apply to closure expressions and +functions.

    +

    13.2.1.2:2 +Attribute inline marks its related function as inlined. +The process of replacing a call expression to an inlined function +with the function body is referred to as inlining.

    +

    13.2.1.2:3 +Attribute inline without an InlineHint suggests to a tool that +inlining should be performed.

    +

    13.2.1.2:4 +Attribute inline with InlineHint always suggests to a tool +that inlining should always be performed.

    +

    13.2.1.2:5 +Attribute inline with InlineHint never suggests to a tool +that inlining should never be performed.

    +

    13.2.1.2:6 +A tool is not obliged to perform inlining.

    +

    Examples

    +
    #[inline]
    +fn suggests_inlining() {}
    +
    +#[inline(always)]
    +fn requests_consistent_inlining() {}
    +
    +#[inline(never)]
    +fn requests_suppressed_inlining() {}
    +
    +
    +
    +
    +

    13.2.1.3. Attribute no_builtins

    +

    Syntax

    +
    NoBinutilsContent ::=
    +    no_builtins
    +

    Legality Rules

    +

    13.2.1.3:1 +Attribute no_builtins shall apply to the crate root module.

    +

    13.2.1.3:2 +Attribute no_builtins prevents the tool from replacing certain code +patterns with calls to intrinsic functions.

    +

    Examples

    +
    #![no_builtins]
    +
    +
    +

    13.2.1.4. Attribute target_feature

    +

    Syntax

    +
    TargetFeatureContent ::=
    +    target_feature ( enable = " FeatureList " )
    +
    +FeatureList ::=
    +    Feature (, Feature)*
    +
    +Feature ::=
    +    adx
    +  | aes
    +  | avx
    +  | avx2
    +  | bmi1
    +  | bmi2
    +  | fma
    +  | fxsr
    +  | lzcnt
    +  | pclmulqdq
    +  | popcnt
    +  | rdrand
    +  | rdseed
    +  | sha
    +  | sse
    +  | sse2
    +  | sse3
    +  | sse4.1
    +  | sse4.2
    +  | ssse3
    +  | xsave
    +  | xsavec
    +  | xsaveopt
    +  | xsaves
    +

    Legality Rules

    +

    13.2.1.4:1 +Attribute target_feature shall apply to unsafe functions.

    +

    13.2.1.4:2 +Attribute target_feature enables target architecture features for its +related function.

    +

    13.2.1.4:3 +The target architecture features are as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    13.2.1.4:4

    Feature

    implicitly enables

    Description

    13.2.1.4:5

    adx

    Intel Multi-Precision Add-Cary Instruction Extensions

    13.2.1.4:6

    aes

    sse2

    Advanced Encryption Standard

    13.2.1.4:7

    avx

    sse4.2

    Advanced Vector Extensions

    13.2.1.4:8

    avx2

    avx

    Advanced Vector Extensions 2

    13.2.1.4:9

    bmi1

    Bit Manipulation Instruction Sets

    13.2.1.4:10

    bmi2

    Bit Manipulation Instruction Sets 2

    13.2.1.4:11

    fma

    avx

    Three-operand fused multiply-add

    13.2.1.4:12

    fxsr

    Save and restore x87 FPU, MMX technology, and SSE state

    13.2.1.4:13

    lzcnt

    Leading zeros count

    13.2.1.4:14

    pclmulqdq

    sse2

    Packed carry-less multiplication quadword

    13.2.1.4:15

    popcnt

    Count of bits set to 1

    13.2.1.4:16

    rdrand

    Read random number

    13.2.1.4:17

    rdseed

    Read random seed

    13.2.1.4:18

    sha

    sse2

    Secure Hash Algorithm

    13.2.1.4:19

    sse

    Streaming SIMD Extensions

    13.2.1.4:20

    sse2

    sse

    Streaming SIMD Extensions 2

    13.2.1.4:21

    sse3

    sse2

    Streaming SIMD Extensions 3

    13.2.1.4:22

    sse4.1

    sse3

    Streaming SIMD Extensions 4.1

    13.2.1.4:23

    sse4.2.

    sse4.1

    Streaming SIMD Extensions 4.2

    13.2.1.4:24

    ssse3

    sse3

    Supplemental Streaming SIMD Extensions 3

    13.2.1.4:25

    xsave

    Save processor extended status

    13.2.1.4:26

    xsavec

    Save processor extended status with compaction

    13.2.1.4:27

    xsaveopt

    Save processor extended states optimized

    13.2.1.4:28

    xsaves

    Save processor extended states supervizor

    +

    Undefined Behavior

    +

    13.2.1.4:29 +It is undefined behavior to execute a program compiled with target architecture +features that are not supported.

    +

    Examples

    +
    #[target_feature(enable="bmi1,sse4.1")]
    +fn requires_target_architecture_features () {}
    +
    +
    +
    +
    +

    13.2.1.5. Attribute track_caller

    +

    Syntax

    +
    TrackCallerContent ::=
    +    track_caller
    +

    Legality Rules

    +

    13.2.1.5:1 +Attribute track_caller shall apply to non-main functions with +ABI “Rust”.

    +

    13.2.1.5:2 +Attribute track_caller allows the function body of its +related function to obtain a core::panic::Location which indicates +the topmost untracked caller that ultimately led to the invocation of the +function.

    +

    13.2.1.5:3 +A tool is not required to implement this indication in an effective manner.

    +

    13.2.1.5:4 +When applied to an associated trait function, attribute +track_caller applies to all associated functions of the +implemented trait. If the associated trait function has a default +implementation, then the attribute applies to all overriding +functions.

    +

    Undefined Behavior

    +

    13.2.1.5:5 +It is undefined behavior when attribute track_caller applies to an +external function but does not apply to all linked implementations.

    +

    13.2.1.5:6 +It is undefined behavior when attribute track_caller is applied to +an exported function but the external function it links to is missing +the attribute.

    +

    Examples

    +
    #[track_caller]
    +fn who_called_me () {}
    +
    +
    +
    +
    +
    +

    13.2.2. Conditional Compilation Attributes

    +
    +

    13.2.2.1. Attribute cfg

    +

    Syntax

    +
    CfgContent ::=
    +    cfg ( ConfigurationPredicate )
    +
    +ConfigurationPredicate ::=
    +    ConfigurationOption
    +  | ConfigurationPredicateAll
    +  | ConfigurationPredicateAny
    +  | ConfigurationPredicateNot
    +
    +ConfigurationOption ::=
    +    ConfigurationOptionName ConfigurationOptionValue?
    +
    +ConfigurationOptionName ::=
    +    Identifier
    +
    +ConfigurationOptionValue ::=
    +    = StringLiteral
    +
    +ConfigurationPredicateAll ::=
    +    all ( ConfigurationPredicateList? )
    +
    +ConfigurationPredicateAny ::=
    +    any ( ConfigurationPredicateList? )
    +
    +ConfigurationPredicateNot ::=
    +    not ( ConfigurationPredicate )
    +
    +ConfigurationPredicateList ::=
    +    ConfigurationPredicate (, ConfigurationPredicate)* ,?
    +

    Legality Rules

    +

    13.2.2.1:1 +Attribute cfg enables conditional compilation.

    +

    13.2.2.1:2 +A configuration predicate is a construct that evaluates statically +to either true or false, and controls conditional compilation.

    +

    13.2.2.1:3 +An all configuration predicate is a configuration predicate that +models existential quantifier ALL.

    +

    13.2.2.1:4 +An all configuration predicate evaluates statically to true when either +all nested configuration predicates evaluate to true, or there are no nested +configuration predicates.

    +

    13.2.2.1:5 +An any configuration predicate is a configuration predicate that +models existential quantifier ANY.

    +

    13.2.2.1:6 +An any configuration predicate evaluates statically to true when any +nested configuration predicate evaluates to true.

    +

    13.2.2.1:7 +A not configuration predicate is a configuration predicate that +negates the Boolean value of its nested configuration predicate.

    +

    13.2.2.1:8 +A not configuration predicate evaluates statically to true when its +nested configuration predicate evaluates to false.

    +

    13.2.2.1:9 +The evaluation of a configuration option is tool-defined.

    +

    Examples

    +
    #[cfg(all(unix, target_pointer_width = "32"))]
    +fn on_32bit_unix() {}
    +
    +
    +
    +
    +

    13.2.2.2. Attribute cfg_attr

    +

    Syntax

    +
    CfgAttrContent ::=
    +    cfg_attr ( ConfigurationPredicate , AttributeContentList )
    +

    Legality Rules

    +

    13.2.2.2:1 +Attribute cfg_attr enables conditional compilation.

    +

    13.2.2.2:2 +An attribute cfg_attr where the related +configuration predicate evaluates to true is replaced with a new +attribute for each AttributeContent enumerated in the +attribute's AttributeContentList.

    +

    Examples

    +
    #[cfg_attr(windows, path="windows.rs")]
    +mod os;
    +
    +
    +
    +
    +
    +

    13.2.3. Derivation Attributes

    +
    +

    13.2.3.1. Attribute automatically_derived

    +

    Syntax

    +
    AutomaticallyDerivedContent ::=
    +    automatically_derived
    +

    Legality Rules

    +

    13.2.3.1:1 +Attribute automatically_derived is automatically added to +implementations that are created by attribute derive for +built-in traits.

    +
    +
    +

    13.2.3.2. Attribute derive

    +

    Syntax

    +
    DeriveContent ::=
    +    derive ( SimplePathList? )
    +

    Legality Rules

    +

    13.2.3.2:1 +Attribute derive shall apply to abstract data types.

    +

    13.2.3.2:2 +Attribute derive lists derive macros for automatic +implementation by a tool.

    +

    Examples

    +
    #[derive(PartialEq)]
    +struct S<T> {
    +    field: T
    +}
    +
    +
    +

    13.2.3.2:3 +Attribute derive causes trait core::cmp::PartialEq to be +automatically implemented for struct S<T> as follows:

    +
    impl<T: core::cmp::PartialEq> core::cmp::PartialEq for S<T> {
    +    fn eq(&self, other: &S<T>) -> bool {
    +       self.field == other.field
    +    }
    +
    +    fn ne(&self, other: &S<T>) -> bool {
    +       self.field != other.field
    +    }
    +}
    +
    +
    +
    +
    +
    +

    13.2.4. Diagnostics Attributes

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    13.2.4:1 +Diagnostic attributes are related to linting, and are not defined in +this document.

    +
    +
    +

    13.2.5. Documentation Attributes

    +
    +

    13.2.5.1. Attribute doc

    +

    Syntax

    +
    DocContent ::=
    +    doc DocInput
    +
    +DocInput ::=
    +    = MacroInvocation
    +  | = StringLiteral
    +  | ( TokenTree* )
    +

    Legality Rules

    +

    13.2.5.1:1 +Attribute doc associates documentation with a construct.

    +

    Examples

    +
    #![doc = "This is a doc comment written as an attribute."]
    +
    +
    +
    +
    +
    +

    13.2.6. Foreign Function Interface Attributes

    +
    +

    13.2.6.1. Attribute crate_name

    +

    Syntax

    +
    CrateNameContent ::=
    +    crate_name = StringLiteral
    +

    Legality Rules

    +

    13.2.6.1:1 +Attribute crate_name shall apply to the crate root module.

    +

    13.2.6.1:2 +Attribute crate_name shall specify the name of the related +crate.

    +

    Examples

    +
    #![crate_name = "factories"]
    +
    +
    +
    +
    +

    13.2.6.2. Attribute crate_type

    +

    Syntax

    +
    CrateTypeContent ::=
    +    crate_type = " CrateType "
    +
    +CrateType ::=
    +    bin
    +  | cdylib
    +  | dylib
    +  | lib
    +  | proc-macro
    +  | rlib
    +  | staticlib
    +

    Legality Rules

    +

    13.2.6.2:1 +Attribute crate_type shall apply to the crate root module.

    +

    13.2.6.2:2 +Attribute crate_type shall specify the linkage type of the +crate it appears in.

    +

    Examples

    +
    #![crate_type = "cdylib"]
    +
    +
    +
    +
    +

    13.2.6.3. Attribute export_name

    +

    Syntax

    +
    ExportNameContent ::=
    +    export_name = StringLiteral
    +

    Legality Rules

    +

    13.2.6.3:1 +Attribute export_name shall apply to functions and +statics.

    +

    13.2.6.3:2 +Attribute export_name shall specify the exported symbol of the +related function or static.

    +

    Examples

    +
    #[export_name = "exported_symbol"]
    +pub fn rust_name() {}
    +
    +
    +
    + + + + + +
    +

    13.2.6.9. Attribute no_main

    +

    Syntax

    +
    NoMainContent ::=
    +    no_main
    +

    Legality Rules

    +

    13.2.6.9:1 +Attribute no_main shall apply to the crate root module.

    +

    13.2.6.9:2 +Attribute no_main indicates that the symbols of the +main function will not be present in a binary.

    +

    Examples

    +
    #![no_main]
    +
    +
    +
    +
    +

    13.2.6.10. Attribute no_mangle

    +

    Syntax

    +
    NoMangleContent ::=
    +    no_mangle
    +

    Legality Rules

    +

    13.2.6.10:1 +Attribute no_mangle has no effect on constructs other than +functions and statics.

    +

    13.2.6.10:2 +Attribute no_mangle indicates that the name of the related +function or static will be used as the symbol for that function +or static.

    +

    13.2.6.10:3 +Attribute no_mangle causes the related function or static to +be publicly exported from the produced library or object file.

    +

    13.2.6.10:4 +An exported function is a function subject to attribute +no_mangle.

    +

    13.2.6.10:5 +An exported static is a static subject to attribute +no_mangle.

    +

    Examples

    +
    #[no_mangle]
    +pub fn symbol_name() {}
    +
    +
    +
    +
    +

    13.2.6.11. Attribute repr

    +

    Syntax

    +
    ReprContent ::=
    +    repr ( Representation )
    +
    +Representation ::=
    +    RepresentationKind Alignment?
    +
    +RepresentationKind ::=
    +    PrimitiveRepresentation
    +  | C
    +  | Rust
    +  | transparent
    +
    +Alignment ::=
    +    AlignmentDecrease
    +  | AlignmentIncrease
    +
    +PrimitiveRepresentation ::=
    +    i8
    +  | i16
    +  | i32
    +  | i64
    +  | i128
    +  | isize
    +  | u8
    +  | u16
    +  | u32
    +  | u64
    +  | u128
    +  | usize
    +
    +AlignmentDecrease ::=
    +    packed
    +
    +AlignmentIncrease ::=
    +    align ( DecimalLiteral )
    +

    Legality Rules

    +

    13.2.6.11:1 +Attribute repr shall apply to abstract data types.

    +

    13.2.6.11:2 +Attribute repr shall indicate the type representation of the +related type.

    +

    Examples

    +
    #[repr(C, align(8))]
    +struct c_struct {
    +    first_field: i16,
    +    second_field: i8
    +}
    +
    +
    +
    +
    +

    13.2.6.12. Attribute used

    +

    Syntax

    +
    UsedContent ::=
    +    used
    +

    Legality Rules

    +

    13.2.6.12:1 +Attribute used shall apply to statics.

    +

    13.2.6.12:2 +Attribute used forces a tool to keep the related static in the +output object file even if the static is not used or referenced by other +items in the crate.

    +

    Examples

    +
    #[used]
    +pub static THE_ANSWER: u32 = 42;
    +
    +
    +
    +
    +
    +

    13.2.7. Limits Attributes

    +
    +

    13.2.7.1. Attribute recursion_limit

    +

    Syntax

    +
    RecursionLimitContent ::=
    +    recursion_limit = " DecimalLiteral "
    +

    Legality Rules

    +

    13.2.7.1:1 +Attribute recursion_limit shall apply to the crate root module.

    +

    13.2.7.1:2 +Attribute recursion_limit sets the maximum depth of +macro expansion and auto-dereferencing.

    +

    Examples

    +
    #![recursion_limit = "42"]
    +
    +
    +
    +
    +

    13.2.7.2. Attribute type_length_limit

    +

    Syntax

    +
    TypeLengthLimitContent ::=
    +    type_length_limit = " DecimalLiteral "
    +

    Legality Rules

    +

    13.2.7.2:1 +Attribute type_length_limit shall apply to the +crate root module.

    +

    13.2.7.2:2 +Attribute type_length_limit sets the maximum number of +generic substitutions for type parameters when constructing a +concrete type.

    +

    Examples

    +
    #![type_length_limit = "42"]
    +
    +
    +
    +
    +
    +

    13.2.8. Macros Attributes

    +
    +

    13.2.8.1. Attribute macro_export

    +

    Syntax

    +
    MacroExportContent ::=
    +    macro_export
    +

    Legality Rules

    +

    13.2.8.1:1 +Attribute macro_export shall apply to declarative macros.

    +

    13.2.8.1:2 +Attribute macro_export changes the visibility of the related +declarative macro to public visibility and introduces the name +of the declarative macro into the item scope of the +crate root module.

    +

    Examples

    +
    #[macro_export]
    +macro_rules! m {
    +    () => {};
    +}
    +
    +
    +
    +
    +

    13.2.8.2. Attribute macro_use

    +

    Syntax

    +
    MacroUseContent ::=
    +    macro_use ImportedMacroList?
    +
    +ImportedMacroList ::=
    +    ( IdentifierList )
    +

    Legality Rules

    +

    13.2.8.2:1 +Attribute macro_use shall apply to crate imports and +modules.

    +

    13.2.8.2:2 +An ImportedMacroList enumerates macros-to-import. A macro-to-import shall +be subject to attribute macro_export.

    +

    13.2.8.2:3 +When applied to a crate import, attribute macro_use +imports from the related crate either:

    +
      +
    • 13.2.8.2:4 +The enumerated macros-to-import, or

    • +
    • 13.2.8.2:5 +If no macros-to-import have been specified, all macros subject to +attribute macro_export.

    • +
    +

    13.2.8.2:6 +When applied to a module, attribute macro_use extends the +textual macro scope of the related macro.

    +

    Examples

    +
    #[macro_use(first_macro, second_macro)]
    +extern crate macros;
    +#[macro_use]
    +mod module {}
    +
    +
    +
    +
    +

    13.2.8.3. Attribute proc_macro

    +

    Syntax

    +
    ProcMacroContent ::=
    +    proc_macro
    +

    Legality Rules

    +

    13.2.8.3:1 +Attribute proc_macro shall apply to public functions in the +crate root module of a proc-macro crate.

    +

    13.2.8.3:2 +Attribute proc_macro turns the related function into a +function-like macro.

    +

    Examples

    +
    #[proc_macro]
    +pub fn make_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    13.2.8.4. Attribute proc_macro_attribute

    +
    ProcMacroAttributeContent ::=
    +    proc_macro_attribute
    +

    Legality Rules

    +

    13.2.8.4:1 +Attribute proc_macro_attribute shall apply to public functions +in the crate root module of a proc-macro crate.

    +

    13.2.8.4:2 +Attribute proc_macro_attribute turns the related function into +an attribute macro.

    +

    Examples

    +
    #[proc_macro_attribute]
    +pub fn output_and_return_item
    +    (attr: TokenStream, item: TokenStream) -> TokenStream
    +{
    +    println!("attr: \"{}\"", attr.to_string());
    +    println!("item: \"{}\"", item.to_string());
    +    item
    +}
    +
    +
    +
    +
    +

    13.2.8.5. Attribute proc_macro_derive

    +

    Syntax

    +
    ProcMacroDeriveContent ::=
    +    proc_macro_derive ( DeriveName (, HelperAttributeList)? )
    +
    +DeriveName ::=
    +    Name
    +
    +HelperAttributeList ::=
    +    attributes ( IdentifierList )
    +

    Legality Rules

    +

    13.2.8.5:1 +Attribute proc_macro_derive shall apply to public functions in +the crate root module of a proc-macro crate.

    +

    13.2.8.5:2 +Attribute proc_macro_derive turns the related function into a +derive macro, where DeriveName defines the name of the +derive macro available to attribute derive.

    +

    13.2.8.5:3 +The HelperAttributeList declares the derive helper attributes of +the derive macro.

    +

    Examples

    +
    #[proc_macro_derive(Answer, attributes(marker))]
    +pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +#[derive(Answer)]
    +struct S {
    +    #[marker] field: ()
    +}
    +
    +
    +
    +
    +
    +

    13.2.9. Modules Attributes

    +
    +

    13.2.9.1. Attribute path

    +

    Syntax

    +
    PathContent ::=
    +    path = StringLiteral
    +

    Legality Rules

    +

    13.2.9.1:1 +Attribute path shall apply to modules.

    +

    13.2.9.1:2 +Attribute path specifies the module path of the respective +module as a string literal.

    +

    13.2.9.1:3 +A tool is free to define the format of a module path.

    +

    Examples

    +
    #[path = "path/to/inline_module"]
    +mod inline_module {
    +    #[path = "path/to/outline_module"]
    +    mod outline_module;
    +}
    +
    +
    +
    +
    +
    +

    13.2.10. Prelude Attributes

    +
    +

    13.2.10.1. Attribute no_implicit_prelude

    +

    Syntax

    +
    NoImplicitPreludeContent ::=
    +    no_implicit_prelude
    +

    Legality Rules

    +

    13.2.10.1:1 +The inner attribute version of attribute no_implicit_prelude +shall apply to the crate root module or to modules.

    +

    13.2.10.1:2 +The outer attribute version of attribute no_implicit_prelude +shall apply to modules.

    +

    13.2.10.1:3 +Attribute no_implicit_prelude prevents the import of the +external prelude, the standard library prelude, and the tool +prelude.

    +

    Examples

    +
    #[no_implicit_prelude]
    +mod module {}
    +
    +
    +
    +
    +

    13.2.10.2. Attribute no_std

    +

    Syntax

    +
    NoStdContent ::=
    +    no_std
    +

    Legality Rules

    +

    13.2.10.2:1 +Attribute no_std shall apply to the crate root module.

    +

    13.2.10.2:2 +Attribute no_std has the following effects:

    + +

    Examples

    +
    #![no_std]
    +
    +
    +
    +
    +
    +

    13.2.11. Runtime Attributes

    +
    +

    13.2.11.1. Attribute global_allocator

    +

    Syntax

    +
    GlobalAllocatorContent ::=
    +    global_allocator
    +

    Legality Rules

    +

    13.2.11.1:1 +Attribute global_allocator shall apply to statics whose +types implement the core::alloc::GlobalAlloc trait.

    +

    13.2.11.1:2 +Attribute global_allocator sets the global allocator to the related +static.

    +

    Examples

    +
    #[global_allocator]
    +pub static THE_ANSWER: u32 = 42;
    +
    +
    +
    +
    +

    13.2.11.2. Attribute panic_handler

    +

    Syntax

    +
    PanicHandlerContent ::=
    +    panic_handler
    +

    Legality Rules

    +

    13.2.11.2:1 +Attribute panic_handler shall apply to functions with the +following restrictions:

    + +

    13.2.11.2:9 +Attribute panic_handler indicates that its related function +defines the behavior of panics.

    +

    13.2.11.2:10 +A crate graph shall contain exactly one function subject to +attribute panic_handler.

    +

    Examples

    +
    #[panic_handler]
    +fn panic(info: &core::panic::PanicInfo) -> ! {}
    +
    +
    +
    +
    +

    13.2.11.3. Attribute windows_subsystem

    +

    Syntax

    +
    WindowsSubsystemContent ::=
    +    windows_subsystem = " SubsystemKind "
    +
    +SubsystemKind ::=
    +    console
    +  | windows
    +

    Legality Rules

    +

    13.2.11.3:1 +Attribute windows_subsystem shall apply to the crate root module +of a binary crate.

    +

    13.2.11.3:2 +Attribute windows_subsystem specifies the subsystem on Windows.

    +

    13.2.11.3:3 +If attribute windows_subsystem is missing, the subsystem of the +related binary crate defaults to console.

    +

    Examples

    +
    #![windows_subsystem = "console"]
    +
    +
    +
    +
    +
    +

    13.2.12. Testing Attributes

    +
    +

    13.2.12.1. Attribute ignore

    +

    Syntax

    +
    IgnoreContent ::=
    +    ignore IgnoreReason?
    +
    +IgnoreReason ::=
    +    = StringLiteral
    +

    Legality Rules

    +

    13.2.12.1:1 +Attribute ignore shall apply to testing functions.

    +

    13.2.12.1:2 +Attribute ignore prevents the execution of its related +testing function.

    +

    Examples

    +
    #[test]
    +#[ignore = "not implemented yet"]
    +fn unit_testing_function() {}
    +
    +
    +
    +
    +

    13.2.12.2. Attribute should_panic

    +

    Syntax

    +
    ShouldPanicContent ::=
    +    should_panic ExpectedPanicMessage?
    +
    +ExpectedPanicMessage ::=
    +    ( expected = StringLiteral )
    +

    Legality Rules

    +

    13.2.12.2:1 +Attribute should_panic shall apply to testing functions.

    +

    13.2.12.2:2 +Attribute should_panic indicates that for the related +testing function to pass, it should panic.

    +

    13.2.12.2:3 +If ExpectedPanicMessage is specified, then the related +testing function passes only when the panic message contains the +ExpectedPanicMessage.

    +

    Examples

    +
    #[test]
    +#[should_panic(expected = "did not get meaning of life")]
    +fn test_meaning_of_life() {
    +    assert_eq!(meaning_of_life(), 42, "did not get meaning of life");
    +}
    +
    +
    +
    +
    +

    13.2.12.3. Attribute test

    +

    Syntax

    +
    TestContent ::=
    +    test
    +

    Legality Rules

    +

    13.2.12.3:1 +Attribute test shall apply to functions that:

    + +

    13.2.12.3:7 +Attribute test indicates that the respective function is a +testing function.

    +

    13.2.12.3:8 +A testing function that returns the unit type passes when it +terminates and does not panic.

    +

    13.2.12.3:9 +A testing function that returns core::result::Result<(), E> passes when +it returns core::result::Result::OK(()).

    +

    13.2.12.3:10 +A testing function that does not terminate shall pass and fail according to +the tool.

    +

    Examples

    +
    #[test]
    +fn test_the_thing() -> core::result::Result<()> {
    +    let input = create_input()?;
    +    do_the_thing(&input)?;
    +    core::result::Result::Ok(());
    +}
    +
    +
    +
    +
    +
    +

    13.2.13. Type Attributes

    +
    +

    13.2.13.1. Attribute non_exhaustive

    +

    Syntax

    +
    NonExhaustiveContent ::=
    +    non_exhaustive
    +

    Legality Rules

    +

    13.2.13.1:1 +Attribute non_exhaustive shall apply to enum types, +enum variants, and struct types.

    +

    13.2.13.1:2 +Attribute non_exhaustive indicates that the related +abstract data type or enum variant may have more fields or +enum variants added in the future. A type subject to attribute +non_exhaustive is referred to as a non-exhaustive type.

    +

    13.2.13.1:3 +A non-exhaustive type shall not be constructed outside of its defining +crate.

    +

    13.2.13.1:4 +An enum variant subject to attribute non_exhaustive is referred +to as a non-exhaustive variant.

    +

    13.2.13.1:5 +A non-exhaustive variant shall not be constructed outside of its defining +crate.

    +

    13.2.13.1:6 +Pattern matching a non-exhaustive variant shall require a +struct pattern with a rest pattern outside its defining crate.

    +

    13.2.13.1:7 +Pattern matching a non-exhaustive variant does not contribute towards +the exhaustiveness of match arms.

    +

    Examples

    +
    #[non_exhaustive]
    +enum enum_with_future_variants {
    +    Variant
    +}
    +
    +enum enum_variants_with_future_fields {
    +    #[non_exhaustive] Send { from: u32, to: u32 },
    +    #[non_exhaustive] Quit
    +}
    +
    +#[non_exhaustive]
    +struct struct_with_future_fields {
    +    field: u32
    +}
    +
    +
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/concurrency.html b/concurrency.html new file mode 100644 index 00000000..4a16d594 --- /dev/null +++ b/concurrency.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + 17. Concurrency — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    17. Concurrency

    +

    17:1 +The Rust programming language provides features for concurrent programming +without data races, whose rules are presented in this chapter.

    +

    Legality Rules

    +

    17:2 +A data race is a scenario where two or more threads access a shared memory +location concurrently without any synchronization, where one of the accesses is +a modification.

    +

    Undefined Behavior

    +

    17:3 +It is undefined behavior if two or more threads engage in a data race.

    +
    +

    17.1. Send and Sync

    +

    Legality Rules

    +

    17.1:1 +The Rust programming language provides the core::marker::Send and +core::marker::Sync traits for preventing data races at the +type level.

    +

    17.1:2 +A send type is a type that implements the core::marker::Send +trait.

    +

    17.1:3 +An abstract data type automatically implements the +core::marker::Send trait if the types of all its +fields are send types.

    +

    17.1:4 +A send type shall have values that are safe to transfer across +thread boundaries.

    +

    17.1:5 +A sync type is a type that implements the core::marker::Sync +trait.

    +

    17.1:6 +An abstract data type automatically implements the +core::marker::Sync trait if the types of all its +fields are sync types.

    +

    17.1:7 +A sync type shall have values that are allowed to be shared across +multiple threads at any given time without incurring data races.

    +
    +
    +

    17.2. Atomics

    +

    Legality Rules

    +

    17.2:1 +An atomic type is a type defined in module +core::sync::atomic. Atomic types provide primitive shared-memory +communication between threads.

    +

    17.2:2 +Atomic types are related to types as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    17.2:3

    Type

    Atomic Type

    17.2:4

    bool

    core::sync::atomic::AtomicBool

    17.2:5

    i8

    core::sync::atomic::AtomicI8

    17.2:6

    i16

    core::sync::atomic::AtomicI16

    17.2:7

    i32

    core::sync::atomic::AtomicI32

    17.2:8

    i64

    core::sync::atomic::AtomicI64

    17.2:9

    isize

    core::sync::atomic::AtomicIsize

    17.2:10

    *mut T

    core::sync::atomic::AtomicPtr

    17.2:11

    u8

    core::sync::atomic::AtomicU8

    17.2:12

    u16

    core::sync::atomic::AtomicU16

    17.2:13

    u32

    core::sync::atomic::AtomicU32

    17.2:14

    u64

    core::sync::atomic::AtomicU64

    17.2:15

    usize

    core::sync::atomic::AtomicUsize

    +
    +
    +

    17.3. Asynchronous Computation

    +

    Legality Rules

    +

    17.3:1 +The Rust programming language provides asynchronous computation through +module core::task and the core::future::Future trait.

    +

    17.3:2 +A future represents a value of a type that implements the +core::future::Future trait which may not have finished computing +yet.

    +

    17.3:3 +The computed value of a future is obtained by using an +await expression or by invoking core::future::Future::poll.

    +

    17.3:4 +core::future::Future::poll shall not be invoked on a future that has +already returned core::task::Poll::Ready.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/entities-and-resolution.html b/entities-and-resolution.html new file mode 100644 index 00000000..85740c4d --- /dev/null +++ b/entities-and-resolution.html @@ -0,0 +1,1617 @@ + + + + + + + + + + + + 14. Entities and Resolution — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    14. Entities and Resolution

    +
    +

    14.1. Entities

    +

    Syntax

    +
    Name ::=
    +    Identifier
    +

    Legality Rules

    +

    14.1:1 +An entity is a construct that can be referred to within program text, +usually via a field access expression or a path.

    +

    14.1:2 +A name is an identifier that refers to an entity.

    +

    14.1:3 +A declaration is a construct that introduces a name for an +entity.

    +

    14.1:4 +An explicitly declared entity is an entity that has a +declaration. The following entities are +explicitly declared entities:

    + +

    14.1:22 +An implicitly declared entity is an entity that lacks an explicit +declaration. The following entities are +implicitly declared entities:

    + +
    +
    +

    14.2. Visibility

    +

    Syntax

    +
    VisibilityModifier ::=
    +    CratePublicModifier
    +  | SelfPublicModifier
    +  | SimplePathPublicModifier
    +  | SimplePublicModifier
    +  | SuperPublicModifier
    +
    +CratePublicModifier ::=
    +    pub ( crate )
    +
    +SelfPublicModifier ::=
    +    pub ( self )
    +
    +SimplePathPublicModifier ::=
    +    pub ( in SimplePath )
    +
    +SimplePublicModifier ::=
    +    pub
    +
    +SuperPublicModifier ::=
    +    pub ( super )
    +

    Legality Rules

    +

    14.2:1 +Visibility is a property of fields and items that determines +which modules can refer to the name of the field or item.

    +

    14.2:2 +Public visibility is a kind of visibility that allows for a name +to be referred to from arbitrary module M as long as the ancestor +modules of the related entity can be referred to from M.

    +

    14.2:3 +Private visibility is a kind of visibility that allows a name +to be referred to only by the current module of the entity, and its +descendant modules.

    +

    14.2:4 +A visibility modifier sets the visibility of a name.

    +

    14.2:5 +A crate public modifier is a visibility modifier that grants a +name public visibility within the current crate only.

    +

    14.2:6 +A self public modifier is a visibility modifier that grants a +name private visibility. A self public modifier is equivalent +to a simple path public modifier where the simple path denotes +keyword self.

    +

    14.2:7 +A simple path public modifier is a visibility modifier that grants a +name public visibility within the provided simple path only.

    +

    14.2:8 +The simple path of a simple path public modifier shall start +with a path segment expressed by either keyword crate, +keyword self, or keyword super.

    +

    14.2:9 +The simple path of a simple path public modifier shall resolve to +an ancestor module of the current module or the current module +itself.

    +

    14.2:10 +A simple public modifier is a visibility modifier that grants a +name public visibility.

    +

    14.2:11 +A super public modifier is a visibility modifier that grants a +name public visibility within the parent module only. A +super public modifier is equivalent to a simple path public modifier +where the simple path denotes keyword super.

    +

    14.2:12 +An external item, a field, or an item that appears without a +visibility modifier has private visibility by default.

    +

    14.2:13 +An associated item of a trait has the same visibility as the +trait.

    +

    14.2:14 +An enum variant and its fields have the same visibility as the +containing enum type.

    +

    Examples

    +
    pub mod outer_module {
    +    pub mod inner_module {
    +        pub(crate) fn crate_visible_function() {}
    +
    +        pub(self) fn inner_module_visible_function() {}
    +
    +        pub(super) fn outer_module_visible_function() {}
    +
    +        pub fn visible_function() {}
    +
    +        fn caller() {
    +            crate_visible_function();
    +            inner_module_visible_function();
    +            visible_function();
    +        }
    +    }
    +
    +    fn caller() {
    +        inner_module::crate_visible_function();
    +        inner_module::outer_module_visible_function();
    +        inner_module::visible_function();
    +    }
    +}
    +
    +fn caller() {
    +    outer_module::inner_module::crate_visible_function();
    +    outer_module::inner_module::visible_function();
    +}
    +
    +
    +
    +
    +

    14.3. Paths

    +

    Syntax

    +
    SimplePath ::=
    +    ::? SimplePathSegment (:: SimplePathSegment)*
    +
    +SimplePathSegment ::=
    +    Identifier
    +  | crate
    +  | $crate
    +  | self
    +  | super
    +
    +SimplePathList ::=
    +    SimplePath (, SimplePath)* ,?
    +
    +QualifiedType ::=
    +    < TypeSpecification QualifyingTrait? >
    +
    +QualifyingTrait ::=
    +    as TypePath
    +
    +UnqualifiedPathExpression ::=
    +    ::? PathExpressionSegment (:: PathExpressionSegment)*
    +
    +PathExpressionSegment ::=
    +    PathSegment (:: GenericArgumentList)?
    +
    +PathSegment ::=
    +    SimplePathSegment
    +  | Self
    +
    +QualifiedPathExpression ::=
    +    QualifiedType (:: PathExpressionSegment)+
    +
    +TypePath ::=
    +    ::? TypePathSegment (:: TypePathSegment)*
    +
    +TypePathSegment ::=
    +    PathSegment ::? (GenericArgumentList | QualifiedFnTrait)?
    +
    +QualifiedFnTrait ::=
    +    ( TypeSpecificationList? ) ReturnType?
    +
    +QualifiedTypePath ::=
    +    QualifiedType (:: TypePathSegment)+
    +

    Legality Rules

    +

    14.3:1 +A path is a sequence of path segments logically separated by +namespace qualifier :: that resolves to an entity.

    +

    14.3:2 +A path segment is an element of a path.

    +

    14.3:3 +A path is subject to path resolution.

    +

    14.3:4 +If a path segment is expressed as either keyword crate, +keyword $crate, keyword self, or keyword Self, then +the path segment shall be the first path segment of a path.

    +

    14.3:5 +A path that starts with a path segment that is expressed as +keyword $crate shall appear only within a macro transcriber.

    +

    14.3:6 +If a path segment is expressed as keyword super, then the +path segment shall either be the first path segment of a path, +or the previous path segment of the path shall also be expressed as +keyword super.

    +

    14.3:7 +A global path is a path that starts with namespace qualifier +::.

    +

    14.3:8 +A simple path is a path whose path segments consist of either +identifiers or certain keywords as defined in the syntax rules +above.

    +

    14.3:9 +A path prefix is a path with its last path segment and +namespace qualifier :: stripped.

    +

    14.3:10 +If a simple path appears in a use import and starts with a +path segment expressed as either keyword crate, keyword +$crate, keyword self, or keyword super, then the +path shall be the simple path prefix of a glob import or a +nesting import, or the simple path of a simple import.

    +

    14.3:11 +If a simple path appears in a use import and starts with a +path segment expressed as keyword self, then the path shall +be part of the UseImportContent of a nesting import as long as the +path is a single segment path.

    +

    14.3:12 +A simple path is subject to simple path resolution.

    +

    14.3:13 +A single segment path is a path consisting of exactly one +path segment.

    +

    14.3:14 +A multi segment path is a path consisting of more than one +path segment.

    +

    14.3:15 +An unqualified path expression is a path expression without a qualified type.

    +

    14.3:16 +A path expression is subject to path expression resolution.

    +

    14.3:17 +A type path is a path that acts as a type specification.

    +

    14.3:18 +A type path is subject to type path resolution.

    +

    14.3:19 +A qualifying trait is a trait that imposes a restriction on a +qualified type.

    +

    14.3:20 +A qualifying trait shall resolve to a trait.

    +

    14.3:21 +A qualified type is a type that is restricted to a set of +implementations that exhibit implementation conformance to a +qualifying trait.

    +

    14.3:22 +A qualified type shall resolve to a type.

    +

    14.3:23 +A qualified type shall implement its related qualifying trait.

    +

    14.3:24 +A qualified path expression is a path expression that resolves +through a qualified type.

    +

    14.3:25 +A qualified type path is a type path that resolves through a +qualified type.

    +

    14.3:26 +An associated type projection is a qualified type path of the form +<type as trait>::associated_type, where type is a type, trait +is a qualifying trait, and associated type is an associated type.

    +

    14.3:27 +A qualified fn trait is a construct that refers to the +core::ops::Fn, core::ops::FnMut, or core::ops::FnOnce +trait.

    +

    14.3:28 +If a path contains a path segment with a qualified fn trait, +then the path segment shall be the last path segment of the +path.

    +

    Examples

    +

    14.3:29 +The following is a simple path. See Paragraph 14.2. for the +declaration of crate_visible_function.

    +
    crate::outer_module::inner_module::crate_visible_function();
    +
    +
    +

    14.3:30 +The following is an unqualified path expression` with a generic argument.

    +
    Vec::<u8>::with_capacity(42);
    +
    +
    +

    14.3:31 +The following is a type path with a generic argument.

    +
    std::boxed::Box<dyn std::ops::FnOnce(isize) -> size>;
    +
    +struct S;
    +impl S {
    +    fn f() { println!("f of S"); }
    +}
    +trait T {
    +    fn f() { println!("f of T"); }
    +}
    +impl T for S {}
    +
    +
    +

    14.3:32 +The following is a qualified path expression. The call expression +invokes the associated function of S’s trait implementation of +trait T.

    +
    <S as T>::f();
    +
    +
    +

    14.3:33 +The following is a qualified type path. It resolves to the associated +type of S’s trait implementation of trait T.

    +
    type T = <S as T>::Assoc;
    +
    +
    +
    +
    +

    14.4. Scopes

    +

    Legality Rules

    +

    14.4:1 +A scope is a region of program text where an entity can be referred +to. An entity is in scope when it can be referred to.

    +
    +

    14.4.1. Binding Scopes

    +

    Legality Rules

    +

    14.4.1:1 +A binding scope is a scope for bindings.

    +

    14.4.1:2 +The binding of a closure parameter is in scope within the +related closure body.

    +

    14.4.1:3 +The binding of a function parameter is in scope within the +related function body.

    +

    14.4.1:4 +The binding of a for loop or a while let loop is in scope +within the related loop body.

    +

    14.4.1:5 +The binding of an if let expression is in scope within the +related block expression.

    +

    14.4.1:6 +The binding of a let statement is in scope after the related +let statement, until the end of the block expression where the +related let statement appears.

    +

    14.4.1:7 +The binding of a match arm is in scope within its related +expressions and related match arm guard.

    +
    +
    +

    14.4.2. Generic Parameter Scope

    +

    Legality Rules

    +

    14.4.2:1 +A generic parameter scope is a scope for generic parameters.

    +

    14.4.2:2 +A generic parameter is in scope of a GenericParameterList.

    +

    14.4.2:3 +A generic parameter of an enum type is in scope within the +related enum variants and where clause.

    +

    14.4.2:4 +A generic parameter of a function pointer type is in scope +within the related type specification.

    +

    14.4.2:5 +A generic parameter of an implementation is in scope within the +related implementation body and where clause.

    +

    14.4.2:6 +A generic parameter of a struct type is in scope within the +related fields and where clause.

    +

    14.4.2:7 +A generic parameter of a trait is in scope within the related +trait body and where clause.

    +

    14.4.2:8 +A generic parameter of a trait bound is in scope within the +related generic parameters or the related type path.

    +

    14.4.2:9 +A generic parameter of a type alias is in scope within the +related initialization type and where clause.

    +

    14.4.2:10 +A generic parameter of a type bound predicate is in scope within +the related TypeBoundList.

    +

    14.4.2:11 +A generic parameter of a union type is in scope within the +related fields and where clause.

    +

    14.4.2:12 +A generic parameter is not in scope within nested items, +except within associated items.

    +
    +
    +

    14.4.3. Item Scope

    +

    Legality Rules

    +

    14.4.3:1 +An item scope is a scope for items.

    +

    14.4.3:2 +An item declared within the block expression of an +expression-with-block is in scope within the related +block expression.

    +

    14.4.3:3 +An item declared within a module is in scope within the +related module. Such an item is not in scope within nested +modules.

    +
    +
    +

    14.4.4. Label Scope

    +

    Legality Rules

    +

    14.4.4:1 +A label scope is a scope for labels.

    +

    14.4.4:2 +A label is in scope within the block expression of the related +loop expression.

    +

    14.4.4:3 +A label is not in scope within nested async blocks, +closure expressions, constant contexts, and items.

    +
    +
    +

    14.4.5. Self Scope

    +

    Legality Rules

    +

    14.4.5:1 +A Self scope is a scope for Self.

    +

    14.4.5:2 +Self of an enum type is in scope within the related +enum variants, generic parameters, and where clause.

    +

    14.4.5:3 +Self of an implementation is in scope within the related +generic parameters, implementation body, and where clause.

    +

    14.4.5:4 +Self of a struct type is in scope within the related +fields, generic parameters, and where clause.

    +

    14.4.5:5 +Self of a trait is in scope within the related +generic parameters, trait body, and where clause.

    +

    14.4.5:6 +Self of a union type is in scope within the related +fields, generic parameters, and where clause.

    +

    14.4.5:7 +Self is not in scope within attributes.

    +
    +
    +

    14.4.6. Textual Macro Scope

    +

    Legality Rules

    +

    14.4.6:1 +A textual macro scope is a scope for declarative macros.

    +

    14.4.6:2 +A declarative macro is in scope after the related macro +declaration, until the end of the block expression or the enclosing +module where the macro declaration appears.

    +

    14.4.6:3 +If the textual macro scope is introduced by a module and the +module is subject to attribute macro_use, then the +textual macro scope extends until the end of the scope introduced by +the enclosing block expression or module.

    +
    +
    +

    14.4.7. Scope Hierarchy

    +

    Legality Rules

    +

    14.4.7:1 +The scope hierarchy reflects the nesting of scopes as introduced +by scoping constructs. An inner scope introduced by a nested +scoping construct is the child of an outer scope introduced by an +enclosing scoping construct.

    +

    14.4.7:2 +A scoping construct is a construct that introduces scopes +into the scope hierarchy. The following constructs are +scoping constructs:

    + +

    14.4.7:21 +A closure expression introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:22 +A declarative macro introduces a textual macro scope into the +scope hierarchy.

    +

    14.4.7:23 +The declaration of an enum type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:24 +The declaration of a function introduces a binding scope and a +generic parameter scope into the scope hierarchy.

    +

    14.4.7:25 +The type specification of a function pointer type introduces a +generic parameter scope into the scope hierarchy.

    +

    14.4.7:26 +An if let expression introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:27 +The declaration of an implementation introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:28 +A let statement introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:29 +A for loop expression or a while let loop expression introduces a +binding scope and a label scope into the scope hierarchy.

    +

    14.4.7:30 +An infinite loop expression or a while loop expression introduces a +label scope into the scope hierarchy.

    +

    14.4.7:31 +A match arm introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:32 +The declaration of a module introduces an item scope into the +scope hierarchy.

    +

    14.4.7:33 +The declaration of a struct type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:34 +The declaration of a trait introduces a generic parameter scope +and a Self scope into the scope hierarchy.

    +

    14.4.7:35 +A trait bound introduces a generic parameter scope into the +scope hierarchy.

    +

    14.4.7:36 +The declaration of a type alias introduces a +generic parameter scope.

    +

    14.4.7:37 +A type bound predicate introduces a generic parameter scope into the +scope hierarchy.

    +

    14.4.7:38 +The declaration of a union type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +
    +
    +
    +

    14.5. Namespaces

    +

    Legality Rules

    +

    14.5:1 +A namespace is a logical grouping of names such that the occurrence +of a name in one namespace does not conflict with an occurrence of +the same name in another namespace.

    +

    14.5:2 +Names are segregated into one of five namespaces based on the +kind of entity the name refers to.

    +

    14.5:3 +A label namespace contains labels.

    +

    14.5:4 +A lifetime namespace contains the names of +lifetime parameters.

    +

    14.5:5 +A macro namespace contains the names of the following kinds of +entities:

    + +

    14.5:11 +A type namespace contains the names of the following kinds of +entities:

    + +

    14.5:25 +A value namespace contains the names of the following kinds of +entities:

    + +

    14.5:36 +The names of the following kinds of entities are not part +of any namespace:

    + +
    +
    +

    14.6. Preludes

    +

    Legality Rules

    +

    14.6:1 +A prelude is a collection of entities that are automatically +brought in scope of every module in a crate. Such +entities are referred to as +prelude entities. The name of a prelude entity +is referred to as a prelude name.

    +

    14.6:2 +The core prelude is a prelude that brings in scope of every +module all re-exported entities from the +core::prelude::rust_2021 module.

    +

    14.6:3 +An external prelude is a prelude that brings in scope of the +crate root module the entities of the crates imported +using external crate imports or supplied by a tool. If the external +crate import uses a renaming, then the identifier of the +renaming is instead added to the external prelude. The core +crate is always added to the external prelude unless the crate +root is subject to attribute no_core.

    +

    14.6:4 +The language prelude is a prelude that brings in scope of every +module the following entities:

    + +

    14.6:10 +The macro_use prelude is a prelude that brings in scope of the +crate root module the entities of macros from +external crates that were imported using an external crate import.

    +
    +
    +

    14.7. Use Imports

    +

    Syntax

    +
    UseImport ::=
    +    use UseImportContent ;
    +
    +UseImportContent ::=
    +    GlobImport
    +  | NestingImport
    +  | SimpleImport
    +
    +GlobImport ::=
    +    SimplePathPrefix? *
    +
    +NestingImport ::=
    +    SimplePathPrefix? { UseImportContentList? }
    +
    +SimpleImport ::=
    +    SimplePath Renaming?
    +
    +SimplePathPrefix ::=
    +    SimplePath? ::
    +
    +UseImportContentList ::=
    +    UseImportContent (, UseImportContent)* ,?
    +

    Legality Rules

    +

    14.7:1 +A use import brings entities in scope within the +block expression of an expression-with-block or module where the +use import resides.

    +

    14.7:2 +A simple path prefix is the leading simple path of a glob import +or a nesting import.

    +

    14.7:3 +An import path prefix is the fully constructed path prefix of a +use import. An import path prefix for a given +simple import or glob import is constructed as follows:

    +
      +
    1. 14.7:4 +Start the import path prefix as follows:

      + +
    2. +
    3. 14.7:8 +Then if the current use import is the child of a nesting import, +prepend the nesting import‘s simple path prefix to the +import path prefix. Repeat this step with the nesting import as +the current use import.

    4. +
    +

    14.7:9 +A simple import is a use import that brings all entities +it refers to into scope, optionally with a different +name than they are declared with by using a renaming.

    +

    14.7:10 +A glob import is a use import that brings all entities +exported by the module or enum its import path prefix resolves to +into scope.

    +

    14.7:11 +An import path prefix shall resolve to a module or enum.

    +

    14.7:12 +A glob import brings names into scope as follows:

    + +

    14.7:15 +A simple import path is the path constructed by appending the last +path segment of a simple import‘s simple path to the +import path prefix.

    +

    14.7:16 +A simple import brings names into scope as follows:

    + +

    14.7:21 +An Entity imported by a simple import subject to a +renaming with identifier is brought into scope under the +name declared by the renaming.

    +

    14.7:22 +A trait imported by a simple import subject to a +renaming with character underscore _ is added into scope without +a name.

    +

    14.7:23 +A nesting import is a use import that provides a common +simple path prefix for its nested use imports.

    +

    14.7:24 +A glob import outside of a nesting import without a simple path +prefix is rejected, but may still be consumed by macros.

    +

    14.7:25 +A simple import with a simple path with a single path segment of +keyword self shall be subject to the following:

    + +

    14.7:28 +It is a static error if two glob imports import the same name in the +same namespace but refer to different entities if the +name is used or shadowed.

    +

    14.7:29 +If two glob imports import the same entity under the same name, +the visibility of the name is the most permissive one.

    +

    Examples

    +

    14.7:30 +The following is a glob import. See Paragraph 14.2. +for the declaration of modules and functions. The imported functions +are create_visible_function, outer_module_visible_function, +visible_function.

    +
    use outer_module::inner_module::*;
    +
    +
    +

    14.7:31 +The following is a renaming import. The imported function is +visible_function under the name f.

    +
    use outer_module::inner_module::visible_function as f;
    +
    +
    +

    14.7:32 +The following is a selective import. The imported functions are +crate_visible_function and visible_function.

    +
    use outer_module::inner_module
    +    {crate_visible_function, visible_function}
    +
    +
    +

    Legality Rules

    +
    +
    +

    14.8. Shadowing

    +

    Legality Rules

    +

    14.8:1 +Shadowing is a property of names. A name is said to be +shadowed when another name with the same characters is introduced +in the same scope within the same namespace, effectively hiding it. +A name cannot be referred to by any means once it is shadowed.

    +

    14.8:2 +No name shall be shadowed except for

    + +

    14.8:6 +A prelude name shadows other prelude names depending on which +preludes are included in a module. The order of shadowing is as +follows, where a later prelude name shadows earlier prelude name:

    +
      +
    1. 14.8:7 +Language prelude names.

    2. +
    3. 14.8:8 +Standard library prelude names.

    4. +
    5. 14.8:9 +macro_use prelude names.

    6. +
    7. 14.8:10 +Tool prelude names.

    8. +
    9. 14.8:11 +External prelude names.

    10. +
    +
    +
    +

    14.9. Resolution

    +

    Legality Rules

    +

    14.9:1 +Resolution is the process of finding a unique interpretation for a +field access expression, a method call expression, a call +expression or a path.

    +

    14.9:2 +A construct that is being resolved is said to be under resolution.

    +

    14.9:3 +A dereference type is either a reference type or a type that +implements the core::ops::Deref trait.

    +

    14.9:4 +A dereference type chain is a sequence of dereference types. A +dereference type chain starts with an initial dereference type. From +then on, the dereference type chain continues as follows:

    + +
    +

    14.9.1. Field Resolution

    +

    Legality Rules

    +

    14.9.1:1 +Field resolution is a form of resolution that applies to a +field access expression.

    +

    14.9.1:2 +A candidate container type is the type of the container operand +of a field access expression under resolution.

    +

    14.9.1:3 +A candidate container type chain is a sequence of +candidate container types. The candidate container type chain +starts with the type of the container operand of the +field access expression under resolution. From then on, the +candidate container type chain is treated as a +dereference type chain.

    +

    14.9.1:4 +A candidate field is a field of a candidate container type +that is visible from the location of the field access expression +under resolution.

    +

    14.9.1:5 +A candidate indexed field is a candidate field whose position in the +type of the container operand matches the index of an +indexed field selector.

    +

    14.9.1:6 +A candidate named field is a candidate field whose name matches +the characters of a named field selector.

    +

    14.9.1:7 +Field resolution of a field access expression with an +indexed field selector proceeds as follows:

    +
      +
    1. 14.9.1:8 +For each candidate container type of the +candidate container type chain

      +
        +
      1. 14.9.1:9 +Try to locate a candidate indexed field of the +candidate container type.

      2. +
      3. 14.9.1:10 +If such a candidate indexed field exists and is visible at the point +of the field access expression, then the field access expression +resolves to that candidate indexed field and field resolution +stops.

      4. +
      +
    2. +
    +

    14.9.1:11 +Field resolution of a field access expression with a +named field selector proceeds as follows:

    +
      +
    1. 14.9.1:12 +For each candidate container type of the +candidate container type chain

      +
        +
      1. 14.9.1:13 +Try to locate a candidate named field of the +candidate container type.

      2. +
      3. 14.9.1:14 +If such a candidate named field exists and is visible at the point +of the field access expression, then the field access expression +resolves to that candidate named field and field resolution +stops.

      4. +
      +
    2. +
    +

    14.9.1:15 +A field access expression shall resolve to exactly one field.

    +
    +
    +

    14.9.2. Method Resolution

    +

    Legality Rules

    +

    14.9.2:1 +Method resolution is a kind of resolution that applies to a +method call expression.

    +

    14.9.2:2 +A receiver type is the type of the receiver operand +of a method call expression.

    +

    14.9.2:3 +A candidate receiver type is the type of the receiver operand +of a method call expression under resolution.

    +

    14.9.2:4 +A candidate receiver type chain is a sequence of +candidate receiver types. The candidate receiver type chain starts +with the type of the receiver operand of the +method call expression under resolution. From then on, the +candidate receiver type chain is treated as a dereference type chain.

    +

    14.9.2:5 +A candidate method is a method of a candidate receiver type that +is visible from the location of the method call expression +under resolution.

    +

    14.9.2:6 +Method resolution proceeds as follows:

    +
      +
    1. 14.9.2:7 +For each candidate receiver type of the +candidate receiver type chain

      +
        +
      1. 14.9.2:8 +Perform method resolution receiver candidate lookup for the +candidate receiver type.

      2. +
      3. 14.9.2:9 +If the last candidate receiver type is an array type, then +perform method resolution receiver candidate lookup for a +slice type where the slice type has the same element type +as the array type.

      4. +
      +
    2. +
    +

    14.9.2:10 +Method resolution receiver candidate lookup for a receiver type +proceeds as follows:

    +
      +
    1. 14.9.2:11 +Perform method resolution implementation candidate lookup for the +receiver type.

    2. +
    3. 14.9.2:12 +Perform method resolution implementation candidate lookup for the +immutable borrow of the receiver type.

    4. +
    5. 14.9.2:13 +Perform method resolution implementation candidate lookup for the +mutable borrow of the receiver type.

    6. +
    +

    14.9.2:14 +Method resolution implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:15 +Perform method resolution inherent implementation candidate lookup for +the receiver type.

    2. +
    3. 14.9.2:16 +Perform method resolution trait implementation candidate lookup for the +receiver type.

    4. +
    +

    14.9.2:17 +Method resolution inherent implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:18 +Construct the dereference type chain for the receiver type.

    2. +
    3. 14.9.2:19 +For each dereference type in the dereference type chain

      +
        +
      1. 14.9.2:20 +For each inherent implementation in the set of +inherent implementations of the dereference type where the +implementing type unifies with the +dereference type

        +
          +
        1. 14.9.2:21 +Try to locate a candidate method in the inherent +implementation, where the type of the self parameter +unifies with the receiver type.

        2. +
        3. 14.9.2:22 +If such a candidate method exists, then the +method call expression resolves to that candidate method and +method resolution stops.

        4. +
        +
      2. +
      +
    4. +
    +

    14.9.2:23 +Method resolution trait implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:24 +Construct the dereference type chain for the receiver type.

    2. +
    3. 14.9.2:25 +For each dereference type in the dereference type chain

      +
        +
      1. 14.9.2:26 +For each trait implementation of the dereference type where the +implemented trait is in scope

        +
          +
        1. 14.9.2:27 +Try to locate a candidate method in the +trait implementation, where the type of the +self parameter unifies with the receiver type.

        2. +
        3. 14.9.2:28 +If such a candidate method exists, then the +method call expression resolves to that candidate method and +method resolution stops.

        4. +
        +
      2. +
      +
    4. +
    +

    14.9.2:29 +A method call expression shall resolve to exactly one method.

    +
    +
    +

    14.9.3. Call Resolution

    +

    Legality Rules

    +

    14.9.3:1 +Call resolution is a form of resolution that applies to a +call expression.

    +

    14.9.3:2 +A candidate callee type is the type of the call operand +of a call expression under resolution.

    +

    14.9.3:3 +A candidate callee type chain is a sequence of candidate callee types. +The candidate callee type chain starts with the type of the call +operand of the:t:call expression under resolution. From then on, the +candidate callee type chain is treated as a dereference type chain.

    +

    14.9.3:4 +Call resolution of a call expression proceeds as follows:

    +
      +
    1. 14.9.3:5 +For each candidate callee type of the +candidate callee type chain

      +
        +
      1. 14.9.3:6 +If the candidate callee type is a callee type, then the callee +type of the call expression is that candidate callee type and +call resolution stops.

      2. +
      +
    2. +
    +
    +
    +

    14.9.4. Path Resolution

    +

    Legality Rules

    +

    14.9.4:1 +Path resolution is a form of resolution that applies to a path.

    +

    14.9.4:2 +Path resolution resolves a path by resolving individual +path segments in sequence, starting from the leftmost path segment.

    +

    14.9.4:3 +A path segment shall resolve to exactly one entity.

    +

    14.9.4:4 +A candidate direct entity is an entity that is visible from the +location of a path under resolution and is located by first examining +textual macro scopes, followed by examining the scope hierarchy +from the innermost scope enclosing the path to the outermost +scope, followed by examining preludes.

    +

    14.9.4:5 +A candidate external prelude entity is an entity that is visible +from the location of a path under resolution and is located by +examining the external prelude.

    +

    14.9.4:6 +A candidate selected entity is an entity that is visible from +the location of a path under resolution and is located within a +resolution context.

    +

    14.9.4:7 +A namespace context is a set of namespaces where the names +of candidate selected entities reside.

    +

    14.9.4:8 +A resolution context is a set of entities that informs +path resolution by restricting the number of +candidate selected entities.

    +

    14.9.4:9 +The resolution of the leftmost path segment of a path proceeds as +follows:

    + +

    14.9.4:27 +The resolution of the rightmost path segment is determined based on the +path resolution kind, where the name of the +candidate selected entity is restricted by the namespace context.

    +

    14.9.4:28 +It is a static error if the leftmost path segment is an identifier +introduced by the external prelude that is also shadowed.

    +
    +

    14.9.4.1. Simple Path Resolution

    +

    Legality Rules

    +

    14.9.4.1:1 +Simple path resolution is a kind of path resolution that applies to +a simple path.

    +

    14.9.4.1:2 +The namespace context of simple path resolution is determined as +follows:

    + +

    14.9.4.1:6 +The leftmost path segment of a simple path is resolved using general +path resolution. The remaining path segments are resolved in +left-to-right order, as follows:

    + +
    +
    +

    14.9.4.2. Path Expression Resolution

    +

    Legality Rules

    +

    14.9.4.2:1 +Path expression resolution is a form of path resolution that applies +to a unqualified path expression.

    +

    14.9.4.2:2 +The namespace context of path expression resolution is the +value namespace.

    +

    14.9.4.2:3 +The leftmost path segment of a unqualified path expression is resolved using +general path resolution. The remaining path segments are resolved +in left-to-right order, as follows:

    + +

    14.9.4.2:13 +Path expression resolution implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:14 +Perform +path expression resolution inherent implementation candidate lookup for +the path segment and the trait or type.

    2. +
    3. 14.9.4.2:15 +Perform +path expression resolution trait implementation candidate lookup for +the path segment and the trait or type.

    4. +
    +

    14.9.4.2:16 +Path expression resolution inherent implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:17 +For each inherent implementation in the set of +inherent implementations of the trait or type where the +implementing type unifies with the trait or type

      +
        +
      1. 14.9.4.2:18 +Try to locate a visible constant or a visible function in the +inherent implementation whose name matches the characters of +the path segment.

      2. +
      3. 14.9.4.2:19 +If such a constant or function exists, then the +path segment resolves to that constant or function and +path expression resolution stops.

      4. +
      +
    2. +
    +

    14.9.4.2:20 +Path expression resolution trait implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:21 +For each trait implementation of the trait or type where the +implemented trait is in scope

      +
        +
      1. 14.9.4.2:22 +Try to locate a visible constant or a visible function in the +trait implementation whose name matches the characters of the +path segment.

      2. +
      3. 14.9.4.2:23 +If such a constant or function exists, then the +path segment resolves to that constant or function and +path expression resolution stops.

      4. +
      +
    2. +
    +
    +
    +

    14.9.4.3. Type Path Resolution

    +

    Legality Rules

    +

    14.9.4.3:1 +Type path resolution is a form of path resolution that applies to +a type path.

    +

    14.9.4.3:2 +The namespace context of type path resolution is the +type namespace.

    +

    14.9.4.3:3 +The leftmost path segment of a type path is resolved using general +path resolution. The remaining path segments are resolved in +left-to-right order, as follows:

    + +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/exceptions-and-errors.html b/exceptions-and-errors.html new file mode 100644 index 00000000..7e368278 --- /dev/null +++ b/exceptions-and-errors.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + 16. Exceptions and Errors — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    16. Exceptions and Errors

    +

    Legality Rules

    +

    16:1 +The Rust programming language lacks exceptions and exception handlers. Instead, +the language uses the following tiered error handling scheme:

    + +

    16:5 +Enum core::option::Option indicates whether a value is +either present using core::option::Option::Some or absent using +core::option::Option::None.

    +

    16:6 +Enum core::result::Result indicates whether a computation completed +successfully and produced a value using core::result::Result::Ok or +the computation failed with an error using core::result::Result::Err.

    +
    +

    16.1. Panic

    +

    Legality Rules

    +

    16.1:1 +A panic is an abnormal program state caused by invoking macro +core::panic.

    +

    Dynamic Semantics

    +

    16.1:2 +Invoking macro core::panic has the following runtime effects:

    +
      +
    1. 16.1:3 +Control flow halts the execution of the current thread.

    2. +
    3. 16.1:4 +Control flow of the current thread resumes execution by invoking the +function subject to attribute panic_handler.

    4. +
    +

    Examples

    +
    panic!("This was a terrible mistake!");
    +
    +
    +
    +
    +

    16.2. Abort

    +

    Legality Rules

    +

    16.2:1 +Abort is the immediate termination of a program.

    +

    Dynamic Semantics

    +

    16.2:2 +Abort has the following runtime effects:

    +
      +
    1. 16.2:3 +Control flow halts the execution of all threads.

    2. +
    3. 16.2:4 +The program terminates.

    4. +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/expressions.html b/expressions.html new file mode 100644 index 00000000..3879fb85 --- /dev/null +++ b/expressions.html @@ -0,0 +1,4068 @@ + + + + + + + + + + + + 6. Expressions — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    6. Expressions

    +

    Syntax

    +
    Expression ::=
    +    ExpressionWithBlock
    +  | ExpressionWithoutBlock
    +
    +ExpressionWithBlock ::=
    +    OuterAttributeOrDoc* (
    +        AsyncBlockExpression
    +      | BlockExpression
    +      | IfExpression
    +      | IfLetExpression
    +      | LoopExpression
    +      | MatchExpression
    +      | UnsafeBlockExpression
    +      | NamedBlockExpression
    +    )
    +
    +ExpressionWithoutBlock ::=
    +    OuterAttributeOrDoc* (
    +        ArrayExpression
    +      | AwaitExpression
    +      | BreakExpression
    +      | CallExpression
    +      | ClosureExpression
    +      | ContinueExpression
    +      | FieldAccessExpression
    +      | IndexExpression
    +      | LiteralExpression
    +      | MethodCallExpression
    +      | MacroInvocation
    +      | OperatorExpression
    +      | ParenthesizedExpression
    +      | PathExpression
    +      | RangeExpression
    +      | ReturnExpression
    +      | StructExpression
    +      | TupleExpression
    +      | UnderscoreExpression
    +    )
    +
    +ExpressionList ::=
    +    Expression (, Expression)* ,?
    +
    +Operand ::=
    +    Expression
    +
    +LeftOperand ::=
    +    Operand
    +
    +RightOperand ::=
    +    Operand
    +

    6:1 +A SubjectExpression is any expression in category Expression, except +StructExpression.

    +

    6:2 +A SubjectLetExpression is any expression in category +SubjectExpression, except LazyBooleanExpression.

    +

    Legality Rules

    +

    6:3 +An expression is a construct that produces a value, and may have +side effects at run-time.

    +

    6:4 +An expression-with-block is an expression whose structure involves a +block expression.

    +

    6:5 +An expression-without-block is an expression whose structure does not +involve a block expression.

    +

    6:6 +An operand is an expression nested within an expression.

    +

    6:7 +A left operand is an operand that appears on the left-hand side of a +binary operator.

    +

    6:8 +A right operand is an operand that appears on the right-hand side of a +binary operator.

    +

    6:9 +A subject expression is an expression that controls for loops, +if expressions, and match expressions.

    +

    6:10 +A subject let expression is an expression that controls +if let expressions and while let loops.

    +

    Dynamic Semantics

    +

    6:11 +Evaluation is the process by which an expression achieves its runtime +effects.

    +
    +

    6.1. Expression Classification

    +
    +

    6.1.1. Assignee Expressions

    +

    Legality Rules

    +

    6.1.1:1 +An assignee expression is an expression that appears as the +left operand of an assignment expression. The following +expressions are assignee expressions:

    + +

    6.1.1:8 +Parenthesized expressions are allowed to appear anywhere in +assignee expressions.

    +
    +
    +

    6.1.2. Constant Expressions

    +

    Legality Rules

    +

    6.1.2:1 +A constant expression is an expression that can be evaluated +statically. The following constructs are constant expressions as +long as their operands are also constant expressions and do not +involve types that require destruction:

    + +

    6.1.2:36 +An expression is not considered a constant expression when it +explicitly invokes an associated trait function or uses +arithmetic operators of non-builtin types that invoke +core::ops traits.

    +

    6.1.2:37 +An arithmetic expression that operates with floating-point values is +not considered a constant expression when it appears inside the +function body of a constant function.

    +

    6.1.2:38 +It is a static error if the size operand of an +array repetition constructor or an array type depends on +generic parameters.

    +

    6.1.2:39 +A constant context is a construct that requires a +constant expression. The following constructs are +constant contexts:

    + +

    6.1.2:47 +It is a static error to create a mutable reference in a +constant context.

    +

    6.1.2:48 +An invocation of the core::ptr::addr_of macro expands to a +constant expression allowed in any constant context and +constant function, subject to the same restrictions as a +immutable borrow expression.

    +

    6.1.2:49 +An invocation of the core::panic macro expands to a +constant expression allowed in any constant context and +constant function, as long as the macro is either invoked without +arguments, or with a single string literal that does not +capture formatting arguments.

    +

    6.1.2:50 +A constant expression is evaluated statically whenever its value is +needed.

    +

    6.1.2:51 +The evaluation of a constant expression that results in +arithmetic overflow panics.

    +

    6.1.2:52 +It is a static error if a constant expression either panics or +control reaches the invocation of macro core::panic.

    +

    6.1.2:53 +It is a static error if the evaluation of a constant expression results in +a value that is unaligned.

    +

    Dynamic Semantics

    +

    6.1.2:54 +The invocation of a constant function follows the dynamic semantics of a +non-constant function invocation.

    +
    +
    +

    6.1.3. Diverging Expressions

    +

    Legality Rules

    +

    6.1.3:1 +A diverging expression is an expression whose evaluation causes +program flow to diverge from the normal evaluation order.

    +

    6.1.3:2 +Diverging expressions are:

    + +
    +
    +

    6.1.4. Place Expressions

    +

    Legality Rules

    +

    6.1.4:1 +A place expression is an expression that represents a memory +location. The following expressions are place expressions:

    + +

    6.1.4:8 +A mutable place expression is a place expression whose memory +location can be modified. The following place expressions are +mutable place expressions:

    + +

    6.1.4:18 +An immutable place expression is a place expression whose memory +location cannot be modified. All place expressions that are not +mutable place expressions are immutable place expressions.

    +

    6.1.4:19 +A place expression context is a construct that may evaluate its +operand as a memory location.

    +

    6.1.4:20 +The following constructs are place expression contexts:

    + +

    6.1.4:31 +A mutable place expression context is a place expression context that +may evaluate its operand as a mutable memory location. The following +constructs are mutable place expression contexts:

    + +

    6.1.4:41 +A place expression that is evaluated in a value expression context +or bound by value in a pattern denotes the value held in the +memory location of the place expression. Such an evaluation is subject to +passing conventions.

    +
    +
    +

    6.1.5. Value Expressions

    +

    Legality Rules

    +

    6.1.5:1 +A value expression is an expression that represents a value. +All expressions that are not place expressions are +value expressions.

    +

    6.1.5:2 +A value expression context is an expression context that is not a +place expression context.

    +

    6.1.5:3 +The evaluation of a value expression in a place expression context +shall evaluate the value expression as a temporary and then use the +temporary in the place expression context.

    +
    +
    +
    +

    6.2. Literal Expressions

    +

    Syntax

    +
    LiteralExpression ::=
    +    Literal
    +

    Legality Rules

    +

    6.2:1 +A literal expression is an expression that denotes a literal.

    +

    6.2:2 +The type of a literal expression is the type of the corresponding +literal.

    +

    6.2:3 +The value of a literal expression is the value of the +corresponding literal.

    +

    Dynamic Semantics

    +

    6.2:4 +The evaluation of a literal expression has no effect.

    +

    Examples

    +
    5
    +'a'
    +"hello"
    +
    +
    +
    +
    +

    6.3. Path Expressions

    +

    Syntax

    +
    PathExpression ::=
    +    UnqualifiedPathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    6.3:1 +A path expression is an expression that denotes a path.

    +

    6.3:2 +A path expression shall resolve to either a constant parameter, a +constant, a function, a static, a tuple enum variant, a +tuple struct, a unit enum variant, a unit struct, or a +variable.

    +

    6.3:3 +A path expression that resolves to a mutable static shall require +unsafe context.

    +

    6.3:4 +The type of a path expression is the type of the entity that +it resolved to.

    +

    6.3:5 +The value of a path expression is the entity that it resolved to.

    +

    Examples

    +
    globals::STATIC_VARIABLE
    +Vec::<i32>::push
    +
    +
    +
    +
    +

    6.4. Block Expressions

    +

    Syntax

    +
    BlockExpression ::=
    +    {
    +      InnerAttributeOrDoc*
    +      StatementList
    +    }
    +
    +StatementList ::=
    +    Statement* Expression?
    +

    Legality Rules

    +

    6.4:1 +A block expression is an expression that sequences expressions +and statements.

    +

    6.4:2 +A tail expression is the last expression within a block +expression.

    +

    6.4:3 +When the remaining lexical elements of a StatementList match either +an Expression or Statement they are interpreted as an Expression.

    +

    6.4:4 +The type of a block expression is determined as follows:

    + +

    6.4:9 +The value of a block expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.4:13 +The evaluation of a block expression proceeds as follows:

    +
      +
    1. 6.4:14 +Each statement is executed in declarative order.

    2. +
    3. 6.4:15 +The tail expression is evaluated.

    4. +
    +

    Examples

    +
    {
    +    fn_call();
    +    42
    +}
    +
    +
    +
    +

    6.4.1. Async Blocks

    +

    Syntax

    +
    AsyncBlockExpression ::=
    +    async move? BlockExpression
    +

    Legality Rules

    +

    6.4.1:1 +An async block expression is a block expression that is specified +with keyword async and encapsulates behavior which is executed in +an asynchronous manner.

    +

    6.4.1:2 +An async block expression denotes a new async control flow boundary.

    +

    6.4.1:3 +An async block expression is subject to capturing.

    +

    6.4.1:4 +The type of an async block expression is a unique anonymous type +that implement the core::future::Future trait.

    +

    6.4.1:5 +The value of an async block expression is a value of the +async block expression‘s type.

    +

    Dynamic Semantics

    +

    6.4.1:6 +The evaluation of an async block expression produces a value of +the type of the async block expression that captures +the capture targets of the async block expression.

    +

    Examples

    +
    async {
    +    42
    +}
    +
    +
    +
    +
    +

    6.4.2. Named Blocks

    +

    Syntax

    +
    NamedBlockExpression ::=
    +    Label BlockExpression
    +

    Legality Rules

    +

    6.4.2:1 +A named block expression is a block expression with a label.

    +

    6.4.2:2 +The type of the named block expression is the type of its +block expression.

    +

    6.4.2:3 +The value of the named block expression is the value of its +block expression.

    +

    Examples

    +
    'block: {
    +    break 'block 1;
    +    3
    +}
    +
    +
    +
    +
    +

    6.4.3. Unsafe Blocks

    +

    Syntax

    +
    UnsafeBlockExpression ::=
    +    unsafe BlockExpression
    +

    Legality Rules

    +

    6.4.3:1 +An unsafe block expression is a block expression that is specified +with keyword unsafe.

    +

    6.4.3:2 +An unsafe block expression allows unsafety.

    +

    6.4.3:3 +The type of the unsafe block expression is the type of its +block expression.

    +

    6.4.3:4 +The value of the unsafe block expression is the value of its +block expression.

    +

    Dynamic Semantics

    +

    6.4.3:5 +The evaluation of an unsafe block expression evaluates its +block expression.

    +

    Examples

    +
    unsafe {
    +    unsafe_fn_call()
    +}
    +
    +
    +
    +
    +
    +

    6.5. Operator Expressions

    +

    Syntax

    +
    OperatorExpression ::=
    +    ArithmeticExpression
    +  | AssignmentExpression
    +  | BitExpression
    +  | BorrowExpression
    +  | ComparisonExpression
    +  | CompoundAssignmentExpression
    +  | DereferenceExpression
    +  | ErrorPropagationExpression
    +  | LazyBooleanExpression
    +  | NegationExpression
    +  | TypeCastExpression
    +

    Legality Rules

    +

    6.5:1 +An operator expression is an expression that involves an operator.

    +
    +

    6.5.1. Borrow Expression

    +

    Syntax

    +
    BorrowExpression ::=
    +    & mut? Operand
    +

    Legality Rules

    +

    6.5.1:1 +A borrow expression is an expression that borrows the value of +its operand and creates a reference to the memory location of its +operand.

    +

    6.5.1:2 +An immutable borrow expression is a borrow expression that lacks +keyword mut.

    +

    6.5.1:3 +A mutable borrow expression is a borrow expression that has +keyword mut.

    +

    6.5.1:4 +When the operand of a borrow expression is a place expression, +the borrow expression produces a reference to the memory location +indicated by the operand. The memory location is placed in a borrowed +state, or simply borrowed.

    +

    6.5.1:5 +The type of a borrow expression is determined as follows:

    + +

    6.5.1:8 +The value of a borrow expression is the address of its operand.

    +

    6.5.1:9 +It is a static error if a borrow expression would create an unaligned +reference to a field in an abstract data type subject to +attribute repr.

    +

    Dynamic Semantics

    +

    6.5.1:10 +The evaluation of a borrow expression evaluates its operand.

    +

    Examples

    +
    let mut answer = 42;
    +
    +
    +

    6.5.1:11 +Mutable borrow.

    +
    let ref_answer = &mut answer;
    +
    +
    +

    6.5.2. Dereference Expression

    +

    Syntax

    +
    DereferenceExpression ::=
    +    * Operand
    +

    Legality Rules

    +

    6.5.2:1 +A dereference expression is an expression that obtains the pointed-to +memory location of its operand.

    +

    6.5.2:2 +When the operand of a dereference expression is of a pointer +type, the dereference expression denotes the pointed-to memory location of +the operand, or the dereference of the operand.

    +

    6.5.2:3 +The dereference is assignable when the dereference expression is a +mutable place expression.

    +

    6.5.2:4 +Dereferencing a raw pointer shall require unsafe context.

    +

    6.5.2:5 +If the context of a dereference expression is an +immutable place expression context, then the dereference expression +is equivalent to expression *core::ops::Deref::deref(&operand).

    +

    6.5.2:6 +If the context of a dereference expression is a +mutable place expression context, then the dereference expression +is equivalent to expression +*core::ops::DerefMut::deref_mut(&mut operand).

    +

    6.5.2:7 +The type of a dereference expression is determined as follows:

    + +

    6.5.2:10 +The value of a dereference expression is determined as follows:

    +
      +
    • 6.5.2:11 +If the type of the operand is &mut T, &T, *mut T, or +*const T, then the value is the pointed-to value.

    • +
    • 6.5.2:12 +Otherwise the value is the result of evaluating expression +*core::ops::Deref::deref(&operand) or expression +*core::ops::DerefMut::deref_mut(&mut operand) respectively.

    • +
    +

    Dynamic Semantics

    +

    6.5.2:13 +The evaluation of a dereference expression evaluates its operand.

    +

    Undefined Behavior

    +

    6.5.2:14 +It is undefined behavior to dereference a raw pointer that is either +dangling or unaligned.

    +

    Examples

    +

    6.5.2:15 +See Paragraph 6.4.1. for the declaration of ref_answer.

    +
    let deref_asnwer = *ref_answer;
    +
    +
    +
    +
    +

    6.5.3. Error Propagation Expression

    +

    Syntax

    +
    ErrorPropagationExpression ::=
    +    Operand ?
    +

    Legality Rules

    +

    6.5.3:1 +An error propagation expression is an expression that either evaluates +to a value of its operand or returns a value to the enclosing control +flow boundary.

    +

    6.5.3:2 +An error propagation expression shall appear within a control flow +boundary.

    +

    6.5.3:3 +The type of an error propagation expression is associated type +core::ops::Try::Output.

    +

    6.5.3:4 +The value of an error propagation expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.5.3:7 +The evaluation of an error propagation expression of the form

    +
    expression?
    +
    +
    +

    6.5.3:8 +is equivalent to the evaluation the following expression:

    +
    match core::ops::Try::branch(expression) {
    +    core::ops::ControlFlow::Continue(value) =>
    +        value,
    +
    +    core::ops::ControlFlow::Break(value) =>
    +        core::ops::FromResidual::from_residual(value),
    +}
    +
    +
    +

    Examples

    +
    fn try_to_parse() -> Result<i32, ParseIntError> {
    +    "42".parse()?
    +}
    +
    +fn try_some() -> Option<i32> {
    +    let val = Some(42)?;
    +    Some(val)
    +}
    +
    +
    +
    +
    +

    6.5.4. Negation Expression

    +

    Syntax

    +
    NegationExpression ::=
    +    NegationOperator Operand
    +
    +NegationOperator ::=
    +    BitwiseNegationOperator
    +  | SignNegationOperator
    +
    +BitwiseNegationOperator ::=
    +    !
    +
    +SignNegationOperator ::=
    +    -
    +

    Legality Rules

    +

    6.5.4:1 +A negation expression is an expression that negates its operand.

    +

    6.5.4:2 +The type of the operand of a negation expression with a +BitwiseNegationOperator shall implement the core::ops::Not +trait.

    +

    6.5.4:3 +The type of a negation expression with a BitwiseNegationOperator +is associated type core::ops::Not::Output.

    +

    6.5.4:4 +The value of a negation expression with a BitwiseNegationOperator +is the result of core::ops::Not::not(operand).

    +

    6.5.4:5 +The type of the operand of a negation expression with a +SignNegationOperator shall implement the core::ops::Neg trait.

    +

    6.5.4:6 +The type of a negation expression with a SignNegationOperator +shall be associated type core::ops::Neg::Output.

    +

    6.5.4:7 +The value of a negation expression with a SignNegationOperator is +the result of core::ops::Neg::neg(operand).

    +

    Dynamic Semantics

    +

    6.5.4:8 +The evaluation of a negation expression with a +BitwiseNegationOperator proceeds as follows:

    +
      +
    1. 6.5.4:9 +The operand is evaluated.

    2. +
    3. 6.5.4:10 +If the type of the operand is an integer type, then the +negation expression evaluates to the bitwise negation of the +operand.

    4. +
    5. 6.5.4:11 +If the type of the operand is bool, then the result is computed as +follows, depending on the value of the operand:

    6. +
    +
    +
    + + + + + + + + + + + + + + +

    6.5.4:12

    Operand

    Result

    6.5.4:13

    true

    false

    6.5.4:14

    false

    true

    +
    +
      +
    1. 6.5.4:15 +If the type of operand is neither an integer type nor +bool, then core::ops::Not::not(operand) is invoked.

    2. +
    +

    6.5.4:16 +The evaluation of a negation expression with a +SignNegationOperator proceeds as follows:

    +
      +
    1. 6.5.4:17 +The operand is evaluated.

    2. +
    3. 6.5.4:18 +If the type of the operand is an integer type, then the +negation expression evaluates to the value of the operand, +with its sign inverted. If the result of the negation expression does +not fit within the range of the operand type, then +arithmetic overflow occurs.

    4. +
    5. 6.5.4:19 +If the type of the operand is a floating-point type, then the +negation expression evaluates to the value of the operand, +with its sign inverted. No arithmetic overflow is possible.

    6. +
    7. 6.5.4:20 +If the type of the operand is neither an integer type nor a +floating-point type, then core::ops::Neg::neg(operand) is invoked.

    8. +
    +

    Examples

    +

    6.5.4:21 +Sign negation.

    +
    -42
    +
    +
    +

    6.5.4:22 +Bitwise negation.

    +
    !42
    +
    +
    +

    6.5.4:23 +Logical negation.

    +
    !false
    +
    +
    +
    +
    +

    6.5.5. Arithmetic Expressions

    +

    Syntax

    +
    ArithmeticExpression ::=
    +    AdditionExpression
    +  | DivisionExpression
    +  | MultiplicationExpression
    +  | RemainderExpression
    +  | SubtractionExpression
    +
    +AdditionExpression ::=
    +    LeftOperand + RightOperand
    +
    +DivisionExpression ::=
    +    LeftOperand / RightOperand
    +
    +MultiplicationExpression ::=
    +    LeftOperand * RightOperand
    +
    +RemainderExpression ::=
    +    LeftOperand % RightOperand
    +
    +SubtractionExpression ::=
    +    LeftOperand - RightOperand
    +

    Legality Rules

    +

    6.5.5:1 +An arithmetic expression is an expression that computes a value +from two operands using arithmetic.

    +

    6.5.5:2 +An addition expression is an arithmetic expression that uses addition.

    +

    6.5.5:3 +The type of the left operand of an addition expression shall +implement the core::ops::Add trait with the type of the +right operand as the trait implementation type parameter.

    +

    6.5.5:4 +The type of an addition expression is associated type +core::ops::Add::Output.

    +

    6.5.5:5 +The value of an addition expression is the result of +core::ops::Add::add(left_operand, right_operand).

    +

    6.5.5:6 +A division expression is an arithmetic expression that uses division.

    +

    6.5.5:7 +The type of the left operand of a division expression shall +implement the core::ops::Div trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:8 +The type of a division expression is associated type +core::ops::Div::Output.

    +

    6.5.5:9 +The value of a division expression is the result of +core::ops::Div::div(left_operand, right_operand).

    +

    6.5.5:10 +A multiplication expression is an arithmetic expression that uses +multiplication.

    +

    6.5.5:11 +The type of the left operand of a multiplication expression +shall implement the core::ops::Mul trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:12 +The type of a multiplication expression is associated type +core::ops::Mul::Output.

    +

    6.5.5:13 +The value of a multiplication expression is the result of +core::ops::Mul::mul(left_operand, right_operand).

    +

    6.5.5:14 +A remainder expression is an arithmetic expression that uses remainder +division.

    +

    6.5.5:15 +The type of the left operand of a remainder expression shall +implement the core::ops::Rem trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:16 +The type of a remainder expression is associated type +core::ops::Rem::Output.

    +

    6.5.5:17 +The value of a remainder expression is the result of +core::ops::Rem::rem(left_operand, right_operand).

    +

    6.5.5:18 +A subtraction expression is an arithmetic expression that uses +subtraction.

    +

    6.5.5:19 +The type of the left operand of a subtraction expression shall +implement the core::ops::Sub trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:20 +The type of a subtraction expression is associated type +core::ops::Sub::Output.

    +

    6.5.5:21 +The value of a subtraction expression is the result of +core::ops::Sub::sub(left_operand, right_operand).

    +

    Dynamic Semantics

    +

    6.5.5:22 +The evaluation of an addition expression proceeds as follows:

    +
      +
    1. 6.5.5:23 +The left operand is evaluated.

    2. +
    3. 6.5.5:24 +The right operand is evaluated.

    4. +
    5. 6.5.5:25 +If the type of both operands is the same integer type or +floating-point type, then the addition expression evaluates to the +sum of the operands, following the rules of unsigned integer addition +for unsigned integer types, two’s complement addition for +signed integer types, or floating-point addition for +floating-point types. If unsigned integer addition or two’s +complement addition is performed, then the operation may result in an +arithmetic overflow.

    6. +
    7. 6.5.5:26 +Otherwise, core::ops::Add::add(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:27 +The evaluation of a division expression proceeds as follows:

    +
      +
    1. 6.5.5:28 +The left operand is evaluated.

    2. +
    3. 6.5.5:29 +The right operand is evaluated.

    4. +
    5. 6.5.5:30 +If the type of both operands is the same integer type or +floating-point type, then the division expression evaluates to the +quotient of the operands, following the rules of unsigned integer +division for unsigned integer types, two’s complement division for +signed integer types, or floating-point division for +floating-point types.

      +
        +
      1. 6.5.5:31 +If unsigned integer division is performed and the right operand is +0, then the operation results in a panic.

      2. +
      3. 6.5.5:32 +If two’s complement division is performed and the right operand is 0 +or the result does not fit in the target type, then the operation results +in a panic.

      4. +
      +
    6. +
    7. 6.5.5:33 +Otherwise, core::ops::Div::div(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:34 +The evaluation of a multiplication expression proceeds as follows:

    +
      +
    1. 6.5.5:35 +The left operand is evaluated.

    2. +
    3. 6.5.5:36 +The right operand is evaluated.

    4. +
    5. 6.5.5:37 +If the type of both operands is the same integer type or +floating-point type, then the multiplication expression evaluates +to the product of the operands, following the rules of unsigned +integer multiplication for unsigned integer types, two’s complement +multiplication for signed integer types, or floating-point +multiplication for floating-point types. If unsigned integer +multiplication or two’s complement multiplication is performed, then the +operation may result in an arithmetic overflow.

    6. +
    7. 6.5.5:38 +Otherwise, core::ops::Mul::mul(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:39 +The evaluation of a remainder expression proceeds as follows:

    +
      +
    1. 6.5.5:40 +The left operand is evaluated.

    2. +
    3. 6.5.5:41 +The right operand is evaluated.

    4. +
    5. 6.5.5:42 +If the type of both operands is the same integer type or +floating-point type, then the remainder expression evaluates to +the remainder of the division of the left operand by the +right operand, following the rules of unsigned integer division for +unsigned integer types, two’s complement division for +signed integer types, or floating-point division for +floating-point types.

      +
        +
      1. 6.5.5:43 +If unsigned integer division is performed and the right operand is +0, then the operation results in a panic.

      2. +
      3. 6.5.5:44 +If two’s complement division is performed and the right operand is 0 +or the resulting remainder does not fit in the target type, then the +operation results in a panic.

      4. +
      +
    6. +
    7. 6.5.5:45 +Otherwise, core::ops::Rem::rem(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:46 +The evaluation of a subtraction expression proceeds as follows:

    +
      +
    1. 6.5.5:47 +The left operand is evaluated.

    2. +
    3. 6.5.5:48 +The right operand is evaluated.

    4. +
    5. 6.5.5:49 +If the type of both operands is the same integer type or +floating-point type, then the subtraction expression evaluates to +the difference of the operands, following the rules of unsigned +integer subtraction for unsigned integer types, two’s complement +subtraction for signed integer types, or floating-point subtraction +for floating-point types. If unsigned integer subtraction or two’s +complement subtraction is performed, then the operation may result in an +arithmetic overflow.

    6. +
    7. 6.5.5:50 +Otherwise, core::ops::Sub::sub(left_operand, right_operand) is invoked.

    8. +
    +

    Examples

    +
    1 + 2
    +4.0 / 3.29
    +8.4 * 5.3
    +10 % 4
    +3 - 2
    +
    +
    +
    +
    +

    6.5.6. Bit Expressions

    +

    Syntax

    +
    BitExpression ::=
    +    BitAndExpression
    +  | BitOrExpression
    +  | BitXOrExpression
    +  | ShiftLeftExpression
    +  | ShiftRightExpression
    +
    +BitAndExpression ::=
    +    LeftOperand & RightOperand
    +
    +BitOrExpression ::=
    +    LeftOperand | RightOperand
    +
    +BitXorExpression ::=
    +    LeftOperand ^ RightOperand
    +
    +ShiftLeftExpression ::=
    +    LeftOperand << RightOperand
    +
    +ShiftRightExpression ::=
    +    LeftOperand >> RightOperand
    +

    Legality Rules

    +

    6.5.6:1 +A bit expression is an expression that computes a value from two +operands using bit arithmetic.

    +

    6.5.6:2 +A bit and expression is a bit expression that uses bit and arithmetic.

    +

    6.5.6:3 +The type of the left operand of a bit and expression shall +implement the core::ops::BitAnd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:4 +The type of a bit and expression is associated type +core::ops::BitAnd::Output.

    +

    6.5.6:5 +The value of a bit and expression is the result of +core::ops::BitAnd::bitand(left_operand, right_operand).

    +

    6.5.6:6 +A bit or expression is a bit expression that uses bit or arithmetic.

    +

    6.5.6:7 +The type of the left operand of a bit or expression shall +implement the core::ops::BitOr trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:8 +The type of a bit or expression is associated type +core::ops::BitOr::Output.

    +

    6.5.6:9 +The value of a bit or expression is the result of +core::ops::BitOr::bitor(left_operand, right_operand).

    +

    6.5.6:10 +A bit xor expression is a bit expression that uses bit exclusive or +arithmetic.

    +

    6.5.6:11 +The type of the left operand of a bit xor expression shall +implement the core::ops::BitXor trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:12 +The type of a bit xor expression is associated type +core::ops::BitXor::Output.

    +

    6.5.6:13 +The value of a bit xor expression is the result of +core::ops::BitXor::bitxor(left_operand, right_operand).

    +

    6.5.6:14 +A shift left expression is a bit expression that uses bit shift left +arithmetic.

    +

    6.5.6:15 +The type of the left operand of a shift left expression shall +implement the core::ops::Shl trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:16 +The type of a shift left expression is associated type +core::ops::Shl::Output.

    +

    6.5.6:17 +The value of a shift left expression is the result of +core::ops::Shl::shl(left_operand, right_operand).

    +

    6.5.6:18 +A shift right expression is a bit expression that uses bit shift right +arithmetic.

    +

    6.5.6:19 +The type of the left operand of a shift right expression shall +implement the core::ops::Shr trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:20 +The type of a shift right expression is associated type +core::ops::Shr::Output.

    +

    6.5.6:21 +The value of a shift right expression is the result of +core::ops::Shr::shr(left_operand, right_operand).

    +

    Dynamic Semantics

    +

    6.5.6:22 +The evaluation of a bit and expression proceeds as follows:

    +
      +
    1. 6.5.6:23 +The left operand is evaluated.

    2. +
    3. 6.5.6:24 +The right operand is evaluated.

    4. +
    5. 6.5.6:25 +core::ops::BitAnd::bitand(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:26 +The evaluation of a bit or expression proceeds as follows:

    +
      +
    1. 6.5.6:27 +The left operand is evaluated.

    2. +
    3. 6.5.6:28 +The right operand is evaluated.

    4. +
    5. 6.5.6:29 +core::ops::BitOr::bitor(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:30 +The evaluation of a bit xor expression proceeds as follows:

    +
      +
    1. 6.5.6:31 +The left operand is evaluated.

    2. +
    3. 6.5.6:32 +The right operand is evaluated.

    4. +
    5. 6.5.6:33 +core::ops::BitXor::bitxor(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:34 +The evaluation of a shift left expression proceeds as follows:

    +
      +
    1. 6.5.6:35 +The left operand is evaluated.

    2. +
    3. 6.5.6:36 +The right operand is evaluated.

    4. +
    5. 6.5.6:37 +core::ops::Shl::shl(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:38 +The evaluation of a shift right expression proceeds as follows:

    +
      +
    1. 6.5.6:39 +The left operand is evaluated.

    2. +
    3. 6.5.6:40 +The right operand is evaluated.

    4. +
    5. 6.5.6:41 +core::ops::Shr::shr(left_operand, right_operand) is invoked.

    6. +
    +

    Examples

    +
    0b1010 & 0b1100
    +0b1010 | 0b0011
    +0b1010 ^ 0b1001
    +13 << 3
    +-10 >> 2
    +
    +
    +
    +
    +

    6.5.7. Comparison Expressions

    +

    Syntax

    +
    ComparisonExpression ::=
    +    EqualsExpression
    +  | GreaterThanExpression
    +  | GreaterThanOrEqualsExpression
    +  | LessThanExpression
    +  | LessThanOrEqualsExpression
    +  | NotEqualsExpression
    +
    +EqualsExpression ::=
    +    LeftOperand == RightOperand
    +
    +GreaterThanExpression ::=
    +    LeftOperand > RightOperand
    +
    +GreaterThanOrEqualsExpression ::=
    +    LeftOperand >= RightOperand
    +
    +LessThanExpression ::=
    +    LeftOperand < RightOperand
    +
    +LessThanOrEqualsExpression ::=
    +    LeftOperand <= RightOperand
    +
    +NotEqualsExpression ::=
    +    LeftOperand != RightOperand
    +

    Legality Rules

    +

    6.5.7:1 +A comparison expression is an expression that compares the +values of two operands.

    +

    6.5.7:2 +A comparison expression implicitly takes shared borrows of its +operands.

    +

    6.5.7:3 +The type of a comparison expression is type bool.

    +

    6.5.7:4 +An equals expression is a comparison expression that tests equality.

    +

    6.5.7:5 +The type of the left operand of an equals expression shall +implement the core::cmp::PartialEq trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:6 +The value of an equals expression is the result of +core::cmp::PartialEq::eq(&left_operand, &right_operand).

    +

    6.5.7:7 +A greater-than expression is a comparison expression that tests for a +greater-than relationship.

    +

    6.5.7:8 +The type of the left operand of a greater-than expression shall +implement the core::cmp::PartialOrd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:9 +The value of a greater-than expression is the result of +core::cmp::PartialOrd::gt(&left_operand, &right_operand).

    +

    6.5.7:10 +A greater-than-or-equals expression is a comparison expression that +tests for a greater-than-or-equals relationship.

    +

    6.5.7:11 +The type of the left operand of a +greater-than-or-equals expression shall implement the +core::cmp::PartialOrd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:12 +The value of a greater-than-or-equals expression is the result of +core::cmp::PartialOrd::ge(&left_operand, &right_operand).

    +

    6.5.7:13 +A less-than expression is a comparison expression that tests for a +less-than relationship.

    +

    6.5.7:14 +The type of the left operand of a less-than expression shall +implement the core::cmp::PartialOrd trait where the type of +the right operand is the trait implementation type parameter.

    +

    6.5.7:15 +The value of a less-than expression is the result of +core::cmp::PartialOrd::lt(&left_operand, &right_operand).

    +

    6.5.7:16 +A less-than-or-equals expression is a comparison expression that tests +for a less-than-or-equals relationship.

    +

    6.5.7:17 +The type of the left operand of a less-than-or-equals expression +shall implement the core::cmp::PartialOrd trait where the type +of the right operand is the trait implementation type parameter.

    +

    6.5.7:18 +The value of a less-than-or-equals expression is the result of +core::cmp::PartialOrd::le(&left_operand, &right_operand).

    +

    6.5.7:19 +A not-equals expression is a comparison expression that tests for +inequality.

    +

    6.5.7:20 +The type of the left operand of a not-equals expression shall +implement the core::cmp::PartialEq trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:21 +The value of a not-equals expression is the result of +core::cmp::PartialEq::ne(&left_operand, &right_operand).

    +

    Dynamic Semantics

    +

    6.5.7:22 +The evaluation of an equals expression proceeds as follows:

    +
      +
    1. 6.5.7:23 +The left operand is evaluated.

    2. +
    3. 6.5.7:24 +The right operand is evaluated.

    4. +
    5. 6.5.7:25 +core::cmp::PartialEq::eq(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:26 +The evaluation of a greater-than expression proceeds as follows:

    +
      +
    1. 6.5.7:27 +The left operand is evaluated.

    2. +
    3. 6.5.7:28 +The right operand is evaluated.

    4. +
    5. 6.5.7:29 +core::cmp::PartialOrd::gt(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:30 +The evaluation of a greater-than-or-equals expression proceeds as +follows:

    +
      +
    1. 6.5.7:31 +The left operand is evaluated.

    2. +
    3. 6.5.7:32 +The right operand is evaluated.

    4. +
    5. 6.5.7:33 +core::cmp::PartialOrd::ge(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:34 +The evaluation of a less-than expression proceeds as follows:

    +
      +
    1. 6.5.7:35 +The left operand is evaluated.

    2. +
    3. 6.5.7:36 +The right operand is evaluated.

    4. +
    5. 6.5.7:37 +core::cmp::PartialOrd::lt(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:38 +The evaluation of a less-than-or-equals expression proceeds as +follows:

    +
      +
    1. 6.5.7:39 +The left operand is evaluated.

    2. +
    3. 6.5.7:40 +The right operand is evaluated.

    4. +
    5. 6.5.7:41 +core::cmp::PartialOrd::le(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:42 +The evaluation of a not-equals expression proceeds as follows:

    +
      +
    1. 6.5.7:43 +The left operand is evaluated.

    2. +
    3. 6.5.7:44 +The right operand is evaluated.

    4. +
    5. 6.5.7:45 +core::cmp::PartialEq::ne(&left_operand, &right_operand) is invoked.

    6. +
    +

    Examples

    +
    12 == 12
    +42 > 12
    +42 >= 35
    +42 < 109
    +42 <= 42
    +12 != 42
    +
    +
    +
    +
    +

    6.5.8. Lazy Boolean Expressions

    +

    Syntax

    +
    LazyBooleanExpression ::=
    +    LazyAndExpression
    +  | LazyOrExpression
    +
    +LazyAndExpression ::=
    +    LeftOperand && RightOperand
    +
    +LazyOrExpression ::=
    +    LeftOperand || RightOperand
    +

    Legality Rules

    +

    6.5.8:1 +A lazy boolean expression is an expression that performs short circuit +Boolean arithmetic.

    +

    6.5.8:2 +A lazy and expression is a lazy boolean expression that uses short +circuit and arithmetic.

    +

    6.5.8:3 +A lazy or expression is a lazy boolean expression that uses short +circuit or arithmetic.

    +

    6.5.8:4 +The types of the operands of a lazy boolean expression shall +be type bool.

    +

    6.5.8:5 +The type of a lazy boolean expression is type bool.

    +

    6.5.8:6 +The value of a lazy boolean expression is either true or +false.

    +

    Dynamic Semantics

    +

    6.5.8:7 +The evaluation of a lazy and expression proceeds as follows:

    +
      +
    1. 6.5.8:8 +The left operand is evaluated.

    2. +
    3. 6.5.8:9 +If the left operand evaluated to true, then the right operand +is evaluated and returned as the lazy and expression's value.

    4. +
    5. 6.5.8:10 +Otherwise the lazy and expression evaluates to false.

    6. +
    +

    6.5.8:11 +The evaluation of a lazy or expression proceeds as follows:

    +
      +
    1. 6.5.8:12 +The left operand is evaluated.

    2. +
    3. 6.5.8:13 +If the left operand evaluated to false, then the right operand +is evaluated and returned as the lazy or expression's value.

    4. +
    5. 6.5.8:14 +Otherwise the lazy or expression evaluates to true.

    6. +
    +

    Examples

    +
    false && panic!()
    +this || that
    +
    +
    +
    +
    +

    6.5.9. Type Cast Expressions

    +

    Syntax

    +
    TypeCastExpression ::=
    +    Operand as TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    6.5.9:1 +A type cast expression is an expression that changes the type of +an operand.

    +

    6.5.9:2 +Cast or casting is the process of changing the type of an +expression.

    +

    6.5.9:3 +The TypeSpecificationWithoutBounds describes the target type of the +type cast expression.

    +

    6.5.9:4 +A type cast expression with the following characteristics performs a +specialized cast:

    + +

    6.5.9:20 +A cast is legal when it either performs type coercion or is a +specialized cast.

    +

    6.5.9:21 +The type of a type cast expression is the target type.

    +

    6.5.9:22 +The value of a type cast expression is the value of the +operand after the cast.

    +

    Dynamic Semantics

    +

    6.5.9:23 +The evaluation of a type cast expression evaluates its operand.

    +

    6.5.9:24 +The evaluation of a numeric cast proceeds as follows:

    + +

    Examples

    +

    6.5.9:41 +See Paragraph 6.4.1. for the declaration of answer.

    +
    answer as f64
    +
    +
    +
    +
    +

    6.5.10. Assignment Expressions

    +

    Syntax

    +
    AssignmentExpression ::=
    +    AssigneeOperand = ValueOperand
    +
    +AssigneeOperand ::=
    +    Operand
    +
    +ValueOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.5.10:1 +An assignment expression is an expression that assigns the value +of a value operand to an assignee operand.

    +

    6.5.10:2 +An assignee operand is the target operand of an +assignment expression.

    +

    6.5.10:3 +A value operand is an operand that supplies the value that is +assigned to an assignee operand by an assignment expression.

    +

    6.5.10:4 +The type of an assignment expression is the unit type.

    +

    6.5.10:5 +The value of an assignment expression is the unit value.

    +
    +

    6.5.10.1. Basic Assignment

    +

    Legality Rules

    +

    6.5.10.1:1 +A basic assignment is an assignment expression that is not a +destructuring assignment.

    +

    Dynamic Semantics

    +

    6.5.10.1:2 +The evaluation of a basic assignment proceeds as follows:

    +
      +
    1. 6.5.10.1:3 +The value operand is evaluated.

    2. +
    3. 6.5.10.1:4 +The assignee operand is evaluated.

    4. +
    5. 6.5.10.1:5 +The value denoted by the assignee operand is dropped, unless +the assignee operand denotes an uninitialized variable or an +uninitialized field of a variable.

    6. +
    7. 6.5.10.1:6 +The value of the value operand is passed +into the place of the assignee operand.

    8. +
    +

    Examples

    +
    this = 42
    +
    +
    +
    +
    +

    6.5.10.2. Destructuring Assignment

    +

    Legality Rules

    +

    6.5.10.2:1 +A destructuring assignment is an assignment expression where +the assignee operand is either an array expression, a struct +expression, a tuple expression or a tuple struct call expression.

    +

    6.5.10.2:2 +The assignee operand of a destructuring assignment is treated as an +assignee pattern depending on its kind, as follows:

    + +

    6.5.10.2:10 +The pattern that corresponds to a destructuring assignment shall be +an irrefutable pattern.

    +

    6.5.10.2:11 +A destructuring assignment is equivalent to a block expression of the +following form:

    + +

    Dynamic Semantics

    +

    6.5.10.2:16 +The evaluation of a destructuring assignment proceeds as follows:

    +
      +
    1. 6.5.10.2:17 +The value operand is evaluated.

    2. +
    3. 6.5.10.2:18 +The assignee operand is evaluated by evaluating its operands in +a left-to-right order.

    4. +
    5. 6.5.10.2:19 +Each value denoted by the assignee operand is dropped +in left-to-right order, unless the assignee operand denotes an +uninitialized variable or an uninitialized field of a variable.

    6. +
    7. 6.5.10.2:20 +The value of the value operand is passed +into the place of the assignee operand.

    8. +
    +

    Examples

    +
    (four, two) = (4, 2)
    +
    +
    +
    +
    +
    +

    6.5.11. Compound Assignment Expressions

    +

    Syntax

    +
    CompoundAssignmentExpression ::=
    +    AdditionAssignmentExpression
    +  | BitAndAssignmentExpression
    +  | BitOrAssignmentExpression
    +  | BitXorAssignmentExpression
    +  | DivisionAssignmentExpression
    +  | MultiplicationAssignmentExpression
    +  | RemainderAssignmentExpression
    +  | ShiftLeftAssignmentExpression
    +  | ShiftRightAssignmentExpression
    +  | SubtractionAssignmentExpression
    +
    +AdditionAssignmentExpression ::=
    +    AssignedOperand += ModifyingOperand
    +
    +BitAndAssignmentExpression ::=
    +    AssignedOperand &= ModifyingOperand
    +
    +BitOrAssignmentExpression ::=
    +    AssignedOperand |= ModifyingOperand
    +
    +BitXorAssignmentExpression ::=
    +    AssignedOperand ^= ModifyingOperand
    +
    +DivisionAssignmentExpression ::=
    +    AssignedOperand /= ModifyingOperand
    +
    +MultiplicationAssignmentExpression ::=
    +    AssignedOperand *= ModifyingOperand
    +
    +RemainderAssignmentExpression ::=
    +    AssignedOperand %= ModifyingOperand
    +
    +ShiftLeftAssignmentExpression ::=
    +    AssignedOperand <<= ModifyingOperand
    +
    +ShiftRightAssignmentExpression ::=
    +    AssignedOperand >>= ModifyingOperand
    +
    +SubtractionAssignmentExpression ::=
    +    AssignedOperand -= ModifyingOperand
    +
    +AssignedOperand ::=
    +    Operand
    +
    +ModifyingOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.5.11:1 +A compound assignment expression is an expression that first computes +a value from two operands and then assigns the value to an +assigned operand.

    +

    6.5.11:2 +A bit and assignment expression is a compound assignment expression +that uses bit and arithmetic.

    +

    6.5.11:3 +A bit or assignment expression is a compound assignment expression +that uses bit or arithmetic.

    +

    6.5.11:4 +A bit xor assignment expression is a compound assignment expression +that uses bit exclusive or arithmetic.

    +

    6.5.11:5 +A division assignment expression is a compound assignment expression +that uses division.

    +

    6.5.11:6 +A multiplication assignment expression is a +compound assignment expression that uses multiplication.

    +

    6.5.11:7 +A remainder assignment expression is a compound assignment expression +that uses remainder division.

    +

    6.5.11:8 +A shift left assignment expression is a compound assignment expression +that uses bit shift left arithmetic.

    +

    6.5.11:9 +A shift right assignment expression is a +compound assignment expression that uses bit shift right arithmetic.

    +

    6.5.11:10 +A subtraction assignment expression is a +compound assignment expression that uses subtraction.

    +

    6.5.11:11 +An assigned operand is the target operand of a +compound assignment expression.

    +

    6.5.11:12 +A modifying operand is an operand that supplies the value that +is used in the calculation of a compound assignment expression.

    +

    6.5.11:13 +An assigned operand shall denote a mutable assignee expression.

    +

    6.5.11:14 +The type of a compound assignment is the unit type.

    +

    6.5.11:15 +The value of a compound assignment is the unit value.

    +

    6.5.11:16 +The type of the assigned operand of an addition assignment shall +implement the core::ops::AddAssign trait where the type of the right +operand is the trait implementation type parameter.

    +

    6.5.11:17 +The type of the assigned operand of a bit and assignment shall +implement the core::ops::BitAndAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:18 +The type of the assigned operand of a bit or assignment shall +implement the core::ops::BitOrAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:19 +The type of the assigned operand of a bit xor assignment shall +implement the core::ops::BitXorAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:20 +The type of the assigned operand of a division assignment shall +implement the core::ops::DivAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:21 +The type of the assigned operand of a multiplication assignment +shall implement the core::ops::MulAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    6.5.11:22 +The type of the assigned operand of a remainder assignment shall +implement the core::ops::RemAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:23 +The type of the assigned operand of a shift left assignment shall +implement the core::ops::ShlAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:24 +The type of the assigned operand of a shift right assignment +shall implement the core::ops::ShrAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    6.5.11:25 +The type of the assigned operand of a subtraction assignment +shall implement the core::ops::SubAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    Dynamic Semantics

    +

    6.5.11:26 +The evaluation of a compound assignment proceeds as follows:

    +
      +
    1. 6.5.11:27 +If the types of both operands are integer types or floating-point types, then

      +
        +
      1. 6.5.11:28 +The modifying operand is evaluated.

      2. +
      3. 6.5.11:29 +The assigned operand is evaluated.

      4. +
      5. 6.5.11:30 +The appropriate function is invoked as indicated below.

      6. +
      +
    2. +
    3. 6.5.11:31 +Otherwise

      +
        +
      1. 6.5.11:32 +The assigned operand is evaluated.

      2. +
      3. 6.5.11:33 +The modifying operand is evaluated.

      4. +
      5. 6.5.11:34 +The appropriate function is invoked as indicated below.

      6. +
      +
    4. +
    +

    6.5.11:35 +For an addition assignment, +core::ops::AddAssign::add_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:36 +For a bit and assignment, +core::ops::BitAndAssign::bitand_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:37 +For a bit or assignment, +core::ops::BitOrAssign::bitor_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:38 +For a bit xor assignment, +core::ops::BitXorAssign::bitxor_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:39 +For a division assignment, +core::ops::DivAssign::div_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:40 +For a multiplication assignment, +core::ops::MulAssign::mul_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:41 +For a remainder assignment, +core::ops::RemAssign::rem_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:42 +For a shift left assignment, +core::ops::ShlAssign::shl_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:43 +For a shift right assignment, +core::ops::ShrAssign::shr_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:44 +For a subtraction assignment, +core::ops::SubAssign::sub_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    Examples

    +
    let mut result = 42;
    +result += 1
    +result &= 59
    +result /= 3
    +result ^= 2
    +result *= 81
    +result |= 9402
    +result %= 7
    +result <<= 2
    +result >>= 3
    +result -= 0
    +
    +
    +
    +
    +
    +

    6.6. Underscore Expressions

    +

    Syntax

    +
    UnderscoreExpression ::=
    +    _
    +

    Legality Rules

    +

    6.6:1 +An underscore expression is an expression that acts as a placeholder +in a destructuring assignment.

    +

    6.6:2 +An underscore expression shall appear in the assigned operand of a +destructuring assignment.

    +

    Examples

    +
    let pair = (1, 2);
    +let mut second = 0;
    +(_, second) = pair;
    +
    +
    +
    +
    +

    6.7. Parenthesized Expressions

    +

    Syntax

    +
    ParenthesizedExpression ::=
    +    ( Operand )
    +

    Legality Rules

    +

    6.7:1 +A parenthesized expression is an expression that groups other +expressions.

    +

    6.7:2 +The type of a parenthesized expression is the type of its +operand.

    +

    6.7:3 +The value of a parenthesized expression is the value of its +operand.

    +

    Dynamic Semantics

    +

    6.7:4 +The evaluation of a parenthesized expression evaluates its +operand.

    +

    Examples

    +
    (1 + 2) * 3
    +
    +
    +
    +
    +

    6.8. Array Expressions

    +

    Syntax

    +
    ArrayExpression ::=
    +    [ ArrayElementExpression? ]
    +
    +ArrayElementExpression ::=
    +    ArrayElementConstructor
    +  | ArrayRepetitionConstructor
    +
    +ArrayElementConstructor ::=
    +    ExpressionList
    +
    +ArrayRepetitionConstructor ::=
    +    RepeatOperand ; SizeOperand
    +
    +RepeatOperand ::=
    +    Operand
    +
    +SizeOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.8:1 +An array expression is an expression that constructs an array.

    +

    6.8:2 +An array element constructor is an array expression that lists all +elements of the array being constructed.

    +

    6.8:3 +An array repetition constructor is an array expression that specifies +how many times an element is repeated in the array being constructed.

    +

    6.8:4 +A repeat operand is an operand that specifies the element being +repeated in an array repetition constructor.

    +

    6.8:5 +A size operand is an operand that specifies the size of an array +or an array type.

    +

    6.8:6 +The size operand shall be a constant expression.

    +

    6.8:7 +The types of the operands of an array element constructor +shall be unifiable.

    +

    6.8:8 +If the size operand is greater than one, then the type of the +repeat operand shall implement the core::copy::Copy trait +or the repeat operand shall be a path expression resolving to a +constant.

    +

    6.8:9 +The type of the size operand shall be type usize.

    +

    6.8:10 +The type of an array expression is [T; N], where T is the +element type and N is the size of the array. The size of an +array is determined as follows:

    + +

    6.8:13 +The value of an array expression is the constructed array.

    +

    Dynamic Semantics

    +

    6.8:14 +The evaluation of an array expression with an +array element constructor evaluates its operands in left-to-right +order.

    +

    6.8:15 +The evaluation of an array expression with an +array repetition constructor proceeds as follows:

    +
      +
    1. 6.8:16 +If the value of the size operand is greater than zero, then:

      +
        +
      1. 6.8:17 +If the repeat operand denotes a constant, the +repeat operand is evaluated once and its value is +passed by copy size operand's +value times.

      2. +
      3. 6.8:18 +Otherwise the repeat operand is evaluated size operand's +value times.

      4. +
      +
    2. +
    3. 6.8:19 +Otherwise the repeat operand is evaluated once.

    4. +
    +

    Examples

    +
    [1, 2, 3]
    +["one", "two", "three",]
    +
    +
    +

    6.8:20 +Two dimensional array.

    +
    [[0, 0], [0, 1], [1, 0], [1, 1]]
    +

    6.8:21 +An array of nine 42s.

    +
    [42; 9]
    +
    +
    +

    6.9. Indexing Expressions

    +

    Syntax

    +
    IndexExpression ::=
    +    IndexedOperand [ IndexingOperand ]
    +
    +IndexedOperand ::=
    +    Operand
    +
    +IndexingOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.9:1 +A indexable type is a type that implements the +core::ops::Index trait.

    +

    6.9:2 +An index expression is an expression that indexes into a value +of an indexable type.

    +

    6.9:3 +An indexed operand is an operand which indicates the value +being indexed into by an index expression.

    +

    6.9:4 +An indexing operand is an operand which specifies the index of an +index expression.

    +

    6.9:5 +An index expression is a constant expression if the +indexing operand and indexed operand are constant expressions.

    +

    6.9:6 +The type of the indexing operand is the generic parameter of the +core::ops::Index implementation of the type of the +indexed operand.

    +

    6.9:7 +If the indexed operand is evaluated in a value expression context, +then

    + +

    6.9:10 +If the indexed operand is mutable and the index expression is +evaluated in a mutable place expression context, then

    + +

    6.9:13 +The value of an index expression is the indexed memory location.

    +

    Dynamic Semantics

    +

    6.9:14 +The evaluation of an index expression proceeds as follows:

    +
      +
    1. 6.9:15 +The indexed operand is evaluated.

    2. +
    3. 6.9:16 +The indexing operand is evaluated.

    4. +
    5. 6.9:17 +If the index expression is evaluated in a mutable place +expression context, then expression +*core::ops::IndexMut::index_mut(&mut indexed_operand, indexing_operand) +is evaluated.

    6. +
    7. 6.9:18 +Otherwise expression *core::ops::Index::index(&indexed_operand, +indexing_operand) is evaluated.

    8. +
    +

    Examples

    +
    let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    +a[1][2]
    +
    +
    +

    6.9:19 +Evaluates to 6.

    +
    +
    +

    6.10. Tuple Expressions

    +

    Syntax

    +
    TupleExpression ::=
    +    ( TupleInitializerList? )
    +
    +TupleInitializerList ::=
    +    ExpressionList
    +

    Legality Rules

    +

    6.10:1 +A tuple expression is an expression that constructs a tuple.

    +

    6.10:2 +A tuple initializer is an operand that provides the value of a +tuple field in a tuple expression.

    +

    6.10:3 +The type of a tuple expression is (T1, T2, ..., TN), where T1 +is the type of the first tuple initializer, T2 is the type of +the second tuple initializer, and TN is the type of the N-th +tuple initializer.

    +

    6.10:4 +The value of a tuple expression is (V1, V2, ..., VN), where V1 +is the value of the first tuple initializer, V2 is the value +of the second tuple initializer, and VN is the value of the +N-th tuple initializer.

    +

    Dynamic Semantics

    +

    6.10:5 +The evaluation of a tuple expression evaluates its +tuple initializers in left-to-right order.

    +

    Examples

    +
    ()
    +(1.2, 3.4)
    +("hello", 42i16, true)
    +
    +
    +
    +
    +

    6.11. Struct Expressions

    +

    Syntax

    +
    StructExpression ::=
    +    Constructee { StructExpressionContent? }
    +
    +Constructee ::=
    +    PathExpression
    +
    +StructExpressionContent ::=
    +    BaseInitializer
    +  | FieldInitializerList (, BaseInitializer | ,?)
    +
    +BaseInitializer ::=
    +    .. Operand
    +
    +FieldInitializerList ::=
    +    FieldInitializer (, FieldInitializer)*
    +
    +FieldInitializer ::=
    +    IndexedInitializer
    +  | NamedInitializer
    +  | ShorthandInitializer
    +
    +IndexedInitializer ::=
    +    FieldIndex : Expression
    +
    +NamedInitializer ::=
    +    Identifier : Expression
    +
    +ShorthandInitializer ::=
    +    Identifier
    +

    Legality Rules

    +

    6.11:1 +A struct expression is an expression that constructs an +enum value, a struct value, or a union value.

    +

    6.11:2 +A constructee indicates the enum variant, struct, or union +whose value is being constructed by a struct expression.

    +

    6.11:3 +A base initializer is a construct that specifies an enum value, +a struct value, or a union value to be used as a base for +construction in a struct expression.

    +

    6.11:4 +The type of a base initializer is the type of its operand. +The type of a base initializer shall be the same as the type of +the constructee.

    +

    6.11:5 +An indexed initializer is a construct that specifies the index and +initial value of a field in a struct expression.

    +

    6.11:6 +An indexed initializer matches a field of the constructee +when the field index of the indexed initializer resolves to a valid +position of a field in the constructee. Such an +indexed initializer is a matched indexed initializer.

    +

    6.11:7 +The type of the operand of an indexed initializer and the +type of the matched field shall be unifiable.

    +

    6.11:8 +The value of an indexed initializer is the value of its +operand.

    +

    6.11:9 +A named initializer is a construct that specifies the name and +initial value of a field in a struct expression.

    +

    6.11:10 +A named initializer matches a field of the constructee when +its identifier and the name of the field are the same. Such a +named initializer is a matched named initializer.

    +

    6.11:11 +The type of a named initializer and the type of the matched +field shall be unifiable.

    +

    6.11:12 +The value of a named initializer is the value of its +expression.

    +

    6.11:13 +A shorthand initializer is a construct that specifies the name +of a field in a struct expression.

    +

    6.11:14 +A shorthand initializer is equivalent to a named initializer where +both the identifier and the expression of the named initializer +denote the identifier of the shorthand initializer.

    +

    6.11:15 +A shorthand initializer matches a field of the constructee +when its identifier and the name of the field are the same. Such +a shorthand initializer is a matched shorthand initializer.

    +

    6.11:16 +The type of a shorthand initializer and the type of the matched +field shall be unifiable.

    +

    6.11:17 +The value of a shorthand initializer is the value its +identifier resolves to.

    +

    6.11:18 +The type of a struct expression is the type of the +constructee.

    +

    6.11:19 +The value of a struct expression is the enum value, +struct value, or union value in construction.

    +

    6.11:20 +If the constructee is a record enum variant or a record struct, +then

    + +

    6.11:26 +If the constructee is a tuple enum variant or a tuple struct, +then

    + +

    6.11:31 +If the constructee is a union type, then

    + +

    6.11:36 +If the constructee is a unit enum variant or a unit struct, then +the struct expression shall have at most one base initializer.

    +

    6.11:37 +If a base initializer is supplied, then for each field that was not +matched in the struct expression the value of the corresponding +field of the base initializer is passed to +the field of the constructee.

    +

    Dynamic Semantics

    +

    6.11:38 +The evaluation of a struct expression evaluates its operands in +a left-to-right order.

    +

    Examples

    +
    enum Occupation {
    +    Engineer,
    +    Gardener
    +}
    +
    +struct Employee {
    +    name: String,
    +    age: u16,
    +    occupation: Occupation
    +    compensation: u32
    +}
    +
    +let alice = Employee {
    +    name: "Alice".to_string(),
    +    age: 23,
    +    occupation: Occupation::Engineer
    +    compensation: 250_000
    +};
    +
    +let age = 45;
    +
    +let bob = Employee {
    +    name: "Bob".to_string(), // matched named initializer
    +    age, // matched shorthand initializer
    +    .. alice // equivalent to alice.occupation, alice.compensation
    +};
    +
    +union Union {
    +     int: u32,
    +     float: f32
    +}
    +
    +let u1 = Union { int: 0 };
    +let u2 = Union { float: 0.0 };
    +
    +
    +
    +
    +

    6.12. Invocation Expressions

    +
    +

    6.12.1. Call Expressions

    +

    Syntax

    +
    CallExpression ::=
    +    CallOperand ( ArgumentOperandList? )
    +
    +CallOperand ::=
    +    Operand
    +
    +ArgumentOperandList ::=
    +    ExpressionList
    +

    Legality Rules

    +

    6.12.1:1 +A call expression is an expression that invokes a function or +constructs a tuple enum variant value or a tuple struct value.

    +

    6.12.1:2 +An argument operand is an operand which is used as an argument in a +call expression or a method call expression.

    +

    6.12.1:3 +A call operand is the function being invoked or the +tuple enum variant value or the tuple struct value being constructed +by a call expression.

    +

    6.12.1:4 +A tuple struct call expression is a call expression where the +call operand resolves to a tuple struct.

    +

    6.12.1:5 +A callee type is either a function item type, a +function pointer type, a tuple enum variant, a +tuple struct type, or a type that implements any of the +core::ops::Fn, core::ops::FnMut, or core::ops::FnOnce +traits.

    +

    6.12.1:6 +The type of a call expression is the return type of the invoked +function, the type of the tuple enum variant or the +tuple struct being constructed, or associated type +core::ops::FnOnce::Output.

    +

    6.12.1:7 +A call expression whose callee type is either an +external function item type, an unsafe function item type, or an +unsafe function pointer type shall require unsafe context.

    +

    6.12.1:8 +The value of a call expression is determined as follows:

    + +

    6.12.1:14 +A call expression is subject to call resolution.

    +

    Dynamic Semantics

    +

    6.12.1:15 +The evaluation of a call expression proceeds as follows:

    +
      +
    1. 6.12.1:16 +The call operand is evaluated.

    2. +
    3. 6.12.1:17 +The argument operands are evaluated in left-to-right order.

    4. +
    5. 6.12.1:18 +If the adjusted call operand is a function item type or +function pointer type, then corresponding function is invoked.

    6. +
    7. 6.12.1:19 +If the type of the call operand implements the +core::ops::Fn trait, then +core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple) is +invoked.

    8. +
    9. 6.12.1:20 +If the type of the call operand implements the +core::ops::FnMut trait, then +core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple) +is invoked.

    10. +
    11. 6.12.1:21 +If the type of the call operand implements the +core::ops::FnOnce trait, then +core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple) +is invoked.

    12. +
    +

    Undefined Behavior

    +

    6.12.1:22 +It is undefined behavior to call a function with an ABI other than the +ABI the function was defined with.

    +

    Examples

    +
    let three: i32 = add(1, 2);
    +
    +
    +
    +
    +

    6.12.2. Method Call Expressions

    +

    Syntax

    +
    MethodCallExpression ::=
    +    ReceiverOperand . MethodOperand ( ArgumentOperandList? )
    +
    +ReceiverOperand ::=
    +    Operand
    +
    +MethodOperand ::=
    +    PathExpressionSegment
    +

    Legality Rules

    +

    6.12.2:1 +A method call expression is an expression that invokes a method +of a variable.

    +

    6.12.2:2 +A receiver operand is an operand that denotes the value whose +method is being invoked by a method call expression.

    +

    6.12.2:3 +A method operand is an operand that denotes the method being +invoked by a method call expression.

    +

    6.12.2:4 +The type of a method call expression is the return type of the +invoked method.

    +

    6.12.2:5 +The value of a method call expression is the value returned by +the invoked method.

    +

    6.12.2:6 +A method call expression is subject to method resolution.

    +

    Dynamic Semantics

    +

    6.12.2:7 +The evaluation of a method call expression proceeds as follows:

    +
      +
    1. 6.12.2:8 +The receiver operand is evaluated.

    2. +
    3. 6.12.2:9 +The argument operands are evaluated in left-to-right order.

    4. +
    5. 6.12.2:10 +The method is invoked.

    6. +
    +

    Examples

    +
    trait Command {
    +    fn execute(&self);
    +}
    +
    +struct ClickCommand { ... }
    +
    +impl ClickCommand for Command {
    +    fn execute(&self) {
    +        println!("Someone clicked me!")
    +    }
    +}
    +
    +let click = ClickCommand { ... };
    +click.execute();
    +
    +
    +
    +
    +

    6.12.3. Call Conformance

    +

    6.12.3:1 +A method call expression is equivalent to a call expression where the +call operand is the resolved method and the adjusted +receiver operand is prepended to the argument operands.

    +

    6.12.3:2 +An argument operand matches a function parameter or field of the +callee type when its position and the position of the +function parameter or field are the same. Such an +argument operand is a matched argument operand.

    +

    6.12.3:3 +The type of a matched argument operand and the type of the +corresponding function parameter or field shall be unifiable.

    +

    6.12.3:4 +The number of argument operands shall be equal to the number of +fields or function parameters of the callee type.

    +
    +
    +
    +

    6.13. Field Access Expressions

    +

    Syntax

    +
    FieldAccessExpression ::=
    +    ContainerOperand . FieldSelector
    +
    +ContainerOperand ::=
    +    Operand
    +
    +FieldSelector ::=
    +    IndexedFieldSelector
    +  | NamedFieldSelector
    +
    +IndexedFieldSelector ::=
    +    DecimalLiteral
    +
    +NamedFieldSelector ::=
    +    Identifier
    +

    Legality Rules

    +

    6.13:1 +A field access expression is an expression that accesses a field +of a value.

    +

    6.13:2 +A container operand is an operand that indicates the value whose +field is selected in a field access expression.

    +

    6.13:3 +A field selector is a construct that selects the field to be +accessed in a field access expression.

    +

    6.13:4 +A selected field is a field that is selected by a +field access expression.

    +

    6.13:5 +The type of a field access expression is the type of the +selected field.

    +

    6.13:6 +The value of a field access expression is the value of the +selected field.

    +

    6.13:7 +Reading the selected field of a union shall require +unsafe context.

    +

    6.13:8 +Writing to the selected field of a union where the type of the +selected field implements the core::marker::Copy trait or the +core::mem::ManuallyDrop trait shall not require unsafe context.

    +

    6.13:9 +Writing to and then reading from the selected field of a union +subject to attribute repr is equivalent to invoking function +core::mem::transmute<write_type, read_type>(field_bits) where write_type +is the type used at the time of writing the selected field, +read_type is the type used at the time of reading the +selected field, and field_bits is the bit representation of the +selected field.

    +

    6.13:10 +A field access expression is subject to field resolution.

    +

    Undefined Behavior

    +

    6.13:11 +It is undefined behavior reading the selected field of a +union type when it contains data that is invalid for the selected +field‘s type.

    +

    Dynamic Semantics

    +

    6.13:12 +The evaluation of a field access expression evaluates its +container operand.

    +

    Examples

    +

    6.13:13 +See Paragraph 6.8.1. for the declaration of alice.

    +
    alice.name
    +
    +
    +

    6.13:14 +The following indexed field access evaluates to 42.

    +
    ("hello", 42i16, true).1
    +
    +
    +
    +
    +

    6.14. Closure Expressions

    +

    Syntax

    +
    ClosureExpression ::=
    +    move? | ClosureParameterList? |
    +      (ClosureBody | ClosureBodyWithReturnType)
    +
    +ClosureBody ::=
    +    Expression
    +
    +ClosureBodyWithReturnType ::=
    +    ReturnTypeWithoutBounds BlockExpression
    +
    +ReturnTypeWithoutBounds ::=
    +    -> TypeSpecificationWithoutBounds
    +
    +ClosureParameterList ::=
    +    ClosureParameter (, ClosureParameter)* ,?
    +
    +ClosureParameter ::=
    +    OuterAttributeOrDoc* PatternWithoutAlternation TypeAscription?
    +

    Legality Rules

    +

    6.14:1 +A closure expression is an expression that defines a +closure type and constructs a value of that type.

    +

    6.14:2 +The return type of a closure type is determined as follows:

    + +

    6.14:5 +A closure body is a construct that represents the executable portion +of a closure expression.

    +

    6.14:6 +A closure body denotes a new control flow boundary.

    +

    6.14:7 +A closure body is subject to capturing.

    +

    6.14:8 +A closure parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    6.14:9 +The type of a closure parameter is determined as follows:

    + +

    6.14:12 +The pattern of a closure parameter shall be an +irrefutable pattern.

    +

    6.14:13 +The expected type of the pattern of a closure parameter is the type of the closure parameter.

    +

    6.14:14 +The bindings of all patterns of all closure parameters of a closure expression shall not shadow another.

    +

    6.14:15 +The type of a closure expression is the unique anonymous +closure type defined by it.

    +

    6.14:16 +The value of a closure expression is the value of the unique +anonymous closure type instantiated with the selected +capture targets.

    +

    Dynamic Semantics

    +

    6.14:17 +The evaluation of a closure expression proceeds as follows:

    +
      +
    1. 6.14:18 +An anonymous value of an unique anonymous closure type is created.

    2. +
    +

    Examples

    +
    fn do_ten_times<F>(consumer: F) where F: Fn(i32) {
    +    for times in 0 .. 10 {
    +        consumer(times);
    +    }
    +}
    +
    +do_ten_times(|value: i32| { println!("value: {}", value)});
    +
    +
    +
    +
    +

    6.15. Loop Expressions

    +

    Syntax

    +
    LoopExpression ::=
    +    Label? LoopContent
    +
    +Label ::=
    +    ' NonKeywordIdentifier :
    +
    +LoopContent ::=
    +    ForLoopExpression
    +  | InfiniteLoopExpression
    +  | WhileLetLoopExpression
    +  | WhileLoopExpression
    +
    +LoopBody ::=
    +    BlockExpression
    +

    Legality Rules

    +

    6.15:1 +A loop expression is an expression that evaluates a block +expression continuously as long as some criterion holds true.

    +

    6.15:2 +A loop body is the block expression of a loop expression.

    +

    6.15:3 +The type of the loop body shall be the unit type.

    +

    6.15:4 +An anonymous loop expression is a loop expression without a +label.

    +

    6.15:5 +A named loop expression is a loop expression with a label.

    +

    Dynamic Semantics

    +

    6.15:6 +A loop expression is terminated when its block expression is no +longer evaluated.

    +
    +

    6.15.1. For Loops

    +

    Syntax

    +
    ForLoopExpression ::=
    +    for Pattern in SubjectExpression LoopBody
    +

    Legality Rules

    +

    6.15.1:1 +A for loop expression is a loop expression that continues to evaluate +its loop body as long as its subject expression yields a value.

    +

    6.15.1:2 +The type of a subject expression shall implement the +core::iter::IntoIterator trait.

    +

    6.15.1:3 +The expected type of the pattern is the associated type core::iter::IntoIterator::Item of the subject expression‘s core::iter::IntoIterator implementation.

    +

    6.15.1:4 +The type of an for loop expression is the unit type.

    +

    6.15.1:5 +The value of an for loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.1:6 +The evaluation of a for loop expression of the form

    +
    'label: for pattern in subject_expression {
    +    /* loop body */
    +}
    +
    +
    +

    6.15.1:7 +is equivalent to the evaluation of the following block expression:

    +
    {
    +    let result =
    +        match core::iter::IntoIterator::into_iter
    +            (subject_expression)
    +    {
    +        mut iter => 'label: loop {
    +            let mut next_value;
    +            match core::iter::Iterator::next(&mut iter) {
    +                Option::Some(value) => next_value = value,
    +                Option::None => break
    +            };
    +            let pattern = next_value;
    +            let () = { /* loop body */ };
    +        }
    +    };
    +    result
    +}
    +
    +
    +

    Examples

    +
    let favorite_fruits = &["apples", "pears", "strawberries"];
    +
    +for fruit in favorite_fruits {
    +    println!("I like eating {}.", fruit);
    +}
    +
    +
    +
    +
    +

    6.15.2. Infinite Loops

    +

    Syntax

    +
    InfiniteLoopExpression ::=
    +    loop LoopBody
    +

    Legality Rules

    +

    6.15.2:1 +An infinite loop expression is a loop expression that continues to +evaluate its loop body indefinitely.

    +

    6.15.2:2 +The type of a infinite loop expression is determined as follows:

    + +

    6.15.2:5 +The value of a infinite loop expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.15.2:8 +The evaluation of an infinite loop expression proceeds as follows:

    +
      +
    1. 6.15.2:9 +The block expression is evaluated.

    2. +
    3. 6.15.2:10 +Control restarts the evaluation of the infinite loop expression.

    4. +
    +

    Examples

    +
    loop {
    +    println!("I am alive!");
    +}
    +
    +
    +
    +
    +

    6.15.3. While Loops

    +

    Syntax

    +
    WhileLoopExpression ::=
    +    while IterationExpression LoopBody
    +
    +IterationExpression ::=
    +    Expression
    +

    Legality Rules

    +

    6.15.3:1 +A while loop expression is a loop expression that continues to +evaluate its loop body as long as its iteration expression holds +true.

    +

    6.15.3:2 +An iteration expression is an expression that provides the criterion +of a while loop expression.

    +

    6.15.3:3 +The type of an iteration expression shall be type bool.

    +

    6.15.3:4 +The type of an while loop expression is the unit type.

    +

    6.15.3:5 +The value of an while loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.3:6 +The evaluation of a while loop expression proceeds as follows:

    +
      +
    1. 6.15.3:7 +The iteration expression is evaluated.

    2. +
    3. 6.15.3:8 +If the iteration expression evaluated to true, then:

      +
        +
      1. 6.15.3:9 +The block expression is evaluated.

      2. +
      3. 6.15.3:10 +Control restarts the evaluation of the while loop expression.

      4. +
      +
    4. +
    +

    Examples

    +
    let mut counter = 0;
    +
    +while counter < 5 {
    +    counter += 1;
    +    println("iteration {}", counter);
    +}
    +
    +
    +
    +
    +

    6.15.4. While Let Loops

    +

    Syntax

    +
    WhileLetLoopExpression ::=
    +    while let Pattern = SubjectLetExpression LoopBody
    +

    Legality Rules

    +

    6.15.4:1 +A while let loop expression is a loop expression that continues to +evaluate its loop body as long as its subject let expression yields +a value that can be matched against its pattern.

    +

    6.15.4:2 +The expected type of the pattern is the type of the subject let expression.

    +

    6.15.4:3 +The type of an while let loop expression is the unit type.

    +

    6.15.4:4 +The value of an while let loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.4:5 +The evaluation of a while let loop expression of the form

    +
    'label: let pattern = subject_let_expression {
    +    /* loop body */
    +}
    +
    +
    +

    6.15.4:6 +shall be equivalent to the evaluation the following infinite loop:

    +
    'label: loop {
    +    match subject_let_expression {
    +        pattern => { /* loop body */ },
    +        _ => break
    +    }
    +}
    +
    +
    +

    Examples

    +
    let mut favorite_animals = vec!["cats", "dogs", "otters"];
    +
    +while let Some(animal) = favorite_animals.pop() {
    +    println!("I like petting {}", animal);
    +}
    +
    +
    +
    +
    +

    6.15.5. Loop Labels

    +

    Syntax

    +
    LabelIndication ::=
    +    ' NonKeywordIdentifier
    +

    Legality Rules

    +

    6.15.5:1 +A label indication is a construct that indicates a label.

    +

    6.15.5:2 +A label indication shall indicate a label of an enclosing +named block expression or named loop expression that does not pass a +control flow boundary in order to reach the enclosing +named block expression or named loop expression.

    +
    +
    +

    6.15.6. Break Expressions

    +

    Syntax

    +
    BreakExpression ::=
    +    break LabelIndication? Operand?
    +

    Legality Rules

    +

    6.15.6:1 +A break expression is an expression that terminates a +loop expression or a named block expression.

    +

    6.15.6:2 +A break expression shall appear within a loop body or a +named block expression.

    +

    6.15.6:3 +If a break expression appears within a named block expression, then +the break expression shall have a label indication.

    +

    6.15.6:4 +The label indication of a break expression shall resolve to the +label of an enclosing named block expression or +named loop expression.

    +

    6.15.6:5 +A break expression with a label indication is associated with the +named block expression or named loop expression whose label is +indicated by the label indication.

    +

    6.15.6:6 +A break expression without a label indication is associated with the +innermost enclosing loop expression.

    +

    6.15.6:7 +If a break expression appears within a loop expression, then the +break expression shall have an operand only when it is associated +with an infinite loop.

    +

    6.15.6:8 +The type of a break expression is the never type.

    +

    6.15.6:9 +Break type is the type of the operand of a break expression.

    +

    6.15.6:10 +The break type is determined as follows:

    + +

    6.15.6:13 +Break value is the value of the operand of a +break expression.

    +

    6.15.6:14 +The break value is determined as follows:

    + +

    Dynamic Semantics

    +

    6.15.6:17 +If a break expression appears within a loop expression, then the +evaluation of the break expression proceeds as follows:

    +
      +
    1. 6.15.6:18 +The operand is evaluated.

    2. +
    3. 6.15.6:19 +All enclosing loop expressions upto and including the associated +loop expression are terminated.

    4. +
    +

    6.15.6:20 +If a break expression appears within a named block expression, then +the evaluation of the break expression proceeds as follows:

    +
      +
    1. 6.15.6:21 +The operand is evaluated.

    2. +
    3. 6.15.6:22 +All enclosing named block expressions upto and including the +associated named block expression are terminated.

    4. +
    +

    Examples

    +

    6.15.6:23 +The following break expression terminates both the inner and the outer loop.

    +
    'outer: loop {
    +    'inner: loop {
    +        break 'outer;
    +    }
    +}
    +
    +
    +
    +
    +

    6.15.7. Continue Expressions

    +

    Syntax

    +
    ContinueExpression ::=
    +    continue LabelIndication?
    +

    Legality Rules

    +

    6.15.7:1 +A continue expression shall appear within a loop expression.

    +

    6.15.7:2 +A continue expression without a label indication is associated with +the innermost enclosing loop expression.

    +

    6.15.7:3 +A continue expression with a label indication is associated with a +named loop expression whose label is indicated by the +label indication.

    +

    6.15.7:4 +The type of a continue expression is the never type.

    +

    Dynamic Semantics

    +

    6.15.7:5 +The evaluation of a continue expression proceeds as follows:

    +
      +
    1. 6.15.7:6 +If the continue expression appears with a label indication, then +all enclosing loop expressions upto and including the associated +loop expression are terminated.

    2. +
    3. 6.15.7:7 +The evaluation of the associated loop expression is restarted.

    4. +
    +

    Examples

    +

    6.15.7:8 +The following continue expression terminates and restarts game_loop.

    +
    'game_loop: loop {
    +    if is_paused() {
    +        continue;
    +    }
    +    . . .
    +}
    +
    +
    +
    +
    +
    +

    6.16. Range Expressions

    +

    Syntax

    +
    RangeExpression ::=
    +    RangeFromExpression
    +  | RangeFromToExpression
    +  | RangeFullExpression
    +  | RangeInclusiveExpression
    +  | RangeToExpression
    +  | RangeToInclusiveExpression
    +
    +RangeFromExpression ::=
    +    RangeExpressionLowBound ..
    +
    +RangeFromToExpression ::=
    +    RangeExpressionLowBound .. RangeExpressionHighBound
    +
    +RangeFullExpression ::=
    +    ..
    +
    +RangeInclusiveExpression ::=
    +    RangeExpressionLowBound ..= RangeExpressionHighBound
    +
    +RangeToExpression ::=
    +    .. RangeExpressionHighBound
    +
    +RangeToInclusiveExpression ::=
    +    ..= RangeExpressionHighBound
    +
    +RangeExpressionLowBound ::=
    +    Operand
    +
    +RangeExpressionHighBound ::=
    +    Operand
    +

    Legality Rules

    +

    6.16:1 +A range expression is an expression that constructs a range.

    +

    6.16:2 +A range expression low bound is an operand that specifies the start of +a range.

    +

    6.16:3 +A range expression high bound is an operand that specifies the end of +a range.

    +

    6.16:4 +If a range expression has two operands, then the types of the +operands shall be unifiable.

    +

    6.16:5 +A range-from expression is a range expression that specifies an +included range expression low bound.

    +

    6.16:6 +The type of a range-from expression is core::ops::RangeFrom.

    +

    6.16:7 +The value of a range-from expression is +core::ops::RangeFrom { start: range_expression_low_bound }.

    +

    6.16:8 +A range-from-to expression is a range expression that specifies an +included range expression low bound and an excluded +range expression high bound.

    +

    6.16:9 +The type of a range-from-to expression is core::ops::Range.

    +

    6.16:10 +The value of a range-from-to expression is +core::ops::Range { start: range_expression_low_bound, end: range_expression_high_bound }.

    +

    6.16:11 +A range-full expression is a range expression that covers the whole +range of a type.

    +

    6.16:12 +The type of a range-full expression is core::ops::RangeFull.

    +

    6.16:13 +The value of a range-full expression is core::ops::RangeFull {}.

    +

    6.16:14 +A range-inclusive expression is a range expression that specifies an +included range expression low bound and an included +range expression high bound.

    +

    6.16:15 +The type of a range-inclusive expression is +core::ops::RangeInclusive.

    +

    6.16:16 +The value of a range-inclusive expression is +core::ops::RangeInclusive::new(range_expression_low_bound, range_expression_high_bound).

    +

    6.16:17 +A range-to expression is a range expression that specifies an excluded +range expression high bound.

    +

    6.16:18 +The type of a range-to expression is core::ops::RangeTo.

    +

    6.16:19 +The value of a range-to expression is +core::ops::RangeTo { end: range_expression_high_bound }.

    +

    6.16:20 +A range-to-inclusive expression is a range expression that specifies +an included range expression high bound.

    +

    6.16:21 +The type of a range-to-inclusive expression is +core::ops::RangeToInclusive.

    +

    6.16:22 +The value of a range-to-inclusive expression is +core::ops::RangeToInclusive { end: range_expression_high_bound }.

    +

    Dynamic Semantics

    +

    6.16:23 +The evaluation of a range expression evaluates its operands in +left-to-right order.

    +

    Examples

    +
    1 ..
    +42 .. 86
    +..
    +dawn ..= dusk
    +..= 5
    +
    +
    +
    +
    +

    6.17. If and If Let Expressions

    +
    +

    6.17.1. If Expressions

    +

    Syntax

    +
    IfExpression ::=
    +    if SubjectExpression BlockExpression ElseExpression?
    +
    +ElseExpression ::=
    +    else (BlockExpression | IfExpression | IfLetExpression)
    +

    Legality Rules

    +

    6.17.1:1 +An if expression is an expression that evaluates either a +block expression or an else expression depending on the value of +its subject expression.

    +

    6.17.1:2 +An else expression is an expression that represents either a +block expression, an if expression, or an if let expression.

    +

    6.17.1:3 +The type of the subject expression of an if expression shall be +type bool.

    +

    6.17.1:4 +The type of an if expression is the type of its +block expression.

    +

    6.17.1:5 +The value of an if expression is the value of its +block expression.

    +

    6.17.1:6 +The type of an else expression is the type of its +block expression, if expression, or if let expression.

    +

    6.17.1:7 +The value of an else expression is the value of its +block expression, if expression, or if let expression.

    +

    6.17.1:8 +The type of an if expression and the type of an +else expression shall be unifiable.

    +

    Dynamic Semantics

    +

    6.17.1:9 +The evaluation of an if expression proceeds as follows:

    +
      +
    1. 6.17.1:10 +The subject expression is evaluated.

    2. +
    3. 6.17.1:11 +If the subject expression evaluated to true, then the +block expression is evaluated.

    4. +
    5. 6.17.1:12 +If the subject expression evaluated to false and the +if expression has an else expression, then the else expression +is evaluated.

    6. +
    +

    6.17.1:13 +The evaluation of an else expression evaluates its +block expression, if expression, or if let expression.

    +

    Examples

    +
    if age <= 14 {
    +    println!("child");
    +} else if age <= 24 {
    +    println!("youth");
    +} else if age <=64 {
    +    println!("adult");
    +} else {
    +    println!("senior");
    +}
    +
    +
    +
    +
    +

    6.17.2. If Let Expressions

    +

    Syntax

    +
    IfLetExpression ::=
    +    if let Pattern = SubjectLetExpression BlockExpression
    +      ElseExpression?
    +

    Legality Rules

    +

    6.17.2:1 +An if let expression is an expression that evaluates either a +block expression or an else expression depending on whether its +pattern can be matched against its subject let expression.

    +

    6.17.2:2 +The expected type of the pattern is the type of the subject let expression.

    +

    6.17.2:3 +The type of an if let expression is the type of its +block expression.

    +

    6.17.2:4 +The value of an if let expression is the value of its +block expression.

    +

    6.17.2:5 +The type of an if let expression and the type of an +else expression shall be unifiable.

    +

    Dynamic Semantics

    +

    6.17.2:6 +The evaluation of an if let expression of the form

    +
    if let pattern = subject_let_expression {
    +    /* body */
    +}
    +
    +
    +

    6.17.2:7 +is equivalent to the evaluation of the following match expression:

    +
    match subject_let_expression {
    +    pattern => { /* body */ },
    +    _ => ()
    +}
    +
    +
    +

    6.17.2:8 +The evaluation of an if let expression of the form

    +
    if let pattern = subject_let_expression {
    +    /* body */
    +} else {
    +    /* else */
    +}
    +
    +
    +

    6.17.2:9 +is equivalent to the evaluation of the following match expression:

    +
    match subject_let_expression {
    +    pattern => { /* body */ },
    +    _ => { /* else */ }
    +}
    +
    +
    +

    Examples

    +
    let dish = ("Ham", "Eggs");
    +
    +if let ("Ham", side) = dish {
    +    println!("Ham is served with {}", side);
    +}
    +
    +
    +
    +
    +
    +

    6.18. Match Expressions

    +

    Syntax

    +
    MatchExpression ::=
    +    match SubjectExpression {
    +      InnerAttributeOrDoc*
    +      MatchArmList?
    +    }
    +
    +MatchArmList ::=
    +    IntermediateMatchArm* FinalMatchArm
    +
    +IntermediateMatchArm ::=
    +    MatchArmMatcher =>
    +      ( ExpressionWithBlock ,? | ExpressionWithoutBlock , )
    +
    +FinalMatchArm ::=
    +    MatchArmMatcher => Operand ,?
    +
    +MatchArmMatcher ::=
    +    OuterAttributeOrDoc* Pattern MatchArmGuard?
    +
    +MatchArmGuard ::=
    +    if Operand
    +

    Legality Rules

    +

    6.18:1 +A match expression is an expression that tries to match one of its +multiple patterns against its subject expression and if it succeeds, +evaluates an operand.

    +

    6.18:2 +A match arm is a construct that consists of a match arm matcher +and a match arm body.

    +

    6.18:3 +An intermediate match arm is any non-final match arm of a +match expression.

    +

    6.18:4 +A final match arm is the last match arm of a match expression.

    +

    6.18:5 +A match arm matcher is a construct that consists of a pattern and +a match arm guard.

    +

    6.18:6 +The expected type of the pattern of the match arm matcher is the type of the subject expression.

    +

    6.18:7 +A match arm body is the operand of a match arm.

    +

    6.18:8 +A match arm guard is a construct that provides additional filtering to +a match arm matcher.

    +

    6.18:9 +Bindings introduced in the pattern of a match arm matcher are +immutable in the match arm guard.

    +

    6.18:10 +The type of the subject expression and the types of all +patterns of all match arm matchers shall be unifiable.

    +

    6.18:11 +The type of the operand of a match arm guard shall be type +bool.

    +

    6.18:12 +The types of all match arm bodies shall be +unifiable.

    +

    6.18:13 +The type of a match expression is the unified type of the +types of the operands of all match arms.

    +

    6.18:14 +A match arm is selected when its pattern matches the +value of the subject expression and its match arm guard (if any) evaluates to +true.

    +

    6.18:15 +Match arm selection happens in declarative order.

    +

    6.18:16 +The patterns of all match arms taken together shall exhaustively +match the subject expression's type.

    +

    6.18:17 +The value of a match expression is the value of the operand +of the selected match arm.

    +

    Dynamic Semantics

    +

    6.18:18 +The evaluation of a match expression proceeds as follows:

    +
      +
    1. 6.18:19 +The subject expression is evaluated.

    2. +
    3. 6.18:20 +Each match arm is evaluated in declarative order as follows:

      +
        +
      1. 6.18:21 +The match arm matcher of the match arm is evaluated.

      2. +
      3. 6.18:22 +If the match arm matcher succeeds, then

        +
          +
        1. 6.18:23 +The operand of the match arm is evaluated.

        2. +
        3. 6.18:24 +Control stops the evaluation of the match expression.

        4. +
        +
      4. +
      5. 6.18:25 +Otherwise control proceeds with the evaluation of the next +match arm.

      6. +
      +
    4. +
    +

    6.18:26 +The evaluation of a match arm matcher proceeds as follows:

    +
      +
    1. 6.18:27 +The pattern of the match arm matcher is evaluated.

    2. +
    3. 6.18:28 +If the pattern succeeds, then

      +
        +
      1. 6.18:29 +If the match arm matcher has a match arm guard, then

        +
          +
        1. 6.18:30 +The match arm guard is evaluated.

        2. +
        3. 6.18:31 +If the match arm guard evaluates to true, then the +match arm matcher succeeds.

        4. +
        +
      2. +
      3. 6.18:32 +Otherwise the match arm matcher fails.

      4. +
      +
    4. +
    5. 6.18:33 +Otherwise the match arm matcher fails.

    6. +
    +

    6.18:34 +The evaluation of a match arm guard evaluates its operand. A +match arm guard evaluates to true when its operand evaluates to +true, otherwise it evaluates to false.

    +

    Examples

    +
    fn quantify(number_of_things: i32) {
    +    match number_of_things {
    +        0 | 1 => println!("not many"),
    +        2 ..= 9 => println!("a few"),
    +        _ if number_of_things < 0 => println!("you owe me"),
    +        _ => println!("lots")
    +    }
    +}
    +
    +
    +
    +
    +

    6.19. Return Expressions

    +

    Syntax

    +
    ReturnExpression ::=
    +    return Expression?
    +

    Legality Rules

    +

    6.19:1 +A return expression is an expression that optionally yields a +value and causes control flow to return to the end of the enclosing +control flow boundary.

    +

    6.19:2 +A return expression shall appear within a control flow boundary.

    +

    6.19:3 +The type of a return expression is the never type.

    +

    6.19:4 +The value returned by a return expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.19:7 +The evaluation of a return expression proceeds as follows:

    +
      +
    1. 6.19:8 +If the return expression has an operand, then

      +
        +
      1. 6.19:9 +The operand is evaluated.

      2. +
      3. 6.19:10 +The value of the operand is passed +by move into the designated output location of the enclosing +control flow boundary.

      4. +
      +
    2. +
    3. 6.19:11 +Control destroys the current activation frame.

    4. +
    5. 6.19:12 +Control is transferred to the caller frame.

    6. +
    +

    Examples

    +
    fn max(left: i32, right: i32) -> i32 {
    +    if left > right {
    +        return left;
    +    }
    +    return right;
    +}
    +
    +
    +
    +
    +

    6.20. Await Expressions

    +

    Syntax

    +
    AwaitExpression ::=
    +    FutureOperand . await
    +
    +FutureOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.20:1 +An await expression is an expression that polls a future, +suspending the execution of the future until the future is ready.

    +

    6.20:2 +A future operand is an operand whose future is being awaited by +an await expression.

    +

    6.20:3 +An await expression shall appear within an +async control flow boundary. Only the innermost control flow boundary +shall be considered.

    +

    6.20:4 +The type of a future operand shall implement the +core::future::IntoFuture trait.

    +

    6.20:5 +The type of an await expression is +<_ as core::future::IntoFuture>::Output.

    +

    6.20:6 +The value of an await expression is the value held by +core::task::Poll::Ready.

    +

    Dynamic Semantics

    +

    6.20:7 +The evaluation of an await expression proceeds as follows:

    +
      +
    1. 6.20:8 +The future operand is evaluated to a temporary by invoking +core::future::IntoFuture::into_future with the future operand.

    2. +
    3. 6.20:9 +The temporary is pinned using core::pin::Pin::new_unchecked.

    4. +
    5. 6.20:10 +The pinned temporary is polled using core::future::Future::poll, +passing in the core::task::Context of the current task.

    6. +
    7. 6.20:11 +If core::future::Future::poll returns +core::task::Poll::Pending, then the current future yields.

    8. +
    9. 6.20:12 +If core::future::Future::poll returns core::task::Poll::Ready, +then

      +
        +
      1. 6.20:13 +The value held within is unwrapped.

      2. +
      3. 6.20:14 +Control stops the evaluation of the await expression.

      4. +
      +
    10. +
    +

    Examples

    +
    let future = async { expensive_function() };
    +future.await;
    +
    +
    +
    +
    +

    6.21. Expression Precedence

    +

    Legality Rules

    +

    6.21:1 +Certain expressions are subject to precedence and +associativity.

    +

    6.21:2 +Precedence is the order by which expressions are evaluated in the +presence of other expressions.

    +

    6.21:3 +Associativity is the order by which operands are evaluated within a +single expression.

    +

    6.21:4 +The precedence and associativity of qualifying expressions are +as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    6.21:5

    Expression

    Precedence

    Associativity

    6.21:6

    Array expression

    +

    Block expression

    +

    Continue expression

    +

    If expression

    +

    If let expression

    +

    Literal expression

    +

    Loop expression

    +

    Match expression

    +

    Parenthesized expression

    +

    Path expression

    +

    Struct expression

    +

    Tuple expression

    +

    Underscore expression

    +

    highest

    none

    6.21:7

    Method call expression

    none

    6.21:8

    Await expression

    +

    Field access expression

    +

    left-to-right

    6.21:9

    Call expression

    +

    Index expression

    +

    none

    6.21:10

    Error propagation expression

    none

    6.21:11

    Borrow expression

    +

    Dereference expression

    +

    Negation expression

    +

    none

    6.21:12

    Type cast expression

    left-to-right

    6.21:13

    Division expression

    +

    Multiplication expression

    +

    Remainder expression

    +

    left-to-right

    6.21:14

    Addition expression

    +

    Subtraction expression

    +

    left-to-right

    6.21:15

    Shift left expression

    +

    Shift right expression

    +

    left-to-right

    6.21:16

    Bit and expression

    left-to-right

    6.21:17

    Bit xor expression

    left-to-right

    6.21:18

    Bit or expression

    left-to-right

    6.21:19

    Comparison expression

    requires parentheses

    6.21:20

    Lazy and expression

    left-to-right

    6.21:21

    Lazy or expression

    left-to-right

    6.21:22

    Range expression

    requires parentheses

    6.21:23

    Assignment expression

    +

    Compound assignment expression

    +

    right-to-left

    6.21:24

    Break expression

    +

    Closure expression

    +

    Return expression

    +

    lowest

    none

    +
    +
    +

    6.22. Capturing

    +

    Legality Rules

    +

    6.22:1 +A capturing expression is either an async block expression or a +closure expression.

    +

    6.22:2 +A capture target is either a variable or a field of a +variable.

    +

    6.22:3 +The capturing environment of a capturing expression consists of the +values of all captured capture targets.

    +

    6.22:4 +Capturing is the process of saving the capture targets of a +capturing expression's capturing environment.

    +

    6.22:5 +A capture target requires capturing when it is used by +the capturing expression and it is defined outside of the +capturing expression. Such a capture target is said to be +captured.

    +

    6.22:6 +Capture mode is the mechanism by which a capture target is captured.

    +

    6.22:7 +A captured capture target with capture mode by value capture +passes the value of the capture target into +the capturing environment.

    +

    6.22:8 +A captured capture target with capture mode +by immutable reference capture binds an immutable reference to the +capture target and passes the immutable reference into the +capturing environment.

    +

    6.22:9 +A captured capture target with capture mode +by mutable reference capture binds a mutable reference to the +capture target and passes the mutable reference into the +capturing environment.

    +

    6.22:10 +A captured capture target with capture mode +by unique immutable reference capture binds a +unique immutable reference to the capture target and passes the +mutable reference into the capturing environment.

    +

    6.22:11 +The capture mode is determined based on the use of the capture target +within the capturing expression, as follows:

    +
      +
    1. 6.22:12 +If the capturing expression is subject to keyword move, then +the capture mode is by value capture.

    2. +
    3. 6.22:13 +Otherwise the capture mode is determined based on the following +precedence:

      +
        +
      1. 6.22:14 +By immutable reference capture.

      2. +
      3. 6.22:15 +By unique immutable reference capture mode, if the +capture target is a mutable reference that is being modified.

      4. +
      5. 6.22:16 +By mutable reference capture mode.

      6. +
      7. 6.22:17 +By value capture.

      8. +
      +
    4. +
    +

    6.22:18 +A tool selects the first capture mode that is compatible with the use of +the capture target.

    +
    +
    +

    6.23. Arithmetic Overflow

    +

    6.23:1 +An arithmetic overflow occurs when an arithmetic expression or a +negation expression computes a value of a scalar type that lies +outside of the range of valid values for the scalar type.

    +

    Dynamic Semantics

    +

    6.23:2 +There are two allowed behaviors for arithmetic overflow:

    +
      +
    1. 6.23:3 +Evaluation of the expression may result in a panic.

    2. +
    3. 6.23:4 +The resulting value of the expression may be truncated, discarding +the most significant bits that do not fit in the target type.

    4. +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/ffi.html b/ffi.html new file mode 100644 index 00000000..f5d46eb6 --- /dev/null +++ b/ffi.html @@ -0,0 +1,285 @@ + + + + + + + + + + + + 21. FFI — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    21. FFI

    +

    Legality Rules

    +

    21:1 +Foreign Function Interface or FFI employs ABI, +attributes, external blocks, external functions, linkage, +and type layout to interface a Rust program with foreign code.

    +

    21:2 +The following attributes affect FFI:

    + +
    +

    21.1. ABI

    +

    Syntax

    +
    AbiSpecification ::=
    +    extern AbiKind?
    +
    +AbiKind ::=
    +    RawStringLiteral
    +  | StringLiteral
    +

    Legality Rules

    +

    21.1:1 +Application Binary Interface or ABI is a set of conventions that +dictate how data and computation cross language boundaries.

    +

    21.1:2 +The ABI kind indicates the ABI of a construct.

    +

    21.1:3 +The following ABIs are supported:

    +
      +
    • 21.1:4 +extern "C" - The default ABI of C code, referred to as +extern C ABI.

    • +
    • 21.1:5 +extern "C-unwind" - The same as extern "C" with the addition that +unwinding across FFI is permitted.

    • +
    • 21.1:6 +extern "Rust" - The default ABI of a Rust program, referred to as +Rust ABI.

    • +
    • 21.1:7 +extern "system" - The operating system-dependent ABI, referred to as +external system ABI.

    • +
    +

    21.1:8 +A function without an explicit ABI has implicit Rust ABI, unless +it appears within an external block.

    +

    21.1:9 +A function with an ABI but without a specified ABI kind has +implicit extern C ABI.

    +

    Implementation Permissions

    +

    21.1:10 +A tool is allowed to specify additional ABIs. These ABIs may +include, but may not be limited to, the following:

    +
      +
    • 21.1:11 +extern "aapcs" - The ARM ABI.

    • +
    • 21.1:12 +extern "cdecl" - The x86_32 ABI of C code.

    • +
    • 21.1:13 +extern "fastcall" - The fastcall ABI that corresponds to MSVC’s +__fastcall and GCC and clang’s __attribute__((fastcall)).

    • +
    • 21.1:14 +extern "stdcall" - The x86_32 ABI of the Win32 API.

    • +
    • 21.1:15 +extern "sysv64" - The x86_64 non-Windows ABI of C code.

    • +
    • 21.1:16 +extern "vectorcall" - The vectorcall ABI that corresponds to +MSVC’s __vectorcall and clang’s __attribute__((vectorcall)).

    • +
    • 21.1:17 +extern "win64" - The x86_64 Windows ABI of C code.

    • +
    +

    Undefined Behavior

    +

    21.1:18 +It is undefined behavior when a foreign exception crosses a +foreign function interface boundary with an ABI other than +extern "C-unwind".

    +

    Examples

    +
    extern
    +extern "C"
    +
    +
    +
    +
    +

    21.2. External Blocks

    +

    Syntax

    +
    ExternalBlock ::=
    +    unsafe? extern AbiKind? {
    +      InnerAttributeOrDoc*
    +      ExternItem*
    +    }
    +
    +ExternItem ::=
    +    OuterAttributeOrDoc* (ExternalItemWithVisibility | TerminatedMacroInvocation)
    +
    +ExternalItemWithVisibility ::=
    +    VisibilityModifier? (
    +        FunctionDeclaration
    +      | StaticDeclaration
    +    )
    +

    Legality Rules

    +

    21.2:1 +An external block is a construct that provides the declarations of +foreign functions as unchecked imports.

    +

    21.2:2 +The ABI of a extern block is determined as follows:

    + +

    21.2:5 +The unsafe keyword of an external block is rejected, but may +still be consumed by macros.

    +

    Examples

    +
    extern "C" {
    +    static MAX_LENGTH: size_t;
    +
    +    fn compress
    +        (input: *const u8,
    +         input_length: size_t,
    +         compressed: *mut u8,
    +         compressed_length: *mut size_t) -> c_int;
    +    fn log(msg: *const c_char, ...);
    +}
    +
    +
    +
    +
    +

    21.3. External Functions

    +

    Legality Rules

    +

    21.3:1 +An external function is an unchecked import of a foreign function.

    +

    21.3:2 +An external function shall be invoked from an unsafe context.

    +

    21.3:3 +An external function shall not specify a FunctionQualifierList.

    +

    21.3:4 +An external function inherits the ABI of its enclosing +external block.

    +

    21.3:5 +An external function shall not specify a GenericParameterList +containing constant parameters or type parameters.

    +

    21.3:6 +An external function shall not specify a FunctionBody.

    +

    21.3:7 +An external function shall not specify patterns other than +identifier patterns and underscore patterns.

    +

    21.3:8 +Only the last parameter FunctionParameter of an external function may +specify a FunctionParameterVariadicPart.

    +
    +
    +

    21.4. External Statics

    +

    Legality Rules

    +

    21.4:1 +An external static is an import of a foreign variable.

    +

    21.4:2 +An external static inherits the ABI of its enclosing +external block.

    +

    21.4:3 +An external static shall be referenced from an unsafe context.

    +

    21.4:4 +An external static shall not specify a static initializer.

    +

    Dynamic Semantics

    +

    21.4:5 +An immutable external static shall be initialized before Rust code +is executed.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/functions.html b/functions.html new file mode 100644 index 00000000..330e5641 --- /dev/null +++ b/functions.html @@ -0,0 +1,276 @@ + + + + + + + + + + + + 9. Functions — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    9. Functions

    +

    Syntax

    +
    FunctionDeclaration ::=
    +    FunctionQualifierList fn Name GenericParameterList? ( FunctionParameterList? ) ReturnType? WhereClause? (FunctionBody | ;)
    +
    +FunctionQualifierList ::=
    +    const? async? unsafe? AbiSpecification?
    +
    +FunctionParameterList ::=
    +    (FunctionParameter (, FunctionParameter)* ,?)
    +  | (SelfParameter (, FunctionParameter)* ,?)
    +
    +FunctionParameter ::=
    +    OuterAttributeOrDoc* (FunctionParameterPattern | FunctionParameterVariadicPart | TypeSpecification)
    +
    +FunctionParameterPattern ::=
    +    PatternWithoutAlternation (TypeAscription | (: FunctionParameterVariadicPart))
    +
    +FunctionParameterVariadicPart ::=
    +    ...
    +
    +ReturnType ::=
    +    -> TypeSpecification
    +
    +FunctionBody ::=
    +    BlockExpression
    +
    +SelfParameter ::=
    +    OuterAttributeOrDoc* (ShorthandSelf | TypedSelf)
    +
    +ShorthandSelf ::=
    +    (& LifetimeIndication?)? mut? self
    +
    +TypedSelf ::=
    +    mut? self TypeAscription
    +

    Legality Rules

    +

    9:1 +A function is a value of a function type that models a behavior.

    +

    9:2 +A function declares a unique function item type for itself.

    +

    9:3 +A function qualifier is a construct that determines the role of +a function.

    +

    9:4 +A function shall not be subject to both keyword async and +keyword const.

    +

    9:5 +A function parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    9:6 +A self parameter is a function parameter expressed by keyword +self.

    +

    9:7 +A function shall not specify a self parameter unless it is an +associated function.

    +

    9:8 +The type of a parameter is determined as follows:

    + +

    9:14 +The pattern of a function parameter shall be an irrefutable +pattern.

    +

    9:15 +The expected type of the pattern of a function parameter is the type of the function parameter.

    +

    9:16 +The bindings of all patterns of all function parameters of a function shall not shadow another.

    +

    9:17 +A function shall not specify a FunctionParameterVariadicPart unless +it is an external function.

    +

    9:18 +A return type is the type of the result a function, closure type or function pointer type returns.

    +

    9:19 +The return type of a function is determined as follows:

    + +

    9:22 +A function body is the block expression of a function.

    +

    9:23 +A function shall have a function body unless it is an +associated trait function or an external function.

    +

    9:24 +A function body denotes a control flow boundary.

    +

    9:25 +A function body of an async function denotes an +async control flow boundary.

    +

    9:26 +A function signature is a unique identification of a function +that encompasses of its function qualifiers, name, +generic parameters, function parameters, return type, and +where clause.

    +

    9:27 +A constant function is a function subject to keyword const.

    +

    9:28 +The function body of a constant function shall be a +constant expression.

    +

    9:29 +A constant function shall be callable from a constant context.

    +

    9:30 +An async function is a function subject to keyword async. An +async function of the form

    +
    async fn async_fn(param: &param_type) -> return_type {
    +    /* tail expression */
    +}
    +
    +
    +

    9:31 +is equivalent to function

    +
    fn async_fn<'a>(param: &'a param_type) -> impl Future<Output = return_type> + 'a {
    +    async move {
    +        /* tail expression */
    +    }
    +}
    +
    +
    +

    9:32 +An unsafe function is a function subject to keyword unsafe.

    +

    9:33 +The invocation of an unsafe function shall require unsafe context.

    +

    9:34 +A main function is a function that acts as an entry point into a +program. A main function is subject to the following restrictions:

    + +

    Examples

    +
    fn eucledian_distance(left: &Point, right: &Point) -> f64 {
    +    let x_delta_squared: f64 = (right.x - left.x).powi(2);
    +    let y_delta_squared: f64 = (right.y - left.y).powi(2);
    +
    +    (x_delta_squared + y_delta_squared).sqrt()
    +}
    +
    +fn main() {}
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/general.html b/general.html new file mode 100644 index 00000000..02f23a0b --- /dev/null +++ b/general.html @@ -0,0 +1,429 @@ + + + + + + + + + + + + 1. General — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    1. General

    +

    1:1 +This document is influenced by the Ada Reference Manual +Ada 202x edition, as well as the Rust Language Reference, the Rust +Guidebook, and the Rustonomicon.

    +

    1:2 +Parts of these documents have been copied, in whole or in part, in particular +but not limited to:

    +
      +
    • 1:3 +The outline and structure of the documents;

    • +
    • 1:4 +The title, outline, organization, and numbering of chapters;

    • +
    • 1:5 +The structure, formality, wording, and numbering of paragraphs;

    • +
    • 1:6 +The definitions and uses of terms;

    • +
    • 1:7 +The categories of syntactic and semantic rules.

    • +
    +

    1:8 +Consult Licenses for the relevant copyright notices and licenses.

    +
    +

    1.1. Scope

    +

    1.1:1 +This document specifies the form and meaning of programs written in the +programming language Rust, as implemented by the rustc compiler shipped +with Ferrocene. It documents the current understanding for the purposes of +compiler validation. As such, given any doubt, it prefers documenting behavior +of rustc as included in the associated Ferrocene release over claiming +correctness as a specification.

    +

    1.1:2 +This document is made available for contribution and review as it is useful +outside of the Ferrocene effort and can be a place of shared understanding. It +is not intended as a discussion ground for language evolution. It is also not +intended as a document enabling conformance between compilers.

    +

    1.1:3 +Contribution and review is managed by the Ferrocene project developers.

    +
    +

    1.1.1. Extent

    +

    1.1.1:1 +This document specifies:

    +
      +
    • 1.1.1:2 +The form of a program written in Rust;

    • +
    • 1.1.1:3 +The effect of translating and executing such a program;

    • +
    • 1.1.1:4 +The manner in which crates and modules may be combined to form +Rust programs;

    • +
    • 1.1.1:5 +The language-defined libraries that a conforming tool is required to supply;

    • +
    • 1.1.1:6 +The violations that a conforming tool is required to detect, and the effect of +attempting to translate or execute a program containing such violations;

    • +
    • 1.1.1:7 +The violations that a conforming tool is not required to detect.

    • +
    +

    1.1.1:8 +This document does not specify:

    +
      +
    • 1.1.1:9 +The means by which a Rust program is transformed into object code executable +by a processor;

    • +
    • 1.1.1:10 +The means by which translation or execution of Rust programs is invoked and +the executing units are controlled;

    • +
    • 1.1.1:11 +The size or speed of the object code, or the relative execution speed of +different language constructs;

    • +
    • 1.1.1:12 +The form or contents of any listings produced by a tool; in particular, the +form or contents of error or warning messages;

    • +
    • 1.1.1:13 +The effect of undefined behavior;

    • +
    • 1.1.1:14 +The size of a program or program unit that will exceed the capacity of a +conforming tool.

    • +
    +
    +
    +

    1.1.2. Structure

    +

    1.1.2:1 +This document contains 21 chapters, 2 appendices, and an index.

    +

    1.1.2:2 +The specification of the Rust language is separated into:

    + +

    1.1.2:6 +The specification is normative, except for the material in each of the items +listed below, which is informative:

    +
      +
    • 1.1.2:7 +Text under an “Examples” heading.

    • +
    • 1.1.2:8 +Each subchapter whose title starts with the word “Example” or “Examples”.

    • +
    +

    1.1.2:9 +The following appendices are informative:

    + +

    1.1.2:12 +Each chapter is divided into subchapters that have a common structure. Each +chapter and subchapter is then organized to include the following segments as is +relevant to the topic:

    +

    Syntax

    +

    1.1.2:13 +The syntax representation of a construct.

    +

    Legality Rules

    +

    1.1.2:14 +Compile-time rules and facts for each construct. A construct is legal +if it obeys all of the Legality Rules.

    +

    1.1.2:15 +Legality Rules are verified after macro expansion takes place.

    +

    Dynamic Semantics

    +

    1.1.2:16 +Run-time effects of each construct.

    +

    Undefined Behavior

    +

    1.1.2:17 +Situations that result in unbounded errors.

    +

    Implementation Requirements

    +

    1.1.2:18 +Additional requirements for conforming tools.

    +

    Examples

    +

    1.1.2:19 +Examples illustrating the possible forms of a construct. This material +is informative.

    +
    +
    +

    1.1.3. Conformity

    +

    Implementation Requirements

    +

    1.1.3:1 +A conforming tool shall:

    +
      +
    • 1.1.3:2 +Translate and correctly execute legal programs written in Rust, provided that +they are not so large as to exceed the capacity of the tool,

    • +
    • 1.1.3:3 +Identify all programs or program units that are so large as to exceed the +capacity of the tool (or raise an appropriate exception at run time),

    • +
    • 1.1.3:4 +Identify all programs or program units that contain errors whose detection is +required by this document,

    • +
    • 1.1.3:5 +Supply all language-defined library units required by this document,

    • +
    • 1.1.3:6 +Contain no variations except those explicitly permitted by this document, or +those that are impossible or impractical to avoid given the tool’s execution +environment,

    • +
    • 1.1.3:7 +Specify all such variations in the manner prescribed by this document.

    • +
    +

    1.1.3:8 +The external effect of the execution of a Rust program is defined in terms of +its interactions with its external environment. The following are defined as +external interactions:

    + +

    1.1.3:12 +A tool that conforms to this document shall produce for the execution of a given +Rust program a set of interactions with the external environment whose order and +timing are consistent with the definitions and requirements of this document for +the semantics of the given program.

    +

    1.1.3:13 +A tool that conforms to this document shall support each capability required by +the language as specified.

    +

    1.1.3:14 +A tool that conforms to this document may provide additional attributes +as long as their names are not the same as the names of built-in +attributes.

    +
    +
    +

    1.1.4. Method of Description and Syntax Notation

    +

    1.1.4:1 +The form of a Rust program is described by means of a context-free syntax +together with context-dependent requirements expressed by narrative rules.

    +

    1.1.4:2 +The meaning of a Rust program is described by means of narrative rules defining +both the effects of each construct and the composition rules for constructs.

    +

    1.1.4:3 +The context-free syntax of Rust is described using a simple variant of the +Backus-Naur form. In particular:

    +
      +
    • 1.1.4:4 +A monospaced font is used to denote Rust syntax.

    • +
    • 1.1.4:5 +Words in PascalCase font are used to denote a syntactic category, for example:

    • +
    +
    FloatExponent
    +
      +
    • 1.1.4:6 +Words in bold font are used to indicate literal words and keywords, +for example:

    • +
    +
    crate
    +proc_macro_derive
    +Self
    +tt
    +
      +
    • 1.1.4:7 +Characters in bold font are used to indicate literal characters and +literal punctuation, for example:

    • +
    +
    1
    +F
    +{
    +&&
    +>>=
    +
      +
    • 1.1.4:8 +A character preceded by \ (bold reverse solidus) is used to denote an +escaped character, for example:

    • +
    +
    \t
    +\\
    +
      +
    • 1.1.4:9 +A prefix followed by ? (question mark) is used to denote an optional +prefix, for example:

    • +
    +
    IntegerSuffix?
    +
      +
    • 1.1.4:10 +A prefix followed by * (asterisk) is used to denote zero or more +repetitions of the prefix, for example:

    • +
    +
    OuterAttributeOrDoc*
    +
      +
    • 1.1.4:11 +A prefix followed by + (plus sign) is used to denote one or more +repetitions of the prefix, for example:

    • +
    +
    MacroMatch+
    +
      +
    • 1.1.4:12 +A prefix followed by L-H is used to denote the number of repetitions of +the prefix within the range from L to H, inclusive. For example:

    • +
    +
    HexadecimalDigit1-6
    +
      +
    • 1.1.4:13 +[ ] (square brackets) indicate any character within, for example:

    • +
    +
    [8 a \r :]
    +
      +
    • 1.1.4:14 +~[ ] (square brackets preceded by tilde) indicate any character except the +characters within, for example:

    • +
    +
    ~[8 a \r :]
    +
      +
    • 1.1.4:15 +[ - ] indicates any character within the specified range, inclusive. For +example:

    • +
    +
    [a-f]
    +
      +
    • 1.1.4:16 +A | (vertical line) separates alternative items, for example:

    • +
    +
    self | Identifier | _
    +
      +
    • 1.1.4:17 +( ) (parentheses) are used to group items, for example:

    • +
    +
    (, ConfigurationPredicate)
    +
    +
    +
    +

    1.2. Versioning

    +

    1.2:1 +Ferrocene is a qualified compiler and this is the accompanying language +specification for the qualified version of the compiler. This document will +be updated with each qualification to accurately reflect the behavior of the +compiler qualified under that version of Ferrocene.

    +
    +
    +

    1.3. Definitions

    +

    1.3:1 +Terms are defined throughout this document, indicated by italic type. Terms +explicitly defined in this document are not to be presumed to refer implicitly +to similar terms defined elsewhere.

    +

    1.3:2 +Mathematical terms not defined in this document are to be interpreted according +to the CRC Concise Encyclopedia of Mathematics, Second Edition.

    +

    1.3:3 +Other terms not defined in this document are to be interpreted according to the +Webster’s Third New International Dictionary of the English Language.

    +

    1.3:4 +The definitions of terms are available in Glossary.

    +

    1.3:5 +A rule is a requirement imposed on the programmer, stated in normative +language such as “shall”, “shall not”, “must”, “must not”, except for text +under Implementation Requirements heading.

    +

    1.3:6 +A fact is a requirement imposed on a conforming tool, stated in informative +language such as “is”, “is not”, “can”, “cannot”.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/generics.html b/generics.html new file mode 100644 index 00000000..bcf22b9d --- /dev/null +++ b/generics.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + 12. Generics — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    12. Generics

    +
    +

    12.1. Generic Parameters

    +

    Syntax

    +
    GenericParameterList ::=
    +    < (GenericParameter (, GenericParameter)* ,?)? >
    +
    +GenericParameter ::=
    +    OuterAttributeOrDoc* (
    +        ConstantParameter
    +      | LifetimeParameter
    +      | TypeParameter
    +    )
    +
    +ConstantParameter ::=
    +   const Name TypeAscription (= ConstantParameterInitializer)?
    +
    +ConstantParameterInitializer ::=
    +    BlockExpression
    +  | Identifier
    +  | -? LiteralExpression
    +
    +LifetimeParameter ::=
    +    Lifetime (: LifetimeIndicationList)?
    +
    +TypeParameter ::=
    +    Name (: TypeBoundList?)? (= TypeParameterInitializer)?
    +
    +TypeParameterInitializer ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    12.1:1 +A generic parameter is a placeholder for a constant, a lifetime, +or a type, whose constant, lifetime, or type is supplied +statically by a generic argument.

    +

    12.1:2 +All LifetimeParameters in a GenericParameterList shall precede all +ConstantParameters and TypeParameters.

    +

    12.1:3 +A generic enum is an enum with generic parameters.

    +

    12.1:4 +A generic function is a function with generic parameters.

    +

    12.1:5 +A generic implementation is an implementation with +generic parameters.

    +

    12.1:6 +A generic struct is a struct with generic parameters.

    +

    12.1:7 +A generic trait is a trait with generic parameters.

    +

    12.1:8 +A generic type alias is a type alias with generic parameters.

    +

    12.1:9 +A generic union is a union with generic parameters.

    +

    12.1:10 +A constant parameter is a generic parameter for a constant.

    +

    12.1:11 +A constant parameter initializer is a construct that provides the +default value of its related constant parameter.

    +

    12.1:12 +A constant parameter initializer shall be a constant expression.

    +

    12.1:13 +It is a static error to use a generic parameter in the +discriminant initializer of an enum variant.

    +

    12.1:14 +A lifetime parameter is a generic parameter for a lifetime.

    +

    12.1:15 +A lifetime parameter shall not be used within a constant context, +except for the 'static lifetime.

    +

    12.1:16 +A type parameter is a generic parameter for a type.

    +

    12.1:17 +A type parameter initializer is a construct that provides the +default value of its related type parameter.

    +

    12.1:18 +The type of the type parameter initializer of a type parameter +shall satisfy the trait bounds of the type parameter.

    +

    12.1:19 +A generic enum shall use all of its type parameters and +lifetime parameters at least once in at least one of its +enum variants.

    +

    12.1:20 +A generic struct shall use all of its type parameters and +lifetime parameters at least once in at least one of its fields.

    +

    12.1:21 +A generic union shall use all of its type parameters and +lifetime parameters at least once in at least one of its fields.

    +

    12.1:22 +A generic parameter is said to constrain an implementation if the +generic parameter appears at least once in one of the following:

    + +

    12.1:26 +It is a static error if a constant parameter or a type parameter of +an implementation does not constrain the implementation.

    +

    12.1:27 +It is a static error if a lifetime parameter of an implementation +is used in an associated type without constraining the +implementation.

    +

    12.1:28 +The type of a constant parameter shall be a scalar type.

    +

    12.1:29 +A constant parameter shall be used in the following contexts:

    + +

    12.1:35 +A type parameter has an implicit core::marker::Sized bound, +unless an opt-out trait bound for the core::marker::Sized trait +is present.

    +

    12.1:36 +A type parameter of an abstract data type has implicit +lifetime bounds depending on its usage in the fields of the +abstract data type as follows:

    + +

    12.1:39 +A type parameter of a function has implicit lifetime bounds +depending on its usages in the function parameters and return type +as follows:

    + +

    12.1:42 +A generic parameter with a bound of the form

    +
    <X: Bound>
    +
    +
    +

    12.1:43 +is equivalent to the generic parameter without the bound and a +where clause of the following form:

    +
    where X: Bound
    +
    +
    +

    Examples

    +
    struct Array<T, const N: usize>([T; N])
    +
    +fn generic_function<'a, T>() {}
    +
    +struct Reference<'a, T: 'a> {
    +    the_reference: &'a T
    +}
    +
    +
    +
    +
    +

    12.2. Where Clauses

    +

    Syntax

    +
    WhereClause ::=
    +    where WhereClausePredicateList
    +
    +WhereClausePredicateList ::=
    +    WhereClausePredicate (, WhereClausePredicate)* ,?
    +
    +WhereClausePredicate ::=
    +    LifetimeBoundPredicate
    +  | TypeBoundPredicate
    +
    +LifetimeBoundPredicate ::=
    +   LifetimeIndication : LifetimeIndicationList?
    +
    +TypeBoundPredicate ::=
    +   ForGenericParameterList? TypeSpecification : TypeBoundList?
    +

    Legality Rules

    +

    12.2:1 +A where clause is a construct that specifies bounds on +lifetime parameters and types that have +to hold for the construct subject to the where clause to be valid.

    +

    12.2:2 +A where clause predicate is either a lifetime bound predicate or a +type bound predicate.

    +

    12.2:3 +A lifetime bound predicate is a construct that specifies +lifetime bounds on a lifetime parameter.

    +

    12.2:4 +A type bound predicate is a construct that specifies +lifetime bounds and trait bounds on a type.

    +

    12.2:5 +A construct is valid when all of its where clause predicates hold +true for the supplied generic arguments.

    +

    12.2:6 +A trivial predicate is a where clause predicate that does not use +the generic parameters or higher-ranked trait bounds of the related +construct.

    +

    12.2:7 +It is a static error to create a trivial predicate that does not hold.

    +

    Examples

    +
    struct Clause<T> where T: Iterator {
    +    field: T
    +}
    +
    +
    +
    +
    +

    12.3. Generic Arguments

    +

    Syntax

    +
    GenericArgumentList ::=
    +    < ( GenericArgument (, GenericArgument)* ,? )? >
    +
    +GenericArgument ::=
    +    BindingArgument
    +  | ConstantArgument
    +  | LifetimeArgument
    +  | TypeArgument
    +
    +BindingArgument ::=
    +    Identifier = TypeSpecification
    +
    +ConstantArgument ::=
    +    BlockExpression
    +  | -? LiteralExpression
    +  | Identifier
    +
    +LifetimeArgument ::=
    +    LifetimeIndication
    +
    +TypeArgument ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    12.3:1 +A generic argument supplies a static input for an +associated trait type or a generic parameter.

    +

    12.3:2 +A BindingArgument shall follow ConstantArguments, +LifetimeArguments, and TypeArguments in a +GenericArgumentList.

    +

    12.3:3 +A LifetimeArgument shall precede BindingArguments, +ConstantArguments, and TypeArguments in a +GenericArgumentList.

    +

    12.3:4 +A binding argument is a generic argument that supplies the type +of an associated trait type.

    +

    12.3:5 +A constant argument is a generic argument that supplies the +value of a constant parameter.

    +

    12.3:6 +A constant argument may only appear as a single segment +path expression, optionally encapsulated in a block expression, within +an array repetition constructor or a type.

    +

    12.3:7 +A lifetime argument is a generic argument that supplies the +lifetime of a lifetime parameter.

    +

    12.3:8 +A type argument is a generic argument that supplies the type of +a type parameter.

    +

    12.3:9 +Generic arguments are subject to generic conformance.

    +

    Examples

    +
    trait Trait {
    +    type Assoc;
    +}
    +
    +
    +

    12.3:10 +The following is a generic function with a binding argument.

    +
    fn func<'lifetime, T, const C: usize>() where T: Trait<Assoc = usize> {}
    +
    +
    +

    12.3:11 +The following are generic arguments for func.

    +
    func::<'static, u32, 0>();
    +
    +
    +

    12.4. Generic Conformance

    +

    Legality Rules

    +

    12.4:1 +Generic conformance measures the compatibility between a set of +generic parameters and a set of generic arguments.

    +

    12.4:2 +A binding argument is conformant with an associated type when the +supplied type of the binding argument fulfills the required +trait bounds of the associated type.

    +

    12.4:3 +A constant argument is conformant with a constant parameter when +the types of the constant argument and the constant parameter +are unifiable.

    +

    12.4:4 +A lifetime argument is conformant with a lifetime parameter when it +outlives the lifetime specified by the lifetime parameter.

    +

    12.4:5 +A type argument is conformant with a type parameter when the +type of the type argument fulfills the required trait bounds +of the type parameter.

    +

    12.4:6 +Generic arguments are conformant with generic parameters when

    + +

    12.4:11 +Generic arguments shall be conformant.

    +

    12.4:12 +The value of a constant parameter is determined as follows:

    + +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 00000000..8a48a637 --- /dev/null +++ b/genindex.html @@ -0,0 +1,109 @@ + + + + + + + + + + + Index — Ferrocene Language Specification + + + + + + + + + + + + +
    + +
    +
    + + +

    Index

    + +
    + +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/glossary.html b/glossary.html new file mode 100644 index 00000000..85f451db --- /dev/null +++ b/glossary.html @@ -0,0 +1,5158 @@ + + + + + + + + + + + + B. Glossary — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    B. Glossary

    +
    +

    B.1. ABI

    +

    B.1:1 +For ABI, see Application Binary Interface.

    +
    +
    +

    B.2. ABI clobber

    +

    B.2:1 +An ABI clobber is an argument to macro core::arch::asm which +indicates that the values of selected registers might be +overwritten during the execution of an assembly code block.

    +

    B.2:2 +See AbiClobber.

    +
    +
    +

    B.3. ABI kind

    +

    B.3:1 +The ABI kind indicates the ABI of a construct.

    +

    B.3:2 +See AbiKind.

    +
    +
    +

    B.4. abort

    +

    B.4:1 +Abort is the immediate termination of a program.

    +
    +
    +

    B.5. abstract data type

    +

    B.5:1 +An abstract data type is a collection of other types.

    +
    +
    +

    B.6. active attribute

    +

    B.6:1 +An active attribute is an attribute that is removed from the +item it decorates.

    +
    +
    +

    B.7. addition assignment

    +

    B.7:1 +For addition assignment, see addition assignment expression.

    +
    +
    +

    B.8. addition assignment expression

    +

    B.8:1 +An addition assignment expression is a +compound assignment expression that uses addition.

    +

    B.8:2 +See AdditionAssignmentExpression.

    +
    +
    +

    B.9. addition expression

    +

    B.9:1 +An addition expression is an arithmetic expression that uses +addition.

    +

    B.9:2 +See AdditionExpression.

    +
    +
    +

    B.10. adjusted call operand

    +

    B.10:1 +An adjusted call operand is a call operand with possible +auto dereferencing adjustments.

    +
    +
    +

    B.11. alignment

    +

    B.11:1 +The alignment of a value specifies which addresses are valid for +storing the value.

    +
    +
    +

    B.12. all configuration predicate

    +

    B.12:1 +An all configuration predicate is a configuration predicate that +models existential quantifier ALL.

    +

    B.12:2 +See ConfigurationPredicateAll.

    +
    +
    +

    B.13. anonymous loop expression

    +

    B.13:1 +An anonymous loop expression is a loop expression without a +label.

    +
    +
    +

    B.14. anonymous return type

    +

    B.14:1 +An anonymous return type is an impl trait type ascribed to a +function return type.

    +
    +
    +

    B.15. anonymous type parameter

    +

    B.15:1 +An anonymous type parameter is an impl trait type ascribed to a +function parameter.

    +
    +
    +

    B.16. any configuration predicate

    +

    B.16:1 +An any configuration predicate is a configuration predicate that +models existential quantifier ANY.

    +

    B.16:2 +See ConfigurationPredicateAny.

    +
    +
    +

    B.17. Application Binary Interface

    +

    B.17:1 +Application Binary Interface is a set of conventions that dictate how +data and computation cross language boundaries.

    +

    B.17:2 +See AbiSpecification.

    +
    +
    +

    B.18. argument operand

    +

    B.18:1 +An argument operand is an operand which is used as an argument in a +call expression or a method call expression.

    +
    +
    +

    B.19. arithmetic expression

    +

    B.19:1 +An arithmetic expression is an expression that computes a value +from two operands using arithmetic.

    +

    B.19:2 +See ArithmeticExpression.

    +
    +
    +

    B.20. arithmetic operator

    +

    B.20:1 +An arithmetic operator is the operator of an arithmetic expression.

    +
    +
    +

    B.21. arithmetic overflow

    +

    B.21:1 +An arithmetic overflow occurs if an arithmetic expression or a +negation expression computes a value of a scalar type that lies +outside of the range of valid values for the scalar type.

    +
    +
    +

    B.22. arity

    +

    B.22:1 +An arity is the number of tuple fields in a tuple type.

    +
    +
    +

    B.23. array

    +

    B.23:1 +An array is a value of an array type.

    +
    +
    +

    B.24. array element constructor

    +

    B.24:1 +An array element constructor is an array expression that lists all +elements of the array being constructed.

    +

    B.24:2 +See ArrayElementConstructor.

    +
    +
    +

    B.25. array expression

    +

    B.25:1 +An array expression is an expression that constructs an array.

    +

    B.25:2 +See ArrayExpression.

    +
    +
    +

    B.26. array repetition constructor

    +

    B.26:1 +An array repetition constructor is an array expression that +specifies how many times an element is repeated in the array being +constructed.

    +

    B.26:2 +See ArrayRepetitionConstructor.

    +
    +
    +

    B.27. array type

    +

    B.27:1 +An array type is a sequence type that represents a fixed sequence of +elements.

    +

    B.27:2 +See ArrayTypeSpecification.

    +
    +
    +

    B.28. assembly code block

    +

    B.28:1 +An assembly code block is a sequence of assembly instructions.

    +

    B.28:2 +See AssemblyCodeBlock.

    +
    +
    +

    B.29. assembly directive

    +

    B.29:1 +An assembly directive is a request to the assembler to perform a +particular action or change a setting.

    +
    +
    +

    B.30. assembly instruction

    +

    B.30:1 +An assembly instruction is a string literal that represents a +low-level assembly operation or an assembly directive.

    +

    B.30:2 +See AssemblyInstruction.

    +
    +
    +

    B.31. assembly option

    +

    B.31:1 +An assembly option is used to specify a characteristic of or a restriction +on the related assembly code block.

    +

    B.31:2 +See AssemblyOption.

    +
    +
    +

    B.32. assigned operand

    +

    B.32:1 +An assigned operand is the target operand of a +compound assignment expression.

    +

    B.32:2 +See AssignedOperand.

    +
    +
    +

    B.33. assignee expression

    +

    B.33:1 +An assignee expression is an expression that appears as the +left operand of an assignment expression.

    +
    +
    +

    B.34. assignee operand

    +

    B.34:1 +An assignee operand is the target operand of an +assignment expression.

    +

    B.34:2 +See AssigneeOperand.

    +
    +
    +

    B.35. assignment

    +

    B.35:1 +See assignment expression.

    +
    +
    +

    B.36. assignment expression

    +

    B.36:1 +An assignment expression is an expression that assigns the +value of a value operand to an assignee operand.

    +

    B.36:2 +See AssignmentExpression.

    +
    +
    +

    B.37. associated constant

    +

    B.37:1 +An associated constant is a constant that appears as an +associated item.

    +
    +
    +

    B.38. associated function

    +

    B.38:1 +An associated function is a function that appears as an +associated item.

    +
    +
    +

    B.39. associated implementation constant

    +

    B.39:1 +An associated implementation constant is an associated constant that +appears within an implementation.

    +
    +
    +

    B.40. associated implementation function

    +

    B.40:1 +An associated implementation function is an associated function that +appears within an implementation.

    +
    +
    +

    B.41. associated implementation type

    +

    B.41:1 +An associated implementation type is an associated type that appears +within an implementation.

    +
    +
    +

    B.42. associated item

    +

    B.42:1 +An associated item is an item that appears within an +implementation or a trait.

    +

    B.42:2 +See AssociatedItem.

    +
    +
    +

    B.43. associated trait constant

    +

    B.43:1 +An associated trait constant is an associated constant that appears +within a trait.

    +
    +
    +

    B.44. associated trait function

    +

    B.44:1 +An associated trait function is an associated function that appears +within a trait.

    +
    +
    +

    B.45. associated trait implementation item

    +

    B.45:1 +An associated trait implementation item is an associated item that +appears within a trait implementation.

    +
    +
    +

    B.46. associated trait item

    +

    B.46:1 +An associated trait item is an associated item that appears +within a trait.

    +
    +
    +

    B.47. associated trait type

    +

    B.47:1 +An associated trait type is an associated type that appears within +a trait.

    +
    +
    +

    B.48. associated type

    +

    B.48:1 +An associated type is a type alias that appears as an +associated item.

    +
    +
    +

    B.49. associated type projection

    +

    B.49:1 +An associated type projection is a qualified type path of the form +<type as trait>::associated_type, where type is a type, trait +is a qualifying trait, and associated type is an associated type.

    +
    +
    +

    B.50. associativity

    +

    B.50:1 +Associativity is the order by which operands are evaluated within +a single expression.

    +
    +
    +

    B.51. async block

    +

    B.51:1 +For async block, see async block expression.

    +
    +
    +

    B.52. async block expression

    +

    B.52:1 +An async block expression is a block expression that is specified +with keyword async and encapsulates behavior which is executed in +an asynchronous manner.

    +

    B.52:2 +See AsyncBlockExpression.

    +
    +
    +

    B.53. async control flow boundary

    +

    B.53:1 +An async control flow boundary is a control flow boundary that +additionally allows the suspension of execution via await expressions.

    +
    +
    +

    B.54. async function

    +

    B.54:1 +An async function is a function subject to keyword async.

    +
    +
    +

    B.55. atomic

    +

    B.55:1 +See atomic type.

    +
    +
    +

    B.56. atomic type

    +

    B.56:1 +An atomic type is a type defined in module +core::sync::atomic.

    +
    +
    +

    B.57. attribute

    +

    B.57:1 +An attribute is a general, free-form metadatum that is interpreted based +on its name, convention, language, and tool.

    +
    +
    +

    B.58. attribute content

    +

    B.58:1 +An attribute content is a construct that provides the content of +an attribute.

    +

    B.58:2 +See AttributeContent.

    +
    +
    +

    B.59. attribute macro

    +

    B.59:1 +An attribute macro is a procedural macro that consumes two streams +of tokens to produce a stream of tokens, and defines a new +outer attribute that can be attached to items.

    +
    +
    +

    B.60. auto trait

    +

    B.60:1 +An auto trait is a trait that is implicitly and automatically +implemented by a type when the types of its constituent fields +implement the trait.

    +
    +
    +

    B.61. await expression

    +

    B.61:1 +An await expression is an expression that polls a future, +suspending the execution of the future until the future is ready.

    +

    B.61:2 +See AwaitExpression.

    +
    +
    +

    B.62. base initializer

    +

    B.62:1 +A base initializer is a construct that specifies an enum value, +a struct value, or a union value to be used as a base for +construction in a struct expression.

    +

    B.62:2 +See BaseInitializer.

    +
    +
    +

    B.63. basic assignment

    +

    B.63:1 +A basic assignment is an assignment expression that is not a +destructuring assignment.

    +
    +
    +

    B.64. binary crate

    +

    B.64:1 +A binary crate is a crate that contains a main function.

    +
    +
    +

    B.65. binary literal

    +

    B.65:1 +A binary literal is an integer literal in base 2.

    +

    B.65:2 +See BinaryLiteral.

    +
    +
    +

    B.66. binary operator

    +

    B.66:1 +A binary operator is an operator that operates on two operands.

    +
    +
    +

    B.67. binding

    +

    B.67:1 +A binding of a binding pattern binds a matched value to a +name.

    +

    B.67:2 +See Binding.

    +
    +
    +

    B.68. binding argument

    +

    B.68:1 +A binding argument is a generic argument that supplies the type +of an associated trait type.

    +
    +
    +

    B.69. binding mode

    +

    B.69:1 +Binding mode is the mechanism by which a matched value is bound to a +binding of a pattern.

    +
    +
    +

    B.70. binding pattern

    +

    B.70:1 +A binding pattern is either an identifier pattern or a +shorthand deconstructor.

    +
    +
    +

    B.71. binding scope

    +

    B.71:1 +A binding scope is a scope for bindings.

    +
    +
    +

    B.72. bit and assignment

    +

    B.72:1 +For bit and assignment, see bit and assignment expression.

    +
    +
    +

    B.73. bit and assignment expression

    +

    B.73:1 +A bit and assignment expression is a compound assignment expression +that uses bit and arithmetic.

    +

    B.73:2 +See BitAndAssignmentExpression.

    +
    +
    +

    B.74. bit and expression

    +

    B.74:1 +A bit and expression is a bit expression that uses bit and +arithmetic.

    +

    B.74:2 +See BitAndExpression.

    +
    +
    +

    B.75. bit expression

    +

    B.75:1 +A bit expression is an expression that computes a value from +two operands using bit arithmetic.

    +

    B.75:2 +See BitExpression.

    +
    +
    +

    B.76. bit or assignment

    +

    B.76:1 +For bit or assignment, see bit or assignment expression.

    +
    +
    +

    B.77. bit or assignment expression

    +

    B.77:1 +A bit or assignment expression is a compound assignment expression +that uses bit or arithmetic.

    +

    B.77:2 +See BitOrAssignmentExpression.

    +
    +
    +

    B.78. bit or expression

    +

    B.78:1 +A bit or expression is a bit expression that uses bit or arithmetic.

    +

    B.78:2 +See BitOrExpression.

    +
    +
    +

    B.79. bit xor assignment

    +

    B.79:1 +For bit xor assignment, see bit xor assignment expression.

    +
    +
    +

    B.80. bit xor assignment expression

    +

    B.80:1 +A bit xor assignment expression is a compound assignment expression +that uses bit exclusive or arithmetic.

    +

    B.80:2 +See BitXorAssignmentExpression.

    +
    +
    +

    B.81. bit xor expression

    +

    B.81:1 +A bit xor expression is a bit expression that uses bit exclusive or +arithmetic.

    +

    B.81:2 +See BitXorExpression.

    +
    +
    +

    B.82. block comment

    +

    B.82:1 +A block comment is a comment that spans one or more lines.

    +

    B.82:2 +See BlockComment.

    +
    +
    +

    B.83. block expression

    +

    B.83:1 +A block expression is an expression that sequences expressions and +statements.

    +

    B.83:2 +See BlockExpression.

    +
    +
    +

    B.84. bool

    +

    B.84:1 +bool is a type whose values denote the truth values of logic +and Boolean algebra.

    +
    +
    +

    B.85. boolean literal

    +

    B.85:1 +A boolean literal is a literal that denotes the truth values +of logic and Boolean algebra.

    +

    B.85:2 +See BooleanLiteral.

    +
    +
    +

    B.86. borrow

    +

    B.86:1 +A borrow is a reference produced by borrowing.

    +
    +
    +

    B.87. borrow expression

    +

    B.87:1 +A borrow expression is an expression that borrows the value +of its operand and creates a reference to the memory location of its +operand.

    +

    B.87:2 +See BorrowExpression.

    +
    +
    +

    B.88. borrowed

    +

    B.88:1 +A memory location is borrowed when a reference pointing to it is +active.

    +
    +
    +

    B.89. borrowing

    +

    B.89:1 +Borrowing is the process of temporarily associating a reference with +a value without transferring ownership permanently.

    +
    +
    +

    B.90. bound

    +

    B.90:1 +A bound imposes a constraint on a generic parameter by limiting the +set of possible generic substitutions.

    +

    B.90:2 +See TypeBound.

    +
    +
    +

    B.91. bound pattern

    +

    B.91:1 +A bound pattern is a pattern that imposes a constraint on a related +identifier pattern.

    +

    B.91:2 +See BoundPattern.

    +
    +
    +

    B.92. break expression

    +

    B.92:1 +A break expression is an expression that terminates a +loop expression or a named block expression.

    +

    B.92:2 +See BreakExpression.

    +
    +
    +

    B.93. break type

    +

    B.93:1 +Break type is the type of the operand of a +break expression.

    +
    +
    +

    B.94. break value

    +

    B.94:1 +Break value is the value of the operand of a +break expression.

    +
    +
    +

    B.95. built-in attribute

    +

    B.95:1 +A built-in attribute is a language-defined attribute.

    +

    B.95:2 +See InnerBuiltinAttribute, OuterBuiltinAttribute.

    +
    +
    +

    B.96. built-in trait

    +

    B.96:1 +A built-in trait is a language-defined trait.

    +
    +
    +

    B.97. byte literal

    +

    B.97:1 +A byte literal is a literal that denotes a fixed byte value.

    +

    B.97:2 +See ByteLiteral.

    +
    +
    +

    B.98. byte string literal

    +

    B.98:1 +A byte string literal is a literal that consists of multiple +AsciiCharacters.

    +

    B.98:2 +See ByteStringLiteral.

    +
    +
    +

    B.99. C

    +

    B.99:1 +C is the programming language described in the ISO/IEC 9899:2018 +International Standard.

    +
    +
    +

    B.100. C representation

    +

    B.100:1 +C representation is a type representation that lays out types +such that they are interoperable with the C language.

    +
    +
    +

    B.101. C signed int type

    +

    B.101:1 +C signed int type is the signed int type of the C language.

    +
    +
    +

    B.102. Call conformance

    +

    B.102:1 +Call conformance measures the compatibility between a set of +argument operands and a set if function parameters or +fields.

    +
    +
    +

    B.103. call expression

    +

    B.103:1 +A call expression is an expression that invokes a function or +constructs a tuple struct value or tuple enum variant value.

    +

    B.103:2 +See CallExpression.

    +
    +
    +

    B.104. call operand

    +

    B.104:1 +A call operand is the function being invoked or the +tuple struct value or tuple enum variant value being constructed by a +call expression.

    +

    B.104:2 +See CallOperand.

    +
    +
    +

    B.105. call resolution

    +

    B.105:1 +Call resolution is a kind of resolution that applies to a +call expression.

    +
    +
    +

    B.106. call site hygiene

    +

    B.106:1 +Call site hygiene is a type of hygiene which resolves to the +MacroInvocation site. Identifiers with call site hygiene can +reference the environment of the MacroRulesDeclaration, can reference the +environment of the MacroInvocation, and are considered unhygienic.

    +
    +
    +

    B.107. callee type

    +

    B.107:1 +A callee type is either a function item type, a +function pointer type, a tuple struct type, a tuple enum variant +or a type that implements any of the core::ops::Fn, +core::ops::FnMut, or core::ops::FnOnce traits.

    +
    +
    +

    B.108. capture mode

    +

    B.108:1 +Capture mode is the mechanism by which a capture target is captured.

    +
    +
    +

    B.109. capture target

    +

    B.109:1 +A capture target is either a binding or a field of a +binding.

    +
    +
    +

    B.110. capturing

    +

    B.110:1 +Capturing is the process of saving the capture targets of a +capturing expression's capturing environment.

    +
    +
    +

    B.111. capturing environment

    +

    B.111:1 +The capturing environment of a capturing expression consists of all +capture targets that are defined outside the capturing expression.

    +
    +
    +

    B.112. capturing expression

    +

    B.112:1 +A capturing expression is either an async block expression or a +closure expression.

    +
    +
    +

    B.113. cast

    +

    B.113:1 +Cast or casting is the process of changing the type of an +expression.

    +
    +
    +

    B.114. char

    +

    B.114:1 +char is a type whose values denote Unicode characters.

    +
    +
    +

    B.115. character literal

    +

    B.115:1 +A character literal is a literal that denotes a fixed Unicode +character.

    +

    B.115:2 +See CharacterLiteral.

    +
    +
    +

    B.116. closure body

    +

    B.116:1 +A closure body is a construct that represents the executable portion +of a closure expression.

    +

    B.116:2 +See ClosureBody, ClosureBodyWithReturnType.

    +
    +
    +

    B.117. closure expression

    +

    B.117:1 +A closure expression is an expression that defines a +closure type and constructs a value of that type.

    +

    B.117:2 +See ClosureExpression.

    +
    +
    +

    B.118. closure parameter

    +

    B.118:1 +A closure parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    B.118:2 +See ClosureParameter.

    +
    +
    +

    B.119. closure type

    +

    B.119:1 +A closure type is a unique anonymous function type that encapsulates +all capture targets of a closure expression.

    +
    +
    +

    B.120. code point

    +

    B.120:1 +In Unicode, a code point is a numeric value that maps to a +character.

    +
    +
    +

    B.121. comment

    +

    B.121:1 +A comment is a lexical element that acts as an annotation or an +explanation in program text.

    +

    B.121:2 +See Comment.

    +
    +
    +

    B.122. comparison expression

    +

    B.122:1 +A comparison expression is an expression that compares the +values of two operands.

    +

    B.122:2 +See ComparisonExpression.

    +
    +
    +

    B.123. compilation root

    +

    B.123:1 +A compilation root is an input to a compilation performed by a tool.

    +
    +
    +

    B.124. compound assignment

    +

    B.124:1 +For compound assignment, see compound assignment expression.

    +
    +
    +

    B.125. compound assignment expression

    +

    B.125:1 +A compound assignment expression is an expression that first computes +a value from two operands and then assigns the value to an +assigned operand.

    +

    B.125:2 +See CompoundAssignmentExpression.

    +
    +
    +

    B.126. concrete type

    +

    B.126:1 +A concrete type is a type described by a type specification.

    +
    +
    +

    B.127. conditional compilation

    +

    B.127:1 +Conditional compilation is the process of compiling +conditionally-compiled source code.

    +
    +
    +

    B.128. conditionally-compiled source code

    +

    B.128:1 +Conditionally-compiled source code is source code that may or may not be +considered a part of a Rust program depending on certain conditions.

    +
    +
    +

    B.129. configuration predicate

    +

    B.129:1 +A configuration predicate is a construct that evaluates statically +to either true or false, and controls conditional compilation.

    +

    B.129:2 +See ConfigurationPredicate.

    +
    +
    +

    B.130. constant

    +

    B.130:1 +A constant is an immutable value whose uses are substituted by the +value.

    +

    B.130:2 +See ConstantDeclaration.

    +
    +
    +

    B.131. constant argument

    +

    B.131:1 +A constant argument is a generic argument that supplies the +value of a constant parameter.

    +

    B.131:2 +See ConstantArgument.

    +
    +
    +

    B.132. constant context

    +

    B.132:1 +A constant context is a construct that requires a +constant expression.

    +
    +
    +

    B.133. constant expression

    +

    B.133:1 +A constant expression is an expression that can be evaluated +statically.

    +
    +
    +

    B.134. constant function

    +

    B.134:1 +A constant function is a function subject to keyword const.

    +
    +
    +

    B.135. constant initializer

    +

    B.135:1 +A constant initializer is a construct that provides the value +of its related constant.

    +

    B.135:2 +See ConstantInitializer.

    +
    +
    +

    B.136. constant parameter

    +

    B.136:1 +A constant parameter is a generic parameter for a constant.

    +

    B.136:2 +See ConstantParameter.

    +
    +
    +

    B.137. constant parameter initializer

    +

    B.137:1 +A constant parameter initializer is a construct that provides the +default :t:`value of its related constant parameter.

    +

    B.137:2 +See ConstantParameterInitializer.

    +
    +
    +

    B.138. constant promotion

    +

    B.138:1 +Constant promotion is the process of converting a value expression +into a constant.

    +
    +
    +

    B.139. constrain

    +

    B.139:1 +A generic parameter is said to constrain an implementation if +it makes the implementation's applicability more narrow.

    +
    +
    +

    B.140. construct

    +

    B.140:1 +A construct is a piece of program text that is an instance of a +syntactic category.

    +
    +
    +

    B.141. constructee

    +

    B.141:1 +A constructee indicates the enum variant, struct or union +whose value is being constructed by a struct expression.

    +
    +
    +

    B.142. container operand

    +

    B.142:1 +A container operand is an operand that indicates the value +whose field is selected in a field access expression.

    +

    B.142:2 +See ContainerOperand.

    +
    +
    +

    B.143. continue expression

    +

    B.143:1 +A continue expression is an expression that first terminates and +then restarts a loop expression.

    +

    B.143:2 +See ContinueExpression.

    +
    +
    +

    B.144. control flow boundary

    +

    B.144:1 +A control flow boundary is a construct that limits control flow from +returning beyond the construct, and acts as the target of control flow +returning operations.

    +
    +
    +

    B.145. copy type

    +

    B.145:1 +A copy type is a type that implements the +core::marker::Copy trait.

    +
    +
    +

    B.146. crate

    +

    B.146:1 +A crate is a unit of compilation and linking that contains a tree of +nested modules.

    +
    +
    +

    B.147. crate import

    +

    B.147:1 +A crate import specifies a dependency on an external crate.

    +

    B.147:2 +See ExternalCrateImport.

    +
    +
    +

    B.148. crate indication

    +

    B.148:1 +A crate indication is a construct that indicates a crate.

    +

    B.148:2 +See CrateIndication.

    +
    +
    +

    B.149. crate public modifier

    +

    B.149:1 +A crate public modifier is a visibility modifier that grants a +name public visibility within the current crate only.

    +

    B.149:2 +See CratePublicModifier.

    +
    +
    +

    B.150. crate root

    +

    B.150:1 +A crate root is an entry point into a crate.

    +
    +
    +

    B.151. crate root module

    +

    B.151:1 +A crate root module is the root of the nested module tree of a +crate.

    +
    +
    +

    B.152. dangling

    +

    B.152:1 +A value of an indirection type is dangling if it is either +null or not all of the bytes at the referred memory location are part of +the same allocation.

    +
    +
    +

    B.153. data race

    +

    B.153:1 +A data race is a scenario where two or more threads access a shared +memory location concurrently.

    +
    +
    +

    B.154. decimal literal

    +

    B.154:1 +A decimal literal is an integer literal in base 10.

    +

    B.154:2 +See DecimalLiteral.

    +
    +
    +

    B.155. declaration

    +

    B.155:1 +A declaration is a construct that introduces a name for an +entity.

    +
    +
    +

    B.156. declarative macro

    +

    B.156:1 +A declarative macro is a macro that associates a name with a +set of syntactic transformation rules.

    +

    B.156:2 +See MacroRulesDeclaration.

    +
    +
    +

    B.157. deconstructee

    +

    B.157:1 +A deconstructee indicates the enum variant or type that is +being deconstructed by a struct pattern.

    +

    B.157:2 +See Deconstructee.

    +
    +
    +

    B.158. default representation

    +

    B.158:1 +Default representation is a type representation that does not make +any guarantees about layout.

    +
    +
    +

    B.159. definition site hygiene

    +

    B.159:1 +Definition site hygiene is a type of hygiene which resolves to the +MacroRulesDeclaration site. Identifiers with +definition site hygiene cannot reference the environment of the +MacroRulesDeclaration, cannot be referenced by the environment of a +MacroInvocation, and are considered hygienic.

    +
    +
    +

    B.160. dereference

    +

    B.160:1 +A dereference is the memory location produced by evaluating a +dereference expression.

    +
    +
    +

    B.161. dereference expression

    +

    B.161:1 +A dereference expression is an expression that obtains the +pointed-to memory location of its operand.

    +

    B.161:2 +See DereferenceExpression.

    +
    +
    +

    B.162. dereference type

    +

    B.162:1 +A dereference type is either a reference type or a type that +implements the core::ops::Deref trait.

    +
    +
    +

    B.163. dereference type chain

    +

    B.163:1 +A dereference type chain is a sequence of dereference types.

    +
    +
    +

    B.164. derive macro

    +

    B.164:1 +A derive macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens, and is invoked via attribute +derive.

    +
    +
    +

    B.165. destruction

    +

    B.165:1 +Destruction is the process of recovering resources associated with a +value as it goes out of scope.

    +
    +
    +

    B.166. destructor

    +

    B.166:1 +A destructor is a function that is invoked immediately before the +destruction of a value of a drop type.

    +
    +
    +

    B.167. destructuring assignment

    +

    B.167:1 +A destructuring assignment is an assignment expression where +the assignee operand is either an array expression, a +struct expression, or a tuple expression.

    +
    +
    +

    B.168. direction modifier

    +

    B.168:1 +A direction modifier is a construct that indicates whether a +register argument initializes a register, assigns the value of a +register to an expression, or both.

    +

    B.168:2 +See DirectionModifier.

    +
    +
    +

    B.169. discriminant

    +

    B.169:1 +A discriminant is an opaque integer that identifies an enum variant.

    +
    +
    +

    B.170. discriminant initializer

    +

    B.170:1 +A discriminant initializer provides the value of a discriminant.

    +

    B.170:2 +See DiscriminantInitializer.

    +
    +
    +

    B.171. discriminant type

    +

    B.171:1 +A discriminant type is the type of a discriminant.

    +
    +
    +

    B.172. diverging expression

    +

    B.172:1 +A diverging expression is an expression whose evaluation causes +program flow to diverge from the normal evaluation order.

    +
    +
    +

    B.173. diverging type variable

    +

    B.173:1 +A diverging type variable is a type variable that can refer to any +type and originates from a diverging expression.

    +
    +
    +

    B.174. division assignment

    +

    B.174:1 +For division assignment, see division assignment expression.

    +
    +
    +

    B.175. division assignment expression

    +

    B.175:1 +A division assignment expression is a compound assignment expression +that uses division.

    +

    B.175:2 +See DivisionAssignmentExpression.

    +
    +
    +

    B.176. division expression

    +

    B.176:1 +A division expression is an arithmetic expression that uses division.

    +

    B.176:2 +See DivisionExpression.

    +
    +
    +

    B.177. doc comment

    +

    B.177:1 +A doc comment is a comment class that includes +inner block docs, inner line docs, outer block docs, +and outer line docs.

    +
    +
    +

    B.178. drop construct

    +

    B.178:1 +A drop construct is a construct that employs a drop scope.

    +
    +
    +

    B.179. drop order

    +

    B.179:1 +Drop order is the order by which values are dropped when a +drop scope is left.

    +
    +
    +

    B.180. drop scope

    +

    B.180:1 +A drop scope is a region of program text that governs the dropping +of values.

    +
    +
    +

    B.181. drop scope extension

    +

    B.181:1 +Drop scope extension is the process of extending a drop scope +associated with a temporary to prevent the premature dropping of the +temporary.

    +
    +
    +

    B.182. drop type

    +

    B.182:1 +A drop type is a type that implements the core::ops::Drop +trait or contains a field that has a destructor.

    +
    +
    +

    B.183. dropping

    +

    B.183:1 +Dropping a value is the act of invoking the destructor of the +related type.

    +
    +
    +

    B.184. dynamically sized type

    +

    B.184:1 +A dynamically sized type is a type that does not implement the +core::marker::Sized trait.

    +
    +
    +

    B.185. elaboration

    +

    B.185:1 +Elaboration is the process by which a declaration achieves its +runtime effects.

    +
    +
    +

    B.186. element type

    +

    B.186:1 +An element type is the type of the elements of an array type or +a slice type.

    +

    B.186:2 +See ElementType.

    +
    +
    +

    B.187. elided

    +

    B.187:1 +For elided, see elided lifetime.

    +
    +
    +

    B.188. elided lifetime

    +

    B.188:1 +An elided lifetime is either an unnamed lifetime or a lifetime +that has been explicitly omitted from a function signature or an +implementation.

    +
    +
    +

    B.189. else expression

    +

    B.189:1 +An else expression is an expression that represents either a +block expression, an if expression, or an if let expression.

    +

    B.189:2 +See ElseExpression.

    +
    +
    +

    B.190. empty statement

    +

    B.190:1 +An empty statement is a statement expressed as character 0x3B +(semicolon).

    +
    +
    +

    B.191. entity

    +

    B.191:1 +An entity is a construct that can be referred to within program +text, usually via a field access expression or a path.

    +
    +
    +

    B.192. enum

    +

    B.192:1 +An enum is an item that declares an enum type.

    +
    +
    +

    B.193. enum field

    +

    B.193:1 +An enum field is a field of an enum variant.

    +
    +
    +

    B.194. enum type

    +

    B.194:1 +An enum type is an abstract data type that contains +enum variants.

    +

    B.194:2 +See EnumDeclaration.

    +
    +
    +

    B.195. enum value

    +

    B.195:1 +An enum value is a value of an enum type.

    +
    +
    +

    B.196. enum variant

    +

    B.196:1 +An enum variant is a construct that declares one of the +possible variations of an enum.

    +

    B.196:2 +See EnumVariant.

    +
    +
    +

    B.197. enum variant value

    +

    B.197:1 +An enum variant value is the enum value of the corresponding +enum of the enum variant.

    +
    +
    +

    B.198. equals expression

    +

    B.198:1 +An equals expression is a comparison expression that tests equality.

    +

    B.198:2 +See EqualsExpression.

    +
    +
    +

    B.199. error propagation expression

    +

    B.199:1 +An error propagation expression is an expression that either +evaluates to a value of its operand or returns a value to the next +control flow boundary.

    +

    B.199:2 +See ErrorPropagationExpression.

    +
    +
    +

    B.200. escaped character

    +

    B.200:1 +An escaped character is the textual representation for a character with +special meaning. An escaped character consists of character 0x5C (reverse +solidus), followed by the single character encoding of the special meaning +character. For example, \t is the escaped character for 0x09 (horizontal +tabulation).

    +
    +
    +

    B.201. evaluated

    +

    B.201:1 +See evaluation.

    +
    +
    +

    B.202. evaluation

    +

    B.202:1 +Evaluation is the process by which an expression achieves its +runtime effects.

    +
    +
    +

    B.203. executed

    +

    B.203:1 +See execution.

    +
    +
    +

    B.204. execution

    +

    B.204:1 +Execution is the process by which a statement achieves its runtime +effects.

    +
    +
    +

    B.205. explicit register argument

    +

    B.205:1 +An explicit register argument is a register argument that uses an +explicit register name.

    +
    +
    +

    B.206. explicit register name

    +

    B.206:1 +An explicit register name is a target-specific string that identifies +a register.

    +

    B.206:2 +See ExplicitRegisterName.

    +
    +
    +

    B.207. explicitly declared entity

    +

    B.207:1 +An explicitly declared entity is an entity that has a +declaration.

    +
    +
    +

    B.208. exported function

    +

    B.208:1 +An exported function is an export of a function.

    +
    +
    +

    B.209. exported static

    +

    B.209:1 +An exported static is an export of a static.

    +
    +
    +

    B.210. expression

    +

    B.210:1 +An expression is a construct that produces a value, and may +have side effects at run-time.

    +

    B.210:2 +See Expression.

    +
    +
    +

    B.211. expression statement

    +

    B.211:1 +An expression statement is an expression whose result is ignored.

    +

    B.211:2 +See ExpressionStatement.

    +
    +
    +

    B.212. expression-with-block

    +

    B.212:1 +An expression-with-block is an expression whose structure involves a +block expression.

    +

    B.212:2 +See ExpressionWithBlock.

    +
    +
    +

    B.213. expression-without-block

    +

    B.213:1 +An expression-without-block is an expression whose structure does +not involve a block expression.

    +

    B.213:2 +See ExpressionWithoutBlock.

    +
    +
    +

    B.214. external block

    +

    B.214:1 +An external block is a construct that provides the declarations of +foreign functions as unchecked imports.

    +

    B.214:2 +See ExternalBlock.

    +
    +
    +

    B.215. external function

    +

    B.215:1 +An external function is an unchecked import of a foreign function.

    +
    +
    +

    B.216. external function item type

    +

    B.216:1 +An external function item type is a function item type where the +related function is an external function.

    +
    +
    +

    B.217. external static

    +

    B.217:1 +An external static is an import of a foreign variable.

    +
    +
    +

    B.218. f32

    +

    B.218:1 +f32 is a floating-point type equivalent to the IEEE 754-2008 +binary32 type.

    +
    +
    +

    B.219. f64

    +

    B.219:1 +f64 is a floating-point type equivalent to the IEEE 754-2008 +binary64 type.

    +
    +
    +

    B.220. fat pointer

    +

    B.220:1 +A fat pointer is a value of a fat pointer type.

    +
    +
    +

    B.221. fat pointer type

    +

    B.221:1 +A fat pointer type is an indirection type that refers to a +dynamically sized type.

    +
    +
    +

    B.222. FFI

    +

    B.222:1 +For FFI, see Foreign Function Interface.

    +
    +
    +

    B.223. field

    +

    B.223:1 +A field is an element of an abstract data type.

    +
    +
    +

    B.224. field access expression

    +

    B.224:1 +A field access expression is an expression that accesses a +field of a value.

    +

    B.224:2 +See FieldAccessExpression.

    +
    +
    +

    B.225. field index

    +

    B.225:1 +A field index is the position of a field within a +tuple struct type or tuple enum variant. The first field has a +field index of zero, the Nth field has a field index of N-1.

    +

    B.225:2 +See FieldIndex.

    +
    +
    +

    B.226. field list

    +

    B.226:1 +A field list is a RecordStructFieldList or TupleStructFieldList.

    +
    +
    +

    B.227. field resolution

    +

    B.227:1 +Field resolution is a form of resolution that applies to a +field access expression.

    +
    +
    +

    B.228. field selector

    +

    B.228:1 +A field selector is a construct that selects the field to be +accessed in a field access expression.

    +

    B.228:2 +See FieldSelector.

    +
    +
    +

    B.229. final match arm

    +

    B.229:1 +A final match arm is the last match arm of a match expression.

    +

    B.229:2 +See FinalMatchArm.

    +
    +
    +

    B.230. fixed sized type

    +

    B.230:1 +A fixed sized type is a type that implements the +core::marker::Sized trait.

    +
    +
    +

    B.231. float literal

    +

    B.231:1 +A float literal is a numeric literal that denotes a fractional +number.

    +

    B.231:2 +See FloatLiteral.

    +
    +
    +

    B.232. float suffix

    +

    B.232:1 +A float suffix is a component of a float literal that specifies an +explicit floating-point type.

    +

    B.232:2 +See FloatSuffix.

    +
    +
    +

    B.233. floating-point type

    +

    B.233:1 +A floating-point type is a numeric type whose values denote +fractional numbers.

    +
    +
    +

    B.234. floating-point type variable

    +

    B.234:1 +A floating-point type variable is a type variable that can refer +only to floating-point types.

    +
    +
    +

    B.235. floating-point value

    +

    B.235:1 +A floating-point value is a value of a floating-point type.

    +
    +
    +

    B.236. for loop

    +

    B.236:1 +For for loop, see for loop expression.

    +
    +
    +

    B.237. for loop expression

    +

    B.237:1 +A for loop expression is a loop expression that continues to +evaluate its loop body as long as its subject expression yields a +value.

    +

    B.237:2 +See ForLoopExpression.

    +
    +
    +

    B.238. Foreign Function Interface

    +

    B.238:1 +Foreign Function Interface employs ABI, attributes, +external block, external functions, linkage, and type +layout to interface a Rust program with foreign code.

    +
    +
    +

    B.239. fragment specifier

    +

    B.239:1 +A fragment specifier is a construct that indicates the type of +a metavariable.

    +

    B.239:2 +See MacroFragmentSpecifier.

    +
    +
    +

    B.240. full range expression

    +

    B.240:1 +A full range expression is a range expression that covers the full +range of a type.

    +
    +
    +

    B.241. function

    +

    B.241:1 +A function is a value of a function type that models a behavior.

    +

    B.241:2 +See FunctionDeclaration.

    +
    +
    +

    B.242. function body

    +

    B.242:1 +A function body is the block expression of a function.

    +

    B.242:2 +See FunctionBody.

    +
    +
    +

    B.243. function item type

    +

    B.243:1 +A function item type is a unique anonymous function type that +identifies a function.

    +
    +
    +

    B.244. function lifetime elision

    +

    B.244:1 +Function lifetime elision is a form of lifetime elision that applies +to functions, function pointer type parameters and paths +resolving to one of the core::ops::Fn, core::ops::FnMut, and +core::ops::FnOnce traits.

    +
    +
    +

    B.245. function parameter

    +

    B.245:1 +A function parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    B.245:2 +See FunctionParameter.

    +
    +
    +

    B.246. function pointer type

    +

    B.246:1 +A function pointer type is an indirection type that refers to a +function.

    +

    B.246:2 +See FunctionPointerTypeSpecification.

    +
    +
    +

    B.247. function pointer type parameter

    +

    B.247:1 +A function pointer type parameter is a function parameter of a +function pointer type.

    +

    B.247:2 +See FunctionPointerTypeParameter.

    +
    +
    +

    B.248. function qualifier

    +

    B.248:1 +A function qualifier is a construct that determines the role of +a function.

    +

    B.248:2 +See FunctionQualifierList.

    +
    +
    +

    B.249. function signature

    +

    B.249:1 +A function signature is a unique identification of a function +that encompasses of its function qualifiers, name, +generic parameters, function parameters, return type, and +where clause.

    +
    +
    +

    B.250. function type

    +

    B.250:1 +A function type is either a closure type or a +function item type.

    +
    +
    +

    B.251. function-like macro

    +

    B.251:1 +A function-like macro is a procedural macro that consumes a stream +of tokens and produces a stream of tokens, and is invoked directly.

    +
    +
    +

    B.252. fundamental

    +

    B.252:1 +A trait or type is fundamental when its +implementation coherence rules are relaxed and the trait or type +is always treated as if it was a local trait or a local type.

    +
    +
    +

    B.253. future

    +

    B.253:1 +A future represents a value of a type that implements the +core::future::Future trait which may not have finished computing +yet.

    +
    +
    +

    B.254. future operand

    +

    B.254:1 +A future operand is an operand whose future is being awaited by +an await expression.

    +

    B.254:2 +See FutureOperand.

    +
    +
    +

    B.255. generic argument

    +

    B.255:1 +A generic argument supplies a static input for an +associated trait type or a generic parameter.

    +

    B.255:2 +See GenericArgumentList.

    +
    +
    +

    B.256. generic associated type

    +

    B.256:1 +A generic associated type is an associated type with +generic parameters.

    +
    +
    +

    B.257. generic conformance

    +

    B.257:1 +Generic conformance measures the compatibility between a set of +generic parameters and a set of generic arguments.

    +
    +
    +

    B.258. generic enum

    +

    B.258:1 +A generic enum is an enum with generic parameters.

    +
    +
    +

    B.259. generic function

    +

    B.259:1 +A generic function is a function with generic parameters.

    +
    +
    +

    B.260. generic implementation

    +

    B.260:1 +A generic implementation is an implementation with +generic parameters.

    +
    +
    +

    B.261. generic parameter

    +

    B.261:1 +A generic parameter is a placeholder for a constant, a +lifetime, or a type whose value is supplied statically by a +generic argument.

    +

    B.261:2 +See GenericParameterList.

    +
    +
    +

    B.262. generic parameter scope

    +

    B.262:1 +A generic parameter scope is a scope for generic parameters.

    +
    +
    +

    B.263. generic struct

    +

    B.263:1 +A generic struct is a struct with generic parameters.

    +
    +
    +

    B.264. generic substitution

    +

    B.264:1 +A generic substitution is the replacement of a generic parameter +with a generic argument.

    +
    +
    +

    B.265. generic trait

    +

    B.265:1 +A generic trait is a trait with generic parameters.

    +
    +
    +

    B.266. generic type

    +

    B.266:1 +A generic type is a type with a generic parameter.

    +
    +
    +

    B.267. generic type alias

    +

    B.267:1 +A generic type alias is a type alias with generic parameters.

    +
    +
    +

    B.268. generic union

    +

    B.268:1 +A generic union is a union with generic parameters.

    +
    +
    +

    B.269. glob import

    +

    B.269:1 +A glob import is a use import that brings all names with +public visibility prefixed by its path prefix into scope.

    +

    B.269:2 +See GlobImport.

    +
    +
    +

    B.270. global path

    +

    B.270:1 +A global path is a path that starts with namespace qualifier +::.

    +
    +
    +

    B.271. global type variable

    +

    B.271:1 +A global type variable is a type variable that can refer to any +type.

    +
    +
    +

    B.272. greater-than expression

    +

    B.272:1 +A greater-than expression is a comparison expression that tests for +a greater-than relationship.

    +

    B.272:2 +See GreaterThanExpression.

    +
    +
    +

    B.273. greater-than-or-equals expression

    +

    B.273:1 +A greater-than-or-equals expression is a comparison expression that +tests for a greater-than-or-equals relationship.

    +

    B.273:2 +See GreaterThanOrEqualsExpression.

    +
    +
    +

    B.274. half-open range pattern

    +

    B.274:1 +A half-open range pattern is a range pattern with only a +range pattern low bound.

    +

    B.274:2 +See HalfOpenRangePattern.

    +
    +
    +

    B.275. hexadecimal literal

    +

    B.275:1 +A hexadecimal literal is an integer literal in base 16.

    +

    B.275:2 +See HexadecimalLiteral.

    +
    +
    +

    B.276. higher-ranked trait bound

    +

    B.276:1 +A higher-ranked trait bound is a bound that specifies an infinite +list of bounds for all possible lifetimes.

    +

    B.276:2 +See ForGenericParameterList.

    +
    +
    +

    B.277. hygiene

    +

    B.277:1 +Hygiene is a property of macros and identifiers` that +appear within them, which aims to eliminate the syntactic interference between +a macro and its environment.

    +
    +
    +

    B.278. hygienic

    +

    B.278:1 +An identifier is hygienic when it has definition site hygiene.

    +
    +
    +

    B.279. i8

    +

    B.279:1 +i8 is a signed integer type whose values range from - (27) to 27 - 1, all inclusive.

    +
    +
    +

    B.280. i16

    +

    B.280:1 +i16 is a signed integer type whose values range from - (215) to 215 - 1, all inclusive.

    +
    +
    +

    B.281. i32

    +

    B.281:1 +i32 is a signed integer type whose values range from - (231) to 231 - 1, all inclusive.

    +
    +
    +

    B.282. i64

    +

    B.282:1 +i64 is a signed integer type whose values range from - (263) to 263 - 1, all inclusive.

    +
    +
    +

    B.283. i128

    +

    B.283:1 +i128 is a signed integer type whose values range from - (2127) to 2127 - 1, all inclusive.

    +
    +
    +

    B.284. identifier

    +

    B.284:1 +An identifier is a lexical element that refers to a name.

    +

    B.284:2 +See Identifier.

    +
    +
    +

    B.285. identifier pattern

    +

    B.285:1 +An identifier pattern is a pattern that binds the value it +matches to a binding.

    +

    B.285:2 +See IdentifierPattern.

    +
    +
    +

    B.286. if expression

    +

    B.286:1 +An if expression is an expression that evaluates either a +block expression or an else expression depending on the value +of its subject expression.

    +

    B.286:2 +See IfExpression.

    +
    +
    +

    B.287. if let expression

    +

    B.287:1 +An if let expression is an expression that evaluates either a +block expression or an else expression depending on whether its +pattern can be matched against its subject let expression.

    +

    B.287:2 +See IfLetExpression.

    +
    +
    +

    B.288. immutable

    +

    B.288:1 +A value is immutable when it cannot be modified.

    +
    +
    +

    B.289. immutable borrow

    +

    B.289:1 +An immutable borrow is an immutable reference produced by +borrowing.

    +
    +
    +

    B.290. immutable borrow expression

    +

    B.290:1 +An immutable borrow expression is a borrow expression that lacks +keyword mut.

    +
    +
    +

    B.291. immutable place expression

    +

    B.291:1 +An immutable place expression is a place expression whose memory +location cannot be modified.

    +
    +
    +

    B.292. immutable place expression context

    +

    B.292:1 +An immutable place expression context is a place expression context +whose memory location cannot be modified.

    +
    +
    +

    B.293. immutable raw pointer type

    +

    B.293:1 +An immutable raw pointer type is a raw pointer type subject to +keyword const.

    +
    +
    +

    B.294. immutable reference

    +

    B.294:1 +An immutable reference is a value of a shared reference type, +and prevents the mutation of its referent.

    +
    +
    +

    B.295. immutable static

    +

    B.295:1 +An immutable static is a static whose value cannot be modified.

    +
    +
    +

    B.296. immutable variable

    +

    B.296:1 +An immutable variable is a variable whose value cannot be +modified.

    +
    +
    +

    B.297. impl header lifetime elision

    +

    B.297:1 +Impl header lifetime elision is a form of lifetime elision that +applies to the implementing type and implemented trait (if any) of an +implementation.

    +
    +
    +

    B.298. impl trait type

    +

    B.298:1 +An impl trait type is a type that implements a trait, where the +type is known at compile time.

    +

    B.298:2 +See ImplTraitTypeSpecification, ImplTraitTypeSpecificationOneBound.

    +
    +
    +

    B.299. implementation

    +

    B.299:1 +An implementation is an item that supplements an +implementing type by extending its functionality.

    +

    B.299:2 +See Implementation.

    +
    +
    +

    B.300. implementation body

    +

    B.300:1 +An implementation body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of an implementation.

    +

    B.300:2 +See ImplementationBody.

    +
    +
    +

    B.301. implementation coherence

    +

    B.301:1 +A trait implementation exhibits implementation coherence when it is +valid and does not overlap with another trait implementation.

    +
    +
    +

    B.302. implementation conformance

    +

    B.302:1 +Implementation conformance measures the compatibility between a +trait implementation and the implemented trait.

    +
    +
    +

    B.303. implemented trait

    +

    B.303:1 +An implemented trait is a trait whose functionality has been +implemented by an implementing type.

    +

    B.303:2 +See ImplementedTrait.

    +
    +
    +

    B.304. implementing type

    +

    B.304:1 +An implementing type is the type that the associated items of +an implementation are associated with.

    +

    B.304:2 +See ImplementingType.

    +
    +
    +

    B.305. implicit borrow

    +

    B.305:1 +An implicit borrow is a borrow that is not present syntactically in +program text.

    +
    +
    +

    B.306. implicitly declared entity

    +

    B.306:1 +An implicitly declared entity is an entity that lacks an explicit +declaration.

    +
    +
    +

    B.307. implied bound

    +

    B.307:1 +An implied bound is a bound that is not expressed in syntax, but is +is the byproduct of relations between lifetime parameters and +function parameters, between lifetime parameters and a +return type, and between lifetime parameters and fields.

    +
    +
    +

    B.308. in scope

    +

    B.308:1 +A name is in scope when it can be referred to.

    +
    +
    +

    B.309. inclusive range pattern

    +

    B.309:1 +An inclusive range pattern is a range pattern with both a +range pattern low bound and a range pattern high bound.

    +

    B.309:2 +See InclusiveRangePattern.

    +
    +
    +

    B.310. incomplete associated constant

    +

    B.310:1 +An incomplete associated constant is an associated constant without +a constant initializer.

    +
    +
    +

    B.311. incomplete associated function

    +

    B.311:1 +An incomplete associated function is an associated function without +a function body.

    +
    +
    +

    B.312. incomplete associated type

    +

    B.312:1 +An incomplete associated type is an associated type without an +initialization type.

    +
    +
    +

    B.313. index expression

    +

    B.313:1 +An index expression is an expression that indexes into a value +of a type.

    +

    B.313:2 +See IndexExpression.

    +
    +
    +

    B.314. indexable type

    +

    B.314:1 +A indexable type is a type that implements the +core::ops::Index trait.

    +
    +
    +

    B.315. indexed deconstructor

    +

    B.315:1 +An indexed deconstructor is a construct that matches the position of +a tuple field.

    +

    B.315:2 +See IndexedDeconstructor.

    +
    +
    +

    B.316. indexed field selector

    +

    B.316:1 +An indexed field selector is a field selector where the selected +field is indicated by an index.

    +

    B.316:2 +See IndexedFieldSelector.

    +
    +
    +

    B.317. indexed initializer

    +

    B.317:1 +An indexed initializer is a construct that specifies the index and +initial value of a field in a struct expression.

    +

    B.317:2 +See IndexedInitializer.

    +
    +
    +

    B.318. indexed operand

    +

    B.318:1 +An indexed operand is an operand which indicates the value of a +type implementing core::ops::Index being indexed into by an +index expression.

    +

    B.318:2 +See IndexedOperand.

    +
    +
    +

    B.319. indexing operand

    +

    B.319:1 +An indexing operand is an operand which specifies the index for the +indexed operand being indexed into by an index expression.

    +

    B.319:2 +See IndexingOperand.

    +
    +
    +

    B.320. indirection type

    +

    B.320:1 +An indirection type is a type whose values refer to memory +locations.

    +
    +
    +

    B.321. inert attribute

    +

    B.321:1 +An inert attribute is an attribute that remains with the item +it decorates.

    +
    +
    +

    B.322. inferred type

    +

    B.322:1 +An inferred type is a placeholder for a type deduced by +type inference.

    +

    B.322:2 +See InferredType.

    +
    +
    +

    B.323. infinite loop

    +

    B.323:1 +For infinite loop, see infinite loop expression.

    +
    +
    +

    B.324. infinite loop expression

    +

    B.324:1 +An infinite loop expression is a loop expression that continues to +evaluate its loop body indefinitely.

    +

    B.324:2 +See InfiniteLoopExpression.

    +
    +
    +

    B.325. inherent implementation

    +

    B.325:1 +An inherent implementation is an implementation that adds direct +functionality.

    +

    B.325:2 +See InherentImplementation.

    +
    +
    +

    B.326. initialization

    +

    B.326:1 +Initialization is the act of supplying an initial value to a +constant, a static, or a variable.

    +
    +
    +

    B.327. initialization expression

    +

    B.327:1 +An initialization expression is either a constant initializer or a +static initializer.

    +
    +
    +

    B.328. initialization type

    +

    B.328:1 +An initialization type is the type a type alias defines a +name for.

    +

    B.328:2 +See InitializationType.

    +
    +
    +

    B.329. inline assembly

    +

    B.329:1 +Inline assembly is hand-written assembly code that is integrated into a +Rust program.

    +
    +
    +

    B.330. inline module

    +

    B.330:1 +An inline module is a module with an InlineModuleSpecification.

    +

    B.330:2 +See InlineModuleSpecification.

    +
    +
    +

    B.331. inner attribute

    +

    B.331:1 +An inner attribute is an attribute that applies to an enclosing +item.

    +

    B.331:2 +See InnerAttribute.

    +
    +
    +

    B.332. inner block doc

    +

    B.332:1 +An inner block doc is a block comment that applies to an enclosing +non-comment construct.

    +

    B.332:2 +See InnerBlockDoc.

    +
    +
    +

    B.333. inner doc comment

    +

    B.333:1 +An inner doc comment is either an inner block doc or an +inner line doc.

    +
    +
    +

    B.334. inner line doc

    +

    B.334:1 +An inner line doc is a line comment that applies to an enclosing +non-comment construct.

    +

    B.334:2 +See InnerLineDoc.

    +
    +
    +

    B.335. input register

    +

    B.335:1 +An input register is a register whose register name is used in +a register argument subject to direction modifier in, inout, +or inlateout.

    +
    +
    +

    B.336. input register expression

    +

    B.336:1 +An input register expression is an expression that provides the +initial value of a register.

    +

    B.336:2 +See InputRegisterExpression.

    +
    +
    +

    B.337. input-output register expression

    +

    B.337:1 +An input-output register expression is a construct that specifies +both an input register expression and an output register expression.

    +

    B.337:2 +See InputOutputRegisterExpression.

    +
    +
    +

    B.338. integer literal

    +

    B.338:1 +An integer literal is a numeric literal that denotes a whole number.

    +

    B.338:2 +See IntegerLiteral.

    +
    +
    +

    B.339. integer suffix

    +

    B.339:1 +An integer suffix is a component of an integer literal that +specifies an explicit integer type.

    +

    B.339:2 +See IntegerSuffix.

    +
    +
    +

    B.340. integer type

    +

    B.340:1 +An integer type is a numeric type whose values denote whole +numbers.

    +
    +
    +

    B.341. integer type variable

    +

    B.341:1 +An integer type variable is a type variable that can refer only to +integer types.

    +
    +
    +

    B.342. interior mutability

    +

    B.342:1 +Interior mutability is a property of types whose values can +be modified through immutable references.

    +
    +
    +

    B.343. intermediate match arm

    +

    B.343:1 +An intermediate match arm is any non-final match arm of a +match expression.

    +

    B.343:2 +See IntermediateMatchArm.

    +
    +
    +

    B.344. irrefutable constant

    +

    B.344:1 +An irrefutable constant is a constant of a type that has at most +one value.

    +
    +
    +

    B.345. irrefutable pattern

    +

    B.345:1 +An irrefutable pattern is a pattern that always matches the +value it is being matched against.

    +
    +
    +

    B.346. isize

    +

    B.346:1 +isize is a signed integer type with the same number of bits as the +platform’s pointer type, and is at least 16-bits wide.

    +
    +
    +

    B.347. item

    +

    B.347:1 +An item is the most basic semantic element in program text. An item +defines the compile- and run-time semantics of a program.

    +

    B.347:2 +See Item.

    +
    +
    +

    B.348. item scope

    +

    B.348:1 +An item scope is a scope for items.

    +
    +
    +

    B.349. item statement

    +

    B.349:1 +An item statement is a statement that is expressed as an item.

    +
    +
    +

    B.350. iteration expression

    +

    B.350:1 +An iteration expression is an expression that provides the criterion +of a while loop expression.

    +

    B.350:2 +See IterationExpression.

    +
    +
    +

    B.351. keyword

    +

    B.351:1 +A keyword is a word in program text that has special meaning.

    +

    B.351:2 +See Keyword.

    +
    +
    +

    B.352. label

    +

    B.352:1 +A label is the name of a loop expression.

    +

    B.352:2 +See Label.

    +
    +
    +

    B.353. label indication

    +

    B.353:1 +A label indication is a construct that indicates a label.

    +

    B.353:2 +See LabelIndication.

    +
    +
    +

    B.354. label scope

    +

    B.354:1 +A label scope is a scope for labels.

    +
    +
    +

    B.355. layout

    +

    B.355:1 +Layout specifies the alignment, size, and the relative offset +of fields in a type.

    +
    +
    +

    B.356. lazy and expression

    +

    B.356:1 +A lazy and expression is a lazy boolean expression that uses short +circuit and arithmetic.

    +

    B.356:2 +See LazyAndExpression.

    +
    +
    +

    B.357. lazy boolean expression

    +

    B.357:1 +A lazy boolean expression is an expression that performs short +circuit Boolean arithmetic.

    +

    B.357:2 +See LazyBooleanExpression.

    +
    +
    +

    B.358. lazy or expression

    +

    B.358:1 +A lazy or expression is a lazy boolean expression that uses short +circuit or arithmetic.

    +

    B.358:2 +See LazyOrExpression.

    +
    +
    +

    B.359. left operand

    +

    B.359:1 +A left operand is an operand that appears on the left-hand side of a +binary operator.

    +

    B.359:2 +See LeftOperand.

    +
    +
    +

    B.360. less-than expression

    +

    B.360:1 +A less-than expression is a comparison expression that tests for a +less-than relationship.

    +

    B.360:2 +See LessThanExpression.

    +
    +
    +

    B.361. less-than-or-equals expression

    +

    B.361:1 +A less-than-or-equals expression is a comparison expression that +tests for a less-than-or-equals relationship.

    +

    B.361:2 +See LessThanOrEqualsExpression.

    +
    +
    +

    B.362. let initializer

    +

    B.362:1 +A let initializer is a construct that provides the value of +the bindings of the let statement using an expression, or +alternatively executes a block expression.

    +

    B.362:2 +See LetInitializer.

    +
    +
    +

    B.363. let statement

    +

    B.363:1 +A let statement is a statement that introduces new variables +given by the bindings produced by its pattern-without-alternation +that are optionally initialized to a value.

    +

    B.363:2 +See LetStatement.

    +
    +
    +

    B.364. lexical element

    +

    B.364:1 +A lexical element is the most basic syntactic element in program +text.

    +
    +
    +

    B.365. library crate

    +

    B.365:1 +A library crate is either a crate without a main function or a +crate subject to attribute no_main.

    +
    +
    +

    B.366. lifetime

    +

    B.366:1 +A lifetime specifies the expected longevity of a reference.

    +

    B.366:2 +See Lifetime.

    +
    +
    +

    B.367. lifetime argument

    +

    B.367:1 +A lifetime argument is a generic argument that supplies the +value of a lifetime parameter.

    +

    B.367:2 +See LifetimeArgument.

    +
    +
    +

    B.368. lifetime bound

    +

    B.368:1 +A lifetime bound is a bound that imposes a constraint on the +lifetimes of generic parameters.

    +

    B.368:2 +See LifetimeIndication.

    +
    +
    +

    B.369. lifetime bound predicate

    +

    B.369:1 +A lifetime bound predicate is a construct that specifies +lifetime bounds on a lifetime parameter.

    +

    B.369:2 +See LifetimeBoundPredicate.

    +
    +
    +

    B.370. lifetime elision

    +

    B.370:1 +Lifetime elision is a set of rules that automatically insert +lifetime parameters and/or lifetime arguments when they are +elided in the source code.

    +
    +
    +

    B.371. lifetime parameter

    +

    B.371:1 +A lifetime parameter is a generic parameter for a lifetime.

    +

    B.371:2 +See LifetimeParameter.

    +
    +
    +

    B.372. lifetime variable

    +

    B.372:1 +A lifetime variable is a placeholder used during type inference to +stand in for an undetermined lifetime of a type.

    +
    +
    +

    B.373. line

    +

    B.373:1 +A line is a sequence of zero or more characters followed by an end of +line.

    +
    +
    +

    B.374. line comment

    +

    B.374:1 +A line comment is a comment that spans exactly one line.

    +

    B.374:2 +See LineComment.

    +
    +
    +

    B.375. literal

    +

    B.375:1 +A literal is a fixed value in program text.

    +

    B.375:2 +See Literal.

    +
    +
    +

    B.376. literal expression

    +

    B.376:1 +A literal expression is an expression that denotes a literal.

    +

    B.376:2 +See LiteralExpression.

    +
    +
    +

    B.377. literal pattern

    +

    B.377:1 +A literal pattern is a pattern that matches a literal.

    +

    B.377:2 +See LiteralPattern.

    +
    +
    +

    B.378. local trait

    +

    B.378:1 +A local trait is a trait that is defined in the current crate.

    +
    +
    +

    B.379. local type

    +

    B.379:1 +A local type is a type that is defined in the current crate.

    +
    +
    +

    B.380. local variable

    +

    B.380:1 +For local variable, see variable.

    +
    +
    +

    B.381. loop

    +

    B.381:1 +For loop, see loop expression.

    +
    +
    +

    B.382. loop body

    +

    B.382:1 +A loop body is the block expression of a loop expression.

    +

    B.382:2 +See LoopBody.

    +
    +
    +

    B.383. loop expression

    +

    B.383:1 +A loop expression is an expression that evaluates a +block expression continuously as long as some criterion holds true.

    +

    B.383:2 +See LoopExpression.

    +
    +
    +

    B.384. macro

    +

    B.384:1 +A macro is a custom definition that extends Rust by defining callable +syntactic transformations.

    +
    +
    +

    B.385. macro expansion

    +

    B.385:1 +Macro expansion is the process of statically executing a +macro invocation and replacing it with the produced output of the +macro invocation.

    +
    +
    +

    B.386. macro implementation function

    +

    B.386:1 +A macro implementation function is the function that encapsulates +the syntactic transformations of a procedural macro.

    +
    +
    +

    B.387. macro invocation

    +

    B.387:1 +A macro invocation is a call of a declarative macro or +function-like macro that is expanded statically and replaced with the +result of the macro.

    +

    B.387:2 +See MacroInvocation.

    +
    +
    +

    B.388. macro match

    +

    B.388:1 +A macro match is the most basic form of a satisfied macro matcher.

    +

    B.388:2 +See MacroMatch.

    +
    +
    +

    B.389. macro matcher

    +

    B.389:1 +A macro matcher is a construct that describes a syntactic pattern +that a macro must match.

    +

    B.389:2 +See MacroMatcher.

    +
    +
    +

    B.390. macro matching

    +

    B.390:1 +Macro matching is the process of performing rule matching and +token matching.

    +
    +
    +

    B.391. macro repetition

    +

    B.391:1 +A macro repetition is either a macro repetition in matching or a +macro repetition in transcription.

    +
    +
    +

    B.392. macro repetition in matching

    +

    B.392:1 +A macro repetition in matching allows for a syntactic pattern to be +matched zero or multiple times during macro matching.

    +

    B.392:2 +See MacroRepetitionMatch.

    +
    +
    +

    B.393. macro repetition in transcription

    +

    B.393:1 +A macro repetition in transcription allows for a syntactic pattern to be +transcribed zero or multiple times during macro transcription.

    +

    B.393:2 +See MacroRepetitionTranscriber.

    +
    +
    +

    B.394. macro rule

    +

    B.394:1 +A macro rule is a construct that consists of a macro matcher +and a macro transcriber.

    +

    B.394:2 +See MacroRule.

    +
    +
    +

    B.395. macro statement

    +

    B.395:1 +A macro statement is a statement expressed as a +terminated macro invocation.

    +
    +
    +

    B.396. macro transcriber

    +

    B.396:1 +A macro transcriber is a construct that describes the replacement +syntax of a macro.

    +

    B.396:2 +See MacroTranscriber.

    +
    +
    +

    B.397. macro transcription

    +

    B.397:1 +Macro transcription is the process of producing the expansion of a +declarative macro.

    +
    +
    +

    B.398. main function

    +

    B.398:1 +A main function is a function that acts as an entry point into +a program.

    +
    +
    +

    B.399. match arm

    +

    B.399:1 +A match arm is a construct that consists of a match arm matcher +and a match arm body.

    +
    +
    +

    B.400. match arm body

    +

    B.400:1 +A match arm body is the operand of a match arm.

    +
    +
    +

    B.401. match arm guard

    +

    B.401:1 +A match arm guard is a construct that provides additional filtering +to a match arm matcher.

    +

    B.401:2 +See MatchArmGuard.

    +
    +
    +

    B.402. match arm matcher

    +

    B.402:1 +A match arm matcher is a construct that consists of a pattern +and a match arm guard.

    +

    B.402:2 +See MatchArmMatcher.

    +
    +
    +

    B.403. match expression

    +

    B.403:1 +A match expression is an expression that tries to match one of +its multiple patterns against its subject expression and if it +succeeds, evaluates an operand.

    +

    B.403:2 +See MatchExpression.

    +
    +
    +

    B.404. metavariable

    +

    B.404:1 +A metavariable is a macro match that describes a variable.

    +

    B.404:2 +See MacroMetavariable.

    +
    +
    +

    B.405. metavariable indication

    +

    B.405:1 +A metavariable indication is a construct that indicates a +metavariable.

    +

    B.405:2 +See MacroMetavariableIndication.

    +
    +
    +

    B.406. method

    +

    B.406:1 +A method is an associated function with a self parameter.

    +
    +
    +

    B.407. method call expression

    +

    B.407:1 +A method call expression is an expression that invokes a method +of a variable.

    +

    B.407:2 +See MethodCallExpression.

    +
    +
    +

    B.408. method operand

    +

    B.408:1 +A method operand is an operand that denotes the method being +invoked by a method call expression.

    +

    B.408:2 +See MethodOperand.

    +
    +
    +

    B.409. method resolution

    +

    B.409:1 +Method resolution is a kind of resolution that applies to a +method call expression.

    +
    +
    +

    B.410. mixed site hygiene

    +

    B.410:1 +Mixed site hygiene is a type of hygiene which resolves to the +MacroRulesDeclaration site for variables, labels, and the +$crate metavariable, and to the MacroInvocation site otherwise, +and is considered partially hygienic.

    +
    +
    +

    B.411. modifying operand

    +

    B.411:1 +A modifying operand is an operand that supplies the value that +is used in the calculation of a compound assignment expression.

    +

    B.411:2 +See ModifyingOperand.

    +
    +
    +

    B.412. module

    +

    B.412:1 +A module is a container for zero or more items.

    +

    B.412:2 +See ModuleDeclaration.

    +
    +
    +

    B.413. move type

    +

    B.413:1 +A move type is a type that implements the core::marker::Sized +trait and that is not a copy type.

    +
    +
    +

    B.414. multi segment path

    +

    B.414:1 +A multi segment path is a path consisting of more than one +path segment.

    +
    +
    +

    B.415. multiplication assignment

    +

    B.415:1 +For multiplication assignment, see +multiplication assignment expression.

    +
    +
    +

    B.416. multiplication assignment expression

    +

    B.416:1 +A multiplication assignment expression is a +compound assignment expression that uses multiplication.

    +

    B.416:2 +See MultiplicationAssignmentExpression.

    +
    +
    +

    B.417. multiplication expression

    +

    B.417:1 +A multiplication expression is an arithmetic expression that uses +multiplication.

    +

    B.417:2 +See MultiplicationExpression.

    +
    +
    +

    B.418. mutability

    +

    B.418:1 +Mutability determines whether a construct can modify a value.

    +
    +
    +

    B.419. mutable

    +

    B.419:1 +A value is mutable when it can be modified.

    +
    +
    +

    B.420. mutable assignee expression

    +

    B.420:1 +A mutable assignee expression is an assignee expression whose +value can be modified.

    +
    +
    +

    B.421. mutable binding

    +

    B.421:1 +A mutable binding is a binding whose value can be modified.

    +
    +
    +

    B.422. mutable borrow

    +

    B.422:1 +A mutable borrow is a mutable reference produced by borrowing.

    +
    +
    +

    B.423. mutable borrow expression

    +

    B.423:1 +A mutable borrow expression is a borrow expression that has +keyword mut.

    +
    +
    +

    B.424. mutable place expression

    +

    B.424:1 +A mutable place expression is a place expression whose memory +location can be modified.

    +
    +
    +

    B.425. mutable place expression context

    +

    B.425:1 +A mutable place expression context is a place expression context +that may evaluate its operand as a mutable memory location.

    +
    +
    +

    B.426. mutable raw pointer type

    +

    B.426:1 +A mutable raw pointer type is a raw pointer type subject to +keyword mut.

    +
    +
    +

    B.427. mutable reference

    +

    B.427:1 +A mutable reference is a value of a mutable reference type, and +allows the mutation of its referent.

    +
    +
    +

    B.428. mutable reference type

    +

    B.428:1 +A mutable reference type is a reference type subject to keyword +mut.

    +
    +
    +

    B.429. mutable static

    +

    B.429:1 +A mutable static is a static whose value can be modified.

    +
    +
    +

    B.430. mutable variable

    +

    B.430:1 +A mutable variable is a variable whose value can be modified.

    +
    +
    +

    B.431. name

    +

    B.431:1 +A name is an identifier that refers to an entity.

    +

    B.431:2 +See Name.

    +
    +
    +

    B.432. named block expression

    +

    B.432:1 +A named block expression is a block expression with a label.

    +
    +
    +

    B.433. named deconstructor

    +

    B.433:1 +A named deconstructor is a construct that matches the name of +a field.

    +

    B.433:2 +See NamedDeconstructor.

    +
    +
    +

    B.434. named field selector

    +

    B.434:1 +A named field selector is a field selector where the selected +field is indicated by an identifier.

    +

    B.434:2 +See NamedFieldSelector.

    +
    +
    +

    B.435. named initializer

    +

    B.435:1 +A named initializer is a construct that specifies the name and +initial value of a field in a struct expression.

    +

    B.435:2 +See NamedInitializer.

    +
    +
    +

    B.436. named loop expression

    +

    B.436:1 +A named loop expression is a loop expression with a label.

    +
    +
    +

    B.437. named register argument

    +

    B.437:1 +A named register argument is a register argument whose configuration +is bound to an identifier.

    +
    +
    +

    B.438. namespace

    +

    B.438:1 +A namespace is a logical grouping of names such that the +occurrence of a name in one namespace does not conflict with an +occurrence of the same name in another namespace.

    +
    +
    +

    B.439. NaN-boxing

    +

    B.439:1 +NaN-boxing is a technique for encoding values using the low order +bits of the mantissa of a 64-bit IEEE floating-point NaN.

    +
    +
    +

    B.440. negation expression

    +

    B.440:1 +A negation expression is an expression that negates its operand.

    +

    B.440:2 +See NegationExpression.

    +
    +
    +

    B.441. nesting import

    +

    B.441:1 +A nesting import is a use import that provides a common path +prefix for its nested use imports.

    +

    B.441:2 +See NestingImport.

    +
    +
    +

    B.442. never type

    +

    B.442:1 +The never type is a type that represents the result of a computation +that never completes.

    +

    B.442:2 +See NeverType.

    +
    +
    +

    B.443. non-reference pattern

    +

    B.443:1 +A non-reference pattern is any pattern except +non-binding patterns, path patterns, reference patterns, +and underscore patterns.

    +
    +
    +

    B.444. not configuration predicate

    +

    B.444:1 +A not configuration predicate is a configuration predicate that +negates the Boolean value of its nested configuration predicate.

    +

    B.444:2 +See ConfigurationPredicateNot.

    +
    +
    +

    B.445. not-equals expression

    +

    B.445:1 +A not-equals expression is a comparison expression that tests for +inequality.

    +

    B.445:2 +See NotEqualsExpression.

    +
    +
    +

    B.446. null

    +

    B.446:1 +A null value denotes the address 0.

    +
    +
    +

    B.447. numeric literal

    +

    B.447:1 +A numeric literal is a literal that denotes a number.

    +

    B.447:2 +See NumericLiteral.

    +
    +
    +

    B.448. numeric type

    +

    B.448:1 +A numeric type is a type whose values denote numbers.

    +
    +
    +

    B.449. object safe

    +

    B.449:1 +A trait is object safe when it can be used as a +trait object type.

    +
    +
    +

    B.450. object safety

    +

    B.450:1 +Object safety is the process of determining whether a trait can be +used as a trait object type.

    +
    +
    +

    B.451. obsolete range pattern

    +

    B.451:1 +An obsolete range pattern is a range pattern that uses obsolete +syntax to express an inclusive range pattern.

    +

    B.451:2 +See ObsoleteRangePattern.

    +
    +
    +

    B.452. octal literal

    +

    B.452:1 +An octal literal is an integer literal in base 8.

    +

    B.452:2 +See OctalLiteral.

    +
    +
    +

    B.453. operand

    +

    B.453:1 +An operand is an expression nested within an expression.

    +

    B.453:2 +See Operand.

    +
    +
    +

    B.454. operator expression

    +

    B.454:1 +An operator expression is an expression that involves an operator.

    +

    B.454:2 +See OperatorExpression.

    +
    +
    +

    B.455. opt-out trait bound

    +

    B.455:1 +An opt-out trait bound is a trait bound with Punctuation ? +that nullifies an implicitly added trait bound.

    +
    +
    +

    B.456. outer attribute

    +

    B.456:1 +An outer attribute is an attribute that applies to a subsequent +item.

    +

    B.456:2 +See OuterAttribute.

    +
    +
    +

    B.457. outer block doc

    +

    B.457:1 +An outer block doc is a block comment that applies to a subsequent +non-comment construct.

    +

    B.457:2 +See OuterBlockDoc.

    +
    +
    +

    B.458. outer doc comment

    +

    B.458:1 +An outer doc comment is either an outer block doc or an +outer line doc.

    +
    +
    +

    B.459. outer line doc

    +

    B.459:1 +An outer line doc is a line comment that applies to a subsequent +non-comment construct.

    +

    B.459:2 +See OuterLineDoc.

    +
    +
    +

    B.460. outline module

    +

    B.460:1 +An outline module is a module with an +OutlineModuleSpecification.

    +

    B.460:2 +See OutlineModuleSpecification.

    +
    +
    +

    B.461. outlives bound

    +

    B.461:1 +An outlives bound is a trait bound which requires that a +generic parameter outlives a lifetime parameter.

    +
    +
    +

    B.462. output register

    +

    B.462:1 +An output register is a register whose register name is +used in a register argument subject to direction modifier out, +lateout, inout, or inlateout.

    +
    +
    +

    B.463. output register expression

    +

    B.463:1 +An output register expression is an expression that is assigned the +value of a register.

    +

    B.463:2 +See OutputRegisterExpression.

    +
    +
    +

    B.464. overlap

    +

    B.464:1 +Two values overlap when their memory locations overlap, or both +values are elements of the same array.

    +
    +
    +

    B.465. owner

    +

    B.465:1 +An owner is a variable that holds a value.

    +
    +
    +

    B.466. ownership

    +

    B.466:1 +Ownership is a property of values that is central to the resource +management model of Rust.

    +
    +
    +

    B.467. panic

    +

    B.467:1 +A panic is an abnormal program state caused by invoking macro +core::panic.

    +
    +
    +

    B.468. parenthesized expression

    +

    B.468:1 +A parenthesized expression is an expression that groups other +expressions.

    +

    B.468:2 +See ParenthesizedExpression.

    +
    +
    +

    B.469. parenthesized pattern

    +

    B.469:1 +A parenthesized pattern is a pattern that controls the precedence of +its subpatterns.

    +

    B.469:2 +See ParenthesizedPattern.

    +
    +
    +

    B.470. parenthesized type

    +

    B.470:1 +A parenthesized type is a type that disambiguates the interpretation +of lexical elements.

    +

    B.470:2 +See ParenthesizedTypeSpecification.

    +
    +
    +

    B.471. partially hygienic

    +

    B.471:1 +An identifier is partially hygienic when it has +mixed site hygiene.

    +
    +
    +

    B.472. passing convention

    +

    B.472:1 +A passing convention is the mechanism that defines how a value is +transferred between places.

    +
    +
    +

    B.473. path

    +

    B.473:1 +A path is a sequence of path segments logically separated by +namespace qualifier :: that resolves to an entity.

    +
    +
    +

    B.474. path expression

    +

    B.474:1 +A path expression is a path that acts as an expression.

    +

    B.474:2 +See PathExpression.

    +
    +
    +

    B.475. path expression resolution

    +

    B.475:1 +Path expression resolution is a form of path resolution that applies +to a path expression.

    +
    +
    +

    B.476. path pattern

    +

    B.476:1 +A path pattern is a pattern that matches a constant, a +unit enum variant, or a unit struct constant indicated by a +path.

    +

    B.476:2 +See PathPattern.

    +
    +
    +

    B.477. path resolution

    +

    B.477:1 +Path resolution is a form of resolution that applies to a path.

    +
    +
    +

    B.478. path segment

    +

    B.478:1 +A path segment is a constituent of a path.

    +

    B.478:2 +See PathSegment, SimplePathSegment, TypePathSegment.

    +
    +
    +

    B.479. pattern

    +

    B.479:1 +A pattern is a construct that matches a value which satisfies +all the criteria of the pattern.

    +

    B.479:2 +See Pattern.

    +
    +
    +

    B.480. pattern matching

    +

    B.480:1 +Pattern matching is the process of matching a pattern against a +value.

    +
    +
    +

    B.481. pattern-without-alternation

    +

    B.481:1 +A pattern-without-alternation is a pattern that cannot be alternated.

    +

    B.481:2 +See PatternWithoutAlternation.

    +
    +
    +

    B.482. pattern-without-range

    +

    B.482:1 +A pattern-without-range is a pattern-without-alternation that +excludes range patterns.

    +

    B.482:2 +See PatternWithoutRange.

    +
    +
    +

    B.483. place

    +

    B.483:1 +A place is a location where a value resides.

    +
    +
    +

    B.484. place expression

    +

    B.484:1 +A place expression is an expression that represents a memory +location.

    +
    +
    +

    B.485. place expression context

    +

    B.485:1 +A place expression context is a construct that may evaluate its +operand as a memory location.

    +
    +
    +

    B.486. plane

    +

    B.486:1 +In Unicode, a plane is a continuous group of 65,536 +code points.

    +
    +
    +

    B.487. pointer

    +

    B.487:1 +A pointer is a value of a pointer type.

    +
    +
    +

    B.488. pointer type

    +

    B.488:1 +A pointer type is a type whose values indicate memory locations.

    +
    +
    +

    B.489. positional register argument

    +

    B.489:1 +A positional register argument is a register argument whose +configuration is not bound to an identifier.

    +
    +
    +

    B.490. precedence

    +

    B.490:1 +Precedence is the order by which expressions are evaluated in the +presence of other expressions.

    +
    +
    +

    B.491. prelude

    +

    B.491:1 +A prelude is a collection of entities that are +automatically brought in scope of every module in a crate.

    +
    +
    +

    B.492. prelude entity

    +

    B.492:1 +A prelude entity is an entity declared in a prelude.

    +
    +
    +

    B.493. prelude name

    +

    B.493:1 +A prelude name is a name of a prelude entity.

    +
    +
    +

    B.494. primitive representation

    +

    B.494:1 +Primitive representation is the type representation of +integer types.

    +
    +
    +

    B.495. private visibility

    +

    B.495:1 +Private visibility is a kind of visibility that allows a name +to be referred to only by the current module of the entity, and its +descendant modules.

    +
    +
    +

    B.496. proc-macro crate

    +

    B.496:1 +A proc-macro crate is a crate that contains procedural macros.

    +
    +
    +

    B.497. procedural macro

    +

    B.497:1 +A procedural macro is a macro that encapsulates syntactic +transformations in a function.

    +
    +
    +

    B.498. public visibility

    +

    B.498:1 +Public visibility is a kind of visibility that allows a name +to be referred to from arbitrary module M as long as the ancestor +modules of the related entity can be referred to from M.

    +
    +
    +

    B.499. punctuator

    +

    B.499:1 +A punctuator is a character or a sequence of characters in category +Punctuation.

    +
    +
    +

    B.500. pure identifier

    +

    B.500:1 +A pure identifier is an identifier that does not include +weak keywords.

    +
    +
    +

    B.501. qualified path expression

    +

    B.501:1 +A qualified path expression is a path expression that resolves +through a qualified type.

    +

    B.501:2 +See QualifiedPathExpression.

    +
    +
    +

    B.502. qualified type

    +

    B.502:1 +A qualified type is a type that is restricted to a set of +implementations that exhibit implementation conformance to a +qualifying trait.

    +

    B.502:2 +See QualifiedType.

    +
    +
    +

    B.503. qualified type path

    +

    B.503:1 +A qualified type path is a type path that resolves through a +qualified type.

    +

    B.503:2 +See QualifiedTypePath.

    +
    +
    +

    B.504. qualifying trait

    +

    B.504:1 +A qualifying trait is a trait that imposes a restriction on a +qualified type.

    +

    B.504:2 +See QualifyingTrait.

    +
    +
    +

    B.505. range expression

    +

    B.505:1 +A range expression is an expression that constructs a range.

    +

    B.505:2 +See RangeExpression.

    +
    +
    +

    B.506. range expression high bound

    +

    B.506:1 +A range expression high bound is an operand that specifies the end +of a range.

    +

    B.506:2 +See RangeExpressionHighBound.

    +
    +
    +

    B.507. range expression low bound

    +

    B.507:1 +A range expression low bound is an operand that specifies the start +of a range.

    +

    B.507:2 +See RangeExpressionLowBound.

    +
    +
    +

    B.508. range pattern

    +

    B.508:1 +A range pattern is a pattern that matches values which fall +within a range.

    +

    B.508:2 +See RangePattern.

    +
    +
    +

    B.509. range pattern bound

    +

    B.509:1 +A range pattern bound is a constraint on the range of a +range pattern.

    +

    B.509:2 +See RangePatternBound.

    +
    +
    +

    B.510. range pattern high bound

    +

    B.510:1 +A range pattern high bound is a range pattern bound that specifies +the end of a range.

    +

    B.510:2 +See RangePatternHighBound.

    +
    +
    +

    B.511. range pattern low bound

    +

    B.511:1 +A range pattern low bound is a range pattern bound that specifies +the start of a range.

    +

    B.511:2 +See RangePatternLowBound.

    +
    +
    +

    B.512. range-from expression

    +

    B.512:1 +A range-from expression is a range expression that specifies an +included range expression low bound.

    +

    B.512:2 +See RangeFromExpression.

    +
    +
    +

    B.513. range-from-to expression

    +

    B.513:1 +A range-from-to expression is a range expression that specifies an +included range expression low bound and an excluded +range expression high bound.

    +

    B.513:2 +See RangeFromToExpression.

    +
    +
    +

    B.514. range-full expression

    +

    B.514:1 +A range-full expression is a range expression that covers the whole +range of a type.

    +

    B.514:2 +See RangeFullExpression.

    +
    +
    +

    B.515. range-inclusive expression

    +

    B.515:1 +A range-inclusive expression is a range expression that specifies an +included range expression low bound and an included +range expression high bound.

    +

    B.515:2 +See RangeInclusiveExpression.

    +
    +
    +

    B.516. range-to expression

    +

    B.516:1 +A range-to expression is a range expression that specifies an +excluded range expression high bound.

    +

    B.516:2 +See RangeToExpression.

    +
    +
    +

    B.517. range-to-inclusive expression

    +

    B.517:1 +A range-to-inclusive expression is a range expression that specifies +an included range expression high bound.

    +

    B.517:2 +See RangeToInclusiveExpression.

    +
    +
    +

    B.518. raw byte string literal

    +

    B.518:1 +A raw byte string literal is a simple byte string literal that does +not recognize escaped characters.

    +

    B.518:2 +See RawByteStringLiteral.

    +
    +
    +

    B.519. raw pointer

    +

    B.519:1 +A raw pointer is a pointer of a raw pointer type.

    +
    +
    +

    B.520. raw pointer type

    +

    B.520:1 +A raw pointer type is an indirection type without safety and +liveness guarantees.

    +

    B.520:2 +See RawPointerTypeSpecification.

    +
    +
    +

    B.521. raw string literal

    +

    B.521:1 +A raw string literal is a simple string literal that does not +recognize escaped characters.

    +

    B.521:2 +See RawStringLiteral.

    +
    +
    +

    B.522. reachable control flow path

    +

    B.522:1 +A reachable control flow path is a control flow path that can be +taken by the execution of a program between two given points in the program.

    +
    +
    +

    B.523. receiver operand

    +

    B.523:1 +A receiver operand is an operand that denotes the value whose +method is being invoked by a method call expression.

    +

    B.523:2 +See ReceiverOperand.

    +
    +
    +

    B.524. receiver type

    +

    B.524:1 +A receiver type is the type of a receiver operand.

    +
    +
    +

    B.525. record enum variant

    +

    B.525:1 +A record enum variant is an enum variant with a +RecordStructFieldList.

    +
    +
    +

    B.526. record struct

    +

    B.526:1 +A record struct is a struct with a RecordStructFieldList.

    +

    B.526:2 +See RecordStructDeclaration.

    +
    +
    +

    B.527. record struct field

    +

    B.527:1 +A record struct field is a field of a record struct type.

    +

    B.527:2 +See RecordStructField.

    +
    +
    +

    B.528. record struct pattern

    +

    B.528:1 +A record struct pattern is a pattern that matches a +enum variant value, a struct value, or a union value.

    +

    B.528:2 +See RecordStructPattern.

    +
    +
    +

    B.529. record struct type

    +

    B.529:1 +A record struct type is the type of a record struct.

    +
    +
    +

    B.530. record struct value

    +

    B.530:1 +A record struct value is a value of a record struct type.

    +
    +
    +

    B.531. recursive type

    +

    B.531:1 +A recursive type is a type that may define other types within its +type specification.

    +
    +
    +

    B.532. reference

    +

    B.532:1 +A reference is a value of a reference type.

    +
    +
    +

    B.533. reference identifier pattern

    +

    B.533:1 +A reference identifier pattern is an identifier pattern with +keyword ref.

    +
    +
    +

    B.534. reference pattern

    +

    B.534:1 +A reference pattern is a pattern that dereferences a pointer +that is being matched.

    +

    B.534:2 +See ReferencePattern.

    +
    +
    +

    B.535. reference type

    +

    B.535:1 +A reference type is an indirection type with ownership.

    +

    B.535:2 +See ReferenceTypeSpecification.

    +
    +
    +

    B.536. referent

    +

    B.536:1 +A referent is the value pointed-to by a reference.

    +
    +
    +

    B.537. refutability

    +

    B.537:1 +Refutability is a property of patterns that expresses the ability +to match all possible values of a type.

    +
    +
    +

    B.538. refutable constant

    +

    B.538:1 +A refutable constant is a constant of a refutable type.

    +
    +
    +

    B.539. refutable pattern

    +

    B.539:1 +A refutable pattern is a pattern that has a possibility of not +matching the value it is being matched against.

    +
    +
    +

    B.540. refutable type

    +

    B.540:1 +A refutable type is a type that has more than one value.

    +
    +
    +

    B.541. register

    +

    B.541:1 +A register is a hardware component capable of holding data that can be +read and written.

    +
    +
    +

    B.542. register argument

    +

    B.542:1 +A register argument is a construct that configures the input +and output of a register, and optionally binds the configuration to an +identifier.

    +

    B.542:2 +See RegisterArgument.

    +
    +
    +

    B.543. register class

    +

    B.543:1 +A register class represents a set of registers.

    +
    +
    +

    B.544. register class argument

    +

    B.544:1 +A register class argument is a register argument that uses a +register class name.

    +
    +
    +

    B.545. register class name

    +

    B.545:1 +A register class name is a target-specific string that identifies a +register class.

    +

    B.545:2 +See RegisterClassName.

    +
    +
    +

    B.546. register expression

    +

    B.546:1 +A register expression is either an input-output register expression +or a simple register expression.

    +

    B.546:2 +See RegisterExpression.

    +
    +
    +

    B.547. register name

    +

    B.547:1 +A register name is either the explicit register name of a +register, or the register class name of the register class a +register belongs to.

    +

    B.547:2 +See RegisterName.

    +
    +
    +

    B.548. register parameter

    +

    B.548:1 +A register parameter is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +register argument in an assembly instruction.

    +
    +
    +

    B.549. register parameter modifier

    +

    B.549:1 +A register parameter modifier is a substring that starts with character +0x3A (colon), follows a register parameter, and changes the formatting of +the related register parameter.

    +
    +
    +

    B.550. remainder assignment

    +

    B.550:1 +For remainder assignment, see remainder assignment expression.

    +
    +
    +

    B.551. remainder assignment expression

    +

    B.551:1 +A remainder assignment expression is a +compound assignment expression that uses remainder division.

    +

    B.551:2 +See RemainderAssignmentExpression.

    +
    +
    +

    B.552. remainder expression

    +

    B.552:1 +A remainder expression is an arithmetic expression that uses +remainder division.

    +

    B.552:2 +See RemainderExpression.

    +
    +
    +

    B.553. renaming

    +

    B.553:1 +A renaming provides an alternative name for an existing name.

    +

    B.553:2 +See Renaming.

    +
    +
    +

    B.554. repeat operand

    +

    B.554:1 +A repeat operand is an operand that specifies the element being +repeated in an array repetition constructor.

    +

    B.554:2 +See RepeatOperand.

    +
    +
    +

    B.555. repetition operator

    +

    B.555:1 +A repetition operator is a construct that indicates the number +of times a macro repetition in matching or a +macro repetition in transcription can be repeated.

    +

    B.555:2 +See MacroRepetitionOperator.

    +
    +
    +

    B.556. representation

    +

    B.556:1 +See type representation.

    +
    +
    +

    B.557. representation modifier

    +

    B.557:1 +A representation modifier is a construct that modifies the +alignment of a type.

    +

    B.557:2 +See Alignment.

    +
    +
    +

    B.558. reserved keyword

    +

    B.558:1 +A reserved keyword is a keyword that is not yet in use.

    +

    B.558:2 +See ReservedKeyword.

    +
    +
    +

    B.559. resolution

    +

    B.559:1 +Resolution is the process of finding a unique interpretation for a +field access expression, a method call expression, or a path.

    +
    +
    +

    B.560. rest pattern

    +

    B.560:1 +A rest pattern is a pattern that matches zero or more elements that +have not already been matched.

    +

    B.560:2 +See RestPattern.

    +
    +
    +

    B.561. return expression

    +

    B.561:1 +A return expression is an expression that optionally yields a +value and causes control flow to return to the caller.

    +

    B.561:2 +See ReturnExpression.

    +
    +
    +

    B.562. return type

    +

    B.562:1 +A return type is the type of the result a function returns.

    +

    B.562:2 +See ReturnType.

    +
    +
    +

    B.563. right operand

    +

    B.563:1 +A right operand is an operand that appears on the right-hand side of +a binary operator.

    +

    B.563:2 +See RightOperand.

    +
    +
    +

    B.564. rule matching

    +

    B.564:1 +Rule matching is the process of consuming a TokenTree in an attempt +to fully satisfy the macro matcher of a macro rule that belongs to a +resolved declarative macro.

    +
    +
    +

    B.565. rustc

    +

    B.565:1 +Rust-c (or rustc) is a compiler that implements the Ferrocene Language +Specification.

    +
    +
    +

    B.566. safety invariant

    +

    B.566:1 +A safety invariant is an invariant that when violated may result in +undefined behavior.

    +
    +
    +

    B.567. scalar type

    +

    B.567:1 +A scalar type is either a bool type, a char type, or +a numeric type.

    +
    +
    +

    B.568. scope

    +

    B.568:1 +A scope is a region of program text where a name can be referred to.

    +
    +
    +

    B.569. scope hierarchy

    +

    B.569:1 +The scope hierarchy reflects the nesting of scopes as introduced +by scoping constructs.

    +
    +
    +

    B.570. selected field

    +

    B.570:1 +A selected field is a field that is selected by a +field access expression.

    +
    +
    +

    B.571. Self

    +

    B.571:1 +Self is either an implicit type parameter in traits or an +implicit type alias in implementations. Self refers to the +type that implements a trait.

    +
    +
    +

    B.572. self parameter

    +

    B.572:1 +A self parameter is a function parameter expressed by keyword +self.

    +
    +
    +

    B.573. self public modifier

    +

    B.573:1 +A self public modifier is a visibility modifier that grants a +name private visibility.

    +

    B.573:2 +See SelfPublicModifier.

    +
    +
    +

    B.574. Self scope

    +

    B.574:1 +A Self scope is a scope for Self.

    +
    +
    +

    B.575. send type

    +

    B.575:1 +A send type is a type that implements the core::marker::Send +trait.

    +
    +
    +

    B.576. separator

    +

    B.576:1 +A separator is a character or a string that separates adjacent +lexical elements.

    +
    +
    +

    B.577. sequence type

    +

    B.577:1 +A sequence type represents a sequence of elements.

    +
    +
    +

    B.578. shadowing

    +

    B.578:1 +Shadowing is a property of names. A name is said to be +shadowed when another name with the same characters is introduced +in the same scope within the same namespace, effectively hiding it.

    +
    +
    +

    B.579. shared borrow

    +

    B.579:1 +A shared borrow is a borrow produced by evaluating an +immutable borrow expression.

    +
    +
    +

    B.580. shared reference

    +

    B.580:1 +A shared reference is a value of a shared reference type.

    +
    +
    +

    B.581. shared reference type

    +

    B.581:1 +A shared reference type is a reference type not subject to +keyword mut.

    +
    +
    +

    B.582. shift left assignment

    +

    B.582:1 +For shift left assignment, see shift left assignment expression.

    +
    +
    +

    B.583. shift left assignment expression

    +

    B.583:1 +A shift left assignment expression is a +compound assignment expression that uses bit shift left arithmetic.

    +

    B.583:2 +See ShiftLeftAssignmentExpression.

    +
    +
    +

    B.584. shift left expression

    +

    B.584:1 +A shift left expression is a bit expression that uses bit shift left +arithmetic.

    +

    B.584:2 +See ShiftLeftExpression.

    +
    +
    +

    B.585. shift right assignment

    +

    B.585:1 +For shift right assignment, see shift right assignment expression.

    +
    +
    +

    B.586. shift right assignment expression

    +

    B.586:1 +A shift right assignment expression is a +compound assignment expression that uses bit shift right arithmetic.

    +

    B.586:2 +See ShiftRightAssignmentExpression.

    +
    +
    +

    B.587. shift right expression

    +

    B.587:1 +A shift right expression is a bit expression that uses bit shift +right arithmetic.

    +

    B.587:2 +See ShiftRightExpression.

    +
    +
    +

    B.588. shorthand deconstructor

    +

    B.588:1 +A shorthand deconstructor is a construct that matches the name +of a field and binds the value of the matched field to a +binding.

    +

    B.588:2 +See ShorthandDeconstructor.

    +
    +
    +

    B.589. shorthand initializer

    +

    B.589:1 +A shorthand initializer is a construct that specifies the name +of a field in a struct expression.

    +

    B.589:2 +See ShorthandInitializer.

    +
    +
    +

    B.590. signed integer type

    +

    B.590:1 +A signed integer type is an integer type whose values denote +negative whole numbers, zero, and positive whole numbers.

    +
    +
    +

    B.591. simple byte string literal

    +

    B.591:1 +A simple byte string literal is a byte string literal that consists +of multiple AsciiCharacters.

    +

    B.591:2 +See SimpleByteStringLiteral.

    +
    +
    +

    B.592. simple import

    +

    B.592:1 +A simple import is a use import that binds a simple path to a +local name by using an optional renaming.

    +

    B.592:2 +See SimpleImport.

    +
    +
    +

    B.593. simple path

    +

    B.593:1 +A simple path is a path whose path segments consist of either +identifiers or certain keywords.

    +

    B.593:2 +See SimplePath.

    +
    +
    +

    B.594. simple path prefix

    +

    B.594:1 +A simple path prefix is the leading simple path of a +glob import or a nesting import.

    +

    B.594:2 +See SimplePathPrefix.

    +
    +
    +

    B.595. simple path public modifier

    +

    B.595:1 +A simple path public modifier is a visibility modifier that grants a +name public visibility within the provided simple path only.

    +

    B.595:2 +See SimplePathPublicModifier.

    +
    +
    +

    B.596. simple path resolution

    +

    B.596:1 +Simple path resolution is a kind of path resolution that applies to +a simple path.

    +
    +
    +

    B.597. simple public modifier

    +

    B.597:1 +A simple public modifier is a visibility modifier that grants a +name public visibility.

    +

    B.597:2 +See SelfPublicModifier.

    +
    +
    +

    B.598. simple register expression

    +

    B.598:1 +A simple register expression is either an expression or an +underscore expression.

    +

    B.598:2 +See SimpleRegisterExpression.

    +
    +
    +

    B.599. simple string literal

    +

    B.599:1 +A simple string literal is a string literal where the characters are +Unicode characters.

    +

    B.599:2 +See SimpleStringLiteral.

    +
    +
    +

    B.600. single segment path

    +

    B.600:1 +A single segment path is a path consisting of exactly one +path segment.

    +
    +
    +

    B.601. size

    +

    B.601:1 +The size of a value is the offset in bytes between successive +elements in an array type with the same element type, including any +padding for alignment.

    +
    +
    +

    B.602. size operand

    +

    B.602:1 +A size operand is an operand that specifies the size of an +array or an array type.

    +

    B.602:2 +See SizeOperand.

    +
    +
    +

    B.603. sized type

    +

    B.603:1 +A sized type is a type with statically known size.

    +
    +
    +

    B.604. slice

    +

    B.604:1 +A slice is a value of a slice type.

    +
    +
    +

    B.605. slice pattern

    +

    B.605:1 +A slice pattern is a pattern that matches arrays of fixed +size and slices of dynamic size.

    +

    B.605:2 +See SlicePattern.

    +
    +
    +

    B.606. slice type

    +

    B.606:1 +A slice type is a sequence type that provides a view into a sequence +of elements.

    +

    B.606:2 +See SliceTypeSpecification.

    +
    +
    +

    B.607. source file

    +

    B.607:1 +A source file contains the program text of inner attributes, +inner doc comments, and items.

    +

    B.607:2 +See SourceFile.

    +
    +
    +

    B.608. statement

    +

    B.608:1 +A statement is a component of a block expression.

    +

    B.608:2 +See Statement.

    +
    +
    +

    B.609. static

    +

    B.609:1 +A static is a value that is associated with a specific memory +location.

    +

    B.609:2 +See StaticDeclaration.

    +
    +
    +

    B.610. static initializer

    +

    B.610:1 +A static initializer is a construct that provides the value of +its related static.

    +

    B.610:2 +See StaticInitializer.

    +
    +
    +

    B.611. static lifetime elision

    +

    B.611:1 +Static lifetime elision is a form of lifetime elision that applies +to constants and statics.

    +
    +
    +

    B.612. str

    +

    B.612:1 +str is a sequence type that represents a slice of 8-bit +unsigned bytes.

    +
    +
    +

    B.613. strict keyword

    +

    B.613:1 +A strict keyword is a keyword that always holds its special meaning.

    +

    B.613:2 +See StrictKeyword.

    +
    +
    +

    B.614. string literal

    +

    B.614:1 +A string literal is a literal that consists of multiple characters.

    +

    B.614:2 +See StringLiteral.

    +
    +
    +

    B.615. struct

    +

    B.615:1 +A struct is an item that declares a struct type.

    +
    +
    +

    B.616. struct expression

    +

    B.616:1 +A struct expression is an expression that constructs an +enum value, a struct value, or a union value.

    +

    B.616:2 +See StructExpression.

    +
    +
    +

    B.617. struct field

    +

    B.617:1 +A struct field is a field of a struct type.

    +
    +
    +

    B.618. struct pattern

    +

    B.618:1 +A struct pattern is a pattern that matches an enum value, a +struct value, or a union value.

    +

    B.618:2 +See StructPattern.

    +
    +
    +

    B.619. struct type

    +

    B.619:1 +A struct type is an abstract data type that is a product of other +types.

    +

    B.619:2 +See StructDeclaration.

    +
    +
    +

    B.620. struct value

    +

    B.620:1 +A struct value is a value of a struct type.

    +
    +
    +

    B.621. structurally equal

    +

    B.621:1 +A type is structurally equal when its values can be compared +for equality by structure.

    +
    +
    +

    B.622. subexpression

    +

    B.622:1 +A subexpression is an expression nested within another +expression.

    +
    +
    +

    B.623. subject expression

    +

    B.623:1 +A subject expression is an expression that controls +for loops, if expressions, and match expressions.

    +

    B.623:2 +See SubjectExpression.

    +
    +
    +

    B.624. subject let expression

    +

    B.624:1 +A subject let expression is an expression that controls +if let expressions and while let loops.

    +

    B.624:2 +See SubjectLetExpression.

    +
    +
    +

    B.625. subpattern

    +

    B.625:1 +A subpattern is a pattern nested within another pattern.

    +
    +
    +

    B.626. subtraction assignment

    +

    B.626:1 +For subtraction assignment, see subtraction assignment.

    +
    +
    +

    B.627. subtraction assignment expression

    +

    B.627:1 +A subtraction assignment expression is a +compound assignment expression that uses subtraction.

    +

    B.627:2 +See SubtractionAssignmentExpression.

    +
    +
    +

    B.628. subtraction expression

    +

    B.628:1 +A subtraction expression is an arithmetic expression that uses +subtraction.

    +

    B.628:2 +See SubtractionExpression.

    +
    +
    +

    B.629. subtrait

    +

    B.629:1 +A subtrait is a trait with a supertrait.

    +
    +
    +

    B.630. subtype

    +

    B.630:1 +A subtype is a type with additional constraints.

    +
    +
    +

    B.631. subtyping

    +

    B.631:1 +Subtyping is a property of types, allowing one type to be +used where another type is expected.

    +
    +
    +

    B.632. suffixed float

    +

    B.632:1 +A suffixed float is a float literal with a float suffix.

    +
    +
    +

    B.633. suffixed integer

    +

    B.633:1 +A suffixed integer is an integer literal with an integer suffix.

    +
    +
    +

    B.634. super public modifier

    +

    B.634:1 +A super public modifier is a visibility modifier that grants a +name public visibility within the parent module only.

    +

    B.634:2 +See SuperPublicModifier.

    +
    +
    +

    B.635. supertrait

    +

    B.635:1 +A supertrait is a transitive trait that a type must +additionally implement.

    +
    +
    +

    B.636. sync type

    +

    B.636:1 +A sync type is a type that implements the core::marker::Sync +trait.

    +
    +
    +

    B.637. syntactic category

    +

    B.637:1 +A syntactic category is a nonterminal in the Backus-Naur Form grammar +definition of the Rust programming language.

    +
    +
    +

    B.638. tail expression

    +

    B.638:1 +A tail expression is the last expression within a +block expression.

    +
    +
    +

    B.639. temporary

    +

    B.639:1 +A temporary is an anonymous variable produced by some intermediate +computation.

    +
    +
    +

    B.640. terminated

    +

    B.640:1 +A loop expression is terminated when its block expression is no +longer evaluated.

    +
    +
    +

    B.641. terminated macro invocation

    +

    B.641:1 +A terminated macro invocation is a macro invocation that may be used +as a statement.

    +

    B.641:2 +See TerminatedMacroInvocation.

    +
    +
    +

    B.642. textual macro scope

    +

    B.642:1 +A textual macro scope is a scope for declarative macros.

    +
    +
    +

    B.643. textual type

    +

    B.643:1 +A textual type is a type class that includes type char and type +str.

    +
    +
    +

    B.644. thin pointer

    +

    B.644:1 +A thin pointer is a value of a thin pointer type.

    +
    +
    +

    B.645. thin pointer type

    +

    B.645:1 +A thin pointer type is an indirection type that refers to a +fixed sized type.

    +
    +
    +

    B.646. token matching

    +

    B.646:1 +Token matching is the process of consuming a TokenTree in an attempt +to fully satisfy a macro match of a selected macro matcher that +belongs to a resolved declarative macro.

    +
    +
    +

    B.647. tokens

    +

    B.647:1 +Tokens are a subset of lexical elements consumed by +macros.

    +
    +
    +

    B.648. trait

    +

    B.648:1 +A trait is an item that describes an interface a type can +implement.

    +

    B.648:2 +See TraitDeclaration.

    +
    +
    +

    B.649. trait body

    +

    B.649:1 +A trait body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of a trait.

    +

    B.649:2 +See TraitBody.

    +
    +
    +

    B.650. trait bound

    +

    B.650:1 +A trait bound is a bound that imposes a constraint on the +traits of generic parameters.

    +

    B.650:2 +See TraitBound.

    +
    +
    +

    B.651. trait implementation

    +

    B.651:1 +A trait implementation is an implementation that adds functionality +specified by a trait.

    +

    B.651:2 +See TraitImplementation.

    +
    +
    +

    B.652. trait object lifetime elision

    +

    B.652:1 +Trait object lifetime elision is a form of lifetime elision that +applies to trait object types.

    +
    +
    +

    B.653. trait object type

    +

    B.653:1 +A trait object type is a type that implements a trait, where +the type is not known at compile time.

    +

    B.653:2 +See TraitObjectTypeSpecification, +TraitObjectTypeSpecificationOneBound.

    +
    +
    +

    B.654. trait type

    +

    B.654:1 +A trait type is either an impl trait type or a +trait object type.

    +
    +
    +

    B.655. transparent representation

    +

    B.655:1 +Transparent representation is a type representation that applies +only to an enum type with a single enum variant or a struct type +where the struct type or enum variant has a single field of +non-zero size and any number of fields of size zero and +alignment one.

    +
    +
    +

    B.656. trivial predicate

    +

    B.656:1 +A trivial predicate is a where clause predicate that does not use +the generic parameters or higher-ranked lifetimes of the related +construct.

    +
    +
    +

    B.657. tuple

    +

    B.657:1 +A tuple is a value of a tuple type.

    +
    +
    +

    B.658. tuple enum variant

    +

    B.658:1 +A tuple enum variant is an enum variant with a +TupleStructFieldList.

    +
    +
    +

    B.659. tuple enum variant value

    +

    B.659:1 +A tuple enum variant value is a value of a tuple enum variant.

    +
    +
    +

    B.660. tuple expression

    +

    B.660:1 +A tuple expression is an expression that constructs a tuple.

    +

    B.660:2 +See TupleExpression.

    +
    +
    +

    B.661. tuple field

    +

    B.661:1 +A tuple field is a field of a tuple type.

    +
    +
    +

    B.662. tuple initializer

    +

    B.662:1 +A tuple initializer is an operand that provides the value of a +tuple field in a tuple expression.

    +
    +
    +

    B.663. tuple pattern

    +

    B.663:1 +A tuple pattern is a pattern that matches a tuple which +satisfies all criteria defined by its subpatterns.

    +

    B.663:2 +See TuplePattern.

    +
    +
    +

    B.664. tuple struct

    +

    B.664:1 +A tuple struct is a struct with a TupleStructFieldList.

    +

    B.664:2 +See TupleStructDeclaration.

    +
    +
    +

    B.665. tuple struct call expression

    +

    B.665:1 +A tuple struct call expression is a call expression where the +call operand resolves to a tuple struct.

    +
    +
    +

    B.666. tuple struct field

    +

    B.666:1 +A tuple struct field is a field of a tuple struct type.

    +

    B.666:2 +See TupleStructField.

    +
    +
    +

    B.667. tuple struct pattern

    +

    B.667:1 +A tuple struct pattern is a pattern that matches a +tuple enum variant value or a tuple struct value.

    +

    B.667:2 +See TupleStructPattern.

    +
    +
    +

    B.668. tuple struct type

    +

    B.668:1 +A tuple struct type is the type of a tuple struct.

    +
    +
    +

    B.669. tuple struct value

    +

    B.669:1 +A tuple struct value is a value of a tuple struct type.

    +
    +
    +

    B.670. tuple type

    +

    B.670:1 +A tuple type is a sequence type that represents a heterogeneous list +of other types.

    +

    B.670:2 +See TupleTypeSpecification.

    +
    +
    +

    B.671. type

    +

    B.671:1 +A type defines a set of values and a set of operations that act on +those values.

    +
    +
    +

    B.672. type alias

    +

    B.672:1 +A type alias is an item that defines a name for a type.

    +

    B.672:2 +See TypeAliasDeclaration.

    +
    +
    +

    B.673. type argument

    +

    B.673:1 +A type argument is a generic argument that supplies the value +of a type parameter.

    +

    B.673:2 +See TypeArgument.

    +
    +
    +

    B.674. type ascription

    +

    B.674:1 +A type ascription specifies the type of a construct.

    +

    B.674:2 +See TypeAscription.

    +
    +
    +

    B.675. type bound predicate

    +

    B.675:1 +A type bound predicate is a construct that specifies +lifetime bounds and trait bounds on a type.

    +

    B.675:2 +See TypeBoundPredicate.

    +
    +
    +

    B.676. type cast expression

    +

    B.676:1 +A type cast expression is an expression that changes the type +of an operand.

    +

    B.676:2 +See TypeCastExpression.

    +
    +
    +

    B.677. type coercion

    +

    B.677:1 +Type coercion is an implicit operation that changes the type of +a value.

    +
    +
    +

    B.678. type inference

    +

    B.678:1 +Type inference is the process of deducing the expected type of an +arbitrary value.

    +
    +
    +

    B.679. type inference root

    +

    B.679:1 +A type inference root is a construct whose inner expressions +and patterns are subject to type inference independently of other +type inference roots.

    +
    +
    +

    B.680. type parameter

    +

    B.680:1 +A type parameter is a generic parameter for a type.

    +

    B.680:2 +See TypeParameter.

    +
    +
    +

    B.681. type parameter initializer

    +

    B.681:1 +A type parameter initializer is a construct that provides the +default value of its related type parameter.

    +

    B.681:2 +See TypeParameterInitializer.

    +
    +
    +

    B.682. type parameter type

    +

    B.682:1 +A type parameter type is a placeholder type of a type parameter +to be substituted by generic substitution.

    +
    +
    +

    B.683. type path

    +

    B.683:1 +A type path is a path that acts as a type specification.

    +

    B.683:2 +See TypePath.

    +
    +
    +

    B.684. type path resolution

    +

    B.684:1 +Type path resolution is a form of path resolution that applies to +a type path.

    +
    +
    +

    B.685. type representation

    +

    B.685:1 +Type representation specifies the layout of fields of +abstract data types.

    +
    +
    +

    B.686. type specification

    +

    B.686:1 +A type specification describes the structure of a type.

    +

    B.686:2 +See TypeSpecification.

    +
    +
    +

    B.687. type unification

    +

    B.687:1 +Type unification is the process by which type inference propagates +known types across the type inference root and assigns concrete +types to type variables, as well as a general mechanism to check +for compatibility between two types during method resolution.

    +
    +
    +

    B.688. type variable

    +

    B.688:1 +A type variable is a placeholder used during type inference to stand +in for an undetermined type of an expression or a pattern.

    +
    +
    +

    B.689. u8

    +

    B.689:1 +u8 is an unsigned integer type whose values range from 0 to +28 - 1, all inclusive.

    +
    +
    +

    B.690. u16

    +

    B.690:1 +u16 is an unsigned integer type whose values range from 0 to +216 - 1, all inclusive.

    +
    +
    +

    B.691. u32

    +

    B.691:1 +u32 is an unsigned integer type whose values range from 0 to +232 - 1, all inclusive.

    +
    +
    +

    B.692. u64

    +

    B.692:1 +u64 is an unsigned integer type whose values range from 0 to +264 - 1, all inclusive.

    +
    +
    +

    B.693. u128

    +

    B.693:1 +u128 is an unsigned integer type whose values range from 0 to +2128 - 1, all inclusive.

    +
    +
    +

    B.694. unary operator

    +

    B.694:1 +A unary operator operates on one operand.

    +
    +
    +

    B.695. undefined behavior

    +

    B.695:1 +Undefined behavior is a situation that results in an unbounded error.

    +
    +
    +

    B.696. under resolution

    +

    B.696:1 +A construct that is being resolved is said to be under resolution.

    +
    +
    +

    B.697. underscore expression

    +

    B.697:1 +An underscore expression is an expression that acts as a placeholder +in a destructuring assignment.

    +

    B.697:2 +See UnderscoreExpression.

    +
    +
    +

    B.698. underscore pattern

    +

    B.698:1 +An underscore pattern is a pattern that matches any single +value.

    +

    B.698:2 +See UnderscorePattern.

    +
    +
    +

    B.699. unhygienic

    +

    B.699:1 +An identifier is unhygienic when it has call site hygiene.

    +
    +
    +

    B.700. Unicode

    +

    B.700:1 +Unicode is the colloquial name for the ISO/IEC 10646:2017 Universal Coded +Character Set standard.

    +
    +
    +

    B.701. unifiable

    +

    B.701:1 +For unifiable, see unify.

    +
    +
    +

    B.702. unifiable types

    +

    B.702:1 +Two types that unify are said to be unifiable types.

    +
    +
    +

    B.703. unified type

    +

    B.703:1 +A unified type is a type produced by type unification.

    +
    +
    +

    B.704. unify

    +

    B.704:1 +A type is said to unify with another type when the domains, ranges, +and structures of both types are compatible.

    +
    +
    +

    B.705. union

    +

    B.705:1 +A union is an item that declares a union type.

    +
    +
    +

    B.706. union field

    +

    B.706:1 +A union field is a field of a union type.

    +
    +
    +

    B.707. union type

    +

    B.707:1 +A union type is an abstract data type similar to a C-like union.

    +

    B.707:2 +See UnionDeclaration.

    +
    +
    +

    B.708. union value

    +

    B.708:1 +A union value is a value of a union type.

    +
    +
    +

    B.709. unique immutable reference

    +

    B.709:1 +A unique immutable reference is an immutable reference produced by +capturing what is asserted to be the only live reference to a +value while the reference exists.

    +
    +
    +

    B.710. unit enum variant

    +

    B.710:1 +A unit enum variant is an enum variant without a field list.

    +
    +
    +

    B.711. unit struct

    +

    B.711:1 +A unit struct is a struct without a field list.

    +

    B.711:2 +See UnitStructDeclaration.

    +
    +
    +

    B.712. unit struct constant

    +

    B.712:1: +A unit struct constant is a constant implicitly created by a +unit struct.

    +
    +
    +

    B.713. unit struct type

    +

    B.713:1 +A unit struct type is the type of a unit struct.

    +
    +
    +

    B.714. unit struct value

    +

    B.714:1 +A unit struct value is a value of a unit struct type.

    +
    +
    +

    B.715. unit tuple

    +

    B.715:1 +A unit tuple is a value of the unit type.

    +
    +
    +

    B.716. unit type

    +

    B.716:1 +The unit type is a tuple type of zero arity.

    +
    +
    +

    B.717. unit value

    +

    B.717:1 +The unit value is the value of a unit type.

    +
    +
    +

    B.718. unnamed constant

    +

    B.718:1 +An unnamed constant is a constant declared with character 0x5F (low +line).

    +
    +
    +

    B.719. unnamed lifetime

    +

    B.719:1 +An unnamed lifetime is a lifetime declared with character 0x5F (low +line).

    +
    +
    +

    B.720. unqualified path expression

    +

    B.720:1 +An unqualified path expression is a path expression without a qualified type.

    +
    +
    +

    B.721. unsafe block

    +

    B.721:1 +For unsafe block, see unsafe block expression.

    +
    +
    +

    B.722. unsafe block expression

    +

    B.722:1 +An unsafe block expression is a block expression that is specified +with keyword unsafe.

    +

    B.722:2 +See UnsafeBlockExpression.

    +
    +
    +

    B.723. unsafe context

    +

    B.723:1 +An unsafe context is either an unsafe block or an +unsafe function.

    +
    +
    +

    B.724. unsafe function

    +

    B.724:1 +An unsafe function is a function subject to keyword unsafe.

    +
    +
    +

    B.725. unsafe function item type

    +

    B.725:1 +An unsafe function item type is a function item type where the +related function is an unsafe function.

    +
    +
    +

    B.726. unsafe function pointer type

    +

    B.726:1 +An unsafe function pointer type is a function pointer type subject to +keyword unsafe.

    +
    +
    +

    B.727. unsafe operation

    +

    B.727:1 +An unsafe operation is an operation that may result in +undefined behavior that is not diagnosed as a static error. +Unsafe operations are referred to as unsafe Rust.

    +
    +
    +

    B.728. unsafe Rust

    +

    B.728:1 +For unsafe Rust, see unsafe operations.

    +
    +
    +

    B.729. unsafe trait

    +

    B.729:1 +An unsafe trait is a trait subject to keyword unsafe

    +
    +
    +

    B.730. unsafe trait implementation

    +

    B.730:1 +An unsafe trait implementation is a trait implementation subject to +keyword unsafe.

    +
    +
    +

    B.731. unsafety

    +

    B.731:1 +Unsafety is the presence of unsafe operations in program text.

    +
    +
    +

    B.732. unsigned integer type

    +

    B.732:1 +An unsigned integer type is an integer type whose values +denote zero and positive whole numbers.

    +
    +
    +

    B.733. unsized coercion

    +

    B.733:1 +An unsized coercion is a type coercion that converts a +sized type into an unsized type.

    +
    +
    +

    B.734. unsized type

    +

    B.734:1 +An unsized type is a type with statically unknown size.

    +
    +
    +

    B.735. unsuffixed float

    +

    B.735:1 +An unsuffixed float is a float literal without a float suffix.

    +
    +
    +

    B.736. unsuffixed integer

    +

    B.736:1 +An unsuffixed integer is an integer literal without an +integer suffix.

    +
    +
    +

    B.737. use import

    +

    B.737:1 +A use import brings entities in scope within the +block expression of an expression-with-block or module where the +use import resides.

    +

    B.737:2 +See UseImport.

    +
    +
    +

    B.738. usize

    +

    B.738:1 +usize is an unsigned integer type with the same number of bits as +the platform’s pointer type, and is at least 16-bits wide.

    +
    +
    +

    B.739. validity invariant

    +

    B.739:1 +A validity invariant is an invariant that when violated results in +immediate undefined behavior.

    +
    +
    +

    B.740. value

    +

    B.740:1 +A value is either a literal or the result of a computation, that may +be stored in a memory location, and interpreted based on some type.

    +
    +
    +

    B.741. value expression

    +

    B.741:1 +A value expression is an expression that represents a value.

    +
    +
    +

    B.742. value expression context

    +

    B.742:1 +A value expression context is an expression context that is not a +place expression context.

    +
    +
    +

    B.743. value operand

    +

    B.743:1 +A value operand is an operand that supplies the value that is +assigned to an assignee operand by an assignment expression.

    +

    B.743:2 +See ValueOperand.

    +
    +
    +

    B.744. variable

    +

    B.744:1 +A variable is a placeholder for a value that is allocated on the +stack.

    +
    +
    +

    B.745. variadic part

    +

    B.745:1 +A variadic part indicates the presence of C-like optional +parameters.

    +

    B.745:2 +See VariadicPart.

    +
    +
    +

    B.746. variance

    +

    B.746:1 +Variance is a property of lifetime parameters and +type parameters that describes the circumstances under which a +generic type is a subtype of an instantiation of itself with +different generic arguments.

    +
    +
    +

    B.747. visibility

    +

    B.747:1 +Visibility is a property of fields and items that determines +which modules can refer to the name of the field or item.

    +
    +
    +

    B.748. visibility modifier

    +

    B.748:1 +A visibility modifier sets the visibility of the name of an +item.

    +
    +
    +

    B.749. weak keyword

    +

    B.749:1 +A weak keyword is a keyword whose special meaning depends on the +context.

    +

    B.749:2 +See WeakKeyword.

    +
    +
    +

    B.750. where clause

    +

    B.750:1 +A where clause is a construct that specifies bounds on +lifetime parameters and type parameters.

    +

    B.750:2 +See WhereClause.

    +
    +
    +

    B.751. where clause predicate

    +

    B.751:1 +A where clause predicate is either a lifetime bound predicate or a +type bound predicate.

    +

    B.751:2 +See WhereClausePredicate.

    +
    +
    +

    B.752. while let loop

    +

    B.752:1 +For while let loop, see while let loop expression.

    +
    +
    +

    B.753. while let loop expression

    +

    B.753:1 +A while let loop expression is a loop expression that continues to +evaluate its loop body as long as its subject let expression yields a +value that can be matched against its pattern.

    +

    B.753:2 +See WhileLetLoopExpression.

    +
    +
    +

    B.754. while loop

    +

    B.754:1 +For while loop, see while loop expression.

    +
    +
    +

    B.755. while loop expression

    +

    B.755:1 +A while loop expression is a loop expression that continues to +evaluate its loop body as long as its iteration expression holds +true.

    +

    B.755:2 +See WhileLoopExpression.

    +
    +
    +

    B.756. whitespace string

    +

    B.756:1 +A whitespace string is a string that consists of one or more +whitespace characters.

    +
    +
    +

    B.757. zero-sized type

    +

    B.757:1 +A zero-sized type is a fixed sized type with size zero.

    +
    +
    +

    B.758. zero-variant enum type

    +

    B.758:1 +A zero-variant enum type is an enum type without any +enum variants.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/implementations.html b/implementations.html new file mode 100644 index 00000000..b3cb8e3a --- /dev/null +++ b/implementations.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + 11. Implementations — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    11. Implementations

    +

    Syntax

    +
    Implementation ::=
    +    InherentImplementation
    +  | TraitImplementation
    +
    +InherentImplementation ::=
    +    impl GenericParameterList? ImplementingType WhereClause? ImplementationBody
    +
    +TraitImplementation ::=
    +    unsafe? impl GenericParameterList? !? ImplementedTrait for ImplementingType WhereClause? ImplementationBody
    +
    +ImplementingType ::=
    +    TypeSpecification
    +
    +ImplementedTrait ::=
    +    TypePath
    +
    +ImplementationBody ::=
    +    {
    +      InnerAttributeOrDoc*
    +      AssociatedItem*
    +    }
    +

    Legality Rules

    +

    11:1 +An implementation is an item that supplements an +implementing type by extending its functionality.

    +

    11:2 +An implementing type is the type that the associated items of +an implementation are associated with.

    +

    11:3 +Within an implementation, the type Self acts as a type alias +for the implementing type.

    +

    11:4 +An implementation body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of an implementation.

    +

    11:5 +An inherent implementation is an implementation that adds direct +functionality.

    +

    11:6 +Inherent implementations of the same implementing type shall be +defined within the same crate.

    +

    11:7 +A trait implementation is an implementation that adds functionality +specified by a trait.

    +

    11:8 +An unsafe trait implementation is a trait implementation subject to +keyword unsafe.

    +

    11:9 +An implemented trait is a trait whose functionality has been +implemented by an implementing type.

    +

    11:10 +The type path of a trait implementation shall resolve to a trait.

    +

    11:11 +A trait implementation shall be an unsafe trait implementation if and +only if it implements an unsafe trait.

    +

    11:12 +Trait implementations are subject to implementation coherence and +implementation conformance.

    +

    11:13 +Inherent implementations of the same implementing type shall not +define more than one associated item with the same name in the same +namespace.

    +

    Examples

    +
    trait Shape {
    +    fn area(self) -> f64;
    +}
    +
    +
    +

    11:14 +Circle is an implementing type.

    +
    struct Circle {
    +    radius: f64
    +}
    +
    +
    +

    11:15 +The following is an inherent implementation:

    +
    impl Circle {
    +    fn set_radius(mut self, new_radius: f64) {
    +        self.radius = new_radius;
    +    }
    +}
    +
    +
    +

    11:16 +The following is a trait implementation:

    +
    impl Shape for Circle {
    +    fn area(self) -> f64 {
    +        self.radius.powi(2) * std::f64::consts::PI
    +    }
    +}
    +
    +
    +
    +

    11.1. Implementation Coherence

    +

    Legality Rules

    +

    11.1:1 +A trait implementation exhibits implementation coherence when it is +valid and does not overlap with another trait implementation.

    +

    11.1:2 +Two trait implementations of the same implemented trait overlap when +the intersection of the implementing types is non-empty.

    +

    11.1:3 +Given trait implementation +impl<P1, P2, .., PN> Trait<T1, T2, .., TN> for T0, the +trait implementation is considered valid when

    + +

    11.1:8 +A trait or type is fundamental when its +implementation coherence rules are relaxed and the trait or type +is always treated as if it was a local trait or a local type.

    +

    11.1:9 +The following types are fundamental:

    + +

    11.1:12 +The following traits are fundamental:

    + +

    11.1:17 +A trait implementation shall be coherent.

    +
    +
    +

    11.2. Implementation Conformance

    +

    Legality Rules

    +

    11.2:1 +A trait implementation exhibits implementation conformance when it +satisfies the constraints of its implemented trait.

    +

    11.2:2 +An associated trait constant is conformant with an associated constant +of an implemented trait when

    + +

    11.2:5 +An associated trait function is conformant with an associated function +of an implemented trait when

    + +

    11.2:8 +An associated type of a trait implementation is conformant with an +associated type of an implemented trait when

    + +

    11.2:11 +A trait implementation is conformant with an implemented trait when:

    + +

    11.2:15 +A trait implementation shall be conformant.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..2f1ca6ae --- /dev/null +++ b/index.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + Ferrocene Language Specification — Ferrocene Language Specification + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Ferrocene Language Specification

    +
    +

    Contents:

    + +
    + +
    +

    Indices and tables

    + +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/inline-assembly.html b/inline-assembly.html new file mode 100644 index 00000000..719b0dae --- /dev/null +++ b/inline-assembly.html @@ -0,0 +1,1763 @@ + + + + + + + + + + + + 22. Inline Assembly — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    22. Inline Assembly

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    Legality Rules

    +

    22:1 +Inline assembly is hand-written assembly code that is integrated into a +Rust program.

    +

    22:2 +Inline assembly is written as an assembly code block that is +wrapped inside a macro invocation of macro core::arch::asm or +macro core::arch::global_asm.

    +

    22:3 +Inline assembly is available on the following architectures:

    +
      +
    • 22:4 +AArch64

    • +
    • 22:5 +ARM

    • +
    • 22:6 +RISC-V

    • +
    • 22:7 +x86 and x86-64

    • +
    +
    +

    22.1. Registers

    +

    Syntax

    +
    RegisterName ::=
    +    " ExplicitRegisterName "
    +  | RegisterClassName
    +
    +ExplicitRegisterName ::=
    +    a[0-31]
    +  | ah    | al    | ax
    +  | b[0-31]
    +  | bh    | bl    | bp    | bpl   | bx
    +  | ch    | cl    | cx
    +  | d[0-31]
    +  | dh    | di    | dil   | dl    | dx
    +  | eax   | ebp   | ebx   | ecx   | edi   | edx   | eip   | esi
    +  | esp
    +  | f[0-31]
    +  | fa[0-7]
    +  | ffr   | fp
    +  | fs[0-11]
    +  | ft[0-11]
    +  | gp
    +  | h[0-31]
    +  | ip
    +  | k[0-7]
    +  | lr
    +  | m[0-7]
    +  | p[0-15]
    +  | pc
    +  | q[0-31]
    +  | r[0-15]
    +  | r[8-15]d
    +  | r[8-15]w
    +  | ra    | rax
    +  | rb[8-15]
    +  | rbp   | rbx   | rcx
    +  | rdi   | rdx   | rfp   | rip   | rsi   | rsp
    +  | s[0-31]
    +  | si    | sil   | sl    | sp    | spl
    +  | st([0-7])
    +  | t[0-6]
    +  | tmm[0-7]
    +  | tp
    +  | v[0-31]
    +  | w[0-31]
    +  | wsp   | wzr
    +  | x[0-31]
    +  | xmm[0-31]
    +  | xzr
    +  | ymm[0-31]
    +  | zero
    +  | zmm[0-31]
    +

    Legality Rules

    +

    22.1:1 +A register is a hardware component capable of holding data that can be +read and written.

    +

    22.1:2 +An input register is a register whose register name is used in +a register argument subject to direction modifier in, inout, +or inlateout.

    +

    22.1:3 +An output register is a register whose register name is +used in a register argument subject to direction modifier out, +lateout, inout, or inlateout.

    +

    22.1:4 +A register that is not specified as an output register shall have the +same value upon exit from an assembly code block as it did upon entry +into the assembly code block.

    +

    22.1:5 +A register name is either the explicit register name of a +register, or the register class name of the register class a +register belongs to.

    +

    22.1:6 +An explicit register name is a target-specific string that identifies +a register.

    +

    22.1:7 +An explicit register name may be aliased as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.1:8

    Architecture

    Explicit register name

    Aliases

    22.1:9

    AArch64

    sp

    wsp

    22.1:10

    AArch64

    v[0-31]

    b[0-31], d[0-31], h[0-31], q[0-31], s[0-31]

    22.1:11

    AArch64

    x[0-30]

    w[0-30]

    22.1:12

    AArch64

    x29

    fp

    22.1:13

    AArch64

    x30

    lr

    22.1:14

    AArch64

    xzr

    wzr

    22.1:15

    ARM

    r[0-3]

    a[1-4]

    22.1:16

    ARM

    r[4-9]

    v[1-6]

    22.1:17

    ARM

    r9

    rfp

    22.1:18

    ARM

    r10

    sl

    22.1:19

    ARM

    r11

    fp

    22.1:20

    ARM

    r12

    ip

    22.1:21

    ARM

    r13

    sp

    22.1:22

    ARM

    r14

    lr

    22.1:23

    ARM

    r15

    pc

    22.1:24

    RISC-V

    f[0-7]

    ft[0-7]

    22.1:25

    RISC-V

    f[8-9]

    fs[0-1]

    22.1:26

    RISC-V

    f[10-17]

    fa[0-7]

    22.1:27

    RISC-V

    f[18-27]

    fs[2-11]

    22.1:28

    RISC-V

    f[28-31]

    ft[8-11]

    22.1:29

    RISC-V

    x0

    zero

    22.1:30

    RISC-V

    x1

    ra

    22.1:31

    RISC-V

    x2

    sp

    22.1:32

    RISC-V

    x3

    gp

    22.1:33

    RISC-V

    x4

    tp

    22.1:34

    RISC-V

    x[5-7]

    t[0-2]

    22.1:35

    RISC-V

    x8

    fp, s0

    22.1:36

    RISC-V

    x9

    s1

    22.1:37

    RISC-V

    x[10-17]

    a[0-7]

    22.1:38

    RISC-V

    x[18-27]

    s[2-11]

    22.1:39

    RISC-V

    x[28-31]

    t[3-6]

    22.1:40

    x86

    ax

    eax, rax

    22.1:41

    x86

    bp

    bpl, ebp, rbp

    22.1:42

    x86

    bx

    ebx, rbx

    22.1:43

    x86

    cx

    ecx, rcx

    22.1:44

    x86

    di

    edi, rdi

    22.1:45

    x86

    dx

    edx, rdx

    22.1:46

    x86

    ip

    eip, rip

    22.1:47

    x86

    r[8-15]

    r[8-15]b, r[8-15]d, r[8-15]w

    22.1:48

    x86

    si

    esi, rsi

    22.1:49

    x86

    sp

    esp, rsp, spl

    22.1:50

    x86

    st(0)

    st

    22.1:51

    x86

    xmm[0-31]

    ymm[0-31], zmm[0-31]

    +

    22.1:52 +Certain explicit register names are not supported on selected +architectures, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.1:53

    Architecture

    Explicit register name

    Reason

    22.1:54

    all

    sp

    The stack pointer must be restored to its original value on exit from an +assembly code block.

    22.1:55

    AArch64

    x18

    OS-reserved register on some AArch64 targets.

    22.1:56

    AArch64

    x19

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:57

    AArch64

    x29

    The frame pointer cannot be used as an input or output.

    22.1:58

    AArch64

    xzr

    The constant zero register cannot be modified.

    22.1:59

    ARM

    pc

    The program counter cannot be modified.

    22.1:60

    ARM

    r6

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:61

    ARM

    r7, r11

    The frame pointer cannot be used as an input or output.

    22.1:62

    ARM

    r9

    OS-reserved register on some ARM targets.

    22.1:63

    RISC-V

    gp, tp

    Reserved registers.

    22.1:64

    RISC-V

    x0

    The constant zero register cannot be modified.

    22.1:65

    RISC-V

    x8

    The frame pointer cannot be used as an input or output.

    22.1:66

    RISC-V

    x9

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:67

    x86

    bp

    The frame pointer cannot be used as an input or output.

    22.1:68

    x86

    ip

    The program counter cannot be modified.

    22.1:69

    x86-32

    si

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:70

    x86-64

    bx

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    +

    22.1:71 +It is a static error to use an unsupported explicit register name.

    +

    Undefined Behavior

    +

    22.1:72 +It is undefined behavior if a register that is not specified as an +output register has a different value upon exit from an +assembly code block from the value it had upon entry into the +assembly code block.

    +
    +
    +

    22.2. Register Classes

    +

    Syntax

    +
    RegisterClassName ::=
    +    dreg
    +  | dreg_low16
    +  | dreg_low8
    +  | freg
    +  | kreg
    +  | kreg0
    +  | mmx_reg
    +  | preg
    +  | qreg
    +  | qreg_low4
    +  | qreg_low8
    +  | reg
    +  | reg_abcd
    +  | reg_byte
    +  | sreg
    +  | sreg_low16
    +  | tmm_reg
    +  | vreg
    +  | vreg_low16
    +  | x86_reg
    +  | xmm_reg
    +  | ymm_reg
    +  | zmm_reg
    +

    Legality Rules

    +

    22.2:1 +A register class represents a set of registers.

    +

    22.2:2 +A register class name is a target-specific string that identifies a +register class.

    +

    22.2:3 +Registers are organized into register classes as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.2:4

    Architecture

    Register class name

    Explicit register names

    22.2:5

    AArch64

    preg

    p[0-15], ffr

    22.2:6

    AArch64

    reg

    x[0-30]

    22.2:7

    AArch64

    vreg

    v[0-31]

    22.2:8

    AArch64

    vreg_low16

    v[0-15]

    22.2:9

    ARM / Thumb2

    reg

    r[0-12], r14

    22.2:10

    ARM / Thumb1

    reg

    r[0-7]

    22.2:11

    ARM

    dreg

    d[0-31]

    22.2:12

    ARM

    dreg_low8

    d[0-8]

    22.2:13

    ARM

    dreg_low16

    d[0-15]

    22.2:14

    ARM

    qreg

    q[0-15]

    22.2:15

    ARM

    qreg_low4

    q[0-3]

    22.2:16

    ARM

    qreg_low8

    q[0-8]

    22.2:17

    ARM

    sreg

    s[0-31]

    22.2:18

    ARM

    sreg_low16

    s[0-15]

    22.2:19

    RISC-V

    freg

    f[0-31]

    22.2:20

    RISC-V

    reg

    x1, x[0-7], x[9-15], x[16-31] (on non-RV32E)

    22.2:21

    RISC-V

    vreg

    v[0-31]

    22.2:22

    x86

    kreg

    k[1-7]

    22.2:23

    x86

    kreg0

    k0

    22.2:24

    x86

    mmx_reg

    mm[0-7]

    22.2:25

    x86

    reg

    ax, bp, bx, cx, di, dx, r[8-15], si

    22.2:26

    x86

    reg_abcd

    ax, bx, cx, dx

    22.2:27

    x86

    x87_reg

    st([0-7])

    22.2:28

    x86

    xmm_reg

    xmm[0-7], xmm[8-15] (on 64bit only)

    22.2:29

    x86

    ymm_reg

    ymm[0-7], ymm[8-15] (on 64bit only)

    22.2:30

    x86

    zmm_reg

    zmm[0-7], zmm[8-15] (on 64bit only)

    22.2:31

    x86-32

    reg_byte

    ah, al, bh, bl, ch, cl, dh, dl

    22.2:32

    x86-64

    reg_byte

    al, bl, bpl, cl, dil, dl, sil, r[8-15]b

    22.2:33

    x86-64

    tmm_reg

    tmm[0-7]

    +

    22.2:34 +If a value has a smaller size than the register it is allocated in, +then

    + +

    22.2:38 +If a register argument has direction modifier inout and an +input-output register expression, then the input register expression +and the output register expression shall have the same type.

    +
    +
    +

    22.3. Register Arguments

    +

    Syntax

    +
    RegisterArgument ::=
    +    (Identifier =)? DirectionModifier ( RegisterName ) RegisterExpression
    +
    +DirectionModifier ::=
    +    in
    +  | inlateout
    +  | inout
    +  | lateout
    +  | out
    +
    +RegisterExpression ::=
    +    InputOutputRegisterExpression
    +  | SimpleRegisterExpression
    +
    +InputOutputRegisterExpression ::=
    +    InputRegisterExpression => OutputRegisterExpression
    +  | InputRegisterExpression => UnderscoreExpression
    +
    +InputRegisterExpression ::=
    +    Expression
    +
    +OutputRegisterExpression ::=
    +    Expression
    +
    +SimpleRegisterExpression ::=
    +    Expression
    +  | UnderscoreExpression
    +

    Legality Rules

    +

    22.3:1 +A register argument is a construct that configures the input +and output of a register, and optionally binds the configuration to an +identifier.

    +

    22.3:2 +A register argument shall be used within an assembly instruction.

    +

    22.3:3 +A named register argument is a register argument whose configuration +is bound to an identifier.

    +

    22.3:4 +A positional register argument is a register argument whose +configuration is not bound to an identifier.

    +

    22.3:5 +A named register argument shall appear after a +positional register argument.

    +

    22.3:6 +An explicit register argument is a register argument that uses an +explicit register name.

    +

    22.3:7 +An explicit register argument shall appear after a +named register argument.

    +

    22.3:8 +A register class argument is a register argument that uses a +register class name.

    +

    22.3:9 +A register class argument causes an assembler to select a suitable +register from the related register class.

    +

    22.3:10 +A direction modifier is a construct that indicates whether a +register argument initializes a register, assigns the value of a +register to an expression, or both.

    +

    22.3:11 +An input register expression is an expression that provides the +initial value of a register.

    +

    22.3:12 +An output register expression is an expression that is assigned the +value of a register.

    +

    22.3:13 +An input-output register expression is a construct that specifies +both an input register expression and an output register expression.

    +

    22.3:14 +A simple register expression is either an expression or an +underscore expression.

    +

    22.3:15 +A register expression is either an input-output register expression +or a simple register expression.

    +

    22.3:16 +The type of an input register expression, +output register expression, or simple register expression shall +depend on the architecture and the target feature in effect, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.3:17

    Architecture

    Register class name

    Target feature

    Allowed types

    22.3:18

    AArch64

    preg

    n/a

    Only clobbers

    22.3:19

    AArch64

    reg

    none

    i8, i16, i32, f32, i64, f64

    22.3:20

    AArch64

    vreg

    neon

    i8, i16, i32, f32, i64, f64

    22.3:21

    ARM

    dreg

    vfp2

    i64, f64

    22.3:22

    ARM

    reg

    none

    i8, i16, i32, f32

    22.3:23

    ARM

    sreg

    vfp2

    i32, f32

    22.3:24

    RISC-V

    freg

    f

    f32

    22.3:25

    RISC-V

    freg

    d

    f64

    22.3:26

    RISC-V

    vreg

    n/a

    Only clobbers

    22.3:27

    RISC-V32

    reg

    none

    i8, i16, i32, f32

    22.3:28

    RISC-V64

    reg

    none

    i8, i16, i32, f32, i64, f64

    22.3:29

    x86

    kreg

    avx512f

    i8, i16

    22.3:30

    x86

    kreg

    avx512bw

    i32, i64

    22.3:31

    x86

    mmx_reg

    n/a

    Only clobbers

    22.3:32

    x86

    reg_byte

    none

    i8

    22.3:33

    x86

    tmm_reg

    n/a

    Only clobbers

    22.3:34

    x86

    x87_reg

    n/a

    Only clobbers

    22.3:35

    x86

    xmm_reg

    sse

    i32, f32, i64, f64

    22.3:36

    x86

    ymm_reg

    avx

    i32, f32, i64, f64

    22.3:37

    x86

    zmm_reg

    avx512f

    i32, f32, i64, f64

    22.3:38

    x86-32

    reg

    none

    i16, i32, f32

    22.3:39

    x86-64

    reg

    none

    i16, i32, f32, i64, f64

    +

    22.3:40 +If a register argument has direction modifier in and a +simple register expression, then

    + +

    22.3:43 +If a register argument has direction modifier out and a +simple register expression, then

    + +

    22.3:47 +If a register argument has direction modifier lateout and a +simple register expression, then the register argument behaves as a +register argument with direction modifier out, except that the +register can be reused with direction modifier in.

    +

    22.3:48 +If a register argument has direction modifier inout and a +simple register expression, then

    + +

    22.3:51 +If a register argument has direction modifier inout and an +input-output register expression, then

    + +

    22.3:55 +If a register argument has direction modifier inlateout and a +simple register expression, then the register argument behaves as a +register argument with direction modifier inout, except that the +register can be reused with direction modifier in.

    +

    22.3:56 +If a register argument has direction modifier inlateout and an +input-output register expression, then the register argument behaves +as a register argument with direction modifier inout, except that +the register can be reused with direction modifier in.

    +

    22.3:57 +It is a static error to specify a register argument with +direction modifier and register expression other than the +combinations listed above.

    +

    Dynamic Semantics

    +

    22.3:58 +The evaluation of a register argument proceeds as follows:

    + +

    Examples

    +
    let mut left_value: i32 = 1;
    +let right_value: i32 = 2;
    +
    +unsafe {
    +    asm!(
    +        "add {left} {right}",
    +        left = inout(reg) left_value,
    +        right = in(reg) right_value,
    +    );
    +}
    +
    +
    +
    +
    +

    22.4. Assembly Instructions

    +

    Syntax

    +
    AssemblyCodeBlock ::=
    +    AssemblyInstruction (, AssemblyInstruction)*
    +
    +AssemblyInstruction ::=
    +    StringLiteral
    +

    Legality Rules

    +

    22.4:1 +An assembly instruction is a string literal that represents a +low-level assembly operation or an assembly directive.

    +

    22.4:2 +An assembly instruction shall use the syntax of format strings as +defined in module std::fmt, and contain zero or more +register parameters.

    +

    22.4:3 +An assembly code block is a sequence of assembly instructions.

    +

    22.4:4 +When an assembly code block contains multiple assembly instructions, +the assembly instructions are treated as concatenated into a single +string literal, with character 0x0A (new line) between them.

    +

    22.4:5 +The set of memory locations that an assembly code block is allowed to +read and write are the same as those for an external function, excluding +the memory locations that are private to the assembly code block.

    +

    22.4:6 +A tool is not required to guarantee that an assembly code block appears +exactly once in the final assembly output.

    +

    22.4:7 +A tool is not required to guarantee that two assembly code blocks +appear in the same declarative order in the final assembly output, or appear +contiguously in successive addresses.

    +

    22.4:8 +A register parameter is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +register argument in an assembly instruction.

    +

    22.4:9 +On x86 architectures, direction flag DF in register EFLAGS shall +be cleared on exit from an assembly code block.

    +

    Undefined Behavior

    +

    22.4:10 +On x86 architectures, it is undefined behavior if direction flag DF in +register EFLAGS remains set on exit from an assembly code block.

    +

    Examples

    +
    "shl {value} 2"
    +
    +
    +
    +

    22.4.1. Register Parameter Modifiers

    +

    Legality Rules

    +

    22.4.1:1 +A register parameter modifier is a substring that starts with character +0x3A (colon), follows a register parameter, and changes the formatting of +the related register parameter.

    +

    22.4.1:2 +The effects of a register parameter modifier depends on the architecture +and register class, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.4.1:3

    Architecture

    Register class

    Modifier

    Example output

    22.4.1:4

    AArch64

    reg

    none

    x0

    22.4.1:5

    AArch64

    reg

    :w

    w0

    22.4.1:6

    AArch64

    reg

    :x

    x0

    22.4.1:7

    AArch64

    vreg

    none

    v0

    22.4.1:8

    AArch64

    vreg

    :b

    b0

    22.4.1:9

    AArch64

    vreg

    :d

    d0

    22.4.1:10

    AArch64

    vreg

    :h

    h0

    22.4.1:11

    AArch64

    vreg

    :q

    q0

    22.4.1:12

    AArch64

    vreg

    :s

    s0

    22.4.1:13

    AArch64

    vreg

    :v

    v0

    22.4.1:14

    ARM

    dreg

    none

    d0

    22.4.1:15

    ARM

    qreg

    none

    q0

    22.4.1:16

    ARM

    qreg

    :e, :f

    d0, d1

    22.4.1:17

    ARM

    reg

    none

    r0

    22.4.1:18

    ARM

    sreg

    none

    s0

    22.4.1:19

    RISC-V

    freg

    none

    f0

    22.4.1:20

    RISC-V

    reg

    none

    x1

    22.4.1:21

    x86

    kreg

    none

    k1

    22.4.1:22

    x86

    reg

    :e

    eax

    22.4.1:23

    x86

    reg

    :x

    ax

    22.4.1:24

    x86

    reg_abcd

    :h

    ah

    22.4.1:25

    x86

    reg_byte

    none

    al / ah

    22.4.1:26

    x86

    xmm_reg

    none

    xmm0

    22.4.1:27

    x86

    ymm_reg

    none

    ymm0

    22.4.1:28

    x86

    zmm_reg

    none

    zmm0

    22.4.1:29

    x86

    xmm_reg, ymm_reg, zmm_reg

    :x

    xmm0

    22.4.1:30

    x86

    xmm_reg, ymm_reg, zmm_reg

    :y

    ymm0

    22.4.1:31

    x86

    xmm_reg, ymm_reg, zmm_reg

    :z

    zmm0

    22.4.1:32

    x86-32

    reg

    none

    eax

    22.4.1:33

    x86-32

    reg_abcd

    :l

    al

    22.4.1:34

    x86-64

    reg

    none

    rax

    22.4.1:35

    x86-64

    reg

    :l

    al

    22.4.1:36

    x86-64

    reg

    :r

    rax

    +

    Examples

    +
    let mut left_value: i32 = 1;
    +let right_value: i32 = 2;
    +
    +unsafe {
    +    asm!(
    +        "add {left}:e {right}:x",
    +        left = inout(reg) left_value,
    +        right = in(reg) right_value,
    +    );
    +}
    +
    +
    +
    +
    +

    22.4.2. Directive Support

    +

    Legality Rules

    +

    22.4.2:1 +An assembly directive is a request to the assembler to perform a +particular action or change a setting.

    +

    22.4.2:2 +If an assembly code block contains stateful assembly directives +that modify how subsequent assembly code is processed, then the +assembly code block shall undo the effects of the stateful +assembly directives before the assembly code block is completed.

    +

    22.4.2:3 +The common assembly directives are as follows:

    +
      +
    1. 22.4.2:4 +.2byte, .4byte, .8byte

    2. +
    3. 22.4.2:5 +.align, .ascii, .asciz, .alt_entry

    4. +
    5. 22.4.2:6 +.balign, .balignl, .balignw, .balign, .balignl, +.balignw, .bss, .byte

    6. +
    7. 22.4.2:7 +.comm

    8. +
    9. 22.4.2:8 +.data, .def, .double

    10. +
    11. 22.4.2:9 +.endef, .equ, .equiv, .eqv

    12. +
    13. 22.4.2:10 +.fill, .float

    14. +
    15. 22.4.2:11 +.globl, .global

    16. +
    17. 22.4.2:12 +.inst

    18. +
    19. 22.4.2:13 +.lcomm, .long

    20. +
    21. 22.4.2:14 +.octa, .option

    22. +
    23. 22.4.2:15 +.private_extern, .p2align, .pushsection, .popsection

    24. +
    25. 22.4.2:16 +.quad

    26. +
    27. 22.4.2:17 +.scl, .section, .set, .short, .size, .skip, +.sleb128, .space, .string

    28. +
    29. 22.4.2:18 +.text, .type

    30. +
    31. 22.4.2:19 +.uleb128

    32. +
    33. 22.4.2:20 +.word

    34. +
    +

    22.4.2:21 +The following assembly directives are relevant on ELF targets that +support DWARF unwind info.

    +
      +
    1. 22.4.2:22 +.cfi_adjust_cfa_offset

    2. +
    3. 22.4.2:23 +.cfi_def_cfa, .cfi_def_cfa_offset, .cfi_def_cfa_register

    4. +
    5. 22.4.2:24 +.cfi_endproc, .cfi_escape

    6. +
    7. 22.4.2:25 +.cfi_lsda

    8. +
    9. 22.4.2:26 +.cfi_offset

    10. +
    11. 22.4.2:27 +.cfi_personality

    12. +
    13. 22.4.2:28 +.cfi_register, .cfi_rel_offset, .cfi_remember_state, +.cfi_restore, .cfi_restore_state, .cfi_return_column

    14. +
    15. 22.4.2:29 +.cfi_same_value, .cfi_sections, .cfi_signal_frame, +.cfi_startproc

    16. +
    17. 22.4.2:30 +.cfi_undefined

    18. +
    19. 22.4.2:31 +.cfi_window_save

    20. +
    +

    22.4.2:32 +The following assembly directives are relevant on targets with +structured exception handling.

    +
      +
    1. 22.4.2:33 +.seh_endproc, .seh_endprologue

    2. +
    3. 22.4.2:34 +.seh_proc, .seh_pushreg

    4. +
    5. 22.4.2:35 +.seh_savereg, .seh_setframe, .seh_stackalloc

    6. +
    +

    22.4.2:36 +The following assembly directives are relevant on ARM targets.

    +
      +
    1. 22.4.2:37 +.code

    2. +
    3. 22.4.2:38 +.even

    4. +
    5. 22.4.2:39 +.fnstart, .fnend

    6. +
    7. 22.4.2:40 +.movsp

    8. +
    9. 22.4.2:41 +.save

    10. +
    11. 22.4.2:42 +.thumb, .thumb_func

    12. +
    +

    22.4.2:43 +The following assembly directives are relevant on x86 targets.

    +
      +
    1. 22.4.2:44 +.code16, .code32, .code64

    2. +
    3. 22.4.2:45 +.nops

    4. +
    +
    +
    +
    +

    22.5. ABI Clobbers

    +

    Syntax

    +
    AbiClobber ::=
    +    clobber_abi ( AbiKindList )
    +
    +AbiKindList ::=
    +    AbiKind (, AbiKind)* ,?
    +

    Legality Rules

    +

    22.5:1 +An ABI clobber is an argument to macro core::arch::asm which +indicates that the values of selected registers might be +overwritten during the execution of an assembly code block.

    +

    22.5:2 +Multiple ABI clobbers may be specified for an assembly code block. +Clobber constraints are applied for all unique registers in the union of +all specified ABIs.

    +

    22.5:3 +The effects of an ABI clobber depend on the ABI in effect, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.5:4

    Architecture

    AbiKind

    Clobbered registers

    22.5:5

    AArch64

    "C", "efiapi", "system"

    ffr, p[0-15], v[0-31], x[0-17], x18 (when not +reserved), x30

    22.5:6

    ARM

    "aapcs", "C", "efiapi", "system"

    d[0-7], d[16-31], r[0-3], r12, r14, s[0-15]

    22.5:7

    RISC-V

    "C", "efiapi", "system"

    f[0-7], f[10-17], f[28-31], v[0-31], x1, x[5-7], +x[10-17], x[28-31]

    22.5:8

    x86-32

    "C", "cdecl", "efiapi", "fastcall", "stdcall", +"system"

    ax, cx, dx, k[0-7], mm[0-7], st([0-7]), +xmm[0-7]

    22.5:9

    x86-64

    "C", "efiapi", "system" (on Windows), "win64"

    ax, cx, dx, k[0-7], mm[0-7], st([0-7]), +r[8-11], tmm[0-7], xmm[0-31]

    22.5:10

    x86-64

    "C", "system" (on non-Windows), "sysv64"

    ax, cx, di, dx, k[0-7], mm[0-7], r[8-11], +si, st([0-7]), tmm[0-7], xmm[0-31]

    +

    22.5:11 +On x86 architectures, the x87 floating-point register stack shall remain +unchanged unless all st([0-7]) registers have been +clobbered.

    +

    22.5:12 +On x86 architectures, if all x87 registers are clobbered, then the x87 +register stack is presumed empty upon entry of an assembly code block. +The x87 register stack shall be empty on exit from an +assembly code block.

    +

    Examples

    +
    clobber_abi("C", "system")
    +
    +
    +
    +
    +

    22.6. Assembly Options

    +

    Syntax

    +
    AssemblyOption ::=
    +    options ( OptionList )
    +
    +OptionList ::=
    +    Option (, Option)* ,?
    +
    +Option ::=
    +    att_syntax
    +  | nomem
    +  | noreturn
    +  | nostack
    +  | preserves_flags
    +  | pure
    +  | raw
    +  | readonly
    +

    Legality Rules

    +

    22.6:1 +An assembly option is used to specify a characteristic of or a restriction +on the related assembly code block.

    +

    22.6:2 +Assembly option att_syntax is applicable only to x86 architectures +and causes the assembler to use the .att_syntax prefix mode which prefixes +registers with %.

    +

    22.6:3 +Assembly option nomem indicates that the assembly code block does +not read or write memory.

    +

    22.6:4 +Assembly option noreturn indicates that the assembly code block +does not return, preventing the dropping of variables.

    +

    22.6:5 +Assembly option nostack indicates that the assembly code block +does not push on the stack, or write to the stack red-zone (if supported).

    +

    22.6:6 +If assembly option nostack is not in effect, then an +assembly code block is allowed to use stack space below the stack pointer. +Upon entry of an assembly code block, the stack pointer is suitably +aligned according to the target ABI for call expressions. The stack +pointer shall be restored to its original value on exit from the +assembly code block.

    +

    22.6:7 +Assembly option preserves_flags indicates that the +assembly code block does not modify the flags register.

    +

    22.6:8 +If assembly option preserves_flags is in effect, then the values +of the following flags registers shall be restored on exit from an +assembly code block:

    + + + + + + + + + + + + + + + + + + + + + + + +

    22.6:9

    Architecture

    Flag registers

    22.6:10

    AArch64

    Floating-point status FPRS register

    +

    Condition flags NZCV register

    +

    22.6:11

    ARM

    Condition flags C, N, V, Z in register CPSR

    +

    Condition flags C, N, V, Z in register FPSCR

    +

    Floating-point exception flags DZC, IDC, IOC, IXC, +OFC, UFC in register FPSCR

    +

    Greater than or equal flag GE in register CPRS

    +

    Saturation flag Q in register CPRS

    +

    Saturation flag QC in register FPSCR

    +

    22.6:12

    RISC-V

    Floating-point exception flags fflags in register fcsr

    +

    Vector extension state vcsr, vl, vtype

    +

    22.6:13

    x86

    Status flags AF, CF, OF, PF, SF, ZF in +register EFLAGS

    +

    Floating-point exception flags DE, IE, OE, PE, UE, +ZE in register MXCSR

    +

    Floating-point status word

    +
    +

    22.6:14 +Assembly option pure indicates that the assembly code block has no +side effects, and its outputs depend only on direct inputs.

    +

    22.6:15 +Assembly option raw causes assembly instructions to be parsed +raw, without any special handling of register parameters.

    +

    22.6:16 +Assembly option readonly indicates that the assembly code block +does not write memory.

    +

    22.6:17 +Assembly options att_syntax and raw shall appear only in +GlobalAsmArguments.

    +

    22.6:18 +Assembly options nomem and readonly shall not be used together.

    +

    22.6:19 +Assembly option noreturn shall not be specified on an +assembly code block that has output registers.

    +

    22.6:20 +Assembly option pure shall appear with either assembly option +nomem or assembly option readonly.

    +

    22.6:21 +Assembly option pure shall not be specified on an +assembly code block that either lacks output registers or all +register expressions of output registers are +underscore expressions.

    +

    Undefined Behavior

    +

    22.6:22 +It is undefined behavior if an assembly code block subject to +assembly option pure has side effects other than its direct outputs.

    +

    22.6:23 +It is undefined behavior if control reaches the end of an +assembly code block subject to assembly option noreturn.

    +

    Examples

    +
    options(nomem, pure)
    +
    +
    +
    +
    +

    22.7. Macros asm and global_asm

    +

    Syntax

    +
    AsmArguments ::=
    +    ( AssemblyCodeBlock (, RegisterArgument)* (, AbiClobber)* (, AssemblyOption)* ,? )
    +
    +GlobalAsmArguments ::=
    +    ( AssemblyCodeBlock (, RegisterArgument)* (, AssemblyOption)* ,? )
    +

    Legality Rules

    +

    22.7:1 +Assembly code blocks are embedded within Rust source code using +macros core::arch::asm and core::arch::global_asm.

    +

    22.7:2 +When invoking macro core::arch::asm, the DelimitedTokenTree of +the related macro invocation shall follow the syntax of AsmArguments.

    +

    22.7:3 +Invoking macro core::arch::asm causes the related +assembly code block to be integrated into the generated assembly of the +function where the macro invocation took place. A tool is free to +encapsulate the assembly code block in a separate function and +generate a call expression to it.

    +

    22.7:4 +When invoking macro core::arch::global_asm, the +DelimitedTokenTree of the related macro invocation shall follow the +syntax of GlobalAsmArguments.

    +

    22.7:5 +Invoking macro core::arch::global_asm causes the related +assembly code block to be emitted outside the function where the +macro invocation took place.

    +

    Dynamic Semantics

    +

    22.7:6 +The evaluation of a macro invocation to macro +core::arch::asm or macro core::arch::global_asm evaluates +register arguments in declarative order.

    +

    22.7:7 +The execution of an assembly code block produced by +inline assembly proceeds as follows:

    +
      +
    1. 22.7:8 +All input registers are initialized to the values provided by +the respective register arguments, in an undefined order.

    2. +
    3. 22.7:9 +The assembly instructions of the assembly code block are executed +in declarative order.

    4. +
    5. 22.7:10 +The values of all output registers are assigned to the +register expressions provided by the respective +register arguments, in an undefined order.

    6. +
    +

    Examples

    +
    fn asm_example() -> u32 {
    +    let basepri;
    +    unsafe {
    +        asm!("
    +            mrs {}, BASEPRI
    +        ",
    +        out(reg) basepri,
    +        options(nomem, nostack, preserves_flags))
    +    }
    +    basepri
    +}
    +
    +global_asm!("
    +    do_nothing:
    +        push {r7, lr}
    +        mov  r7, sp
    +        pop  {r7, pc}
    +    ",
    +    options(raw)
    +);
    +
    +fn global_asm_example() {
    +    extern "C" {
    +        fn do_nothing();
    +    }
    +
    +    unsafe { do_nothing() }
    +}
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/items.html b/items.html new file mode 100644 index 00000000..fdfb4c06 --- /dev/null +++ b/items.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + 3. Items — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    3. Items

    +

    Syntax

    +
    Item ::=
    +    OuterAttributeOrDoc* (ItemWithVisibility | MacroItem)
    +
    +ItemWithVisibility ::=
    +    VisibilityModifier? (
    +        ConstantDeclaration
    +      | EnumDeclaration
    +      | ExternalBlock
    +      | ExternalCrateImport
    +      | FunctionDeclaration
    +      | Implementation
    +      | ModuleDeclaration
    +      | StaticDeclaration
    +      | StructDeclaration
    +      | TraitDeclaration
    +      | TypeAliasDeclaration
    +      | UnionDeclaration
    +      | UseImport
    +    )
    +
    +MacroItem ::=
    +    MacroRulesDeclaration
    +  | TerminatedMacroInvocation
    +

    Legality Rules

    +

    3:1 +The macro expansion of a terminated macro invocation is treated as +zero or more items if the terminated macro invocation appears as +an item.

    +

    Dynamic Semantics

    +

    3:2 +Elaboration is the process by which a declaration achieves its runtime +effects.

    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/lexical-elements.html b/lexical-elements.html new file mode 100644 index 00000000..de43b3f2 --- /dev/null +++ b/lexical-elements.html @@ -0,0 +1,1308 @@ + + + + + + + + + + + + 2. Lexical Elements — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    2. Lexical Elements

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    2:1 +The text of a Rust program consists of modules organized into source +files. The text of a source file is a sequence of lexical +elements, each composed of characters, whose rules are presented in this +chapter.

    +
    +

    2.1. Character Set

    +

    2.1:1 +The program text of a Rust program is written using the Unicode character +set.

    +

    Syntax

    +

    2.1:2 +A character is defined by this document for each cell in the coding space +described by Unicode, regardless of whether or not Unicode allocates a +character to that cell.

    +

    2.1:3 +A whitespace character is one of the following characters:

    +
      +
    • 2.1:4 +0x09 (horizontal tabulation)

    • +
    • 2.1:5 +0x0A (new line)

    • +
    • 2.1:6 +0x0B (vertical tabulation)

    • +
    • 2.1:7 +0x0C (form feed)

    • +
    • 2.1:8 +0x0D (carriage return)

    • +
    • 2.1:9 +0x20 (space)

    • +
    • 2.1:10 +0x85 (next line)

    • +
    • 2.1:11 +0x200E (left-to-right mark)

    • +
    • 2.1:12 +0x200F (right-to-left mark)

    • +
    • 2.1:13 +0x2028 (line separator)

    • +
    • 2.1:14 +0x2029 (paragraph separator)

    • +
    +

    2.1:15 +A whitespace string is a string that consists of one or more +whitespace characters.

    +

    2.1:16 +An AsciiCharacter is any Unicode character in the range 0x00 - 0x7F, both inclusive.

    +

    Legality Rules

    +

    2.1:17 +The coded representation of a character is tool-defined.

    +
    +
    +

    2.2. Lexical Elements, Separators, and Punctuation

    +

    Syntax

    +
    LexicalElement ::=
    +    Comment
    +  | Identifier
    +  | Keyword
    +  | Literal
    +  | Punctuation
    +
    +Punctuation ::=
    +    Delimiter
    +  | +
    +  | -
    +  | *
    +  | /
    +  | %
    +  | ^
    +  | !
    +  | &
    +  | |
    +  | &&
    +  | ||
    +  | <<
    +  | >>
    +  | +=
    +  | -=
    +  | *=
    +  | /=
    +  | %=
    +  | ^=
    +  | &=
    +  | |=
    +  | <<=
    +  | >>=
    +  | =
    +  | ==
    +  | !=
    +  | >
    +  | <
    +  | >=
    +  | <=
    +  | @
    +  | _
    +  | .
    +  | ..
    +  | ...
    +  | ..=
    +  | ,
    +  | ;
    +  | :
    +  | ::
    +  | ->
    +  | =>
    +  | #
    +  | $
    +  | ?
    +
    +Delimiter ::=
    +    {
    +  | }
    +  | [
    +  | ]
    +  | (
    +  | )
    +

    Legality Rules

    +

    2.2:1 +The text of a source file is a sequence of separate lexical +elements. The meaning of a program depends only on the particular sequence of +lexical elements, excluding non-doc comments.

    +

    2.2:2 +A lexical element is the most basic syntactic element in program text.

    +

    2.2:3 +The text of a source file is divided into lines.

    +

    2.2:4 +A line is a sequence of zero or more characters followed by an end of +line.

    +

    2.2:5 +The representation of an end of line is tool-defined.

    +

    2.2:6 +A separator is a character or a string that separates adjacent lexical +elements. A whitespace string is a separator.

    +

    2.2:7 +A simple punctuator is one of the following special characters:

    +
    +
    +-
    +*
    +/
    +%
    +^
    +!
    +&
    +|
    +=
    +>
    +<
    +@
    +_
    +.
    +,
    +;
    +:
    +#
    +$
    +?
    +{
    +}
    +[
    +]
    +(
    +)
    +

    2.2:8 +A compound punctuator is one of the following two or more adjacent special +characters:

    +
    &&
    +||
    +<<
    +>>
    ++=
    +-=
    +*=
    +/=
    +%=
    +^=
    +&=
    +|=
    +<<=
    +>>=
    +==
    +!=
    +>=
    +<=
    +..
    +...
    +..=
    +::
    +->
    +=>
    +

    2.2:9 +The following compound punctuators are flexible compound +punctuators.

    +
    &&
    +||
    +<<
    +>>
    +

    2.2:10 +A flexible compound punctuator may be treated as a single compound +punctuator or two adjacent simple punctuators.

    +

    2.2:11 +Each of the special characters listed for single character punctuator +is a simple punctuator except if this character is used as a character +of a compound punctuator, or a character of a character literal, a +comment, a numeric literal, or a string literal.

    +

    2.2:12 +The following names are used when referring to punctuators:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    2.2:13

    punctuator

    name

    2.2:14

    +

    Plus

    2.2:15

    -

    Minus

    2.2:16

    *

    Star

    2.2:17

    /

    Slash

    2.2:18

    %

    Percent

    2.2:19

    ^

    Caret

    2.2:20

    !

    Not

    2.2:21

    &

    And

    2.2:22

    |

    Or

    2.2:23

    &&

    And and, lazy boolean and

    2.2:24

    ||

    Or or, lazy boolean or

    2.2:25

    <<

    Shift left

    2.2:26

    >>

    Shift right

    2.2:27

    +=

    Plus equals

    2.2:28

    -=

    Minus equals

    2.2:29

    *=

    Star equals

    2.2:30

    /=

    Slash equals

    2.2:31

    %=

    Percent equals

    2.2:32

    ^=

    Caret equals

    2.2:33

    &=

    And equals

    2.2:34

    |=

    Or equals

    2.2:35

    <<=

    Shift left equals

    2.2:36

    >>=

    Shift right equals

    2.2:37

    =

    Equals

    2.2:38

    ==

    Equals equals, logical equality

    2.2:39

    !=

    Not equals

    2.2:40

    >

    Greater than

    2.2:41

    <

    Less than

    2.2:42

    >=

    Greater than equals, greater than or equal to

    2.2:43

    <=

    Less than equals, less than or equal to

    2.2:44

    @

    At

    2.2:45

    _

    Underscore

    2.2:46

    .

    Dot

    2.2:47

    ..

    Dot dot, exclusive range

    2.2:48

    ...

    Dot dot dot, ellipsis

    2.2:49

    ..=

    Dot dot equals, inclusive range

    2.2:50

    ,

    Comma

    2.2:51

    ;

    Semicolon

    2.2:52

    :

    Colon

    2.2:53

    ::

    Colon colon, path separator

    2.2:54

    ->

    Right arrow

    2.2:55

    =>

    Fat arrow, Hashrocket

    2.2:56

    #

    Pound

    2.2:57

    $

    Dollar sign

    2.2:58

    ?

    Question mark

    2.2:59

    {

    Left curly brace

    2.2:60

    }

    Right curly brace

    2.2:61

    [

    Left square bracket

    2.2:62

    ]

    Right square bracket

    2.2:63

    (

    Left parenthesis

    2.2:64

    )

    Right parenthesis

    +
    +
    +

    2.3. Identifiers

    +

    Syntax

    +
    Identifier ::=
    +    NonKeywordIdentifier
    +  | RawIdentifier
    +
    +IdentifierList ::=
    +    Identifier (, Identifier)* ,?
    +
    +NonKeywordIdentifier ::=
    +    PureIdentifier
    +  | WeakKeyword
    +
    +RawIdentifier ::=
    +    r# (PureIdentifier | RawIdentifierKeyword)
    +
    +PureIdentifier ::=
    +    XID_Start XID_Continue*
    +  | _ XID_Continue+
    +
    +IdentifierOrUnderscore ::=
    +    Identifier
    +  | _
    +
    +Renaming ::=
    +    as IdentifierOrUnderscore
    +

    2.3:1 +A RawIdentifierKeyword is any keyword in category Keyword, +except crate, self, Self, and super.

    +

    2.3:2 +XID_Start and XID_Continue are defined in Unicode Standard Annex +#31.

    +

    Legality Rules

    +

    2.3:3 +An identifier is a lexical element that refers to a name.

    +

    2.3:4 +A pure identifier is an identifier that does not include weak +keywords.

    +

    2.3:5 +A pure identifier shall follow the specification in Unicode Standard Annex +#31 for Unicode version 13.0, with the following profile:

    +
      +
    • 2.3:6 +Start = XID_Start, plus character 0x5F (low line).

    • +
    • 2.3:7 +Continue = XID_Continue

    • +
    • 2.3:8 +Medial = empty

    • +
    +

    2.3:9 +Characters 0x200C (zero width non-joiner) and 0x200D (zero width joiner) shall +not appear in a pure identifier.

    +

    2.3:10 +A pure identifier shall be restricted to characters in category +AsciiCharacter in the following contexts:

    + +

    2.3:16 +Identifiers are normalized using Normalization Form C as defined in +Unicode Standard Annex #15.

    +

    2.3:17 +Two identifiers are considered the same if they consist of the same +sequence of characters after performing normalization.

    +

    2.3:18 +Declarative macros and procedural macros shall receive normalized +identifiers in their input.

    +

    Examples

    +
    foo
    +_identifier
    +r#true
    +Москва
    +東京
    +
    +
    +
    +
    +

    2.4. Literals

    +

    Syntax

    +
    Literal ::=
    +    BooleanLiteral
    +  | ByteLiteral
    +  | ByteStringLiteral
    +  | CharacterLiteral
    +  | NumericLiteral
    +  | StringLiteral
    +

    Legality Rules

    +

    2.4:1 +A literal is a fixed value in program text.

    +
    +

    2.4.1. Byte Literals

    +

    Syntax

    +
    ByteLiteral ::=
    +    b' ByteContent '
    +
    +ByteContent ::=
    +    ByteCharacter
    +  | ByteEscape
    +
    +ByteEscape ::=
    +  | \0
    +  | \"
    +  | \'
    +  | \t
    +  | \n
    +  | \r
    +  | \\
    +  | \x OctalDigit HexadecimalDigit
    +

    2.4.1:1 +A ByteCharacter is any character in category AsciiCharacter +except characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5C (reverse solidus).

    +

    Legality Rules

    +

    2.4.1:2 +A byte literal is a literal that denotes a fixed byte value.

    +

    2.4.1:3 +The type of a byte literal is u8.

    +

    Examples

    +
    b'h'
    +b'\n'
    +b'\x1B'
    +
    +
    +
    +
    +

    2.4.2. Byte String Literals

    +

    Syntax

    +
    ByteStringLiteral ::=
    +    RawByteStringLiteral
    +  | SimpleByteStringLiteral
    +

    Legality Rules

    +

    2.4.2:1 +A byte string literal is a literal that consists of multiple +AsciiCharacters.

    +

    2.4.2:2 +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a byte string literal.

    +
    +

    2.4.2.1. Simple Byte String Literals

    +

    Syntax

    +
    SimpleByteStringLiteral ::=
    +    b" SimpleByteStringContent* "
    +
    +SimpleByteStringContent ::=
    +    ByteEscape
    +  | SimpleByteStringCharacter
    +  | StringContinuation
    +

    2.4.2.1:1 +A SimpleByteStringCharacter is any character in category AsciiCharacter +except characters 0x0D (carriage return), 0x22 (quotation mark), and 0x5C +(reverse solidus).

    +

    Legality Rules

    +

    2.4.2.1:2 +A simple byte string literal is a byte string literal that consists of multiple +AsciiCharacters.

    +

    2.4.2.1:3 +The type of a simple byte string literal of size N is &'static [u8; +N].

    +

    Examples

    +
    b""
    +b"a\tb"
    +b"Multi\
    +line"
    +
    +
    +
    +
    +

    2.4.2.2. Raw Byte String Literals

    +

    Syntax

    +
    RawByteStringLiteral ::=
    +    br RawByteStringContent
    +
    +RawByteStringContent ::=
    +    NestedRawByteStringContent
    +  | " AsciiCharacter* "
    +
    +NestedRawByteStringContent ::=
    +    # RawByteStringContent #
    +

    Legality Rules

    +

    2.4.2.2:1 +A raw byte string literal is a simple byte string literal that does not +recognize escaped characters.

    +

    2.4.2.2:2 +The type of a raw byte string literal of size N is &'static +[u8; N].

    +

    Examples

    +
    br""
    +br#""#
    +br##"left #"# right"##
    +
    +
    +
    +
    +
    +

    2.4.3. Numeric Literals

    +

    Syntax

    +
    NumericLiteral ::=
    +    FloatLiteral
    +  | IntegerLiteral
    +

    Legality Rules

    +

    2.4.3:1 +A numeric literal is a literal that denotes a number.

    +
    +

    2.4.3.1. Integer Literals

    +

    Syntax

    +
    IntegerLiteral ::=
    +    IntegerContent IntegerSuffix?
    +
    +IntegerContent ::=
    +    BinaryLiteral
    +  | DecimalLiteral
    +  | HexadecimalLiteral
    +  | OctalLiteral
    +
    +BinaryLiteral ::=
    +    0b BinaryDigitOrUnderscore* BinaryDigit BinaryDigitOrUnderscore*
    +
    +BinaryDigitOrUnderscore ::=
    +    BinaryDigit
    +  | _
    +
    +BinaryDigit ::=
    +    [0-1]
    +
    +DecimalLiteral ::=
    +    DecimalDigit DecimalDigitOrUnderscore*
    +
    +DecimalDigitOrUnderscore ::=
    +    DecimalDigit
    +  | _
    +
    +DecimalDigit ::=
    +    [0-9]
    +
    +HexadecimalLiteral ::=
    +    0x HexadecimalDigitOrUnderscore* HexadecimalDigit HexadecimalDigitOrUnderscore*
    +
    +HexadecimalDigitOrUnderscore ::=
    +    HexadecimalDigit
    +  | _
    +
    +HexadecimalDigit ::=
    +    [0-9 a-f A-F]
    +
    +OctalLiteral ::=
    +    0o OctalDigitOrUnderscore* OctalDigit OctalDigitOrUnderscore*
    +
    +OctalDigitOrUnderscore ::=
    +    OctalDigit
    +  | _
    +
    +OctalDigit ::=
    +    [0-7]
    +
    +IntegerSuffix ::=
    +    SignedIntegerSuffix
    +  | UnsignedIntegerSuffix
    +
    +SignedIntegerSuffix ::=
    +    i8
    +  | i16
    +  | i32
    +  | i64
    +  | i128
    +  | isize
    +
    +UnsignedIntegerSuffix ::=
    +    u8
    +  | u16
    +  | u32
    +  | u64
    +  | u128
    +  | usize
    +

    Legality Rules

    +

    2.4.3.1:1 +An integer literal is a numeric literal that denotes a whole number.

    +

    2.4.3.1:2 +A binary literal is an integer literal in base 2.

    +

    2.4.3.1:3 +A decimal literal is an integer literal in base 10.

    +

    2.4.3.1:4 +A hexadecimal literal is an integer literal in base 16.

    +

    2.4.3.1:5 +An octal literal is an integer literal in base 8.

    +

    2.4.3.1:6 +An integer suffix is a component of an integer literal that specifies +an explicit integer type.

    +

    2.4.3.1:7 +A suffixed integer is an integer literal with an integer suffix.

    +

    2.4.3.1:8 +An unsuffixed integer is an integer literal without an integer +suffix.

    +

    2.4.3.1:9 +The type of a suffixed integer is determined by its integer +suffix as follows:

    +
      +
    • 2.4.3.1:10 +Suffix i8 specifies type i8.

    • +
    • 2.4.3.1:11 +Suffix i16 specifies type i16.

    • +
    • 2.4.3.1:12 +Suffix i32 specifies type i32.

    • +
    • 2.4.3.1:13 +Suffix i64 specifies type i64.

    • +
    • 2.4.3.1:14 +Suffix i128 specifies type i128.

    • +
    • 2.4.3.1:15 +Suffix isize specifies type isize.

    • +
    • 2.4.3.1:16 +Suffix u8 specifies type u8.

    • +
    • 2.4.3.1:17 +Suffix u16 specifies type u16.

    • +
    • 2.4.3.1:18 +Suffix u32 specifies type u32.

    • +
    • 2.4.3.1:19 +Suffix u64 specifies type u64.

    • +
    • 2.4.3.1:20 +Suffix u128 specifies type u128.

    • +
    • 2.4.3.1:21 +Suffix usize specifies type usize.

    • +
    +

    2.4.3.1:22 +The type of an unsuffixed integer is determined by type inference +as follows:

    +
      +
    • 2.4.3.1:23 +If an integer type can be uniquely determined from the surrounding +program context, then the unsuffixed integer has that type.

    • +
    • 2.4.3.1:24 +If the program context under-constrains the type, then the inferred +type is i32.

    • +
    • 2.4.3.1:25 +If the program context over-constrains the type, then this is considered +a static error.

    • +
    +

    Examples

    +
    0b0010_1110_u8
    +1___2_3
    +0x4D8a
    +0o77_52i128
    +
    +
    +
    +
    +

    2.4.3.2. Float Literals

    +

    Syntax

    +
    FloatLiteral ::=
    +    DecimalLiteral .
    +  | DecimalLiteral FloatExponent
    +  | DecimalLiteral . DecimalLiteral FloatExponent?
    +  | DecimalLiteral (. DecimalLiteral)? FloatExponent? FloatSuffix
    +
    +FloatExponent ::=
    +    ExponentLetter ExponentSign? ExponentMagnitude
    +
    +ExponentLetter ::=
    +    e
    +  | E
    +
    +ExponentSign ::=
    +    +
    +  | -
    +
    +ExponentMagnitude ::=
    +    DecimalDigitOrUnderscore* DecimalDigit DecimalDigitOrUnderscore*
    +
    +FloatSuffix ::=
    +    f32
    +  | f64
    +

    Legality Rules

    +

    2.4.3.2:1 +A float literal is a numeric literal that denotes a fractional number.

    +

    2.4.3.2:2 +A float suffix is a component of a float literal that specifies an +explicit floating-point type.

    +

    2.4.3.2:3 +A suffixed float is a float literal with a float suffix.

    +

    2.4.3.2:4 +An unsuffixed float is a float literal without a float suffix.

    +

    2.4.3.2:5 +The type of a suffixed float is determined by the float suffix +as follows:

    +
      +
    • 2.4.3.2:6 +Suffix f32 specifies type f32.

    • +
    • 2.4.3.2:7 +Suffix f64 specifies type f64.

    • +
    +

    2.4.3.2:8 +The type of an unsuffixed float is determined by type inference +as follows:

    +
      +
    • 2.4.3.2:9 +If a floating-point type can be uniquely determined from the surrounding +program context, then the unsuffixed float has that type.

    • +
    • 2.4.3.2:10 +If the program context under-constrains the type, then the inferred +type is f64.

    • +
    • 2.4.3.2:11 +If the program context over-constrains the type, then this is considered +a static error.

    • +
    +

    Examples

    +
    45.
    +8E+1_820
    +3.14e5
    +8_031.4_e-12f64
    +
    +
    +
    +
    +
    +

    2.4.4. Character Literals

    +

    Syntax

    +
    CharacterLiteral ::=
    +    ' CharacterContent '
    +
    +CharacterContent ::=
    +    AsciiEscape
    +  | CharacterLiteralCharacter
    +  | UnicodeEscape
    +
    +AsciiEscape ::=
    +  | \0
    +  | \"
    +  | \'
    +  | \t
    +  | \n
    +  | \r
    +  | \\
    +  | \x OctalDigit HexadecimalDigit
    +

    2.4.4:1 +A CharacterLiteralCharacter is any Unicode character except +characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5c (reverse solidus).

    +

    2.4.4:2 +A UnicodeEscape starts with a \u{ literal, followed by 1 to 6 +instances of a HexadecimalDigit, inclusive, followed by a } character. +It can represent any Unicode codepoint between U+00000 and U+10FFFF, +inclusive, except Unicode surrogate codepoints, which exist between +the range of U+D800 and U+DFFF, inclusive.

    +

    Legality Rules

    +

    2.4.4:3 +A character literal is a literal that denotes a fixed Unicode +character.

    +

    2.4.4:4 +The type of a character literal is char.

    +

    Examples

    +
    'a'
    +'\t'
    +'\x1b'
    +'\u{1F30}'
    +
    +
    +
    +
    +

    2.4.5. String Literals

    +

    Syntax

    +
    StringLiteral ::=
    +    RawStringLiteral
    +  | SimpleStringLiteral
    +

    Legality Rules

    +

    2.4.5:1 +A string literal is a literal that consists of multiple characters.

    +

    2.4.5:2 +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a string literal.

    +
    +

    2.4.5.1. Simple String Literals

    +

    Syntax

    +
    SimpleStringLiteral ::=
    +    " SimpleStringContent* "
    +
    +SimpleStringContent ::=
    +    AsciiEscape
    +  | SimpleStringCharacter
    +  | StringContinuation
    +  | UnicodeEscape
    +

    2.4.5.1:1 +A SimpleStringCharacter is any Unicode character except characters +0x0D (carriage return), 0x22 (quotation mark), and 0x5C (reverse solidus).

    +

    2.4.5.1:2 +StringContinuation is the character sequence 0x5C 0x0A (reverse solidus, +new line).

    +

    Legality Rules

    +

    2.4.5.1:3 +A simple string literal is a string literal where the characters are +Unicode characters.

    +

    2.4.5.1:4 +The type of a simple string literal is &'static str.

    +

    Examples

    +
    ""
    +"cat"
    +"\tcol\nrow"
    +"bell\x07"
    +"\uB80a"
    +"\
    +multi\
    +line\
    +string"
    +
    +
    +
    +
    +

    2.4.5.2. Raw String Literals

    +

    Syntax

    +
    RawStringLiteral ::=
    +    r RawStringContent
    +
    +RawStringContent ::=
    +    NestedRawStringContent
    +  | " ~[\r]* "
    +
    +NestedRawStringContent ::=
    +    # RawStringContent #
    +

    Legality Rules

    +

    2.4.5.2:1 +A raw string literal is a simple string literal that does not +recognize escaped characters.

    +

    2.4.5.2:2 +The type of a raw string literal is &'static str.

    +

    Examples

    +
    r""
    +r#""#
    +r##"left #"# right"##
    +
    +
    +
    +
    +
    +

    2.4.6. Boolean Literals

    +

    Syntax

    +
    BooleanLiteral ::=
    +    false
    +  | true
    +

    Legality Rules

    +

    2.4.6:1 +A boolean literal is a literal that denotes the truth values of +logic and Boolean algebra.

    +

    2.4.6:2 +The type of a boolean literal is bool.

    +

    Examples

    +
    true
    +
    +
    +
    +
    +
    +

    2.5. Comments

    +

    Syntax

    +
    Comment ::=
    +    BlockCommentOrDoc
    +  | LineCommentOrDoc
    +
    +BlockCommentOrDoc ::=
    +    BlockComment
    +  | InnerBlockDoc
    +  | OuterBlockDoc
    +
    +LineCommentOrDoc ::=
    +    LineComment
    +  | InnerLineDoc
    +  | OuterLineDoc
    +
    +LineComment ::=
    +    //
    +  | // (~[! /] | //) ~[\n]*
    +
    +BlockComment ::=
    +    /* (~[! *] | ** | BlockCommentOrDoc) (BlockCommentOrDoc | ~[*/])* */
    +  | /**/
    +  | /***/
    +
    +InnerBlockDoc ::=
    +    /*! (BlockCommentOrDoc | ~[*/ \r])* */
    +
    +InnerLineDoc ::=
    +    //! ~[\n \r]*
    +
    +OuterBlockDoc ::=
    +    /** (~[*] | BlockCommentOrDoc) (BlockCommentOrDoc | ~[*/ \r])* */
    +
    +OuterLineDoc ::=
    +    /// (~[/] ~[\n \r]*)?
    +

    Legality Rules

    +

    2.5:1 +A comment is a lexical element that acts as an annotation or an +explanation in program text.

    +

    2.5:2 +A block comment is a comment that spans one or more lines.

    +

    2.5:3 +A line comment is a comment that spans exactly one line.

    +

    2.5:4 +An inner block doc is a block comment that applies to an enclosing +non-comment construct.

    +

    2.5:5 +An inner line doc is a line comment that applies to an enclosing +non-comment construct.

    +

    2.5:6 +An inner doc comment is either an inner block doc or an +inner line doc.

    +

    2.5:7 +An outer block doc is a block comment that applies to a subsequent +non-comment construct.

    +

    2.5:8 +An outer line doc is a line comment that applies to a subsequent +non-comment construct.

    +

    2.5:9 +An outer doc comment is either an outer block doc or an +outer line doc.

    +

    2.5:10 +A doc comment is a comment class that includes inner block +docs, inner line docs, outer block docs, and outer line +docs.

    +

    2.5:11 +Character 0x0D (carriage return) shall not appear in a comment.

    +

    2.5:12 +Block comments, inner block docs, and outer block docs +shall extend one or more lines.

    +

    2.5:13 +Line comments, inner line docs, and outer line docs shall +extend exactly one line.

    +

    2.5:14 +Outer block docs and outer line docs shall apply to a subsequent +non-comment construct.

    +

    2.5:15 +Inner block docs and inner line docs shall apply to an enclosing +non-comment construct.

    +

    2.5:16 +Inner block docs and inner line docs are equivalent to +attribute doc of the form #![doc = content], where content +is a string literal form of the comment without the leading //!, +/*! amd trailing */ characters.

    +

    2.5:17 +Outer block docs and outer line docs are equivalent to +attribute doc of the form #[doc = content], where content +is a string literal form of the comment without the leading ///, +/** and trailing */ characters.

    +

    Examples

    +
    // This is a stand-alone line comment. So is the next line.
    +
    +////
    +
    +/* This is a stand-alone
    +   block comment. */
    +
    +/*
    +  /* This is a nested block comment */
    +*/
    +
    +/// This outer line comment applies to commented_module.
    +
    +/** This outer block comment applies to commented_module,
    +    and is considered documentation. */
    +
    +pub mod commented_module {
    +
    +    //! This inner line comment applies to commented_mode.
    +
    +    /*! This inner block comment applies to commented_module,
    +        and is considered documentation. */
    +}
    +
    +
    +
    +
    +

    2.6. Keywords

    +

    Syntax

    +
    Keyword ::=
    +    ReservedKeyword
    +  | StrictKeyword
    +  | WeakKeyword
    +

    Legality Rules

    +

    2.6:1 +A keyword is a word in program text that has special meaning.

    +

    2.6:2 +Keywords are case sensitive.

    +
    +

    2.6.1. Strict Keywords

    +

    Syntax

    +
    StrictKeyword ::=
    +    as
    +  | async
    +  | await
    +  | break
    +  | const
    +  | continue
    +  | crate
    +  | dyn
    +  | enum
    +  | extern
    +  | false
    +  | fn
    +  | for
    +  | if
    +  | impl
    +  | in
    +  | let
    +  | loop
    +  | match
    +  | mod
    +  | move
    +  | mut
    +  | pub
    +  | ref
    +  | return
    +  | self
    +  | Self
    +  | static
    +  | struct
    +  | super
    +  | trait
    +  | true
    +  | type
    +  | unsafe
    +  | use
    +  | where
    +  | while
    +

    Legality Rules

    +

    2.6.1:1 +A strict keyword is a keyword that always holds its special meaning.

    +
    +
    +

    2.6.2. Reserved Keywords

    +

    Syntax

    +
    ReservedKeyword ::=
    +    abstract
    +  | become
    +  | box
    +  | do
    +  | final
    +  | macro
    +  | override
    +  | priv
    +  | try
    +  | typeof
    +  | unsized
    +  | virtual
    +  | yield
    +

    Legality Rules

    +

    2.6.2:1 +A reserved keyword is a keyword that is not yet in use.

    +
    +
    +

    2.6.3. Weak Keywords

    +

    Syntax

    +
    WeakKeyword ::=
    +    macro_rules
    +  | 'static
    +  | union
    +

    Legality Rules

    +

    2.6.3:1 +A weak keyword is a keyword whose special meaning depends on the +context.

    +

    2.6.3:2 +Word macro_rules acts as a keyword only when used in the context of a +MacroRulesDefinition.

    +

    2.6.3:3 +Word 'static acts as a keyword only when used in the context of a +LifetimeIndication.

    +

    2.6.3:4 +Word union acts as a keyword only when used in the context of a +UnionDeclaration.

    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/licenses.html b/licenses.html new file mode 100644 index 00000000..145917ca --- /dev/null +++ b/licenses.html @@ -0,0 +1,351 @@ + + + + + + + + + + + + A. Licenses — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    A. Licenses

    + +
    +

    A.2. Rust Reference Apache License

    +

    A.2:1 +Apache License

    +

    A.2:2 +Version 2.0, January 2004

    +

    A.2:3 +http://www.apache.org/licenses/

    +

    A.2:4 +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

    +

    A.2:5 +1. Definitions.

    +

    A.2:6 +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document.

    +

    A.2:7 +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License.

    +

    A.2:8 +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity.

    +

    A.2:9 +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License.

    +

    A.2:10 +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files.

    +

    A.2:11 +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types.

    +

    A.2:12 +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below).

    +

    A.2:13 +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof.

    +

    A.2:14 +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in the +Work by the copyright owner or by an individual or Legal Entity authorized to +submit on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.”

    +

    A.2:15 +“Contributor” shall mean Licensor and any individual or Legal Entity on +behalf of whom a contribution has been received by Licensor and subsequently +incorporated within the Work.

    +

    A.2:16 +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form.

    +

    A.2:17 +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those patent +claims licensable by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) with the +Work to which such Contribution(s) was submitted. If You institute patent +litigation against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that the Work or a Contribution incorporated within the Work +constitutes direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of the date +such litigation is filed.

    +

    A.2:18 +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and in +Source or Object form, provided that You meet the following conditions:

    +

    A.2:19 +(a) You must give any other recipients of the Work or Derivative Works a copy of +this License; and

    +

    A.2:20 +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and

    +

    A.2:21 +(c) You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from the +Source form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and

    +

    A.2:22 +(d) If the Work includes a “NOTICE” text file as part of its distribution, then +any Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of +the following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed as +modifying the License.

    +

    A.2:23 +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License.

    +

    A.2:24 +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you may have +executed with Licensor regarding such Contributions.

    +

    A.2:25 +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file.

    +

    A.2:26 +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License.

    +

    A.2:27 +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including any +direct, indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of such +damages.

    +

    A.2:28 +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You agree to +indemnify, defend, and hold each Contributor harmless for any liability incurred +by, or claims asserted against, such Contributor by reason of your accepting any +such warranty or additional liability.

    +

    A.2:29 +END OF TERMS AND CONDITIONS

    +

    A.2:30 +APPENDIX: How to apply the Apache License to your work.

    +

    A.2:31 +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets “[]” replaced with your own +identifying information. (Don’t include the brackets!) The text should +be enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same “printed page” as the copyright notice for easier identification within +third-party archives.

    +

    A.2:32 +Copyright [yyyy] [name of copyright owner]

    +

    A.2:33 +Licensed under the Apache License, Version 2.0 (the “License”);

    +

    A.2:34 +you may not use this file except in compliance with the License.

    +

    A.2:35 +You may obtain a copy of the License at

    +

    A.2:36 +http://www.apache.org/licenses/LICENSE-2.0

    +

    A.2:37 +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License.

    +
    +
    +

    A.3. Rust Reference MIT License

    +

    A.3:1 +Copyright (c) 2010 The Rust Project Developers

    +

    A.3:2 +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions:

    +

    A.3:3 +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

    +

    A.3:4 +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/macros.html b/macros.html new file mode 100644 index 00000000..91eac32a --- /dev/null +++ b/macros.html @@ -0,0 +1,991 @@ + + + + + + + + + + + + 20. Macros — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    20. Macros

    +

    Legality Rules

    +

    20:1 +A macro is a custom definition that extends Rust by defining callable +syntactic transformations. The effects of a macro are realized through +macro invocations or attribute use. Macros come in two +distinct forms:

    + +

    20:4 +Tokens are a subset of lexical elements consumed by macros.

    +
    +

    20.1. Declarative Macros

    +

    Syntax

    +
    MacroRulesDeclaration ::=
    +    macro_rules ! Name MacroRulesDefinition
    +
    +MacroRulesDefinition ::=
    +    ( MacroRuleList ) ;
    +  | [ MacroRuleList ] ;
    +  | { MacroRuleList }
    +
    +MacroRuleList ::=
    +    MacroRule (; MacroRule)* ;?
    +
    +MacroRule ::=
    +    MacroMatcher => MacroTranscriber
    +
    +MacroMatcher ::=
    +    ( MacroMatch* )
    +  | [ MacroMatch* ]
    +  | { MacroMatch* }
    +
    +MacroTranscriber ::=
    +    DelimitedTokenTree
    +
    +MacroMatch ::=
    +    MacroMatcher
    +  | MacroMatchToken
    +  | MacroMetavariableMatch
    +  | MacroRepetitionMatch
    +

    20.1:1 +A MacroMatchToken is any lexical element in category +LexicalElement, except punctuation $ and category Delimiter.

    +

    Legality Rules

    +

    20.1:2 +A declarative macro is a macro that associates a name with a set +of syntactic transformation macro rules.

    +

    20.1:3 +A macro rule is a construct that consists of a macro matcher and +a macro transcriber.

    +

    20.1:4 +A macro matcher is a construct that describes a syntactic pattern that +a macro must match.

    +

    20.1:5 +A macro match is the most basic form of a satisfied macro matcher.

    +

    20.1:6 +A macro transcriber is a construct that describes the replacement +syntax of a macro.

    +

    20.1:7 +A declarative macro is invoked using a macro invocation.

    +

    Examples

    +
    macro_rules! answer_to_life {
    +    () => { 42 };
    +}
    +
    +
    +
    +

    20.1.1. Metavariables

    +

    Syntax

    +
    MacroMetavariableMatch ::=
    +    $ MacroMetavariable : MacroFragmentSpecifier
    +
    +MacroMetavariable ::=
    +    Keyword
    +  | NonKeywordIdentifier
    +
    +MacroFragmentSpecifier ::=
    +    block
    +  | expr
    +  | ident
    +  | item
    +  | lifetime
    +  | literal
    +  | meta
    +  | pat
    +  | pat_param
    +  | path
    +  | stmt
    +  | tt
    +  | ty
    +  | vis
    +
    +MacroMetavariableIndication ::=
    +    $ MacroMetavariable
    +

    Legality Rules

    +

    20.1.1:1 +Declarative macros employ metavariables to match a token of +a particular kind and bind its value to a name for use during +macro transcription.

    +

    20.1.1:2 +A metavariable is a macro match that describes a variable.

    +

    20.1.1:3 +A metavariable is visible in the macro transcriber of the +macro rule of the macro matcher it is declared in.

    +

    20.1.1:4 +A fragment specifier is a construct that indicates the type of +a metavariable.

    +

    20.1.1:5 +Fragment specifier kinds impose the following +fragment specifier restrictions on the tokens that follow them:

    +
      +
    • 20.1.1:6 +expr shall only be followed by =>, ,, or ;.

    • +
    • 20.1.1:7 +pat shall only be followed by =>, ,, =, |, if, or +in.

    • +
    • 20.1.1:8 +path shall only be followed by =>, ,, =, |, ;, :, +>, >>, [, {, as, where, or a metavariable with +the block fragment specifier kind.

    • +
    • 20.1.1:9 +pat_param shall only be followed by =>, ,, =, |, if, +or in.

    • +
    • 20.1.1:10 +stmt shall only be followed by =>, ,, or ;.

    • +
    • 20.1.1:11 +ty shall only be followed by =>, ,, =, |, ;, :, +>, >>, [, {, as, where, or a metavariable with +the block fragment specifier kind.

    • +
    • 20.1.1:12 +vis shall only be followed by ,, an identifier except for +priv, any token that may begin a TypeSpecification, or a +metavariable with the ident, ty or block +fragment specifier kind.

    • +
    • 20.1.1:13 +Any other kind may be followed by any token.

    • +
    +

    20.1.1:14 +A metavariable indication is a construct that indicates a +metavariable.

    +

    Examples

    +
    macro_rules! square {
    +    ($e:expr) => { $e * $e };
    +}
    +
    +
    +
    +
    +

    20.1.2. Repetition

    +

    Syntax

    +
    MacroRepetitionMatch ::=
    +    $ ( MacroRepetitionMatchContent ) MacroRepetitionSeparator? MacroRepetitionOperator
    +
    +MacroRepetitionMatchContent ::=
    +    MacroMatch*
    +
    +MacroRepetitionTranscriber ::=
    +    $ ( TokenTree* ) MacroRepetitionSeparator? MacroRepetitionOperator
    +
    +MacroRepetitionOperator ::=
    +    +
    +  | *
    +  | ?
    +

    20.1.2:1 +A MacroRepetitionSeparator is any lexical element in category +LexicalElement, except punctuation +, *, ?, and category +Delimiter.

    +

    Legality Rules

    +

    20.1.2:2 +A macro repetition in matching allows for a syntactic pattern to be matched +zero or multiple times during macro matching.

    +

    20.1.2:3 +A macro repetition in transcription allows for a syntactic pattern to be +transcribed zero or multiple times during macro transcription.

    +

    20.1.2:4 +A macro repetition is either a macro repetition in matching or a +macro repetition in transcription.

    +

    20.1.2:5 +A repetition operator is a construct that indicates the number +of times a macro repetition in matching or a +macro repetition in transcription can be repeated.

    +

    20.1.2:6 +The effects of a repetition operator are as follows:

    +
      +
    • 20.1.2:7 +* - Zero or more repetitions.

    • +
    • 20.1.2:8 ++ - One or more repetitions.

    • +
    • 20.1.2:9 +? - Zero or one repetition.

    • +
    +

    20.1.2:10 +A macro repetition has the following additional restrictions:

    + +

    Examples

    +
    macro_rules! generate_pairs {
    +    ( $( $first:ident )* ; $( &second:ident )* )
    +        =>
    +    { $( $first, $second )* };
    +}
    +
    +
    +
    +
    +
    +

    20.2. Procedural Macros

    +

    Legality Rules

    +

    20.2:1 +A procedural macro is a macro that encapsulates syntactic +transformations in a function. Procedural macros consume one or more +streams of tokens and produce a stream of tokens.

    +

    20.2:2 +Procedural macros shall be defined in a crate subject to +attribute crate_type where the type is proc-macro.

    +

    20.2:3 +A macro implementation function is the function that encapsulates the +syntactic transformations of a procedural macro.

    +

    20.2:4 +A macro implementation function enters the name of the +procedural macro into the macro namespace.

    +
    +

    20.2.1. Function-like Macros

    +

    Legality Rules

    +

    20.2.1:1 +A function-like macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens.

    +

    20.2.1:2 +The macro implementation function of a function-like macro shall be +subject to the following restrictions:

    + +

    20.2.1:9 +A function-like macro is invoked using a macro invocation.

    +

    20.2.1:10 +The sole parameter of the macro implementation function captures the +token stream produced from the DelimitedTokenTree of the +macro invocation, excluding outer Delimiters.

    +

    Examples

    +
    #[proc_macro]
    +pub fn make_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    20.2.2. Derive Macros

    +

    Legality Rules

    +

    20.2.2:1 +A derive macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens. Derive macros are +used to construct new syntax for abstract data types.

    +

    20.2.2:2 +The macro implementation function of a derive macro shall be subject +to the following restrictions:

    + +

    20.2.2:9 +A derive macro is invoked using attribute derive.

    +

    20.2.2:10 +The sole parameter of the macro implementation function captures +the token stream produced from the related EnumDeclaration, +StructDeclaration, or UnionDeclaration.

    +

    20.2.2:11 +A derive macro adds all its declared derive helper attributes into +the derive helper attribute scope of the abstract data type the +attribute is attached to.

    +

    20.2.2:12 +A derive helper attribute is an inert attribute that acts as a +hint to attribute derive.

    +

    Examples

    +
    #[proc_macro_derive(Answer)]
    +pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    20.2.3. Attribute Macros

    +

    Legality Rules

    +

    20.2.3:1 +An attribute macro is a procedural macro that consumes two streams +of tokens to produce a single stream of tokens, and defines a +new outer attribute that can be attached to items. +Attribute macros are used to replace items with other +items.

    +

    20.2.3:2 +The macro implementation function of an attribute macro shall be +subject to the following restrictions:

    + +

    20.2.3:9 +An attribute macro is invoked using an attribute of the form

    +
      +
    • 20.2.3:10 +#[SimplePath], or

    • +
    • 20.2.3:11 +#[SimplePath DelimitedTokenTree]

    • +
    +

    20.2.3:12 +The first function parameter of the macro implementation function +captures the token stream produced from the DelimitedTokenTree +of the invoking attribute, excluding outer Delimiters. If no +DelimitedTokenTree is provided, then the token stream is considered +empty.

    +

    20.2.3:13 +The second function parameter of the macro implementation function +captures the token stream produced from the related item, including +all outer attributes that apply to that item.

    +

    Examples

    +
    #[proc_macro_attribute]
    +pub fn output_and_return_item
    +    (attr: TokenStream, item: TokenStream) -> TokenStream
    +{
    +    println!("attr: \"{}\"", attr.to_string());
    +    println!("item: \"{}\"", item.to_string());
    +    item
    +}
    +
    +
    +
    +
    +
    +

    20.3. Macro Invocation

    +

    Syntax

    +
    MacroInvocation ::=
    +    SimplePath ! DelimitedTokenTree
    +
    +DelimitedTokenTree ::=
    +    ( TokenTree* )
    +  | [ TokenTree* ]
    +  | { TokenTree* }
    +
    +TokenTree ::=
    +    DelimitedTokenTree
    +  | NonDelimitedToken
    +
    +TerminatedMacroInvocation ::=
    +    SimplePath ! ( TokenTree* ) ;
    +  | SimplePath ! [ TokenTree* ] ;
    +  | SimplePath ! { TokenTree* }
    +

    20.3:1 +A NonDelimitedToken is any lexical element in category +LexicalElement, except category Delimiter.

    +

    Legality Rules

    +

    20.3:2 +A macro invocation is a call of a declarative macro or +function-like macro that is expanded statically and replaced with the +result of the macro.

    +

    20.3:3 +A terminated macro invocation is a macro invocation that may be used +as a statement.

    +

    Examples

    +

    20.3:4 +See Paragraph 20.1. for the declaration of answer_to_life.

    +
    answer_to_life!();
    +
    +
    +

    20.3:5 +See Paragraph 20.1.1. for the declaration of square.

    +
    square!(5);
    +
    +
    +

    20.3:6 +See Paragraph 20.1.2. for the declaration of generate_pairs.

    +
    generate_pairs!(1, 2, 3; 9, 8, 7);
    +
    +
    +

    20.3:7 +See Paragraph 20.2.1. for the declaration of +make_answer_to_life.

    +
    make_answer_to_life!();
    +
    +
    +

    20.3:8 +See Paragraph 20.2.2. for the declaration of Answer.

    +
    #[derive(Answer)]
    +struct derive_macro_invoker;
    +
    +
    +

    20.3:9 +See Paragraph 20.2.3. for the declaration of +output_and_return_item.

    +
    #[output_and_return_item]
    +fn attribute_macro_invoker() {}
    +
    +
    +
    +
    +

    20.4. Macro Expansion

    +

    Legality Rules

    +

    20.4:1 +Macro expansion is the process of statically executing a +macro invocation and replacing it with the produced output of the +macro invocation.

    +

    20.4:2 +Macro expansion of declarative macros proceeds as follows:

    +
      +
    1. 20.4:3 +The TokenTree of the macro invocation has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    2. +
    3. 20.4:4 +The TokenTree of the macro invocation is matched against the +macro rules of the resolved macro by considering individual +macro matchers. It is a static error if no macro matcher is +satisfied.

    4. +
    5. 20.4:5 +The macro transcriber of the satisfied macro rule produces its +result, with all metavariable indications resolved. It is a static +error if the macro transcriber fails to produce its result.

    6. +
    7. 20.4:6 +The macro invocation is replaced with the result of the +macro transcriber. It is a static error if the result cannot be parsed +according to the expected expansion syntax of the context where the +macro invocation resides. The expected expansion syntax is as follows:

      +
        +
      1. 20.4:7 +If the macro invocation appears as part of an associated item, +an item within an external block, or another +macro invocation, the output is required to constitute zero or more +items.

      2. +
      3. 20.4:8 +If the macro invocation appears as part of an +expression-without-block, the output is required to constitute an +expression.

      4. +
      5. 20.4:9 +If the macro invocation appears as part of a +pattern-without-range, the output is required to constitute zero or +more patterns.

      6. +
      7. 20.4:10 +If the macro invocation appears as part of a statement, the +output is required to constitute zero or more statements.

      8. +
      9. 20.4:11 +If the macro invocation appears as part of a +type specification without bounds, the output is required to +constitute a type.

      10. +
      +
    8. +
    +

    20.4:12 +Macro expansion of function-like macros proceeds as follows:

    +
      +
    1. 20.4:13 +The TokenTree of the macro invocation has all outer block +docs and outer line docs contained within replaced by their +equivalent attribute doc representation.

    2. +
    3. 20.4:14 +The TokenTree of the macro invocation is transformed into a +corresponding proc_macro::TokenStream.

    4. +
    5. 20.4:15 +The macro implementation function is called with the +proc_macro::TokenStream as its sole argument. It is a static error +if the macro implementation function call fails.

    6. +
    7. 20.4:16 +The macro invocation is replaced with the returned +proc_macro::TokenStream of the macro implementation function +call. It is a static error if the result can not be parsed according +to the expected expansion syntax of the context where the macro +invocation resides. The expected expansion syntax is as follows:

      +
        +
      1. 20.4:17 +If the macro invocation appears as part of an associated item, +an item within an external block, or another +macro invocation, the output is required to constitute zero or more +items.

      2. +
      3. 20.4:18 +If the macro invocation appears as part of an +expression-without-block, the output is required to constitute an +expression.

      4. +
      5. 20.4:19 +If the macro invocation appears as part of a +pattern-without-range, the output is required to constitute zero or +more patterns.

      6. +
      7. 20.4:20 +If the macro invocation appears as part of a statement, the +output is required to constitute zero or more statements.

      8. +
      9. 20.4:21 +If the macro invocation appears as part of a +type specification without bounds, the output is required to +constitute a type.

      10. +
      +
    8. +
    +

    20.4:22 +Macro expansion of derive macros proceeds as follows:

    +
      +
    1. 20.4:23 +The item subject to the derive macro has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    2. +
    3. 20.4:24 +The item subject to the derive macro is transformed into a +corresponding proc_macro::TokenStream without the +invoking derive attribute as well as any preceding derive +attributes.

    4. +
    5. 20.4:25 +The macro implementation function is called with the +proc_macro::TokenStream as its sole argument. It is a static error +if the macro implementation function call fails.

    6. +
    7. 20.4:26 +The returned proc_macro::TokenStream of the +macro implementation function call is appended to the enclosing +block expression or module where the related EnumDeclaration, +StructDeclaration, or UnionDeclaration resides. It is a static +error if the output proc_macro::TokenStream does not constitute zero +or more items.

    8. +
    +

    20.4:27 +Macro expansion of attribute macros proceeds as follows:

    +
      +
    1. 20.4:28 +The DelimitedTokenTree of the invoking attribute macro is +transformed into a corresponding proc_macro::TokenStream without +the outer Delimiters. If no DelimitedTokenTree is provided, +and empty proc_macro::TokenStream is used. This +proc_macro::TokenStream constitutes the first function parameter +of the macro implementation function.

    2. +
    3. 20.4:29 +The item subject to the attribute macro has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    4. +
    5. 20.4:30 +The item subject to the attribute macro is transformed into a +corresponding proc_macro::TokenStream without the invoking +attribute. This proc_macro::TokenStream constitutes the second +function parameter of the macro implementation function.

    6. +
    7. 20.4:31 +The macro implementation function is called with the two +proc_macro::TokenStreams as the two arguments. It is a static error +if the macro implementation function call fails.

    8. +
    9. 20.4:32 +The item subject to the attribute macro is replaced with the +returned proc_macro::TokenStream of the +macro implementation function call. It is a static error if the output +proc_macro::TokenStream does not constitute zero or more items.

    10. +
    +
    +

    20.4.1. Macro Matching

    +

    Legality Rules

    +

    20.4.1:1 +Macro matching is the process of performing rule matching and +token matching.

    +
    +

    20.4.1.1. Rule Matching

    +

    Legality Rules

    +

    20.4.1.1:1 +Rule matching is the process of consuming a TokenTree in an attempt +to fully satisfy the macro matcher of a macro rule that belongs to a +resolved declarative macro.

    +

    20.4.1.1:2 +Rule matching proceeds as follows:

    +
      +
    1. 20.4.1.1:3 +The macro matchers of all macro rules that belong to a resolved +macro are tried against the TokenTree of the macro invocation, +in declarative order. In the event of a static error, no further attempts at +selecting a subsequent macro matcher are made.

    2. +
    3. 20.4.1.1:4 +The macro match of a candidate macro matcher is tried against +the TokenTree of the macro invocation by matching individual +tokens, in left-to-right order. Matching does not employ lookahead. +It is a static error if matching a candidate macro matcher is ambiguous. +Matching does not employ backtracking. It is a static error if matching a +candidate macro matcher fails while parsing into a metavariable and +having consumed at least one token while parsing the metavariable.

    4. +
    5. 20.4.1.1:5 +It is a static error if no macro matcher is selected.

    6. +
    +
    +
    +

    20.4.1.2. Token Matching

    +

    Legality Rules

    +

    20.4.1.2:1 +Token matching is the process of consuming a TokenTree in an attempt +to fully satisfy a macro match of a selected macro matcher that +belongs to a resolved declarative macro.

    +

    20.4.1.2:2 +Token matching proceeds as follows:

    +

    20.4.1.2:3 +The outer Delimiters of a macro matcher match any outer +Delimiters in the macro invocation.

    +

    20.4.1.2:4 +A metavariable in a macro matcher is matched against a sequence of +tokens in the macro invocation based on its fragment specifier:

    + +

    20.4.1.2:19 +Once a metavariable is matched, the matching sequence of tokens is +bound to that metavariable.

    +

    20.4.1.2:20 +Repetition in a macro matcher is matched based on how many times the +pattern appears consecutively optionally separated by a separator in +the TokenTree of the macro invocation, as follows:

    +
      +
    • 20.4.1.2:21 +If the repeated pattern includes a separator, then the +separator must be able to follow the repeated pattern.

    • +
    • 20.4.1.2:22 +If the repeated pattern can appear multiple times, then the repeated +pattern must be able to follow itself.

    • +
    • 20.4.1.2:23 +If the repeated pattern can appear zero times, then the preceding +pattern must be able to follow the succeeding pattern.

    • +
    • 20.4.1.2:24 +The repeated pattern must be able to follow the preceding pattern.

    • +
    • 20.4.1.2:25 +The succeeding pattern must be able to follow the repeated pattern.

    • +
    +

    20.4.1.2:26 +A repetition index is a monotonically increasing number that is +initialized to zero, and incremented by one.

    +

    20.4.1.2:27 +Once a metavariable is matched, the matching sequence of tokens is +treated as follows:

    +
      +
    1. 20.4.1.2:28 +The matching sequence of tokens is stored in an ordered collection at +the current repetition index.

    2. +
    3. 20.4.1.2:29 +The current repetition index is incremented by one.

    4. +
    +

    20.4.1.2:30 +Each matched metavariable in a macro repetition in matching is bound +separately, where the matches are stored in an ordered collection.

    +

    20.4.1.2:31 +Any other token in a macro matcher is matched literally against the +TokenTree of the macro invocation.

    +

    20.4.1.2:32 +It is a static error if the TokenTree of the macro invocation contains +leftover tokens after macro matching.

    +
    +
    +
    +

    20.4.2. Macro Transcription

    +

    Legality Rules

    +

    20.4.2:1 +Macro transcription is the process of producing the expansion of a +declarative macro.

    +

    20.4.2:2 +Macro transcription proceeds as follows:

    +

    20.4.2:3 +Every metavariable indication found in the DelimitedTokenTree of the +macro transcriber that belongs to a matched macro rule is replaced by +the matched sequence of tokens of the metavariable.

    +

    20.4.2:4 +Unresolved metavariable indications are kept as tokens in the +output verbatim.

    +

    20.4.2:5 +Every macro repetition in transcription found in the +DelimitedTokenTree of the macro transcriber shall be transcribed by +repeatedly transcribing the tokens inside of it.

    +

    20.4.2:6 +The number of transcription repetitions for a +macro repetition in transcription shall depend on its +repetition operator, as follows:

    + +

    20.4.2:10 +A metavariable indication that is matched inside of a +macro repetition shall not be used outside of a +macro repetition in transcription.

    +

    20.4.2:11 +A metavariable indication shall be used in a +macro repetition in transcription of the same nesting depth as its +corresponding metavariable appears in the macro matcher.

    +

    20.4.2:12 +A metavariable indication within a macro repetition in transcription +shall repeat the same number of times in its matching macro repetition if +the macro repetition occurs at the same nesting depth.

    +

    20.4.2:13 +Multiple transcribed metavariable indications in the same macro +repetition in transcription shall repeat the same number of times.

    +

    20.4.2:14 +When transcribing a metavariable indication in a +macro repetition in transcription, the metavariable indication is +replaced with the matched sequence of tokens of the corresponding +iteration of the repetition metavariable taken from the ordered collection.

    +

    20.4.2:15 +A metavariable indication in a macro repetition in transcription shall +be transcribed to the matched tokens in order, as follows:

    +
    macro_rules! foo {
    +    ( $($expr:expr)* ) => {
    +        $( $expr ; )*
    +        // $expr is an error
    +    };
    +    ( $( $( $expr:expr )*  )*  ) => {
    +        $($($expr)*)*
    +    }
    +}
    +
    +foo! {
    +  0
    +  1
    +  2
    +}
    +
    +
    +

    20.4.2:16 +yields 0;1;2;

    +

    20.4.2:17 +Given a macro invocation with N metavariable arguments, a +macro of the form

    +
    macro_rules! m {
    +    ( $(param: expr)* ) => {
    +        $( $param )*
    +    }
    +}
    +
    +
    +

    20.4.2:18 +is equivalent to a macro of the form

    +
    macro_rules! m {
    +    ( $param_1: expr $param_2: expr ... $param_N: expr) => {
    +        $param_1 $param_2 ... $param_N
    +    }
    +}
    +
    +
    +

    20.4.2:19 +where the metavariable of the macro repetition in matching are +repeated N times, and the metavariable indications of the +macro repetition in transcription are repeated N times. Invoking such +a macro relates the first metavariable argument of the +macro invocation with the first metavariable of the +macro repetition in matching, the second metavariable argument with +the second metavariable, and so on.

    +
    +
    +
    +

    20.5. Hygiene

    +

    20.5:1 +Hygiene is a property of macros and identifiers that appear +within them, which aims to eliminate the syntactic interference between a +macro and its environment.

    +

    Legality Rules

    +

    20.5:2 +Hygiene is categorized as follows:

    + +

    20.5:6 +Every macro has associated hygiene that depends on its kind:

    + +

    20.5:9 +The metavariable $crate in a declarative macro‘s expansion refers +to the crate the declarative macro was declared in.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 00000000..b625d252 Binary files /dev/null and b/objects.inv differ diff --git a/ownership-and-deconstruction.html b/ownership-and-deconstruction.html new file mode 100644 index 00000000..642d87bd --- /dev/null +++ b/ownership-and-deconstruction.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + 15. Ownership and Destruction — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    15. Ownership and Destruction

    +
    +

    15.1. Ownership

    +

    Legality Rules

    +

    15.1:1 +Ownership is a property of values that is central to the resource +management model of Rust.

    +

    15.1:2 +An owner is a variable that holds a value.

    +

    15.1:3 +A value shall have only one owner.

    +
    +
    +

    15.2. Initialization

    +

    Legality Rules

    +

    15.2:1 +Initialization is the act of supplying an initial value to a +variable.

    +

    15.2:2 +When a variable holds a value, the variable is considered to be +initialized.

    +

    15.2:3 +When a variable lacks a value or its value has been +passed by move, the variable is considered +to be uninitialized.

    +

    15.2:4 +A variable shall be initialized before it is accessed.

    +

    Runtime Semantics

    +

    15.2:5 +All memory starts as uninitialized.

    +

    Examples

    +

    15.2:6 +Variable a is initialized.

    +
    let a: i32 = 42;
    +
    +
    +

    15.2:7 +Variable b starts off as uninitialized, but is later initialized by virtue +of the assignment statement.

    +
    let b: i32;
    +b = 42;
    +
    +
    +

    15.2:8 +Variable c starts off initialized, but is later uninitialized by virtue of a +transfer by move.

    +
    use core::sync::atomic::AtomicI32;
    +
    +let c: AtomicI32 = AtomicI32::new(42);
    +let d: AtomicI32 = c;
    +
    +
    +
    +
    +

    15.3. References

    +

    Legality Rules

    +

    15.3:1 +A reference is a value of a reference type. A reference +can be obtained explicitly by using a borrow expression or implicitly in +certain scenarios.

    +

    15.3:2 +A referent is the value pointed-to by a reference.

    +

    15.3:3 +A reference shall point to an initialized referent.

    +

    15.3:4 +The lifetime of a referent shall be at least as long as the +lifetime of its reference.

    +

    15.3:5 +A reference is active from the point of obtaining its referent +upto the last use of the reference, prior to another assignment to the +reference or the end of the scope of the reference.

    +

    15.3:6 +A referent shall not be passed by move while +a reference to it is active.

    +

    15.3:7 +A referent shall not be modified while a reference to it is +active.

    +

    15.3:8 +An immutable reference is a value of a shared reference type, and +prevents the mutation of its referent.

    +

    15.3:9 +A mutable reference is a value of a mutable reference type, and +allows the mutation of its referent.

    +

    15.3:10 +The referent of an immutable reference shall be mutated only when the +type of the referent is subject to interior mutability.

    +

    15.3:11 +While a mutable reference is active, no other reference shall +refer to a value that overlaps with the referent of the +mutable reference.

    +

    Undefined Behavior

    +

    15.3:12 +It is undefined behavior to access a value through aliasing +mutable references from unsafe context.

    +

    Examples

    +
    let immutable_reference: &i32 = &42;
    +let mutable_reference: &mut i32 = &mut 42;
    +
    +
    +
    +
    +

    15.4. Borrowing

    +

    Legality Rules

    +

    15.4:1 +Borrowing is the process of temporarily associating a reference with a +value without transferring ownership permanently.

    +

    15.4:2 +A borrow is a reference produced by borrowing.

    +

    15.4:3 +An implicit borrow is a borrow that is not present syntactically in +program text. An implicit borrow occurs in the following contexts:

    + +

    15.4:11 +An implicit borrow may be an immutable borrow or a mutable borrow +if required.

    +

    15.4:12 +An immutable borrow is an immutable reference produced by +borrowing.

    +

    15.4:13 +A mutable borrow is a mutable reference produced by borrowing.

    +

    15.4:14 +Borrowing a field of a union type borrows all remaining +fields using the same lifetime.

    +

    15.4:15 +Immutably borrowing a value proceeds as follows:

    +
      +
    1. 15.4:16 +??? (this should describe the order of borrowing and when the borrow +is returned)

    2. +
    3. 15.4:17 +An immutable borrow of type &'a T is created, where +lifetime 'a is replaced by a lifetime variable, and +T is replaced by the borrowed type.

    4. +
    5. 15.4:18 +Lifetime inference is performed.

    6. +
    7. 15.4:19 +The immutable borrow is checked against other borrows and +by move passing within the enclosing item.

    8. +
    9. 15.4:20 +An immutable reference to the borrowed value is produced.

    10. +
    11. 15.4:21 +The immutable borrow is released immediately after the last usage of its +related immutable reference.

    12. +
    +

    15.4:22 +Mutably borrowing a value proceeds as follows:

    +
      +
    1. 15.4:23 +A mutable borrow of type &'a mut T is created, where +lifetime 'a is replaced by a lifetime variable, and +T is replaced by the borrowed type.

    2. +
    3. 15.4:24 +Lifetime inference is performed.

    4. +
    5. 15.4:25 +The mutable borrow is checked against other borrows and +by move passing within the enclosing item.

    6. +
    7. 15.4:26 +A mutable reference to the borrowed value is produced.

    8. +
    9. 15.4:27 +The mutable borrow is released immediately after the last usage of its +related mutable reference.

    10. +
    +

    Examples

    +
    let mutable_borrow = &mut 42;
    +let immutable_borrow = &42;
    +
    +
    +
    +
    +

    15.5. Passing Conventions

    +

    Legality Rules

    +

    15.5:1 +A passing convention is the mechanism that defines how a value is +transferred between places.

    +

    15.5:2 +A copy type is a type that implements the core::marker::Copy +trait.

    +

    15.5:3 +A value of a copy type is passed +by copy. Passing by copy does not change the owner of the +value.

    +

    15.5:4 +A move type is a type that implements the core::marker::Sized +trait and is not a copy type.

    +

    15.5:5 +A value of a move type is passed +by move. Passing by move changes the owner of the value.

    +

    15.5:6 +A value of a place expression shall be +passed by move only when it denotes:

    + +

    15.5:10 +A value of a value expression is always +passed by move.

    +

    15.5:11 +A value not subject to by copy or by move passing convention +shall not be passed between places.

    +

    Dynamic Semantics

    +

    15.5:12 +Passing a value by copy from a source owner to a target +owner proceeds as follows:

    +
      +
    1. 15.5:13 +The value of the source owner is copied.

    2. +
    3. 15.5:14 +The copy is assigned to the target owner.

    4. +
    +

    15.5:15 +Passing a value by move from a source owner to a target +owner proceeds as follows:

    +
      +
    1. 15.5:16 +The value is unassigned from the source owner.

    2. +
    3. 15.5:17 +The value is assigned to the target owner.

    4. +
    +

    Examples

    +

    15.5:18 +Type i32 is a copy type. By the end of the second let statement, x is +the owner of the original 42 and y is the owner of a cloned 42.

    +
    let x: i32 = 42;
    +let y: i32 = x;
    +
    +
    +

    15.5:19 +Type core::sync::atomic::AtomicI32 is a move type. By the end of the +second let statement, x is uninitialized and y is the sole owner of the +atomic 42.

    +
    use core::sync::atomic::AtomicI32;
    +
    +let x: AtomicI32 = AtomicI32::new(42);
    +let y: AtomicI32 = x;
    +
    +
    +
    +
    +

    15.6. Destruction

    +

    Legality Rules

    +

    15.6:1 +Destruction is the process of recovering resources associated with a +value as it goes out of scope.

    +
    +
    +

    15.7. Destructors

    +

    Legality Rules

    +

    15.7:1 +A drop type is a type that implements the core::ops::Drop +trait or contains a field that has a drop type.

    +

    15.7:2 +A destructor is a function that is invoked immediately before the +destruction of a value of a drop type.

    +

    15.7:3 +Dropping a value is the act of invoking the destructor of the +related type. Such an object is said to be dropped.

    +

    15.7:4 +An uninitialized variable is not dropped.

    +

    Dynamic Semantics

    +

    15.7:5 +Dropping an initialized variable proceeds as follows:

    +
      +
    1. 15.7:6 +If the drop type implements the core::ops::Drop trait, then +core::ops::Drop::drop of the drop type is invoked.

    2. +
    3. 15.7:7 +If the drop type is an array type, then its elements are +dropped from the first element to the last element.

    4. +
    5. 15.7:8 +Otherwise, if the drop type is a closure type, then all +capture targets whose capture mode is by move mode are +dropped in unspecified order.

    6. +
    7. 15.7:9 +Otherwise, if the drop type is an enum type, then the fields +of the active enum variant are dropped in declaration order.

    8. +
    9. 15.7:10 +Otherwise, if the drop type is a slice type, then its elements are +dropped from the first element to the last element.

    10. +
    11. 15.7:11 +Otherwise, if the drop type is a struct type, then its +fields are dropped in declaration order.

    12. +
    13. 15.7:12 +Otherwise, if the drop type is a trait object type, then the +destructor of the underlying type is invoked.

    14. +
    15. 15.7:13 +Otherwise, if the drop type is a tuple type, then its fields +are dropped in declaration order.

    16. +
    17. 15.7:14 +Otherwise, dropping has no effect.

    18. +
    +

    Examples

    +
    struct PrintOnDrop(&'static str);
    +
    +impl core::ops::Drop for PrintOnDrop {
    +    fn drop(&mut self) {
    +        println!("{}", self.0);
    +    }
    +}
    +
    +
    +

    15.7:15 +When object array is dropped, its destructor drops the first element, then +the second element.

    +
    let array = [PrintOnDrop("first element to be dropped"),
    +             PrintOnDrop("second element to be dropped")];
    +
    +
    +

    15.7:16 +Object uninitialized is not dropped.

    +
    let uninitialized: PrintOnDrop;
    +
    +
    +
    +
    +

    15.8. Drop Scopes

    +

    Legality Rules

    +

    15.8:1 +A drop scope is a region of program text that governs the dropping of +values. When control flow leaves a drop scope, all values +associated with that drop scope are dropped based on a +drop order.

    +

    15.8:2 +A drop construct is a construct that employs a drop scope. The +following constructs are drop constructs:

    + +

    15.8:7 +Drop scopes are nested within one another as follows:

    + +

    15.8:17 +A binding declared in a for loop expression is associated with +the drop scope of the block expression of the +for loop expression.

    +

    15.8:18 +A binding declared in an if let expression is associated with the +drop scope of the block expression of the if let expression.

    +

    15.8:19 +A binding declared in a let statement is associated with the +drop scope of the block expression that contains the +let statement.

    +

    15.8:20 +A binding declared in a match expression is associated with the +drop scope of the match arm of the match expression.

    +

    15.8:21 +A binding declared in a while let loop expression is associated with +the drop scope of the block expression of the +while let loop expression.

    +

    15.8:22 +A value or binding of a function parameter is associated with the +drop scope of the function of the function parameter.

    +

    15.8:23 +A temporary that is not subject to constant promotion is associated +with the innermost drop scope that contains the expression which +produced the temporary, taking into account drop scope extension. The +possible drop scopes are as follows:

    + +
    +

    15.8.1. Drop Scope Extension

    +

    Legality Rules

    +

    15.8.1:1 +Drop scope extension is the process of extending a drop scope +associated with a temporary to prevent the premature dropping of the +temporary.

    +

    15.8.1:2 +An extending pattern is either

    + +

    15.8.1:5 +If the pattern-without-alternation of a let statement is an +extending pattern, then the drop scope of the expression of +the let statement is extended to the drop scope of the +block expression that contains the let statement.

    +

    15.8.1:6 +An extending expression is either

    + +

    15.8.1:10 +The drop scope of the operand of a borrow expression that is an +extending expression is extended to the drop scope of the +block expression that contains the let statement.

    +

    15.8.1:11 +The drop scope of the operand of a borrow expression, a +dereference expression, or a field access expression that has an +extended drop scope is extended to the drop scope of the +expression.

    +

    15.8.1:12 +The drop scope of the indexed operand of an index expression that +has an extended drop scope is extended to the drop scope of the +expression.

    +

    Examples

    +

    15.8.1:13 +See Paragraph 15.6.1. for the declaration of PrintOnDrop.

    +

    15.8.1:14 +The drop scope of the temporary created for expression AtomicI32::new(42) is +extended to the drop scope of the block expression.

    +
    use core::sync::atomic::AtomicI32;
    +
    +{
    +    let ref mut a = AtomicI32::new(42);
    +    println!("{}", a);
    +}
    +
    +
    +
    +
    +
    +

    15.9. Drop Order

    +

    Legality Rules

    +

    15.9:1 +Drop order is the order by which values are dropped when a +drop scope is left.

    +

    15.9:2 +When a drop scope is left, all values associated with that +drop scope are dropped as follows:

    + +

    15.9:5 +When a drop scope of a function is left, then each +function parameter is dropped from right to left as follows:

    +
      +
    1. 15.9:6 +All bindings introduced by the pattern of the +function parameter are dropped in reverse declaration order,

    2. +
    3. 15.9:7 +The value of the function parameter is dropped.

    4. +
    +

    15.9:8 +When multiple drop scopes are left at once, the values are +dropped from the innermost drop scope to the outermost +drop scope.

    +

    Examples

    +

    15.9:9 +See Paragraph 15.6.1. for the declaration of PrintOnDrop.

    +

    15.9:10 +The drop order of the following variables is b, c, a. Dropping +proceeds as follows:

    +
      +
    1. 15.9:11 +The scope of the block expression is left first because it is an inner scope.

    2. +
    3. 15.9:12 +b is dropped.

    4. +
    5. 15.9:13 +The outer scope is left.

    6. +
    7. 15.9:14 +c is dropped because dropping occurs in reverse declarative order.

    8. +
    9. 15.9:15 +a is dropped.

    10. +
    +
    let a = PrintOnDrop("3");
    +{
    +    let b = PrintOnDrop("1");
    +}
    +let c = PrintOnDrop("2");
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/paragraph-ids.json b/paragraph-ids.json new file mode 100644 index 00000000..6c9535d6 --- /dev/null +++ b/paragraph-ids.json @@ -0,0 +1 @@ +{"documents": [{"title": "Ferrocene Language Specification", "link": "index.html", "sections": [], "informational": false}, {"title": "Macros", "link": "macros.html", "sections": [{"id": "fls_83182bfa9uqb", "number": "20", "title": "Macros", "link": "macros.html", "paragraphs": [{"id": "fls_j1jc83erljo0", "number": "20:1", "link": "macros.html#fls_j1jc83erljo0", "checksum": "23ad7afdee8d11ed607ec24d3a0e15437d673156ba4b127587b5669f1832653b"}, {"id": "fls_23eapx3ckymf", "number": "20:2", "link": "macros.html#fls_23eapx3ckymf", "checksum": "f3350d5be59f16503e8f202eed548f9142e23d0995f540a0fe8dbfa0790eb114"}, {"id": "fls_a5uemz2hnbi8", "number": "20:3", "link": "macros.html#fls_a5uemz2hnbi8", "checksum": "b37827025945e3ebe09fb51af413ab507e55bef20cbd1cdc0d88bda1e5b31868"}, {"id": "fls_rnty1c8l5495", "number": "20:4", "link": "macros.html#fls_rnty1c8l5495", "checksum": "f947401b4192d1cb447cdbc6dfa662250896c68e1cb0477bdfdbc7dfaf9b809c"}], "informational": false}, {"id": "fls_xa7lp0zg1ol2", "number": "20.1", "title": "Declarative Macros", "link": "macros.html#declarative-macros", "paragraphs": [{"id": "fls_ikzjsq8heyk6", "number": "20.1:1", "link": "macros.html#fls_ikzjsq8heyk6", "checksum": "8cffdd9962e92466f819713aab704c780ae0d98dac229021c576afa2742830ba"}, {"id": "fls_w44hav7mw3ao", "number": "20.1:2", "link": "macros.html#fls_w44hav7mw3ao", "checksum": "4e9e7f12e6633dbb05180c17c6a222b11c2760152ee1a091050e70af0a2f4238"}, {"id": "fls_dw1nq4r9ghhd", "number": "20.1:3", "link": "macros.html#fls_dw1nq4r9ghhd", "checksum": "af67fc9d046886fb7c793c0a9eef775cd020529cf8ec85a93167f1e58f4122fa"}, {"id": "fls_oq4xn8guos8f", "number": "20.1:4", "link": "macros.html#fls_oq4xn8guos8f", "checksum": "13beaa609262aa0b7e0b3212da54ac78e68086106c14cc11e081e7132158286b"}, {"id": "fls_cdaf8viwmdfe", "number": "20.1:5", "link": "macros.html#fls_cdaf8viwmdfe", "checksum": "b549b18e6de60d1ec130ab38737806e6ea0cbd0d471501c476916eefe2be7228"}, {"id": "fls_ljavs0w61z3j", "number": "20.1:6", "link": "macros.html#fls_ljavs0w61z3j", "checksum": "238647cd9313b6607667d9993c8bf87f5406351bd4a87045bd0850f5063f6b84"}, {"id": "fls_3jspk8obv7sd", "number": "20.1:7", "link": "macros.html#fls_3jspk8obv7sd", "checksum": "41d7cadc4529963b5fae05cea05d12721cc023eac8db3ab3013c78712f677f92"}], "informational": false}, {"id": "fls_8nzypdu9j3ge", "number": "20.1.1", "title": "Metavariables", "link": "macros.html#metavariables", "paragraphs": [{"id": "fls_g93r3teei8wo", "number": "20.1.1:1", "link": "macros.html#fls_g93r3teei8wo", "checksum": "142bdc43ec20b9deed884f97e167a2a47e1cd8cab76ba4b6a81e5b3ec56b69ea"}, {"id": "fls_4zdait30exvn", "number": "20.1.1:2", "link": "macros.html#fls_4zdait30exvn", "checksum": "260a8af1053ab13b37c8171151aec029a2b0049a4db4d2fa4c072391caa7c788"}, {"id": "fls_2hguxbl7djkh", "number": "20.1.1:3", "link": "macros.html#fls_2hguxbl7djkh", "checksum": "0e475930b62b5e6e2c4eaa5d954c01002c3918fb1243f5ffd3b8b5959e5350f0"}, {"id": "fls_8zypylq60zba", "number": "20.1.1:4", "link": "macros.html#fls_8zypylq60zba", "checksum": "e16b11f619d14521da5d28556e2228fd055de524ae57da0397dc5fb7f244b522"}, {"id": "fls_8o9mcv2krkac", "number": "20.1.1:5", "link": "macros.html#fls_8o9mcv2krkac", "checksum": "a7305e4a6c0db284c01d3b766c9526e183f139d0d6b3417b05a0a25448deb2e1"}, {"id": "fls_pxr9vnhsafni", "number": "20.1.1:6", "link": "macros.html#fls_pxr9vnhsafni", "checksum": "161fa80b65b3bb28682283f1c7ce7e3a51f7a9079bdddfee8bdfed439ff215e1"}, {"id": "fls_epyotejj11n0", "number": "20.1.1:7", "link": "macros.html#fls_epyotejj11n0", "checksum": "db57f38586128d0f797f87a3bec37a62e9bc1ffe1a0b5b3634c97bbbd3c3a923"}, {"id": "fls_0j7vov4ewfey", "number": "20.1.1:8", "link": "macros.html#fls_0j7vov4ewfey", "checksum": "5ab36e5b8b233c50fbb634f2ddb85db4a65676e58884c4e545002ad8ae792716"}, {"id": "fls_80compimu2gx", "number": "20.1.1:9", "link": "macros.html#fls_80compimu2gx", "checksum": "7e4c3dc1c34fcadf4bb70df2a2ca55cb16019fe78a19c5f625a3407c7f23de0c"}, {"id": "fls_dfmrwswi8e5z", "number": "20.1.1:10", "link": "macros.html#fls_dfmrwswi8e5z", "checksum": "ae189445a188e528fc320b0716648ea260e44624143f233a7a3d6594c319fc71"}, {"id": "fls_boiggrfdyhwh", "number": "20.1.1:11", "link": "macros.html#fls_boiggrfdyhwh", "checksum": "3a94c395e86b915f016782c8e832229ac77ff7d26c4468f604f4d1346d410385"}, {"id": "fls_nbbygzwuxjfp", "number": "20.1.1:12", "link": "macros.html#fls_nbbygzwuxjfp", "checksum": "10fac2b91182e4a802d41382e138eeea01e0169f14fd98576dec0541757d3d52"}, {"id": "fls_lz8f1zujju33", "number": "20.1.1:13", "link": "macros.html#fls_lz8f1zujju33", "checksum": "a397be8475f298d03d342d1d7922a7addc7c4e01708dbc748271e89ff6e4e91a"}, {"id": "fls_ephlmlsgtmgw", "number": "20.1.1:14", "link": "macros.html#fls_ephlmlsgtmgw", "checksum": "6d1e723dc52e63b247ff2a9f36fd2a2448c78a8a6c0785d9bc962cbf164a68ff"}], "informational": false}, {"id": "fls_k01lsksqtq1r", "number": "20.1.2", "title": "Repetition", "link": "macros.html#repetition", "paragraphs": [{"id": "fls_4ps4x4513xau", "number": "20.1.2:1", "link": "macros.html#fls_4ps4x4513xau", "checksum": "9be00a29faba4cce56b85af749378910166a176caaf783feb7f21917b113f4fc"}, {"id": "fls_8byjmlgum2f3", "number": "20.1.2:2", "link": "macros.html#fls_8byjmlgum2f3", "checksum": "0afa98bdb2bc52d07887d1af628eba5846e5110da9bf813ba1906139eba01c98"}, {"id": "fls_ltdp3zs60dzr", "number": "20.1.2:3", "link": "macros.html#fls_ltdp3zs60dzr", "checksum": "43358f7409e5fcf8e712e18e535f05897041a0c7ee20dc9c07eaae0a6a5b463c"}, {"id": "fls_v1wruzzuwugj", "number": "20.1.2:4", "link": "macros.html#fls_v1wruzzuwugj", "checksum": "fb90822182dbef1ad0b6848a7d2b4784a72127a44df216ec0a2fc1e4f586298c"}, {"id": "fls_u86j0zm2jshf", "number": "20.1.2:5", "link": "macros.html#fls_u86j0zm2jshf", "checksum": "cc21d8251493e001ac2bf6dc3b6d9869a4525b75ff8bdd4a6b96569f649bd5a7"}, {"id": "fls_h5f8x4jdnvbu", "number": "20.1.2:6", "link": "macros.html#fls_h5f8x4jdnvbu", "checksum": "decb59aaa3220c66f8fa18342f46b9dbbd8d79ae738262d7cc8d3276f0d6f871"}, {"id": "fls_hf4gj5pfl437", "number": "20.1.2:7", "link": "macros.html#fls_hf4gj5pfl437", "checksum": "8cb8cbde345ddbe65efa4ff3d8e5aa2db38eaa6626cdd39220f0a691c264783d"}, {"id": "fls_tm0w0680wf4x", "number": "20.1.2:8", "link": "macros.html#fls_tm0w0680wf4x", "checksum": "e94a58c9be4a3e503fe157cfb77e90b5e89fe37b134ffb1f6f08c47bd52ea5f9"}, {"id": "fls_10lsg5212ffb", "number": "20.1.2:9", "link": "macros.html#fls_10lsg5212ffb", "checksum": "3cdc79fac2c5194ed7084ae18321fb32b4db88a78ed80cc4f4432b4894648505"}, {"id": "fls_unfvr9nb1nze", "number": "20.1.2:10", "link": "macros.html#fls_unfvr9nb1nze", "checksum": "44e5e09eadfa0ef32f2aa42f5d86aefc29a08264af8ea9678ec830ac5d0d919c"}, {"id": "fls_sm4qvshkyly2", "number": "20.1.2:11", "link": "macros.html#fls_sm4qvshkyly2", "checksum": "ada08a290b60070c6aae793052fba60f6404e5668f5da364e16a178044452d6a"}, {"id": "fls_rdvs8dz6ouu7", "number": "20.1.2:12", "link": "macros.html#fls_rdvs8dz6ouu7", "checksum": "ea5e5013c9fbf8d7b889cd0fe21718fb395b30a9d7cd9f10b911a150dc32decd"}, {"id": "fls_uilj6csow81w", "number": "20.1.2:13", "link": "macros.html#fls_uilj6csow81w", "checksum": "e9e82608e910aea5e4b9b881e3bbc4f832130dd93a971ad1d979ae6b3be81ba8"}, {"id": "fls_yp2xxdv4dzei", "number": "20.1.2:14", "link": "macros.html#fls_yp2xxdv4dzei", "checksum": "31f297fdd3706a0010aae6400f9a4d0d7368160c1aebd8e60699f9e9fbdf2639"}, {"id": "fls_n5tkjkwidhcd", "number": "20.1.2:15", "link": "macros.html#fls_n5tkjkwidhcd", "checksum": "e542a9b407077073772387ef8c3ca43d8afb0cf939f1285a5c47b7d07ad1979d"}], "informational": false}, {"id": "fls_wn1i6hzg2ff7", "number": "20.2", "title": "Procedural Macros", "link": "macros.html#procedural-macros", "paragraphs": [{"id": "fls_ejbddhggstd2", "number": "20.2:1", "link": "macros.html#fls_ejbddhggstd2", "checksum": "40ae367af875e89e010e4d22a7cfe13aa5dbaed9fc46011de6b52d138577092f"}, {"id": "fls_pcce9gmjpxba", "number": "20.2:2", "link": "macros.html#fls_pcce9gmjpxba", "checksum": "a154977cec887d19447bb9d7566684f5f07b10108feaad22add360f52cade411"}, {"id": "fls_vtzuplb1p3s", "number": "20.2:3", "link": "macros.html#fls_vtzuplb1p3s", "checksum": "0f0739a1ed671f541972aa194b63778a35eef1f8a258625357bad1dfb79126ec"}, {"id": "fls_mewfehvgm16r", "number": "20.2:4", "link": "macros.html#fls_mewfehvgm16r", "checksum": "b0d421770e39ab6631e15b540881bf6453ecda3a0bbc8c78183bba9be46e6c77"}], "informational": false}, {"id": "fls_2d6bqnpy6tvs", "number": "20.2.1", "title": "Function-like Macros", "link": "macros.html#function-like-macros", "paragraphs": [{"id": "fls_utd3zqczix", "number": "20.2.1:1", "link": "macros.html#fls_utd3zqczix", "checksum": "35211e047d31106ec03bc1b7ccba14cee77f4c950b50ddedbd47d9cbe9dc876f"}, {"id": "fls_ojr30lf6jfx0", "number": "20.2.1:2", "link": "macros.html#fls_ojr30lf6jfx0", "checksum": "195f49e7c5486c12cd274b338a19d3eaa1a19f99570f7ee0b52a3b1eeb90251e"}, {"id": "fls_ljkjmegynhiy", "number": "20.2.1:3", "link": "macros.html#fls_ljkjmegynhiy", "checksum": "1d126893f14def3d9f5d85d0190f84dc53a460ce5e6da350afffa20da8714d0b"}, {"id": "fls_8a8qhzjw5hax", "number": "20.2.1:4", "link": "macros.html#fls_8a8qhzjw5hax", "checksum": "1a1931bdd5b2a64999e14fa18b646001ec64e8e677c906ce614ba221a5dbf2c6"}, {"id": "fls_ofzql79i9if", "number": "20.2.1:5", "link": "macros.html#fls_ofzql79i9if", "checksum": "589f04afe8c234ee2c179f3f0931eaded30292da86287719098525edb953002c"}, {"id": "fls_j1wsyzip2qb3", "number": "20.2.1:6", "link": "macros.html#fls_j1wsyzip2qb3", "checksum": "67268d716ea7849d7125350436f4e4a6d5d38effc37ae5216408b2690ab8d033"}, {"id": "fls_etyo9bmzxby6", "number": "20.2.1:7", "link": "macros.html#fls_etyo9bmzxby6", "checksum": "ba0099799988b2f6d17799a6f6f9c33b477183b8eeec921be942c1c46fe6e668"}, {"id": "fls_mkl9b38m0sf1", "number": "20.2.1:8", "link": "macros.html#fls_mkl9b38m0sf1", "checksum": "7de42cd159846bf2a84aba1bcaf2c1f39e0a6092c7db776d8abb5854419ee2c1"}, {"id": "fls_lfmb22bfnrye", "number": "20.2.1:9", "link": "macros.html#fls_lfmb22bfnrye", "checksum": "6e54b9a8b956ed9a206672b6145a346a9d87f0734de85341ef04814529bcee31"}, {"id": "fls_fbgal48cgj44", "number": "20.2.1:10", "link": "macros.html#fls_fbgal48cgj44", "checksum": "78e85689e473377a80352ef6fe022993d405de27b2c6c0393cc70edc6d40e0e8"}], "informational": false}, {"id": "fls_o8s3r7m90q59", "number": "20.2.2", "title": "Derive Macros", "link": "macros.html#derive-macros", "paragraphs": [{"id": "fls_e5x92q2rq8a0", "number": "20.2.2:1", "link": "macros.html#fls_e5x92q2rq8a0", "checksum": "aeee3f491d3c18c862f68c8f41eed353a109270ae1f717f9d5620bd9e311fbc6"}, {"id": "fls_ldw75sy5uj7p", "number": "20.2.2:2", "link": "macros.html#fls_ldw75sy5uj7p", "checksum": "5242e5a075162a366a5adf0a32e20e73a4ed4c93a3b63541a8201de95af0cbfe"}, {"id": "fls_7gcnui9beky", "number": "20.2.2:3", "link": "macros.html#fls_7gcnui9beky", "checksum": "77dd4bd0709e93df0c9294bd185bd0cb487a9e1991042f0cb0ecffb5df13bc60"}, {"id": "fls_ef30ropg7dhx", "number": "20.2.2:4", "link": "macros.html#fls_ef30ropg7dhx", "checksum": "7fa2a69e91d4ee885cc21d70cb2d326b60305f03bba8a17a36209a53457749bb"}, {"id": "fls_mo00vqm9xfqc", "number": "20.2.2:5", "link": "macros.html#fls_mo00vqm9xfqc", "checksum": "700ee188839152335fdb7422422a37ae9cb40c8bb9bc9940787cd260d61e7276"}, {"id": "fls_gr9wugeqyb3b", "number": "20.2.2:6", "link": "macros.html#fls_gr9wugeqyb3b", "checksum": "d8d72a951c13aa5fe8714a16539462fbbaf7ead2c1ad8ecd97cf3071f5db6ab8"}, {"id": "fls_npnze2cg8ae", "number": "20.2.2:7", "link": "macros.html#fls_npnze2cg8ae", "checksum": "6a638cc0c5ef1383ed2612ba3ab85735c70a35cbabcde5839d61b426d3411406"}, {"id": "fls_w2h4lk6bmht", "number": "20.2.2:8", "link": "macros.html#fls_w2h4lk6bmht", "checksum": "704edbd352cfa964eac3571f6d328a271b59ec3801b0d4deb1b3ff167d9edcbf"}, {"id": "fls_x96a0xzcyrko", "number": "20.2.2:9", "link": "macros.html#fls_x96a0xzcyrko", "checksum": "f217c6bc6e853a2b8556dbc0b41314003eaa542eca75e8a17d1573264d4e2151"}, {"id": "fls_caa16usjxryg", "number": "20.2.2:10", "link": "macros.html#fls_caa16usjxryg", "checksum": "a284d52790bdad317fdaac6d6bb30541a4dba804471aa74bf317849a3eba4ca2"}, {"id": "fls_h5ipqqlh3pjh", "number": "20.2.2:11", "link": "macros.html#fls_h5ipqqlh3pjh", "checksum": "81811154b26e520b237186a9289476a52adca1dac91598bea29f6d2f8ad5c0af"}, {"id": "fls_mobky5ck1mi", "number": "20.2.2:12", "link": "macros.html#fls_mobky5ck1mi", "checksum": "99a2dde0b9166346d32d075006f6fff461527d79389470e64b255fb7a9f63733"}], "informational": false}, {"id": "fls_4vjbkm4ceymk", "number": "20.2.3", "title": "Attribute Macros", "link": "macros.html#attribute-macros", "paragraphs": [{"id": "fls_l3epi1dqpi8o", "number": "20.2.3:1", "link": "macros.html#fls_l3epi1dqpi8o", "checksum": "a507e2ee0a755f9e9bef9483a14b746466426c98185a2634629bff10acf93070"}, {"id": "fls_3sublbi9bz7k", "number": "20.2.3:2", "link": "macros.html#fls_3sublbi9bz7k", "checksum": "ad536eef612c80a23662ccb5976e09fc7a7cd564b3099362de958cb078de4636"}, {"id": "fls_eb8jxl70wmeh", "number": "20.2.3:3", "link": "macros.html#fls_eb8jxl70wmeh", "checksum": "0e6bc1537645755a80173fb2e360056fe473f07b84fa83e420a2119802b5688e"}, {"id": "fls_7ugtmobgb2t9", "number": "20.2.3:4", "link": "macros.html#fls_7ugtmobgb2t9", "checksum": "65f907abc0b4741ed3d04dfb54bf57f7733475bd00f7eb52a681cf2df6dd26cf"}, {"id": "fls_y700oif45wum", "number": "20.2.3:5", "link": "macros.html#fls_y700oif45wum", "checksum": "ef5cb13d4e805e4e81816f26647b316792ceb249829578bfaa57070acb415879"}, {"id": "fls_hhsf1a9p6o55", "number": "20.2.3:6", "link": "macros.html#fls_hhsf1a9p6o55", "checksum": "a67726cd1b3c0fa718910126228b74a584cd8d14685cff5a51c66aecafa25a2e"}, {"id": "fls_4g932k8ueyqp", "number": "20.2.3:7", "link": "macros.html#fls_4g932k8ueyqp", "checksum": "85bf012ed3c7f1fe9e724f38a2d891b1697ec17ecde0a3277e037fe496069d6a"}, {"id": "fls_f5qy1pnlbpng", "number": "20.2.3:8", "link": "macros.html#fls_f5qy1pnlbpng", "checksum": "301c590c9b06bc5965288c7611ce54546237f2ab270ad8d08ada06606d3129bf"}, {"id": "fls_rzn48xylk4yj", "number": "20.2.3:9", "link": "macros.html#fls_rzn48xylk4yj", "checksum": "db387e1df17fe1b34f0785313cbd032471da2d489046fbbd57783da324ddd87b"}, {"id": "fls_78400zh02sdq", "number": "20.2.3:10", "link": "macros.html#fls_78400zh02sdq", "checksum": "ae2d00ba71cdeeebcbc5ba13db842b607d9367375f608225d84eeb55ce0afb90"}, {"id": "fls_eyesmvuwpjn1", "number": "20.2.3:11", "link": "macros.html#fls_eyesmvuwpjn1", "checksum": "130f778e0740bb2eac48f0b045d7c7d7854a7f114684fd426c548a5289d530b9"}, {"id": "fls_fku5beu3mr4c", "number": "20.2.3:12", "link": "macros.html#fls_fku5beu3mr4c", "checksum": "a9469713d62e5ab294be5b5463896a680482fe532ef2db60c9a17dd040147917"}, {"id": "fls_knjsslplv5ri", "number": "20.2.3:13", "link": "macros.html#fls_knjsslplv5ri", "checksum": "1f2493e72099adeeabdbdb5af0e9a9021fe478c82c788215781e06312b59c4e4"}], "informational": false}, {"id": "fls_vnvt40pa48n8", "number": "20.3", "title": "Macro Invocation", "link": "macros.html#macro-invocation", "paragraphs": [{"id": "fls_wushtmw9qt3y", "number": "20.3:1", "link": "macros.html#fls_wushtmw9qt3y", "checksum": "2d88086f369da9c00a710d6478ff80775749dcb789b8f28b671fa96d22b5c01e"}, {"id": "fls_snpxxcqhtjfv", "number": "20.3:2", "link": "macros.html#fls_snpxxcqhtjfv", "checksum": "974d06554ff28647c4f903fa86768f1e175bc518e3c538c7d26f09ca32580f3a"}, {"id": "fls_6v06zvi1ctub", "number": "20.3:3", "link": "macros.html#fls_6v06zvi1ctub", "checksum": "9331eac9772bb3030cfa592afd0542c15f135b1445df9e764e483111e6e799e5"}, {"id": "fls_338rmbazl67o", "number": "20.3:4", "link": "macros.html#fls_338rmbazl67o", "checksum": "180d58067482f5f9c52f37cffaf0d523e0d0e035274ae448c35b6fda359340f1"}, {"id": "fls_lrr7gg8tian", "number": "20.3:5", "link": "macros.html#fls_lrr7gg8tian", "checksum": "f7aca0e43d4cdbae814c988be6387b18698d49063b82af0d472ad957e99f0b16"}, {"id": "fls_8qxwwf4trnl", "number": "20.3:6", "link": "macros.html#fls_8qxwwf4trnl", "checksum": "d1d17973e9a5ff51967bbb1a18254d34daf4d5227c030010273eb809898065d9"}, {"id": "fls_8z1sgtvchhhw", "number": "20.3:7", "link": "macros.html#fls_8z1sgtvchhhw", "checksum": "f0c4063fc1e37447cdedd5fea1862370d0c86e3a81159fe2abded13af32e03e3"}, {"id": "fls_d9w3dn2yn7mo", "number": "20.3:8", "link": "macros.html#fls_d9w3dn2yn7mo", "checksum": "00301fc63c37839058ebeb42729a0bfcaa17ba716e9b05a4b07854bda2b315de"}, {"id": "fls_1tftbd91yfpd", "number": "20.3:9", "link": "macros.html#fls_1tftbd91yfpd", "checksum": "f9383478e84fd632a980198c467de216499b1b303f98a98b7bf135b8d1439489"}], "informational": false}, {"id": "fls_wjldgtio5o75", "number": "20.4", "title": "Macro Expansion", "link": "macros.html#macro-expansion", "paragraphs": [{"id": "fls_xscdaxvs4wx4", "number": "20.4:1", "link": "macros.html#fls_xscdaxvs4wx4", "checksum": "8026222297277fbad4ed1549d49f0c3e75d7e5157adbb94d90360ceb716f2a3d"}, {"id": "fls_nz5stwcc41gk", "number": "20.4:2", "link": "macros.html#fls_nz5stwcc41gk", "checksum": "81bdfdb7218e324273181015cf2a0058601e53a6f07875e9c55f6b9ccd110600"}, {"id": "fls_40xq8ri1omzz", "number": "20.4:3", "link": "macros.html#fls_40xq8ri1omzz", "checksum": "bf49814afca1afc4a1ea61da7acaf9bb0ac3da4e8a3d40a8a0ad770017aaf4e2"}, {"id": "fls_76prdp6k1fga", "number": "20.4:4", "link": "macros.html#fls_76prdp6k1fga", "checksum": "f2e3b68bee58b99bd43a9238014702fed0da098493aea6cd5ee8c35d689b2cfb"}, {"id": "fls_76u274l4kew8", "number": "20.4:5", "link": "macros.html#fls_76u274l4kew8", "checksum": "74b6ccc123fd68357e50a1ba7a24fcfb694a68271bd2c7156e558945c62bb744"}, {"id": "fls_lakpily1zwfl", "number": "20.4:6", "link": "macros.html#fls_lakpily1zwfl", "checksum": "41396541fe1131f8e3a05e47eb4dc795aca82ca7744db28c5808acbbcec8c548"}, {"id": "fls_y20pmwo3v3uu", "number": "20.4:7", "link": "macros.html#fls_y20pmwo3v3uu", "checksum": "145096281559894c5fdd9c34f4c59020e8018a542a295c4718a2158eb1c24db6"}, {"id": "fls_nsh2vwx8oiw", "number": "20.4:8", "link": "macros.html#fls_nsh2vwx8oiw", "checksum": "73e7c3d42509b26c6836a37c592ce6b5f8b4b8d51bdd13b1e69c781dbdb074ac"}, {"id": "fls_tu6kmwm4v9nj", "number": "20.4:9", "link": "macros.html#fls_tu6kmwm4v9nj", "checksum": "bab993a513c3b50842e8f5f1326263dc800e7186ea89baca43936ad3bdf15c79"}, {"id": "fls_3zn4dz19nyvq", "number": "20.4:10", "link": "macros.html#fls_3zn4dz19nyvq", "checksum": "3b01afcc0d4c9f2696ea110f2556ea0c37503ac92544dd77a5853e2bc4cc735c"}, {"id": "fls_t89sw6az99z7", "number": "20.4:11", "link": "macros.html#fls_t89sw6az99z7", "checksum": "39601be41eaf38c2fe68a562e68628c4c897e8c99f95ec75e583dbefab3af157"}, {"id": "fls_417hvhvj2554", "number": "20.4:12", "link": "macros.html#fls_417hvhvj2554", "checksum": "48dbce0bae72db846dd146bad2ff656a10cf5dd99c403720ad8a65ff71bf965e"}, {"id": "fls_nnrs4ec3ff5t", "number": "20.4:13", "link": "macros.html#fls_nnrs4ec3ff5t", "checksum": "10c68086f5de7156157c189ebd2864036d21287d9219fdce6f5e9df7658f3e2a"}, {"id": "fls_srtqkdceaz5t", "number": "20.4:14", "link": "macros.html#fls_srtqkdceaz5t", "checksum": "303da91f4606ee986ceddcb3a6dd2990ea1a5d6f4d8ff9eba1411b05f9cfa29c"}, {"id": "fls_mi92etjtpamu", "number": "20.4:15", "link": "macros.html#fls_mi92etjtpamu", "checksum": "57347ca4d51ad58880a851280bfb8d8e529e1b9951a52ca4929e47b94f19be4e"}, {"id": "fls_n8beqlt54rhy", "number": "20.4:16", "link": "macros.html#fls_n8beqlt54rhy", "checksum": "9a60784d14b99e43a10674a97c9f853c1fda603311694eaa435886353f7102ab"}, {"id": "fls_vd3dzvr6re19", "number": "20.4:17", "link": "macros.html#fls_vd3dzvr6re19", "checksum": "04d7c36c59b8db5f9cd9d437097d1287b1462b3d1a28b1af866979139758cf22"}, {"id": "fls_l8j2jiuuao4f", "number": "20.4:18", "link": "macros.html#fls_l8j2jiuuao4f", "checksum": "8738a7304a24b50b3140d449d1bfca2c9baf6da9f0d078a51401795554fd4474"}, {"id": "fls_xvemyqj5gc6g", "number": "20.4:19", "link": "macros.html#fls_xvemyqj5gc6g", "checksum": "d26201e9ec1b8ce4e8d0ce918281c597b4207dd5c717ab9d2f690dc2d3fa69f6"}, {"id": "fls_stseor6tln22", "number": "20.4:20", "link": "macros.html#fls_stseor6tln22", "checksum": "9cd6b3fdd12de5819ef5f034cd512142d9ea7275dd351bb3364534aede42230d"}, {"id": "fls_u11o90szy68s", "number": "20.4:21", "link": "macros.html#fls_u11o90szy68s", "checksum": "785c20cd4ee512f170f8821ae84ac3e0164356afb744c5eb7766d1b428f43f95"}, {"id": "fls_qi5kyvj1e8th", "number": "20.4:22", "link": "macros.html#fls_qi5kyvj1e8th", "checksum": "42ff8c1ac6cc0dad7129ac746debad5fa96d773994a30fdf5b71496e0fe894be"}, {"id": "fls_vqizael4eku5", "number": "20.4:23", "link": "macros.html#fls_vqizael4eku5", "checksum": "75411eced63ec88091cc61ad48545c56af50d13cdfbb58da468cfcd471b1d753"}, {"id": "fls_grtiwf7q8jah", "number": "20.4:24", "link": "macros.html#fls_grtiwf7q8jah", "checksum": "8336e9a3dc539d94ebc4c3f4d1db0a002daac4a11ed04f66f0c8944f7c59dadc"}, {"id": "fls_tbe2qq7whq10", "number": "20.4:25", "link": "macros.html#fls_tbe2qq7whq10", "checksum": "862660c9a7927486f4ab97a5219efca956468b25a372e7f0b8778d938fea614f"}, {"id": "fls_my93neopj9x0", "number": "20.4:26", "link": "macros.html#fls_my93neopj9x0", "checksum": "56c2e17cefa41716653ddebd7376d5e765866b6b48613007cbd6fa266ec588a1"}, {"id": "fls_zat7kwi5vc5c", "number": "20.4:27", "link": "macros.html#fls_zat7kwi5vc5c", "checksum": "6f0481d9039a52034b6e9c95142a26b01f4af587546d9d2ca76ccdcdce2cf14c"}, {"id": "fls_tjn92evtlflq", "number": "20.4:28", "link": "macros.html#fls_tjn92evtlflq", "checksum": "4ed573b9e2ba6991e0c8cd77151c8f7fb439090236dff6dcba9b8dd9d06d2604"}, {"id": "fls_ajmprhhfzo6j", "number": "20.4:29", "link": "macros.html#fls_ajmprhhfzo6j", "checksum": "9e9dd4998f98b6a17410d0f5050a5640b8a7d12b16d5ccc1fbf5ddfc4fa2c910"}, {"id": "fls_mpgh22bi8caz", "number": "20.4:30", "link": "macros.html#fls_mpgh22bi8caz", "checksum": "d54d6148b8f96f7ae615b20d921e9536dec2d40191387304db5912c07457039c"}, {"id": "fls_ul7nhfyvyzh", "number": "20.4:31", "link": "macros.html#fls_ul7nhfyvyzh", "checksum": "ecc18764aaf923e05323ff7d8dbc3196f9c2a677d000895c4350a34de447d370"}, {"id": "fls_z6xfhf71w10a", "number": "20.4:32", "link": "macros.html#fls_z6xfhf71w10a", "checksum": "61b9b13308b8c7583de5aab70fe1644dee9867664a812351e4a713132df8f246"}], "informational": false}, {"id": "fls_4apk1exafxii", "number": "20.4.1", "title": "Macro Matching", "link": "macros.html#macro-matching", "paragraphs": [{"id": "fls_zmqz8hqwv77l", "number": "20.4.1:1", "link": "macros.html#fls_zmqz8hqwv77l", "checksum": "6b8396da1325228a967d0d28720f37811bfec9f46d17c5b5d20ab8838236c8d1"}], "informational": false}, {"id": "fls_n3ktmjqf87qb", "number": "20.4.1.1", "title": "Rule Matching", "link": "macros.html#rule-matching", "paragraphs": [{"id": "fls_77ucvwu6idms", "number": "20.4.1.1:1", "link": "macros.html#fls_77ucvwu6idms", "checksum": "86e93126d0e6c567afa83d3532a9dda63596c2a3a1b8fa60469481ff4891e786"}, {"id": "fls_6h1jqhxzku5v", "number": "20.4.1.1:2", "link": "macros.html#fls_6h1jqhxzku5v", "checksum": "4c41fb4fb8823d556cfb539659a3c4703c73a1c321684dd511b7f178f2ee5439"}, {"id": "fls_r6i1ykrhb49j", "number": "20.4.1.1:3", "link": "macros.html#fls_r6i1ykrhb49j", "checksum": "6ff3d3159841229f8392ab25c21c4749d84f44f9448851671427adf3fa2c97f8"}, {"id": "fls_3qzes4lr8yuv", "number": "20.4.1.1:4", "link": "macros.html#fls_3qzes4lr8yuv", "checksum": "d6cdc5aaa72a1fe038b82e1c7963c4446c2bc7668ed2fae5540f1dd6416a865f"}, {"id": "fls_r878ysvsy4jb", "number": "20.4.1.1:5", "link": "macros.html#fls_r878ysvsy4jb", "checksum": "b69c21d1eb5931b6f4848c2e230a9199999a3b94ade1ff93a4c66ba685343958"}], "informational": false}, {"id": "fls_qpx6lgapce57", "number": "20.4.1.2", "title": "Token Matching", "link": "macros.html#token-matching", "paragraphs": [{"id": "fls_k6a24sbon5v9", "number": "20.4.1.2:1", "link": "macros.html#fls_k6a24sbon5v9", "checksum": "939454db28503818aeec06820dacf2ab2a82bb11e9ebd50d2b097213c7223ae4"}, {"id": "fls_6uuxv91xgmfz", "number": "20.4.1.2:2", "link": "macros.html#fls_6uuxv91xgmfz", "checksum": "69d0900d72789c738bb16a2cd4d7cd0938784373e5835a4c87c5655968e72f06"}, {"id": "fls_g1rml9tavh8v", "number": "20.4.1.2:3", "link": "macros.html#fls_g1rml9tavh8v", "checksum": "9676823aa002fa0b34ed9ceb6cdf528e036dd054cc9680fd769fbfbabbdf2f33"}, {"id": "fls_h7x3tc208zpk", "number": "20.4.1.2:4", "link": "macros.html#fls_h7x3tc208zpk", "checksum": "485dc2a03abcfc575a18d12f44392c25e70e3d6c8c7defe90be8b259721e9cf2"}, {"id": "fls_p9eqa17d3dx", "number": "20.4.1.2:5", "link": "macros.html#fls_p9eqa17d3dx", "checksum": "4e3b1a4397f68e72da8d33b18764d344b2cdc18f83b97ddefee8dbdef401dc87"}, {"id": "fls_k00bck2k8tde", "number": "20.4.1.2:6", "link": "macros.html#fls_k00bck2k8tde", "checksum": "8bad01afe18f0792f1545d920186e04ba62d8ee647e2fa200dc707f23996d326"}, {"id": "fls_pf0qrz5nadl2", "number": "20.4.1.2:7", "link": "macros.html#fls_pf0qrz5nadl2", "checksum": "9beee8340868a57b1052f0fc0b375a60221fffc91fe52f2b2a049ecea579e62e"}, {"id": "fls_9fioah171ojx", "number": "20.4.1.2:8", "link": "macros.html#fls_9fioah171ojx", "checksum": "944fc29dfd11666e10802285b2515966d675e8dd3dba1e06c0e50e2db56199cf"}, {"id": "fls_j2o0f52zyvyb", "number": "20.4.1.2:9", "link": "macros.html#fls_j2o0f52zyvyb", "checksum": "3a4366c2f44243bd2284234dca5b270e4dc4a86d1f32a617a269adb290fb8985"}, {"id": "fls_w5dzv3z4zd5a", "number": "20.4.1.2:10", "link": "macros.html#fls_w5dzv3z4zd5a", "checksum": "e4f9ae7e642ed779024a8e69cea6afc9bd400fd2105ce496a574bcc9be0bf3d7"}, {"id": "fls_wtol98rrqka5", "number": "20.4.1.2:11", "link": "macros.html#fls_wtol98rrqka5", "checksum": "a6923eaff6739eb4d6492f970c783cfdabc71c275843e5ef6405fff5af5b0432"}, {"id": "fls_iorqt9q4ie9j", "number": "20.4.1.2:12", "link": "macros.html#fls_iorqt9q4ie9j", "checksum": "80a04645ad370bbb071324afb5d55d19b18f915e9fadfab568496d6a3a18fa5f"}, {"id": "fls_2zjed913qpvi", "number": "20.4.1.2:13", "link": "macros.html#fls_2zjed913qpvi", "checksum": "b45c38305f3c3ffa6bf27034b89cc6b8baac7a4e72914a0cfdf7eeee7da69266"}, {"id": "fls_3zdts0fsa36u", "number": "20.4.1.2:14", "link": "macros.html#fls_3zdts0fsa36u", "checksum": "d58dc97395dae9ccb1d8fe2a21911f6287c2676be72fea50a94301b4b85614fb"}, {"id": "fls_mb3yr1j7npv5", "number": "20.4.1.2:15", "link": "macros.html#fls_mb3yr1j7npv5", "checksum": "0f22177e56930189a013cc165f27159e88950b6309aec5aa8f36dad4fc00070b"}, {"id": "fls_xbuixjt9pum6", "number": "20.4.1.2:16", "link": "macros.html#fls_xbuixjt9pum6", "checksum": "8b44cfe64ffb38c055354fd03755c38a67d369899996d279000749b6938b4130"}, {"id": "fls_6annifhk6cd8", "number": "20.4.1.2:17", "link": "macros.html#fls_6annifhk6cd8", "checksum": "2868c75bd1038a056153d19675c38e727498801f62dcf998f97e79d1feb762aa"}, {"id": "fls_2zu22efr6ncy", "number": "20.4.1.2:18", "link": "macros.html#fls_2zu22efr6ncy", "checksum": "8a369cdda5e38c9d0c9235244570dc6350c8f7513c2a5dc0ce5b97503f92b7ef"}, {"id": "fls_dqroklsaayzb", "number": "20.4.1.2:19", "link": "macros.html#fls_dqroklsaayzb", "checksum": "235bfe3d83907a5ee61a001a2b2acac3b0e021e603831aed451c1cc984b6a784"}, {"id": "fls_ghqjk6xj85ng", "number": "20.4.1.2:20", "link": "macros.html#fls_ghqjk6xj85ng", "checksum": "273716f2c264d37ea340ce796a784d1e2b3cb3a16578a954da0dcab1900b6ca9"}, {"id": "fls_lzwl4en5wcw0", "number": "20.4.1.2:21", "link": "macros.html#fls_lzwl4en5wcw0", "checksum": "1ff9a6a6d1f6eb7b4c668c7940b8c2e1490c37f93b536e4b0f4468a49095216f"}, {"id": "fls_cz44evkjzv29", "number": "20.4.1.2:22", "link": "macros.html#fls_cz44evkjzv29", "checksum": "622a0124d322fc811ce341d23c250c1d22df2be7065199c523a053e04f93655b"}, {"id": "fls_o2exsai4m0gy", "number": "20.4.1.2:23", "link": "macros.html#fls_o2exsai4m0gy", "checksum": "61ca7e8337e433a1f27f8ca82eda551971c4361a34cf11fb7c23f53368ee2593"}, {"id": "fls_1ch299zp8h7", "number": "20.4.1.2:24", "link": "macros.html#fls_1ch299zp8h7", "checksum": "2b361f50a42eadd00c2c0ca748063e0d34342f34e39bae540bb8802a83f14882"}, {"id": "fls_55ptfjlvoo8o", "number": "20.4.1.2:25", "link": "macros.html#fls_55ptfjlvoo8o", "checksum": "225d33e4ff2e8e37f77d0d4ba4811088ee088d027a6ae4a1a4882ca9b039fa98"}, {"id": "fls_finzfb5ljkf8", "number": "20.4.1.2:26", "link": "macros.html#fls_finzfb5ljkf8", "checksum": "17b373ea759d5c509466cee1cd0f9941a470f136a1109fb7f745dd87e096bcf9"}, {"id": "fls_s1ccs6jocsgr", "number": "20.4.1.2:27", "link": "macros.html#fls_s1ccs6jocsgr", "checksum": "34a0742ef58a8b7fe215596c5252975ec70b4b86687272048bf5ccbee1c21eda"}, {"id": "fls_wpi2i6hoj3li", "number": "20.4.1.2:28", "link": "macros.html#fls_wpi2i6hoj3li", "checksum": "408711d561d0aa646b34d91388c4abb3e0e292eecb966dc171c8368efaca46c5"}, {"id": "fls_uuey421a8n96", "number": "20.4.1.2:29", "link": "macros.html#fls_uuey421a8n96", "checksum": "c8977ccaa62d4c406898dba6432a60322e5b401d6bd0f7cda07b4b0979bb29f6"}, {"id": "fls_b5u47tuu136r", "number": "20.4.1.2:30", "link": "macros.html#fls_b5u47tuu136r", "checksum": "4538f5121ec15ee6fbd7d3cb0bb690cc955c3d8655feceab5333045461750c15"}, {"id": "fls_rb1tu4e7dpma", "number": "20.4.1.2:31", "link": "macros.html#fls_rb1tu4e7dpma", "checksum": "38cb0f7a2daa5611bc22dac0b50c555f9d3ffb1127900a2f86ba5a79ff08498a"}, {"id": "fls_c76sdvos5xeo", "number": "20.4.1.2:32", "link": "macros.html#fls_c76sdvos5xeo", "checksum": "3f33b5ba4b848845ef3c885d9b0b6d3309d5d903bf48ba507cc368dc25cad1ce"}], "informational": false}, {"id": "fls_ym00b6ewf4n3", "number": "20.4.2", "title": "Macro Transcription", "link": "macros.html#macro-transcription", "paragraphs": [{"id": "fls_y21i8062mft0", "number": "20.4.2:1", "link": "macros.html#fls_y21i8062mft0", "checksum": "0625ef0bcc1537bbd7e48bbb52e650fac001e4ce41c99c213d6d9c46b45e74e0"}, {"id": "fls_n2dx4ug5nd5w", "number": "20.4.2:2", "link": "macros.html#fls_n2dx4ug5nd5w", "checksum": "3a923fd62e7cb8e223448548b2aa38404e63cc3e8b41254c70fa1d13076ad338"}, {"id": "fls_iw7322ycvhkc", "number": "20.4.2:3", "link": "macros.html#fls_iw7322ycvhkc", "checksum": "3a3dab26920d694cfc94f0c1b2f51523cd3b42dbae5b61643d7c56834c7220cf"}, {"id": "fls_jgitbqmyixem", "number": "20.4.2:4", "link": "macros.html#fls_jgitbqmyixem", "checksum": "0138c8400ce4f71c65b6aa2722efe3060cbd1d41df1c72e0d5f3b34a20f300b5"}, {"id": "fls_ihcwl6taptas", "number": "20.4.2:5", "link": "macros.html#fls_ihcwl6taptas", "checksum": "5c84ed6a518944136878abb4c88f566d332adfa28adc88939272040b8b6376d9"}, {"id": "fls_g3dtpw4rtgdr", "number": "20.4.2:6", "link": "macros.html#fls_g3dtpw4rtgdr", "checksum": "ccd3909779e2ae52e078ac9ec0171a31569a1a5f27a764f1116aa514d4ab1e76"}, {"id": "fls_pvp6dxykuv66", "number": "20.4.2:7", "link": "macros.html#fls_pvp6dxykuv66", "checksum": "cfa58e13c7d71f34271957f476e066a784af6a8ed0072bb215252e5c076b03c3"}, {"id": "fls_bd673n5awwbz", "number": "20.4.2:8", "link": "macros.html#fls_bd673n5awwbz", "checksum": "c46a8e07cda751526560f7fc97ae3c1b78414ebc17c1ce3cd210620619ebbf25"}, {"id": "fls_zbtwrtcy7pzf", "number": "20.4.2:9", "link": "macros.html#fls_zbtwrtcy7pzf", "checksum": "89ea10945ee36c0a8d05b165f2dab20d4778edf60bc0f8b3696a46d9199743b8"}, {"id": "fls_eacyb6jap9ru", "number": "20.4.2:10", "link": "macros.html#fls_eacyb6jap9ru", "checksum": "928fa72878c7bba4b1bce0f51d05314cb2480974eb15a3baa42edf4802016c4b"}, {"id": "fls_y4podc7ee8lf", "number": "20.4.2:11", "link": "macros.html#fls_y4podc7ee8lf", "checksum": "923b9e5ad7c41a86ba16ba5fc020547055484598d353ee7d4600ac28f7464960"}, {"id": "fls_wbys0m4a1omg", "number": "20.4.2:12", "link": "macros.html#fls_wbys0m4a1omg", "checksum": "b20e0ffba294f223744cb483c484961c3e57930764952f5beab1e3448b7f8cde"}, {"id": "fls_g445ovedgo4q", "number": "20.4.2:13", "link": "macros.html#fls_g445ovedgo4q", "checksum": "ffbe98be6393f55c5b73a7849f41caadf322b1ac4e018fa42c59e7305db89820"}, {"id": "fls_ctzthi6keit2", "number": "20.4.2:14", "link": "macros.html#fls_ctzthi6keit2", "checksum": "4f0f8d199b56a8e97493384b9448af0cf2c03e0ee0924725a9973869747db80f"}, {"id": "fls_9n46ugmcqmix", "number": "20.4.2:15", "link": "macros.html#fls_9n46ugmcqmix", "checksum": "924ac328fa7b1c896d1efd435201562db8738164a53715c1956c4c2da5a4012c"}, {"id": "fls_jinrpa0pmzcr", "number": "20.4.2:16", "link": "macros.html#fls_jinrpa0pmzcr", "checksum": "7c1fe9eccd483e7a420e8b7c1d1c1164588a91adea0ff813953d9cf07171ea38"}, {"id": "fls_95rn4cvgznmd", "number": "20.4.2:17", "link": "macros.html#fls_95rn4cvgznmd", "checksum": "7b97106af69b3585b467ae757b209987fcfa719d9d0056adfca9fbc914a2d73b"}, {"id": "fls_yg4c9x7049y4", "number": "20.4.2:18", "link": "macros.html#fls_yg4c9x7049y4", "checksum": "a990d3628235419098482e04aad2d699f6205b88761be1c1cea45b6dad882cd1"}, {"id": "fls_o9rwz9z0a2h4", "number": "20.4.2:19", "link": "macros.html#fls_o9rwz9z0a2h4", "checksum": "30c1a84b2185098caed8510493324650b62ebcbc98651ffdef52e7656b859109"}], "informational": false}, {"id": "fls_xlfo7di0gsqz", "number": "20.5", "title": "Hygiene", "link": "macros.html#hygiene", "paragraphs": [{"id": "fls_7ezc7ncs678f", "number": "20.5:1", "link": "macros.html#fls_7ezc7ncs678f", "checksum": "dd8bbb6eef9dde4a235a404d36082ffd706c870db1421a4681408cf45d6a6bcc"}, {"id": "fls_3axjf28xb1nt", "number": "20.5:2", "link": "macros.html#fls_3axjf28xb1nt", "checksum": "950f5e9f05dfb90a7771b7b56a2c154f09546fdb6ee7b4947d3598357e680977"}, {"id": "fls_dz2mvodl818d", "number": "20.5:3", "link": "macros.html#fls_dz2mvodl818d", "checksum": "341839374d80c8018873df9d4ddc4bc416d5bc2dac1e9b09bc7a56b94374252a"}, {"id": "fls_puqhytfzfsg6", "number": "20.5:4", "link": "macros.html#fls_puqhytfzfsg6", "checksum": "e4746196f1fb7989f818766502b19a237f5b3740241baf2dfd8cb4211c05f424"}, {"id": "fls_uyvnq88y9gk3", "number": "20.5:5", "link": "macros.html#fls_uyvnq88y9gk3", "checksum": "93e969fde4270a39d3cee8c4a0b19185228c33e8b24df9d0ef270765e9824d81"}, {"id": "fls_yxqcr19dig18", "number": "20.5:6", "link": "macros.html#fls_yxqcr19dig18", "checksum": "20c309825d7777388bd6af5804c0c7762b4fe76a90f7d2eb118d92ba8f547c1c"}, {"id": "fls_kx25olky1jov", "number": "20.5:7", "link": "macros.html#fls_kx25olky1jov", "checksum": "64745f1bbadaf610e425de55287699402147860a4554484ba0071db41bc7ed34"}, {"id": "fls_v46v0t2vh6x4", "number": "20.5:8", "link": "macros.html#fls_v46v0t2vh6x4", "checksum": "143bbe1668afc34dcafc68eddd7634b71e3847e8f9416dc8dedcee0d2d5198f5"}, {"id": "fls_7eqqk2cj0clr", "number": "20.5:9", "link": "macros.html#fls_7eqqk2cj0clr", "checksum": "82fe4be1744d0478a0bcbed88a26bf676ea9c239bd2e996210ce59ad724a104b"}], "informational": false}], "informational": false}, {"title": "Inline Assembly", "link": "inline-assembly.html", "sections": [{"id": "fls_z1il3w9nulzy", "number": "22", "title": "Inline Assembly", "link": "inline-assembly.html", "paragraphs": [{"id": "fls_leamdp1r3hez", "number": "22:1", "link": "inline-assembly.html#fls_leamdp1r3hez", "checksum": "2ecbb717faf9cd41966fd3fa61c9973605adda7174928d76aeec692e2f57f1e1"}, {"id": "fls_3fg60jblx0xb", "number": "22:2", "link": "inline-assembly.html#fls_3fg60jblx0xb", "checksum": "f55330136adb51523a63dd5eccf639fc7290faacab77ff910b09c4c10719ac1e"}, {"id": "fls_helnk2iz8qhp", "number": "22:3", "link": "inline-assembly.html#fls_helnk2iz8qhp", "checksum": "fb5d9789deafd6c411d8abdd1a60bfdfea453bfbfe713df9016b5b07c26df2c9"}, {"id": "fls_vanmt2dv7hzd", "number": "22:4", "link": "inline-assembly.html#fls_vanmt2dv7hzd", "checksum": "4b4a76da9d4b5011fcbcd054fffc111ce72238f797e8cf7b2bbbccec650c24c3"}, {"id": "fls_g8fuy1qnebxe", "number": "22:5", "link": "inline-assembly.html#fls_g8fuy1qnebxe", "checksum": "55a932bf32ca4b5f1f13535ebf918728efa7830451bde120075904c8cc821ff0"}, {"id": "fls_2n9el98anp8c", "number": "22:6", "link": "inline-assembly.html#fls_2n9el98anp8c", "checksum": "2932ba93879a19d635e09c54bc40e411c50ad1cd415e1048e6a594284226a29f"}, {"id": "fls_pnoh31rvu9a6", "number": "22:7", "link": "inline-assembly.html#fls_pnoh31rvu9a6", "checksum": "c16628799da95c60a31934e0f2f6de7cb46011a537bb8effa46c86007e1dc6d7"}], "informational": true}, {"id": "fls_j9l8wn6wgm06", "number": "22.1", "title": "Registers", "link": "inline-assembly.html#registers", "paragraphs": [{"id": "fls_w5a6rybvptn6", "number": "22.1:1", "link": "inline-assembly.html#fls_w5a6rybvptn6", "checksum": "39d60a2f6181ef9205caf904fd95f7ba0a390aeb492700ff04033297298fff41"}, {"id": "fls_rr8rsy7oilf0", "number": "22.1:2", "link": "inline-assembly.html#fls_rr8rsy7oilf0", "checksum": "73d6369a132933d1c5b8a2cfddbb5f48324fe1b292208ff88d01629411bb9802"}, {"id": "fls_5ruu8n6r9mvp", "number": "22.1:3", "link": "inline-assembly.html#fls_5ruu8n6r9mvp", "checksum": "12f179e5416873944a2cc637d0784da3593495a2183782ee5eb02950eeae9da6"}, {"id": "fls_hv3y1a2xn0zr", "number": "22.1:4", "link": "inline-assembly.html#fls_hv3y1a2xn0zr", "checksum": "b9873fd50a4bcfa74822967e3a60e5e0de2ddcfdaf3e20b8687b32685ff64c0b"}, {"id": "fls_vesfzh8h6qzu", "number": "22.1:5", "link": "inline-assembly.html#fls_vesfzh8h6qzu", "checksum": "0c60e99f8efc707247c3e040ba544bc81e25f9c00c6018150077ad6e1e2b7015"}, {"id": "fls_ffwqxlh60i5w", "number": "22.1:6", "link": "inline-assembly.html#fls_ffwqxlh60i5w", "checksum": "a070ce88d95ce414fcca9658f1ecaa93e57637fe94c94a90c0d5f7c2674a098b"}, {"id": "fls_3p8akc7gcsnx", "number": "22.1:7", "link": "inline-assembly.html#fls_3p8akc7gcsnx", "checksum": "bc22aaa1e0a33be94f875c5a08d1d776471f1e063929ab385e062a1114dde726"}, {"id": "fls_7dlx7nt77xk", "number": "22.1:8", "link": "inline-assembly.html#fls_7dlx7nt77xk", "checksum": "7c3fa30aaa8c0f3bc6f842ae4f591e7d875e79c277ac8f86b165d0913d3060a2"}, {"id": "fls_w4z7yh5qyyed", "number": "22.1:9", "link": "inline-assembly.html#fls_w4z7yh5qyyed", "checksum": "948be818103f72ba1df6ed3e5e0ca91049b4ccb4cd3b6ef73f2a2555d14fa31d"}, {"id": "fls_rzp8eg6z6x3q", "number": "22.1:10", "link": "inline-assembly.html#fls_rzp8eg6z6x3q", "checksum": "763f676df4ed30cc6df7cd82179c4d111f881ba1c05d0d9cb16b54676f276e17"}, {"id": "fls_e1w41918j49", "number": "22.1:11", "link": "inline-assembly.html#fls_e1w41918j49", "checksum": "34cd0c382f4f6e1a64167e53b3bd89895d35af1d3829d9d540bf6db843f635f8"}, {"id": "fls_q0s90h7xmnn4", "number": "22.1:12", "link": "inline-assembly.html#fls_q0s90h7xmnn4", "checksum": "29847045f981474ebef77cf27630d2c65b6b9cf14a6df2196c16f636c42d885f"}, {"id": "fls_3pt63w76isay", "number": "22.1:13", "link": "inline-assembly.html#fls_3pt63w76isay", "checksum": "f7001d16fded0766de3bb30882a297cbb7bd22abe36f34fae3214176bfd9411d"}, {"id": "fls_f3clxd3vidhh", "number": "22.1:14", "link": "inline-assembly.html#fls_f3clxd3vidhh", "checksum": "3344b7fd47aab10734e11041c74314f0ed34b6cdaf296d6d01a6c691f0c13183"}, {"id": "fls_vyeczg1cjxys", "number": "22.1:15", "link": "inline-assembly.html#fls_vyeczg1cjxys", "checksum": "a8af143fd34f01e8f65e9f888d7d760a3b031967381aee5176d597fde23be59f"}, {"id": "fls_h5t153uhzoq3", "number": "22.1:16", "link": "inline-assembly.html#fls_h5t153uhzoq3", "checksum": "988c5d9c0ec05e872a195f4cee6b0aa813fa0e0d2ddd4954cb63400dda9c839b"}, {"id": "fls_jhph577nqds1", "number": "22.1:17", "link": "inline-assembly.html#fls_jhph577nqds1", "checksum": "cc0d67b9c4b0380c9a19ee2cc5f245a03585452dc63cab72a429c021d97dc83a"}, {"id": "fls_mobj1y67vxvb", "number": "22.1:18", "link": "inline-assembly.html#fls_mobj1y67vxvb", "checksum": "1c7dc5e2b8e5778cfaca9e65467b897d26825ba493e2eb3cec5435253680cdfb"}, {"id": "fls_9ke412je1hqn", "number": "22.1:19", "link": "inline-assembly.html#fls_9ke412je1hqn", "checksum": "1cbe768ef7b25e59f62f8866acbe1cdbfc5a93786922d54a7ef4a8fb4496c6a0"}, {"id": "fls_hndlas58937e", "number": "22.1:20", "link": "inline-assembly.html#fls_hndlas58937e", "checksum": "2950a79b4c2b514e58a5e7111b5028fd5c547bfac4ea6877f6a9c0caa7e705ef"}, {"id": "fls_5x0yvjil3z8p", "number": "22.1:21", "link": "inline-assembly.html#fls_5x0yvjil3z8p", "checksum": "550d7fbd6817adc4a359813352ec379bf58efa791fd796c493eeaa84183afeda"}, {"id": "fls_gxvlvnqs436h", "number": "22.1:22", "link": "inline-assembly.html#fls_gxvlvnqs436h", "checksum": "e940f5a23bca352679d2dc94ddb731f3a7a16e94572cc09fb942ecfe75186792"}, {"id": "fls_mra7zuu7uzmb", "number": "22.1:23", "link": "inline-assembly.html#fls_mra7zuu7uzmb", "checksum": "2910e2dc873a5bfe39300faefa630bf1d91844c07f36271ac590d8320e12b73d"}, {"id": "fls_maa7w0jwvat2", "number": "22.1:24", "link": "inline-assembly.html#fls_maa7w0jwvat2", "checksum": "5d80d07626a153308f8addc2b5e9471836ba12ce1bdb076f4af716b9a4e18c2c"}, {"id": "fls_az7kcaq70h4d", "number": "22.1:25", "link": "inline-assembly.html#fls_az7kcaq70h4d", "checksum": "c65f4c6b8db4f51f6eaf6ddacab1fdb08f9479f2b15b0b5f882da8c81c84054f"}, {"id": "fls_xudmsflrhvo3", "number": "22.1:26", "link": "inline-assembly.html#fls_xudmsflrhvo3", "checksum": "57205b0e3779a9c0f99384a2e74b444075d08f48e6ca14466b92c6288be50961"}, {"id": "fls_px77cr1k8coy", "number": "22.1:27", "link": "inline-assembly.html#fls_px77cr1k8coy", "checksum": "68737b33213261aa2bc36b9d8e4d651c615017faf9304e654e7db3705b897e44"}, {"id": "fls_y1m7tlqk2dv7", "number": "22.1:28", "link": "inline-assembly.html#fls_y1m7tlqk2dv7", "checksum": "a05b1f6d34aed3cf3fc1a88b0e4ffde453b1c30cc42ba145fc45a0eb33ae7654"}, {"id": "fls_3dqq9319okv5", "number": "22.1:29", "link": "inline-assembly.html#fls_3dqq9319okv5", "checksum": "7c1cd463725b7565f2460515d804abdd2d46fec45b4ac95a28c0b1ff8e554c5c"}, {"id": "fls_5l9qo5c0gek8", "number": "22.1:30", "link": "inline-assembly.html#fls_5l9qo5c0gek8", "checksum": "2b98ca72c3cc9d2473a8d91c2d66d0d938ba4fb430280f13c5a0d23e30124b4a"}, {"id": "fls_1m68zqsxjuyp", "number": "22.1:31", "link": "inline-assembly.html#fls_1m68zqsxjuyp", "checksum": "4230c88382f71375962eef4624b0fc37fa2ae2ebcaa2c7b401f490fc1fa26ce4"}, {"id": "fls_bck9slu4hsn1", "number": "22.1:32", "link": "inline-assembly.html#fls_bck9slu4hsn1", "checksum": "b481fc8900e3203d5e51d7456b51a12825e1ffc5c307841c43da63a0b09eefb9"}, {"id": "fls_3x72q39c8iwt", "number": "22.1:33", "link": "inline-assembly.html#fls_3x72q39c8iwt", "checksum": "e2996fb9db79d277b33c4f337dc25fa4d319a5b8869182db47869241a7d6deec"}, {"id": "fls_yfbrla8c801g", "number": "22.1:34", "link": "inline-assembly.html#fls_yfbrla8c801g", "checksum": "e6bbea8fcf8570922fb2dbb84419a008ed40c04e0333e8759a764083b6de6314"}, {"id": "fls_3nuf1gcldamv", "number": "22.1:35", "link": "inline-assembly.html#fls_3nuf1gcldamv", "checksum": "d8849406f6b817683c149ab81aefd6d29b706724c6023b66047d2edba3924f38"}, {"id": "fls_nquf1uaoezx6", "number": "22.1:36", "link": "inline-assembly.html#fls_nquf1uaoezx6", "checksum": "a32c2a79d6b620d5519660e13751e5cc22eea8de15c0b390067701e98f30a2a7"}, {"id": "fls_91oeyxc75vu5", "number": "22.1:37", "link": "inline-assembly.html#fls_91oeyxc75vu5", "checksum": "c8194fd8db5397f0ac15a419724a3e5891b702d2969fb1bcb372ce18c98f8601"}, {"id": "fls_r5btazdpwqtw", "number": "22.1:38", "link": "inline-assembly.html#fls_r5btazdpwqtw", "checksum": "1fb8568338e94e2bd2cef7b0aa0fb1faadd19bbab344274b1b54a2f404f8e783"}, {"id": "fls_vpibsan8aful", "number": "22.1:39", "link": "inline-assembly.html#fls_vpibsan8aful", "checksum": "2c4843ee0d6e3e1ad8d3a6bc4c387786a63a146301b093178a14861ed7e86461"}, {"id": "fls_lj6xcaaecokk", "number": "22.1:40", "link": "inline-assembly.html#fls_lj6xcaaecokk", "checksum": "fdcc738daa05173b5609e74f2b89807360390675b83c3a52323024cf32c4c93a"}, {"id": "fls_bb1qjfin4zjc", "number": "22.1:41", "link": "inline-assembly.html#fls_bb1qjfin4zjc", "checksum": "d7006f1141083f004dce3c7fcfd3553336d9f21e9cddcd91cd327d990f2b43ad"}, {"id": "fls_7qj6pxuq2x9e", "number": "22.1:42", "link": "inline-assembly.html#fls_7qj6pxuq2x9e", "checksum": "32c579a792bd4dfc3a9a6d6af1d96694c344082c3e65ab27cea73e72c5b24be5"}, {"id": "fls_2xkw4nqt1s5a", "number": "22.1:43", "link": "inline-assembly.html#fls_2xkw4nqt1s5a", "checksum": "2ad948609b5dfb44bd6f0f3b491e171298e449c937fe7d727429e71a03180fe6"}, {"id": "fls_dpzi4ygox7jw", "number": "22.1:44", "link": "inline-assembly.html#fls_dpzi4ygox7jw", "checksum": "2db64ea95f20d553dde55920a82cd6514d6071a691fc62a0a2db860ef6134582"}, {"id": "fls_yr5ztipvgezk", "number": "22.1:45", "link": "inline-assembly.html#fls_yr5ztipvgezk", "checksum": "8967b0adae59edc96e1b580347bfc98961cd1a02ef5b17848e4d07b31d0bd2e0"}, {"id": "fls_n8ccafjut1yd", "number": "22.1:46", "link": "inline-assembly.html#fls_n8ccafjut1yd", "checksum": "8acdb975ac984cda5246944ae4bb019bf2a339227c9774d52bc7a0676f46fc87"}, {"id": "fls_iv23mcgw6l3r", "number": "22.1:47", "link": "inline-assembly.html#fls_iv23mcgw6l3r", "checksum": "d044514182338ccadc9d1a05981c817324f604a615020a9507188e023305649a"}, {"id": "fls_yr7bac5k3uk7", "number": "22.1:48", "link": "inline-assembly.html#fls_yr7bac5k3uk7", "checksum": "2aab1e6272ff7b563a82b6b37c18bca96b4c87c262d8f2e8b2c9cc0e81c7ec0e"}, {"id": "fls_gvb2zcrseqci", "number": "22.1:49", "link": "inline-assembly.html#fls_gvb2zcrseqci", "checksum": "f7bcce04d256c567958ac3c7b038e42b735b6997898d7ff47aac48170c896eee"}, {"id": "fls_z1b9nf49nbjh", "number": "22.1:50", "link": "inline-assembly.html#fls_z1b9nf49nbjh", "checksum": "3b2f9835bae0171b78f5e494a3aa32451cd8c1785291f2d6d8393e0839e5bf45"}, {"id": "fls_etfkcesnrlwt", "number": "22.1:51", "link": "inline-assembly.html#fls_etfkcesnrlwt", "checksum": "cb975dffbdba381c89169413a7000e7dce7ec25ef91c34b0c74b850f3647a2f4"}, {"id": "fls_8sqzva4ibf0i", "number": "22.1:52", "link": "inline-assembly.html#fls_8sqzva4ibf0i", "checksum": "1f33ae168aae6dde1001c1413bdefa412cf8161d3e84988f35963972258881d8"}, {"id": "fls_8bo9p6mybuzi", "number": "22.1:53", "link": "inline-assembly.html#fls_8bo9p6mybuzi", "checksum": "c6aa9d96351da3b4fe364c7887ea1ba84b5643d1d7a3838ea2efb41907b794de"}, {"id": "fls_dk4z9dracvps", "number": "22.1:54", "link": "inline-assembly.html#fls_dk4z9dracvps", "checksum": "649109caddec8bfbd71e14d93cd7e1c50c27a223b51ebacfd28ace0d02e1526b"}, {"id": "fls_7c7lgvw8gbkb", "number": "22.1:55", "link": "inline-assembly.html#fls_7c7lgvw8gbkb", "checksum": "d7a0475661c593f7c0566fc7018842861e7876cde7b82b1866534efc7c2e0443"}, {"id": "fls_sb0ffx31gul9", "number": "22.1:56", "link": "inline-assembly.html#fls_sb0ffx31gul9", "checksum": "03796b443d5b6bee6e75a9e91f79f885c5c7a9c39ba82beb8257fc4d9bb65116"}, {"id": "fls_f9psgjl6ervm", "number": "22.1:57", "link": "inline-assembly.html#fls_f9psgjl6ervm", "checksum": "d3cdc1dbdbdaf3bf51d1c1d3e15c1fa5aef040e28178566c5cb0d654ebcab926"}, {"id": "fls_3y3b7znxznzu", "number": "22.1:58", "link": "inline-assembly.html#fls_3y3b7znxznzu", "checksum": "c72b9ed4c401c89d36486c8d501951d76d0d37f6c2e0e8b06a1d4e20c2431428"}, {"id": "fls_7y201ev5b0mq", "number": "22.1:59", "link": "inline-assembly.html#fls_7y201ev5b0mq", "checksum": "81ecd8fe1fe33b56420762ca519c95224c123ed4439893049875d345aba5c512"}, {"id": "fls_r2aoetnwhjkf", "number": "22.1:60", "link": "inline-assembly.html#fls_r2aoetnwhjkf", "checksum": "a44bc0de8a6ee0c018ae873e38b231a58ebb326951a3fd5fe21546388c740593"}, {"id": "fls_54n4ie3frc39", "number": "22.1:61", "link": "inline-assembly.html#fls_54n4ie3frc39", "checksum": "bc842bb6d2622c3a029ef4614723d21fd262ddf085253092dd84e1a420f77ca7"}, {"id": "fls_iok8gc906tc8", "number": "22.1:62", "link": "inline-assembly.html#fls_iok8gc906tc8", "checksum": "7a946b3318f99a6748a231b8c03c16781c4292e0fcbbc4ac706a962861f317b5"}, {"id": "fls_2mgjkyngbmbr", "number": "22.1:63", "link": "inline-assembly.html#fls_2mgjkyngbmbr", "checksum": "770cd7d9c31bbb765ad40be40ea824f38ba9e412b3e507365f9c6a754c17551e"}, {"id": "fls_6tlnpguf23y3", "number": "22.1:64", "link": "inline-assembly.html#fls_6tlnpguf23y3", "checksum": "5c59322286016f2c772ca739ba5233cd7e28720d91ce9189183e1852db7b095a"}, {"id": "fls_bz5xyv89i5m7", "number": "22.1:65", "link": "inline-assembly.html#fls_bz5xyv89i5m7", "checksum": "c7750120307aedb80af8ae7313dd6345535fd86e2c63679b6d61344356d21904"}, {"id": "fls_soitzjqze3rf", "number": "22.1:66", "link": "inline-assembly.html#fls_soitzjqze3rf", "checksum": "18febf551f1317bbf8aa6f68c01133df1bacd637fbb0500335b6725a840eb292"}, {"id": "fls_b2c02r5y6zm9", "number": "22.1:67", "link": "inline-assembly.html#fls_b2c02r5y6zm9", "checksum": "5b49f664f474f3d6edcb8801c7593e791e1d1ad1349e8d219df81fa95929c9a4"}, {"id": "fls_2ufm8y5ttcxf", "number": "22.1:68", "link": "inline-assembly.html#fls_2ufm8y5ttcxf", "checksum": "641caa94a7b88594686c64a9e6c37cd6597bc61fb18259f047eb9c3a31ae1428"}, {"id": "fls_ub321ic94bbl", "number": "22.1:69", "link": "inline-assembly.html#fls_ub321ic94bbl", "checksum": "d1c20d9b16467ccff234ee51ec9f7445d1242be7328a3b7fc74105e82aa6848f"}, {"id": "fls_gtwmwsmyrdxe", "number": "22.1:70", "link": "inline-assembly.html#fls_gtwmwsmyrdxe", "checksum": "8e992777ce18f719a5a9f6087fe030f71520760bfe4215255991b93ae2a6775a"}, {"id": "fls_vy8alu9yuza9", "number": "22.1:71", "link": "inline-assembly.html#fls_vy8alu9yuza9", "checksum": "22204cedd5304e36d4991c6ec1da6276140e3d0d2decbed86fe6c623c9a4cd8b"}, {"id": "fls_zetlz5kjqchs", "number": "22.1:72", "link": "inline-assembly.html#fls_zetlz5kjqchs", "checksum": "d8eeb48a603b537546fcc36fa3e17ccba43d166b30fd0d2792edc9e29f75d4ba"}], "informational": false}, {"id": "fls_pz2ioqchjtym", "number": "22.2", "title": "Register Classes", "link": "inline-assembly.html#register-classes", "paragraphs": [{"id": "fls_7gxb7ztpuofj", "number": "22.2:1", "link": "inline-assembly.html#fls_7gxb7ztpuofj", "checksum": "bca76cef1fe93380b4b2764a1780560ecfc7d399d0133d974aa8b4272185398c"}, {"id": "fls_on0i2cpk254y", "number": "22.2:2", "link": "inline-assembly.html#fls_on0i2cpk254y", "checksum": "072e7d6791f5c1d9aca09df3602ec2e87a96ea771b13d9baee44cc7da4745443"}, {"id": "fls_40ksem5g5xx9", "number": "22.2:3", "link": "inline-assembly.html#fls_40ksem5g5xx9", "checksum": "f507ddb8a4d78d5f4516c08061e3fd00ce3680761f88d8533d74cebf1747d8e5"}, {"id": "fls_fqvjk6caipq", "number": "22.2:4", "link": "inline-assembly.html#fls_fqvjk6caipq", "checksum": "4f9cf8829042709ab419bcfdac8f32f55808e17f6f72d0a868bc08b92f89d719"}, {"id": "fls_u0ie66ep3glg", "number": "22.2:5", "link": "inline-assembly.html#fls_u0ie66ep3glg", "checksum": "a745f47cfa17415d3efa516e8a511b98dc10024c933e4b234e51839ab8b2c4bf"}, {"id": "fls_wcvcansd88je", "number": "22.2:6", "link": "inline-assembly.html#fls_wcvcansd88je", "checksum": "834825290b52066ecedfd94cfeaaa564b134590cadb34cc3d93faffcfa68982a"}, {"id": "fls_sbllpky4d7ka", "number": "22.2:7", "link": "inline-assembly.html#fls_sbllpky4d7ka", "checksum": "19a597e10c09d8cd5266148bbaa227ca26d47e590e8cbe4a3a0b4a3b7b65ebf9"}, {"id": "fls_nmx5xs829ms", "number": "22.2:8", "link": "inline-assembly.html#fls_nmx5xs829ms", "checksum": "22f409acc30151195193e1ac9bc8011511fad86bb8a83517b941ceba06117903"}, {"id": "fls_nars4y8tv2w6", "number": "22.2:9", "link": "inline-assembly.html#fls_nars4y8tv2w6", "checksum": "e7b421b9d33bd170c0b1cb09c6bf1d3514538ae75bad8431dc915f4629b428fe"}, {"id": "fls_b5juxguclqjs", "number": "22.2:10", "link": "inline-assembly.html#fls_b5juxguclqjs", "checksum": "6b05bd0ba53bef61a1eb498458f8f387e92b3a84409fe2949e603bde1d9a915d"}, {"id": "fls_vmigixoxm5uf", "number": "22.2:11", "link": "inline-assembly.html#fls_vmigixoxm5uf", "checksum": "aea699b2678adf58e4f4bf56b5b412b83f1ded902ad91eb6d363bfc48e11ecb6"}, {"id": "fls_vdqtbc4t69v2", "number": "22.2:12", "link": "inline-assembly.html#fls_vdqtbc4t69v2", "checksum": "6481ad4cc845d4e7ffc277d6a32513834168222c01697bb90ede7f041f4b3ab3"}, {"id": "fls_t2d77dazjyjo", "number": "22.2:13", "link": "inline-assembly.html#fls_t2d77dazjyjo", "checksum": "a2eef70002f2666dc49f2def9707cdfa752018ddd635ddf2f70e7086f1782b72"}, {"id": "fls_jh02uk3ypett", "number": "22.2:14", "link": "inline-assembly.html#fls_jh02uk3ypett", "checksum": "ac9efee8bc991667f505b75c53a5d2409171184521200c1315775ac64f7bfc7c"}, {"id": "fls_rjk5laiyqagy", "number": "22.2:15", "link": "inline-assembly.html#fls_rjk5laiyqagy", "checksum": "0eaa7e064279eea86a9d365b6c251eb9d9b53356bcf44f642cefe63992aa99b6"}, {"id": "fls_26bq6wbwznx", "number": "22.2:16", "link": "inline-assembly.html#fls_26bq6wbwznx", "checksum": "ae959551a354c13f23e569b07e21962fd29e91edad42a1637c61c47ffbba3178"}, {"id": "fls_6d25i0lkzd7u", "number": "22.2:17", "link": "inline-assembly.html#fls_6d25i0lkzd7u", "checksum": "0e6100d8c3a6f0652c904a5a5da3ac3fdbc07c732bcb94f9ced925a3a67ea4df"}, {"id": "fls_y52suhleyid2", "number": "22.2:18", "link": "inline-assembly.html#fls_y52suhleyid2", "checksum": "c763cce07ab00dfd3323500717b1eed3e55412bb79178870af3708ab08e16908"}, {"id": "fls_7b7c8xtm8fr7", "number": "22.2:19", "link": "inline-assembly.html#fls_7b7c8xtm8fr7", "checksum": "96cd932df092222c77d3bcb7d31fad0c2be26093f163662b926fb5cc7acf7f83"}, {"id": "fls_ue0se3dcop6w", "number": "22.2:20", "link": "inline-assembly.html#fls_ue0se3dcop6w", "checksum": "e0ac82fc15ff715d9cddb3bdc897151a9a4cf2819d813ac6da7a07d48fd07ad0"}, {"id": "fls_2m49cyfqffvo", "number": "22.2:21", "link": "inline-assembly.html#fls_2m49cyfqffvo", "checksum": "9a47e3602b2201c92e0dce3aa02e6d20feae619aec5f1e0369434cb2af047e9e"}, {"id": "fls_mj1t0f9lp6v8", "number": "22.2:22", "link": "inline-assembly.html#fls_mj1t0f9lp6v8", "checksum": "fba730a9b194b9c95c6372bcd456c87e55aaa5d71933a5ffbf3afbc6ce1bdaf8"}, {"id": "fls_tpkkubhjt7lk", "number": "22.2:23", "link": "inline-assembly.html#fls_tpkkubhjt7lk", "checksum": "de2789ffcd9d02a9bbc9c39b7b94cd196bfd6f0167acfd400d37b10d6188efc3"}, {"id": "fls_ivq874v4lmga", "number": "22.2:24", "link": "inline-assembly.html#fls_ivq874v4lmga", "checksum": "2eabf1ca886e5459326f2967d018156022a1148d68a4f0cad387ba9857bdbd77"}, {"id": "fls_2wdcrocczwyi", "number": "22.2:25", "link": "inline-assembly.html#fls_2wdcrocczwyi", "checksum": "5f20a84f69b2f4df1e103ed21420855eb0edd88111d65c915c9323f4e86af1d4"}, {"id": "fls_v04te7p28dth", "number": "22.2:26", "link": "inline-assembly.html#fls_v04te7p28dth", "checksum": "f98c5961068bd12ec95c8e6cc0e0981321c82dd46936f9674f1da53e1f4da5d9"}, {"id": "fls_uypct69j2h6a", "number": "22.2:27", "link": "inline-assembly.html#fls_uypct69j2h6a", "checksum": "68b2c581d553c7dc02a6bcb848acc9c08aaa51f9dfd03525f402337590b1c00f"}, {"id": "fls_gyet9huf6nr", "number": "22.2:28", "link": "inline-assembly.html#fls_gyet9huf6nr", "checksum": "80f90c8b08776edc6b8d2896a8d06cd39c50126b7b0a36a79b50b336f5e3b3cd"}, {"id": "fls_5ekbq9hacho9", "number": "22.2:29", "link": "inline-assembly.html#fls_5ekbq9hacho9", "checksum": "fd2227497b01180261f81adb03ea6a85c78ad4ed2fef19428a5722d64a04012c"}, {"id": "fls_furnyxmwqn09", "number": "22.2:30", "link": "inline-assembly.html#fls_furnyxmwqn09", "checksum": "22aada8b4f1f9e603a61146c28eb2887803435066842ef0118a7f1917ebeb814"}, {"id": "fls_1c4ts991vkpq", "number": "22.2:31", "link": "inline-assembly.html#fls_1c4ts991vkpq", "checksum": "38657e66bcc21e14e87aa5238007bcac36dce73156c9c5af823e904c25658fc4"}, {"id": "fls_iwnb72jb9iwj", "number": "22.2:32", "link": "inline-assembly.html#fls_iwnb72jb9iwj", "checksum": "f12f6d554c25c5f85af01ebeffe90a992373ef8a69195825942db06fb5c04ea8"}, {"id": "fls_mw3axoixjgnq", "number": "22.2:33", "link": "inline-assembly.html#fls_mw3axoixjgnq", "checksum": "15d41d994ebc27fa82da90d54388cdf07ae3e0f9ede2cfeb23369a24746bdeb7"}, {"id": "fls_mnzt6bxhycv9", "number": "22.2:34", "link": "inline-assembly.html#fls_mnzt6bxhycv9", "checksum": "fe29bb239760aa31dc2989d7ef1b1e0c39eb0b86dba45b014c7a1944e999b5e4"}, {"id": "fls_drg7v8hxb5ca", "number": "22.2:35", "link": "inline-assembly.html#fls_drg7v8hxb5ca", "checksum": "8ef8f937a7b7b7adb9ce03d888fcf5148a91620cc4af1b10b59ac502f648b5c7"}, {"id": "fls_78gb8z1fyluc", "number": "22.2:36", "link": "inline-assembly.html#fls_78gb8z1fyluc", "checksum": "a04359b7328e6f0222e6c4296470962b896234b8db289d9a7c215eba9ef0a7db"}, {"id": "fls_7dii7lee457t", "number": "22.2:37", "link": "inline-assembly.html#fls_7dii7lee457t", "checksum": "2c9e81813ba55fc43a7bcbb08d580d2da6ced81202c68a5c37a3be0227a000a7"}, {"id": "fls_ujhjocg1361b", "number": "22.2:38", "link": "inline-assembly.html#fls_ujhjocg1361b", "checksum": "240ab19a4ecb8be24c7140737462ed6c98ed2adeaae044fc076f6af615f3fa39"}], "informational": false}, {"id": "fls_hejgghwzblf", "number": "22.3", "title": "Register Arguments", "link": "inline-assembly.html#register-arguments", "paragraphs": [{"id": "fls_455dmnp4cxqv", "number": "22.3:1", "link": "inline-assembly.html#fls_455dmnp4cxqv", "checksum": "51ff09ea4d125dfa2dddd25429197d68e0ab90254402dd2d93ea531c65a622a0"}, {"id": "fls_6bv3s8be5xif", "number": "22.3:2", "link": "inline-assembly.html#fls_6bv3s8be5xif", "checksum": "fa26d928624b04e379be24a2fc2001a49d414a019eebebf261e5a6c5951a3532"}, {"id": "fls_uddjvkz4g899", "number": "22.3:3", "link": "inline-assembly.html#fls_uddjvkz4g899", "checksum": "c48eae85f32cfba112d97ce5307d7272d0911f9df4e67ba250f055efc0a0be0b"}, {"id": "fls_sqs5to20p0te", "number": "22.3:4", "link": "inline-assembly.html#fls_sqs5to20p0te", "checksum": "de9b4bea7caed53ee7b0afc9fdfb7ce959dbe46af01b3c32dcdaca669dd8a0c0"}, {"id": "fls_dzlycyk24euk", "number": "22.3:5", "link": "inline-assembly.html#fls_dzlycyk24euk", "checksum": "40c4d335089982458288126ed9615e8a2616285afc565532e391dd1ff35326f2"}, {"id": "fls_ics6gdzww1p", "number": "22.3:6", "link": "inline-assembly.html#fls_ics6gdzww1p", "checksum": "5154cd8c69374c45e9d741be110ba567134bb0b39eabcb8c458adbc972fdd2df"}, {"id": "fls_mmc1w8jjr55r", "number": "22.3:7", "link": "inline-assembly.html#fls_mmc1w8jjr55r", "checksum": "1fec5e0696f6525d77986c3fb4fe9afdfc0cb637119ad785681ba1c292856bae"}, {"id": "fls_9hhtcey2d4t6", "number": "22.3:8", "link": "inline-assembly.html#fls_9hhtcey2d4t6", "checksum": "1a6421d6b7caaf88bbb46cf868ffb92933d8f68b11221f3cc918d093f8888e72"}, {"id": "fls_8aynifgq02gt", "number": "22.3:9", "link": "inline-assembly.html#fls_8aynifgq02gt", "checksum": "b2936dd6ad92f8cfa53239fd025460f7d3e1b679ede4b445d3115ece8999ed98"}, {"id": "fls_5a3vfresnv5z", "number": "22.3:10", "link": "inline-assembly.html#fls_5a3vfresnv5z", "checksum": "0f946393a931cc5b78f9934819f7aa4ba6b514ee373b349ecce52f591ebcf435"}, {"id": "fls_fta1gb5tzi3a", "number": "22.3:11", "link": "inline-assembly.html#fls_fta1gb5tzi3a", "checksum": "4c9f00fb04a33159473b68a31e8ee74f70f23444dfe8e434256b0773119cc988"}, {"id": "fls_sopiivuae0x7", "number": "22.3:12", "link": "inline-assembly.html#fls_sopiivuae0x7", "checksum": "ad39aebc78473e0d03c855868bf7740446e20ac900ed24bdf0f239dc211dfb67"}, {"id": "fls_kkrcyk96w8x1", "number": "22.3:13", "link": "inline-assembly.html#fls_kkrcyk96w8x1", "checksum": "503348cabcbc12fa0d9d17abf0e2019e91f2b649f8a985f9ccda7e84e2ac7ba4"}, {"id": "fls_aniw4ehsn2kb", "number": "22.3:14", "link": "inline-assembly.html#fls_aniw4ehsn2kb", "checksum": "a383ba34b050c0c54cc8abca1eb3edacee0c31437bceca025437faa04647913b"}, {"id": "fls_vu30cuq4y0ht", "number": "22.3:15", "link": "inline-assembly.html#fls_vu30cuq4y0ht", "checksum": "a674121d8b1308d5f75d1d8bee7bddb25bdbca12b53929f1b1c447349980e532"}, {"id": "fls_66owmltvhnu4", "number": "22.3:16", "link": "inline-assembly.html#fls_66owmltvhnu4", "checksum": "29c83fda93c055d8e8e1b5413124cd7b9321a5fcd2661ff0c6b2ad53c3a0cb10"}, {"id": "fls_72p8e4bo6pns", "number": "22.3:17", "link": "inline-assembly.html#fls_72p8e4bo6pns", "checksum": "8f3aef39cde848c0aff944c3688510c0623f11c4956e906b2c149933ca1bfc31"}, {"id": "fls_z0dbmmp5yblf", "number": "22.3:18", "link": "inline-assembly.html#fls_z0dbmmp5yblf", "checksum": "1d170272d80212e9ab38968ac21b6adb73b67fea20a811908cf097679cd04403"}, {"id": "fls_4jdnt8uap95i", "number": "22.3:19", "link": "inline-assembly.html#fls_4jdnt8uap95i", "checksum": "bcda305ab21eb743bfbaf94192a7f091188f70e80d49d4ecc69cd944d560dbc0"}, {"id": "fls_wd2hzsbzdg2y", "number": "22.3:20", "link": "inline-assembly.html#fls_wd2hzsbzdg2y", "checksum": "0937925a39e22d804ee545814336d49c733f31ea7756377335fefff6db62282f"}, {"id": "fls_sqy00lg5j7c6", "number": "22.3:21", "link": "inline-assembly.html#fls_sqy00lg5j7c6", "checksum": "f7df1b813dc778c45c902762fd85f901ebede6cf627c93ddffa2731614f81305"}, {"id": "fls_vxba1ttvz6hh", "number": "22.3:22", "link": "inline-assembly.html#fls_vxba1ttvz6hh", "checksum": "7dbe8e81fc6ab3a89a0c7db915942f414747d3e1426a7f0a9e0eb76bbcf6f54a"}, {"id": "fls_xkbnla2avrn0", "number": "22.3:23", "link": "inline-assembly.html#fls_xkbnla2avrn0", "checksum": "485c4204bb3fc6bde480eae99cb508323f08d53843fe840b571c140e2d09efaf"}, {"id": "fls_w6jhcv616l9o", "number": "22.3:24", "link": "inline-assembly.html#fls_w6jhcv616l9o", "checksum": "2eae510aa3c0984999efed6c99d780375dd3245fbf78f98b65affdd980165179"}, {"id": "fls_xweobiwapog1", "number": "22.3:25", "link": "inline-assembly.html#fls_xweobiwapog1", "checksum": "bb5fda81378ad922bd59db0c0afb2d1243c2d1e2d61865303fb327146cc086cc"}, {"id": "fls_4matyejw6cls", "number": "22.3:26", "link": "inline-assembly.html#fls_4matyejw6cls", "checksum": "8148c38c96dbc7562e0a236a6f7c2bf76b1224b0b409a58dbe086b5bd1d63c38"}, {"id": "fls_hklqabav1jju", "number": "22.3:27", "link": "inline-assembly.html#fls_hklqabav1jju", "checksum": "fc4d057ac8b2c2a9823f6f4514305fd0ecc50af30f6f7ac3ed854e7f8a7e14c0"}, {"id": "fls_nq22h8gragil", "number": "22.3:28", "link": "inline-assembly.html#fls_nq22h8gragil", "checksum": "a8f57c97461cbdfb32ce6148c10dcf2b2deb5070adcb2fe1bb4850b3c211ba8d"}, {"id": "fls_uxgcrs57bznk", "number": "22.3:29", "link": "inline-assembly.html#fls_uxgcrs57bznk", "checksum": "a2c973cb292004179620ef85189058fef5ca0a6338ee56b885dfe5087c24658f"}, {"id": "fls_ym05938ejwng", "number": "22.3:30", "link": "inline-assembly.html#fls_ym05938ejwng", "checksum": "a70c379b4de9989a193e6532e92d5156358a876a75e38c960fda76d0d60c3647"}, {"id": "fls_5l77g8h8et2o", "number": "22.3:31", "link": "inline-assembly.html#fls_5l77g8h8et2o", "checksum": "3aee30c9effa5a942a1ada18c2ffb67bead416de8b1aa12b44d92fba4836a4e4"}, {"id": "fls_xlcliuums5b0", "number": "22.3:32", "link": "inline-assembly.html#fls_xlcliuums5b0", "checksum": "71c84d73a44e48e642f979b9a86af1793a323f1925a436f71dd359c01bb520e4"}, {"id": "fls_5p4hyl7mxgai", "number": "22.3:33", "link": "inline-assembly.html#fls_5p4hyl7mxgai", "checksum": "2bdd537d58814885175ea0a364633afe6412e67633eb7dac5eeeebbfce4eac16"}, {"id": "fls_ilepg263w5o7", "number": "22.3:34", "link": "inline-assembly.html#fls_ilepg263w5o7", "checksum": "3e4ce3eefa93e708f4edf4590415a8f929092e0676f38915c2d3bb267538656b"}, {"id": "fls_tubmavru8wvn", "number": "22.3:35", "link": "inline-assembly.html#fls_tubmavru8wvn", "checksum": "bffcbb94249f82f25927f78213e778f1a7f985c4920412526cbb8efaef4b7845"}, {"id": "fls_b1xi3u9k4pdl", "number": "22.3:36", "link": "inline-assembly.html#fls_b1xi3u9k4pdl", "checksum": "541ae9ba48b53ec96b54e4a5a32502dfa1000cf8754fe5ecc7d2312b34d2ee37"}, {"id": "fls_i9ds6724tv20", "number": "22.3:37", "link": "inline-assembly.html#fls_i9ds6724tv20", "checksum": "cb91ec0812f0c384bf095f2797ac51734ba4121d8e8ab16363d157860a106878"}, {"id": "fls_trldyekxxlzx", "number": "22.3:38", "link": "inline-assembly.html#fls_trldyekxxlzx", "checksum": "e2937f6d2545e4b849a96cff1214ad6058a60ad6ba062f6d3f55147d0b5bbedf"}, {"id": "fls_efmpbyi4qjmf", "number": "22.3:39", "link": "inline-assembly.html#fls_efmpbyi4qjmf", "checksum": "0c794e05658bfc67f5509b086682137d1e225b3d3125bc988b0f7dade8a602dd"}, {"id": "fls_4x3w50w7qm8w", "number": "22.3:40", "link": "inline-assembly.html#fls_4x3w50w7qm8w", "checksum": "c1e90e11afbfaff93f5efda1e0676fe9bc08b30d4293f557d10af6cef6e2f5b5"}, {"id": "fls_6cne58tlquze", "number": "22.3:41", "link": "inline-assembly.html#fls_6cne58tlquze", "checksum": "cc1f051a457238506a16c5250f10a10b89a5a6c4be1b61afbf9fb31e8db6299a"}, {"id": "fls_5w718fne9jsh", "number": "22.3:42", "link": "inline-assembly.html#fls_5w718fne9jsh", "checksum": "07f663b7ccb32c2c12d99fcfcdaf84bba2f001085ffcbdc46af147dbd632e2bf"}, {"id": "fls_tel7kogaqytg", "number": "22.3:43", "link": "inline-assembly.html#fls_tel7kogaqytg", "checksum": "7f8e00a6debc5e2204cfaa0b86e6518ec9b97c56b7803af2fb2df7eada835828"}, {"id": "fls_aw61psz5drg8", "number": "22.3:44", "link": "inline-assembly.html#fls_aw61psz5drg8", "checksum": "080df59e1c6daaf9dcbaf8723b6d2151909c977c1ca58d4543b4648be9c8db54"}, {"id": "fls_sv2x3x81b32j", "number": "22.3:45", "link": "inline-assembly.html#fls_sv2x3x81b32j", "checksum": "f4784be0f3397b59835c7c80fc3fa280f40f0c5a558cfeb0dd74943416b87ae3"}, {"id": "fls_nebb0nhxf5ix", "number": "22.3:46", "link": "inline-assembly.html#fls_nebb0nhxf5ix", "checksum": "74f321168c8014a105d3fe61537f3cf35443beabfa8f6fc079c2b904d6de8b85"}, {"id": "fls_j0pxc8g8kcxm", "number": "22.3:47", "link": "inline-assembly.html#fls_j0pxc8g8kcxm", "checksum": "07b64182b91f96ec3d687a71dbf44e3ef75125b7a754d09ee0c8274a774ab7c9"}, {"id": "fls_wwh6xyclxwqj", "number": "22.3:48", "link": "inline-assembly.html#fls_wwh6xyclxwqj", "checksum": "f173b49637243cd66db248543679179b3894437aad904b62189d0106a6448977"}, {"id": "fls_qcb47z1ap9dz", "number": "22.3:49", "link": "inline-assembly.html#fls_qcb47z1ap9dz", "checksum": "9806b7c79391b43a6ff2c6de978f08dbf262be1f09d5994c4a3b5176b86d35da"}, {"id": "fls_h01au4vk8mjd", "number": "22.3:50", "link": "inline-assembly.html#fls_h01au4vk8mjd", "checksum": "d82b2f675143ea3e841f686833a7a7a875694a71bea0a335101d9f496b02b415"}, {"id": "fls_92ijsf4p6yn", "number": "22.3:51", "link": "inline-assembly.html#fls_92ijsf4p6yn", "checksum": "f531c0d0ea7572debc684b12dbc0edf4d3924d960344eb4cbe9fdd03c62ba2cd"}, {"id": "fls_xkui7j3gnfg0", "number": "22.3:52", "link": "inline-assembly.html#fls_xkui7j3gnfg0", "checksum": "f7e4dae4c4ddaa16ca26afebb3f35a670745389e64b88c65844e029c7a0cd97b"}, {"id": "fls_eahyqniqs2pn", "number": "22.3:53", "link": "inline-assembly.html#fls_eahyqniqs2pn", "checksum": "1e37a5e34d46afce6f7c07e6ac3a4bf3326a0f8b0b5f47b6398afc090f6bfe24"}, {"id": "fls_5g7p2zo07gfe", "number": "22.3:54", "link": "inline-assembly.html#fls_5g7p2zo07gfe", "checksum": "2a483ecef64dcb6a3f27eff5e1df5885c60546538f60c4dbfe1df9f84440e25b"}, {"id": "fls_dobbatnjs0yt", "number": "22.3:55", "link": "inline-assembly.html#fls_dobbatnjs0yt", "checksum": "412c8164a6ff9c0f787cf54c8a347a7a17608a58d8e21510f1752e83c5090438"}, {"id": "fls_ax8t4uta34ym", "number": "22.3:56", "link": "inline-assembly.html#fls_ax8t4uta34ym", "checksum": "3ace63d8c3c27df97ec81e12c7db56b091597dd8e85b82a39419826a4e0e9964"}, {"id": "fls_dvft4ha00wj3", "number": "22.3:57", "link": "inline-assembly.html#fls_dvft4ha00wj3", "checksum": "b4b8fd6cf4f2c93377215e7dc6ab80bfd0fb116d3f2aa401c9b213f57ec725fb"}, {"id": "fls_2ekwpx2bwj1b", "number": "22.3:58", "link": "inline-assembly.html#fls_2ekwpx2bwj1b", "checksum": "719c2d431cf4fa8f1d481db9a1a415bbdba221e1f78a967d89e4fccfc93fa6bb"}, {"id": "fls_3s2n9dlrlhz9", "number": "22.3:59", "link": "inline-assembly.html#fls_3s2n9dlrlhz9", "checksum": "9b44340bf99e2336f97d4544df886ba2d990b67388ac619ac2d18fb6b917a484"}, {"id": "fls_nbkkz6krcngi", "number": "22.3:60", "link": "inline-assembly.html#fls_nbkkz6krcngi", "checksum": "fa9005c5774af5498655cd144555d0013c40b6180373f8c7e8918e1ba12e03aa"}, {"id": "fls_utrvenwrettz", "number": "22.3:61", "link": "inline-assembly.html#fls_utrvenwrettz", "checksum": "435b90abb518be657a6bf0d3065224d00b9a224cd9f274e5cf1aeb3a1270b306"}, {"id": "fls_n85sjh925x", "number": "22.3:62", "link": "inline-assembly.html#fls_n85sjh925x", "checksum": "7b31b5b6ead309666eb975b9d0834ba47f9a3fa55195978c7d27e62afaadd0f0"}], "informational": false}, {"id": "fls_e0896uk0mdyl", "number": "22.4", "title": "Assembly Instructions", "link": "inline-assembly.html#assembly-instructions", "paragraphs": [{"id": "fls_4jr7eg6e0g4w", "number": "22.4:1", "link": "inline-assembly.html#fls_4jr7eg6e0g4w", "checksum": "e080d5e0ebf43bfbc4219d2d2e397aef7c54aa4e7a03b032120b3ba79a54a4d6"}, {"id": "fls_ihjhpy4osl53", "number": "22.4:2", "link": "inline-assembly.html#fls_ihjhpy4osl53", "checksum": "3ec0655943bc0361bb5ee51dee65ef55fc0cdbba100b9689c377aa00b58bbfcf"}, {"id": "fls_2d05gcixjrzt", "number": "22.4:3", "link": "inline-assembly.html#fls_2d05gcixjrzt", "checksum": "a9365d11f22e6d0282ff7a7829d262dd0237bb7df54f65c07d06cac38a8ef4e5"}, {"id": "fls_z64f094aivp6", "number": "22.4:4", "link": "inline-assembly.html#fls_z64f094aivp6", "checksum": "f0766d5049dcbb5d0c9cd71d282ee6fadf59ca4944f8fcfe3f0a3076cbee4359"}, {"id": "fls_u8lifqig90gq", "number": "22.4:5", "link": "inline-assembly.html#fls_u8lifqig90gq", "checksum": "818e1461216ec078c22ad83372847074fe214f98afcc5de45e628dae31f6c1f9"}, {"id": "fls_lfeun3er5sc9", "number": "22.4:6", "link": "inline-assembly.html#fls_lfeun3er5sc9", "checksum": "a8ae2c3d3244053dde269a59221580fbe43986dc1e0db3bb6a587f6818456d11"}, {"id": "fls_mmdmymljq8a3", "number": "22.4:7", "link": "inline-assembly.html#fls_mmdmymljq8a3", "checksum": "df6f74ba0870e9951d73e552be2119d9b8d9cde3bfe76879dbc0b4d621f4adff"}, {"id": "fls_xugsn2ghh73c", "number": "22.4:8", "link": "inline-assembly.html#fls_xugsn2ghh73c", "checksum": "d5f187840f02cfdf21c191f7e410d01ce205cd27e448a8ed69b3b623d6a75434"}, {"id": "fls_opnxq5kyw9jo", "number": "22.4:9", "link": "inline-assembly.html#fls_opnxq5kyw9jo", "checksum": "78dc81cd3902f11ea65d5e75e486faeb11ca34a926001792ce627e4c3f8fd23f"}, {"id": "fls_wydu9yft7a3r", "number": "22.4:10", "link": "inline-assembly.html#fls_wydu9yft7a3r", "checksum": "67eac47f7353bee4b01c2c0155a18d611ee18841d560d9d21ef05ad20fde5032"}], "informational": false}, {"id": "fls_lv19xysy1f7e", "number": "22.4.1", "title": "Register Parameter Modifiers", "link": "inline-assembly.html#register-parameter-modifiers", "paragraphs": [{"id": "fls_2xilifichdqu", "number": "22.4.1:1", "link": "inline-assembly.html#fls_2xilifichdqu", "checksum": "df3daccc1134fbde7da5c81da7286e4a8aee9877bdc758f10041315d7afdbc82"}, {"id": "fls_o3fx9397ib74", "number": "22.4.1:2", "link": "inline-assembly.html#fls_o3fx9397ib74", "checksum": "8a38fde192b47c9883e5f9c64b28fc71e84f6027fdf2b6510307bd918adb2c36"}, {"id": "fls_3atrad53m22a", "number": "22.4.1:3", "link": "inline-assembly.html#fls_3atrad53m22a", "checksum": "c4b970759ed150c13e63c36cd2534ef92a591c902367bfc2ecccc00302882d45"}, {"id": "fls_5zaqgz9jc8gy", "number": "22.4.1:4", "link": "inline-assembly.html#fls_5zaqgz9jc8gy", "checksum": "2aa77d6c13b1986b1ca71de2a9193b60d5f2ad0e8326131351cbe4785d63394a"}, {"id": "fls_erjczjotwqc3", "number": "22.4.1:5", "link": "inline-assembly.html#fls_erjczjotwqc3", "checksum": "1dbdb7b1cb424770dccf1f1ca6a22190bfded4e3a864ebe0c70138dcb08aa376"}, {"id": "fls_z8m45i9xqkct", "number": "22.4.1:6", "link": "inline-assembly.html#fls_z8m45i9xqkct", "checksum": "fce3a5b86ad0c82c14627febfea99be0d1adbc87a19da2a21ac7918c982c2165"}, {"id": "fls_adaavz3olha3", "number": "22.4.1:7", "link": "inline-assembly.html#fls_adaavz3olha3", "checksum": "f2a6f18c824fdc7760e14c9983e4f55bb428d7bc2e926c5336d84aebcad96812"}, {"id": "fls_u5dzca5f2pfm", "number": "22.4.1:8", "link": "inline-assembly.html#fls_u5dzca5f2pfm", "checksum": "402be3937906f8d4fa926dd2d3368473a0c85d6086a0eaf2ced7795159268355"}, {"id": "fls_6542a2hi5yhc", "number": "22.4.1:9", "link": "inline-assembly.html#fls_6542a2hi5yhc", "checksum": "a46c8e5b6d61001549276e9ceda68d5082cde5d8c411b9fcd4322e415159f543"}, {"id": "fls_94thqwabspw2", "number": "22.4.1:10", "link": "inline-assembly.html#fls_94thqwabspw2", "checksum": "69d1797e8dae4213d66892c3b2df1eccc2ba619132a731ed8578a80930d8b125"}, {"id": "fls_xhp8xu8xvvgd", "number": "22.4.1:11", "link": "inline-assembly.html#fls_xhp8xu8xvvgd", "checksum": "a26371ca4aa01bab4d2e1d2db822d99d09f609cc2e368e34640291ed8b08987b"}, {"id": "fls_g0p2ebuffnxb", "number": "22.4.1:12", "link": "inline-assembly.html#fls_g0p2ebuffnxb", "checksum": "934b550a3ace7fdebb140b888b4c6b0bd6fc15ba51a11245c09777b143e31c74"}, {"id": "fls_d0e2weni8q87", "number": "22.4.1:13", "link": "inline-assembly.html#fls_d0e2weni8q87", "checksum": "91e48c407ab94676b42f914c8b5e3d221426fc65422e434aee70e89bc2a2575e"}, {"id": "fls_bq3p4k42tzh8", "number": "22.4.1:14", "link": "inline-assembly.html#fls_bq3p4k42tzh8", "checksum": "c267be0d4596f4e187e1217ff192f745f74d1ed2d2e60cffc633f57ab23a3d0f"}, {"id": "fls_l5mkfdot97fz", "number": "22.4.1:15", "link": "inline-assembly.html#fls_l5mkfdot97fz", "checksum": "fbd2694649731061bfc93b035df30a2ffd8057aa228d378e6a1bbbd4d0c3b01b"}, {"id": "fls_sarl1hoq0lco", "number": "22.4.1:16", "link": "inline-assembly.html#fls_sarl1hoq0lco", "checksum": "a80431476395f4d9b37789b614a02fd3ed653fbfdbe231393ee74f8ffa344d62"}, {"id": "fls_f4q9a0jrs4ek", "number": "22.4.1:17", "link": "inline-assembly.html#fls_f4q9a0jrs4ek", "checksum": "e8ec5785b962e9d67a7073c3f3ed029663329777ffe7ed04740bb5bae1a2ca3d"}, {"id": "fls_w0hn6vkpuvpc", "number": "22.4.1:18", "link": "inline-assembly.html#fls_w0hn6vkpuvpc", "checksum": "94c265f36be700f5ab1b92a26255bccb819f831e2c5eb49430450911142fd3fc"}, {"id": "fls_a7bvkyh5otx5", "number": "22.4.1:19", "link": "inline-assembly.html#fls_a7bvkyh5otx5", "checksum": "a9dbcb5f2bc6a82cb619b70700efb6c5fb95c9028afc2ed8d33d54d9b8cc4285"}, {"id": "fls_klthi4cczkem", "number": "22.4.1:20", "link": "inline-assembly.html#fls_klthi4cczkem", "checksum": "210fc5aba0385a72ab09974dd17ebe68a03a97d12721b43936fe872062b67039"}, {"id": "fls_pizgnxvcnj46", "number": "22.4.1:21", "link": "inline-assembly.html#fls_pizgnxvcnj46", "checksum": "99debc3917e79cbba4f44a5de1c26fe2a35a28b999da0b9e0896c74136c7f55a"}, {"id": "fls_pvzfiuxka6wg", "number": "22.4.1:22", "link": "inline-assembly.html#fls_pvzfiuxka6wg", "checksum": "4646e2e4cfd3b465d1c592a0f0fc10fc28890d013e8bc48635645162b72b1c25"}, {"id": "fls_pf8yj3m81wk4", "number": "22.4.1:23", "link": "inline-assembly.html#fls_pf8yj3m81wk4", "checksum": "13837d13ce9ed671b2a8b76b9831fa0d911cd1db7ef3fd3c4dc3393776c153e8"}, {"id": "fls_2bf3ady2idq1", "number": "22.4.1:24", "link": "inline-assembly.html#fls_2bf3ady2idq1", "checksum": "5f0c87c237f4329b033b02aa1a4e501b3ef81ac67ae21f801fc66e6f1860dbdc"}, {"id": "fls_x1se4r75v58o", "number": "22.4.1:25", "link": "inline-assembly.html#fls_x1se4r75v58o", "checksum": "eb8c9934a20fbabd92ca5744c146afd324847e0dfda556cf639c4dfb8f63fe77"}, {"id": "fls_rgovn5r3caif", "number": "22.4.1:26", "link": "inline-assembly.html#fls_rgovn5r3caif", "checksum": "a71927d83c22a012d774779a46a3cc373fd770ac798eaa5bccaa5727d5fc7d23"}, {"id": "fls_faxm8xkhruvz", "number": "22.4.1:27", "link": "inline-assembly.html#fls_faxm8xkhruvz", "checksum": "d6f5bc80d218fd2eb5f767c7df3d43a0fbb3a4f9d611ff09ec5e2db2d73b964b"}, {"id": "fls_x1kkkvugpkyd", "number": "22.4.1:28", "link": "inline-assembly.html#fls_x1kkkvugpkyd", "checksum": "6cff8dae509fe0e99e81732637131e38defb7dc8880572cd5eaab052c4f188ae"}, {"id": "fls_uonqmj16oqxe", "number": "22.4.1:29", "link": "inline-assembly.html#fls_uonqmj16oqxe", "checksum": "486e270c4089e2051cac9eaba641373777e921aa5c7fe474f0ca357161b85e9e"}, {"id": "fls_ydhwlp56vmrz", "number": "22.4.1:30", "link": "inline-assembly.html#fls_ydhwlp56vmrz", "checksum": "ab3d0ca0fad9f39d9ea1ee3f6e6bd6a62feaf78a7c4ad89e4da7e1c9e1cd94e9"}, {"id": "fls_yolqzfqbfjoh", "number": "22.4.1:31", "link": "inline-assembly.html#fls_yolqzfqbfjoh", "checksum": "88ba61d8f48ccf3c27d589bf4bce3d0792b2193ee35a423cf45e9b005f6270f3"}, {"id": "fls_ojzzhoed6t9l", "number": "22.4.1:32", "link": "inline-assembly.html#fls_ojzzhoed6t9l", "checksum": "4cc9da7a653b181d53c273bb4262f0da36f474bba28cccad6515df9569c34691"}, {"id": "fls_gw56ok8llid3", "number": "22.4.1:33", "link": "inline-assembly.html#fls_gw56ok8llid3", "checksum": "7fbd7be9fcd499335adb0893a1a8a65bec287ca73feb1889dc5982a40247b238"}, {"id": "fls_ry7qoosmjrev", "number": "22.4.1:34", "link": "inline-assembly.html#fls_ry7qoosmjrev", "checksum": "72a5a17c379fbb6bacbacf067b17b2ceea95cab6686fa06bc8a48211b01489fa"}, {"id": "fls_i0ax45x2wskd", "number": "22.4.1:35", "link": "inline-assembly.html#fls_i0ax45x2wskd", "checksum": "6790bb787a1e84d353705bdf02d3ecff05ea2e3e901235703945395484fba35d"}, {"id": "fls_op4dx1rqwhsf", "number": "22.4.1:36", "link": "inline-assembly.html#fls_op4dx1rqwhsf", "checksum": "173a7c080780f8a61d2439061e6ae4d2d179116636cebf6c3b387311b75d8cdc"}], "informational": false}, {"id": "fls_6momhvgx4w21", "number": "22.4.2", "title": "Directive Support", "link": "inline-assembly.html#directive-support", "paragraphs": [{"id": "fls_4tfod2vgz2m6", "number": "22.4.2:1", "link": "inline-assembly.html#fls_4tfod2vgz2m6", "checksum": "273042489d4acdfdbbb4c1c21595ddaf45d9567bc4f222b33e969448bfe38b69"}, {"id": "fls_3b0ab1nlo641", "number": "22.4.2:2", "link": "inline-assembly.html#fls_3b0ab1nlo641", "checksum": "c5968dc1b0f463f09aeb9cd4b2aa570644d895641c7b98e829068c6a3b7bcead"}, {"id": "fls_caqznttql5p8", "number": "22.4.2:3", "link": "inline-assembly.html#fls_caqznttql5p8", "checksum": "b3410bc20ea46ca83da705dd5c3d4bd7e5dbcbb0cb06be3739e98bde74815d2e"}, {"id": "fls_bcheqswo7a1", "number": "22.4.2:4", "link": "inline-assembly.html#fls_bcheqswo7a1", "checksum": "327bbebd420db49f61b331ce68c29a03205db8e1034271f35724e3bff4967225"}, {"id": "fls_qxcl999rdwam", "number": "22.4.2:5", "link": "inline-assembly.html#fls_qxcl999rdwam", "checksum": "322b37644fe5b701127925bfa2b7e952ba5a3875e5ea4488a332ddde869dc5fd"}, {"id": "fls_2yi7kjnhkfme", "number": "22.4.2:6", "link": "inline-assembly.html#fls_2yi7kjnhkfme", "checksum": "b253c450a0ba8f47f8d9771eac1d50f4af75e1f2c3a1287d83242bd3fe0dece5"}, {"id": "fls_q0jp60aj81nv", "number": "22.4.2:7", "link": "inline-assembly.html#fls_q0jp60aj81nv", "checksum": "38d62d0687777daed55c786318f571e04236edf24b0be2be66fb64bcc79a1ec0"}, {"id": "fls_akny3esj88yy", "number": "22.4.2:8", "link": "inline-assembly.html#fls_akny3esj88yy", "checksum": "74b6e657cec0604048f4b316ae345d1d3607cb8345b45d3c19a0762e701bb114"}, {"id": "fls_9jajt7jn9cxk", "number": "22.4.2:9", "link": "inline-assembly.html#fls_9jajt7jn9cxk", "checksum": "d74eb6d81576b2d4afe799e9b3c3af708fffc38c914243232b77c7da8763f198"}, {"id": "fls_i7dr87fyrei8", "number": "22.4.2:10", "link": "inline-assembly.html#fls_i7dr87fyrei8", "checksum": "bf756baa1fd54ce8e191d9722e682a9688658b4f09b5a2d2adc2be66ec71f671"}, {"id": "fls_rjzgpxt8z8x", "number": "22.4.2:11", "link": "inline-assembly.html#fls_rjzgpxt8z8x", "checksum": "d0ce672b39bf64337b97f071c7ba60f06f19162e6e462862b7d3ba89bbf35177"}, {"id": "fls_iqrjkvgae5k", "number": "22.4.2:12", "link": "inline-assembly.html#fls_iqrjkvgae5k", "checksum": "8f07653c7f5ffded5888d86d7b90df75357f168c0520bdf55624bb2c836d2f9b"}, {"id": "fls_tzb5diegx3d5", "number": "22.4.2:13", "link": "inline-assembly.html#fls_tzb5diegx3d5", "checksum": "8f0cc6ef2c23c8cb4bee94667d1ec39ea29fbe2c83738e9a0a6911180130faee"}, {"id": "fls_82nia9oagat", "number": "22.4.2:14", "link": "inline-assembly.html#fls_82nia9oagat", "checksum": "540a3815a037e2019aa295eebe637bce2924911055ffd22655e0f7105361d716"}, {"id": "fls_qg6wt4plwnw6", "number": "22.4.2:15", "link": "inline-assembly.html#fls_qg6wt4plwnw6", "checksum": "4c30c61a09b304482477071c1e8940277819245caa2586bd24d5f47c8f0604ea"}, {"id": "fls_8ci8ukk25nz3", "number": "22.4.2:16", "link": "inline-assembly.html#fls_8ci8ukk25nz3", "checksum": "7b42846b370887a3f35c3a27a083518bb3dc29223630fbcb50980f0b92d4c3c5"}, {"id": "fls_ysbaz052rjg4", "number": "22.4.2:17", "link": "inline-assembly.html#fls_ysbaz052rjg4", "checksum": "c180e76cf8759c8f1c126845c7c4691255b1fc7300dd6d998b1ec33d2ba5193a"}, {"id": "fls_lbazk0g9r350", "number": "22.4.2:18", "link": "inline-assembly.html#fls_lbazk0g9r350", "checksum": "2237d36080e7a184ba2787ef43ea4309766b3fe20fcd28e287f48d8467f79652"}, {"id": "fls_2dui79hn30o7", "number": "22.4.2:19", "link": "inline-assembly.html#fls_2dui79hn30o7", "checksum": "3a38d11b37270cb84ae0f2d6aeb76dd4852810ab70083e2f74a868de0b004dcb"}, {"id": "fls_qzwyjj6xxwc2", "number": "22.4.2:20", "link": "inline-assembly.html#fls_qzwyjj6xxwc2", "checksum": "913c7a58bd440f285a8792fb9cb87bfe92b9d9e3e781b519576338a87006b568"}, {"id": "fls_9flwdfh5crsk", "number": "22.4.2:21", "link": "inline-assembly.html#fls_9flwdfh5crsk", "checksum": "b999de4283114f3434ff6b2f3d644c97f9947cdb3682846f9e5cfe9198c41071"}, {"id": "fls_u1c09ssrllil", "number": "22.4.2:22", "link": "inline-assembly.html#fls_u1c09ssrllil", "checksum": "e95b22baaaaccde95e5436616a10d509d3d62c095e320c2f3c8dd4e40946315a"}, {"id": "fls_tx58qbvh3jz3", "number": "22.4.2:23", "link": "inline-assembly.html#fls_tx58qbvh3jz3", "checksum": "5cabacdc42396ecdc4239421e1c94751f7e18bae7137ce2e7a90b826dc77137d"}, {"id": "fls_anwe21ypcjws", "number": "22.4.2:24", "link": "inline-assembly.html#fls_anwe21ypcjws", "checksum": "1b9a50adc4326cc8e3aa3e0191f596d700af6e1ee878fcd463eddc88796901c9"}, {"id": "fls_43rchr5ffxsv", "number": "22.4.2:25", "link": "inline-assembly.html#fls_43rchr5ffxsv", "checksum": "553eef4baa71f1f46de56c071450919bf2eca3dd6cf7bd9f4fde72bb42083db8"}, {"id": "fls_rscmbo3kbrsm", "number": "22.4.2:26", "link": "inline-assembly.html#fls_rscmbo3kbrsm", "checksum": "f79e3715f39c38e8e39df76757e19cba8ddf802007d1b76f19778e8c66455608"}, {"id": "fls_hnol9houwn1f", "number": "22.4.2:27", "link": "inline-assembly.html#fls_hnol9houwn1f", "checksum": "24edea8823258cf1aec3574d325ce870b217dc84940d5cbaef8363f52c84ce84"}, {"id": "fls_es1lo6siw702", "number": "22.4.2:28", "link": "inline-assembly.html#fls_es1lo6siw702", "checksum": "ef6d7d774ab1ca21f1aef251798dada30ebf5aa565f69e642e4ce2ef193ab470"}, {"id": "fls_xlk7kd26j2rm", "number": "22.4.2:29", "link": "inline-assembly.html#fls_xlk7kd26j2rm", "checksum": "05610e4ed44e10cfa011be9ec110980564ae67ea3f1a345629bc1726e0fbd447"}, {"id": "fls_x9kaplz9g1z9", "number": "22.4.2:30", "link": "inline-assembly.html#fls_x9kaplz9g1z9", "checksum": "c2122b8e33a87c74ed1103c4a38fb30ea601a8445ed9d99df70a31536b77d278"}, {"id": "fls_928ermlgde11", "number": "22.4.2:31", "link": "inline-assembly.html#fls_928ermlgde11", "checksum": "3066b6559d893177f8936aea6fc3b373621f7ad26e0b80588ac312291a2c572a"}, {"id": "fls_49bkqmxwl0d2", "number": "22.4.2:32", "link": "inline-assembly.html#fls_49bkqmxwl0d2", "checksum": "db73f3b0c8c275ef4f5be8518eac860264aba6acc6f606edcf905e67a01f825a"}, {"id": "fls_xlvkpe975b58", "number": "22.4.2:33", "link": "inline-assembly.html#fls_xlvkpe975b58", "checksum": "dea0ddd23f309d02462555b58271dfaff6e5958548830d4a0c6891eafc50b025"}, {"id": "fls_k3sy1ph0kvy", "number": "22.4.2:34", "link": "inline-assembly.html#fls_k3sy1ph0kvy", "checksum": "7c4f40ae43ddedb5dc71bae0dff059a430abcc5ef5dc36e38ce185ef2631ff54"}, {"id": "fls_ku6noqc0poxq", "number": "22.4.2:35", "link": "inline-assembly.html#fls_ku6noqc0poxq", "checksum": "d14404ffbac7fa6b204f853222509a2a09e59f7bbd912577a5a7ff4aeff0d298"}, {"id": "fls_hny0patop479", "number": "22.4.2:36", "link": "inline-assembly.html#fls_hny0patop479", "checksum": "251021164436aa4b642498f6a3d30aa2af316742c592de939c3153c932ff6d94"}, {"id": "fls_jm61m237cww", "number": "22.4.2:37", "link": "inline-assembly.html#fls_jm61m237cww", "checksum": "e493e8ca70b894b223615529525c358bb19c570024d3de0d8bd36a9ffa32c238"}, {"id": "fls_wvje5eua16xm", "number": "22.4.2:38", "link": "inline-assembly.html#fls_wvje5eua16xm", "checksum": "0830b44abd4b4c395984463fae9b127ebdbe221c966d5585ce9c6279c5e1253a"}, {"id": "fls_frxn2f6v584d", "number": "22.4.2:39", "link": "inline-assembly.html#fls_frxn2f6v584d", "checksum": "43d9d2ab6988505415d82f7db889a536048c143771389684c62cc7e58d4650fd"}, {"id": "fls_x6azw3td92b3", "number": "22.4.2:40", "link": "inline-assembly.html#fls_x6azw3td92b3", "checksum": "abea834cf3c23b93b75de1a6678a732d14decb29a408e444d3a290397ea29134"}, {"id": "fls_twerrggztho5", "number": "22.4.2:41", "link": "inline-assembly.html#fls_twerrggztho5", "checksum": "b5e53d8a4f2d5d92ff52782f5c95785d1d304ad5347ceb94c72d18c10a07aad1"}, {"id": "fls_s4cbxrc4ijyp", "number": "22.4.2:42", "link": "inline-assembly.html#fls_s4cbxrc4ijyp", "checksum": "538abae4915a252a44ef56d9fd5d1e9b54e0a5256c3493cfd1ed292abb455257"}, {"id": "fls_2hdsgqko25l5", "number": "22.4.2:43", "link": "inline-assembly.html#fls_2hdsgqko25l5", "checksum": "e12629bff77cc49dd0fd9697926e543b3db783726e728995ab6dcf3eb21b6637"}, {"id": "fls_5tzwwove8mgq", "number": "22.4.2:44", "link": "inline-assembly.html#fls_5tzwwove8mgq", "checksum": "3906f6daca8c9ecacb9ceb21d3511d2db168376916cb202a32f59cbac41bd889"}, {"id": "fls_e6nvq9xygvh", "number": "22.4.2:45", "link": "inline-assembly.html#fls_e6nvq9xygvh", "checksum": "0706a9b6e7d90d7b3533057e27539a37cf1b148a53e539ae61ad9dafdd8286f0"}], "informational": false}, {"id": "fls_a3joqzqp1v9d", "number": "22.5", "title": "ABI Clobbers", "link": "inline-assembly.html#abi-clobbers", "paragraphs": [{"id": "fls_xa11ggykg0sh", "number": "22.5:1", "link": "inline-assembly.html#fls_xa11ggykg0sh", "checksum": "059896cc2c79a9ed0b43866fe3d923d7239e3a67a128c7e89e6869411edccc1c"}, {"id": "fls_e43sj9inlsym", "number": "22.5:2", "link": "inline-assembly.html#fls_e43sj9inlsym", "checksum": "25daebb16bac887b6a619f1c15055cf292b836403ab183382752976a02a4257c"}, {"id": "fls_gq2khxl1hixg", "number": "22.5:3", "link": "inline-assembly.html#fls_gq2khxl1hixg", "checksum": "3151135e30ed0eaa0046c0a2c933b3df4524b6ebd38636be511d97edf1093142"}, {"id": "fls_o2qn842y0vvc", "number": "22.5:4", "link": "inline-assembly.html#fls_o2qn842y0vvc", "checksum": "9d980c1d9a3bd3147ff52fa56ba95e975ddb9eec707b8dcc601b03993a6bfbc5"}, {"id": "fls_msysjt5m2941", "number": "22.5:5", "link": "inline-assembly.html#fls_msysjt5m2941", "checksum": "c9961878c937f4ee5de1788b5a9a58b77076276170d875a58a526fa90be99665"}, {"id": "fls_vyhl5po6pl4x", "number": "22.5:6", "link": "inline-assembly.html#fls_vyhl5po6pl4x", "checksum": "e99e85bd28b33b69146abf6665f55cd679b81c2d26e54ed077ca48c986466401"}, {"id": "fls_d1be48ik4a8", "number": "22.5:7", "link": "inline-assembly.html#fls_d1be48ik4a8", "checksum": "4a320730472da6e94d6e7eb0e60110ce54e50eaf2bd689ad2d9e77d9174281bb"}, {"id": "fls_49pus6qqmf72", "number": "22.5:8", "link": "inline-assembly.html#fls_49pus6qqmf72", "checksum": "c7a214a478ecba87863b838e3cc1dc1e0211c41d45b466650cf9e1ee4af781b1"}, {"id": "fls_tc727ietnawz", "number": "22.5:9", "link": "inline-assembly.html#fls_tc727ietnawz", "checksum": "90b9e3c561e86b008b46a75c32a8381e977ed63097178f6649d726503e1e5aa6"}, {"id": "fls_6jgsmfvww667", "number": "22.5:10", "link": "inline-assembly.html#fls_6jgsmfvww667", "checksum": "02ff55c63d8be9b67db3379370d75d0fc64e42c2a63af002328807ef6040df7d"}, {"id": "fls_gvzoq5mqwjx", "number": "22.5:11", "link": "inline-assembly.html#fls_gvzoq5mqwjx", "checksum": "544d1d040690c1ef7a2b666dc2a809d33f42b0b1114f00dc05d36f203757cfd5"}, {"id": "fls_bnwzzpcmiero", "number": "22.5:12", "link": "inline-assembly.html#fls_bnwzzpcmiero", "checksum": "61e5e0531c0e617d3d424dfdfc8416bbf5aeb5313b8b85f8073e6fac4da59243"}], "informational": false}, {"id": "fls_ylli0ortyegk", "number": "22.6", "title": "Assembly Options", "link": "inline-assembly.html#assembly-options", "paragraphs": [{"id": "fls_i21l6t3vn95t", "number": "22.6:1", "link": "inline-assembly.html#fls_i21l6t3vn95t", "checksum": "8a3a017f2afb0587c55dfb386c7e5d180d3157b04f01968b1eb489ce80ca469f"}, {"id": "fls_g09kmp2a04g9", "number": "22.6:2", "link": "inline-assembly.html#fls_g09kmp2a04g9", "checksum": "bab672735ba4bd11338fe18ef154010c328d60c6904b856a7e71670295861eb9"}, {"id": "fls_quer8ltdwnf2", "number": "22.6:3", "link": "inline-assembly.html#fls_quer8ltdwnf2", "checksum": "387233953cd06bc333811fa124272c964f24902926b1502b30fd6a1be40fc044"}, {"id": "fls_5wpgqpcm1v40", "number": "22.6:4", "link": "inline-assembly.html#fls_5wpgqpcm1v40", "checksum": "36d8b0665a541f55861ac8eec58788b1300271d197914bcef79a5366d764a54e"}, {"id": "fls_ejuap3kkvs57", "number": "22.6:5", "link": "inline-assembly.html#fls_ejuap3kkvs57", "checksum": "81f05b034ad37fdb0de0e9a2242a963b2cfd4886a5fa12d422e3944d67f850a4"}, {"id": "fls_1nopbk5bkeqm", "number": "22.6:6", "link": "inline-assembly.html#fls_1nopbk5bkeqm", "checksum": "e2e32a90c459f6211a5915bd66ddf72c97e86792880aa7a5af68a1028b4f1c27"}, {"id": "fls_e5b1mp3byll2", "number": "22.6:7", "link": "inline-assembly.html#fls_e5b1mp3byll2", "checksum": "7ef8c5e5436b9b3ccf1d5ddd8f024651de630ff3a775b15cfb2dbec38833c4dc"}, {"id": "fls_2gf4wemrzaae", "number": "22.6:8", "link": "inline-assembly.html#fls_2gf4wemrzaae", "checksum": "6c6abff15d559e67cfbee302183c6b6cd9e2d0b27ef17f3fc6c2d2b1b8dc247d"}, {"id": "fls_5ebifab8dhy", "number": "22.6:9", "link": "inline-assembly.html#fls_5ebifab8dhy", "checksum": "9a59466198ee2c628bf21cf3451d438f7b681c05bff38179d054b394ca87b055"}, {"id": "fls_ae2x4ho3i0zr", "number": "22.6:10", "link": "inline-assembly.html#fls_ae2x4ho3i0zr", "checksum": "3812da6e1f78fd4f04190a7f0b03c53c355e7fd9497bdbb2cc363720db6d7f05"}, {"id": "fls_188ib65a1z36", "number": "22.6:11", "link": "inline-assembly.html#fls_188ib65a1z36", "checksum": "9227d85264bddc464ffe9527094d6daa871bb3d8c05d00cb821528e1c241cb04"}, {"id": "fls_ia3cg424d601", "number": "22.6:12", "link": "inline-assembly.html#fls_ia3cg424d601", "checksum": "9947ef35f98d51e42642de4b89c7ff24c303708a6fc048d6baf420acd0c2e144"}, {"id": "fls_j09bo53i5n69", "number": "22.6:13", "link": "inline-assembly.html#fls_j09bo53i5n69", "checksum": "1f08df8b8d9ead71e6d2a2b97ce398fa198247177be827becf8b36abac2eec70"}, {"id": "fls_eka6chp3hapa", "number": "22.6:14", "link": "inline-assembly.html#fls_eka6chp3hapa", "checksum": "6156a4e0aabe75163b3c333a7cc831ca44acd71d75015372430ca8c0d1ca7495"}, {"id": "fls_nszx1gllufi2", "number": "22.6:15", "link": "inline-assembly.html#fls_nszx1gllufi2", "checksum": "6e26d5ced9abcc14efda425d56724492c38c2a89dfaaf7cc53fdcff38153f695"}, {"id": "fls_d169ppna563c", "number": "22.6:16", "link": "inline-assembly.html#fls_d169ppna563c", "checksum": "2d7523471d7b595463ca7ca9c55972764ee91e9b48fd28620896baccbfe97aa7"}, {"id": "fls_h8549stij7pj", "number": "22.6:17", "link": "inline-assembly.html#fls_h8549stij7pj", "checksum": "44e6f48245cc97766452666dcc62fa1d73508669f7a630f942edc2e6047d67ff"}, {"id": "fls_2drikpht6md9", "number": "22.6:18", "link": "inline-assembly.html#fls_2drikpht6md9", "checksum": "b7cabc7b0d3991a23cd2b6064e873e856d12f722b48c78eb4f1e5c68cb9e9fb9"}, {"id": "fls_x66j1cn6zi6p", "number": "22.6:19", "link": "inline-assembly.html#fls_x66j1cn6zi6p", "checksum": "87fde9a65891debe011e4dabc743129a995adf7c4605b39913aa4478ab811aab"}, {"id": "fls_ikwbu1ho33is", "number": "22.6:20", "link": "inline-assembly.html#fls_ikwbu1ho33is", "checksum": "e09645a3d913b01ba7b2da0538ca2a8cf2971062f274bbb7b07eb2fcbdf50eb6"}, {"id": "fls_nf0h9crdzhfg", "number": "22.6:21", "link": "inline-assembly.html#fls_nf0h9crdzhfg", "checksum": "2e64f7a7609904f62a789b1086409483bd975bfc91a04b82c0b5263044395404"}, {"id": "fls_wh0wasawjj5s", "number": "22.6:22", "link": "inline-assembly.html#fls_wh0wasawjj5s", "checksum": "ec4f1cc8bf22f706c2134897ccf8d68dff4c3a033f4ca1578e692769fe6fa36f"}, {"id": "fls_s0ivlbjefh1u", "number": "22.6:23", "link": "inline-assembly.html#fls_s0ivlbjefh1u", "checksum": "3a414e98a1f7d173475399458067467182305c436b62978e990ae3071bb8dd27"}], "informational": false}, {"id": "fls_qezwyridmjob", "number": "22.7", "title": "Macros asm and global_asm", "link": "inline-assembly.html#macros-asm-and-global-asm", "paragraphs": [{"id": "fls_ecteot716j8j", "number": "22.7:1", "link": "inline-assembly.html#fls_ecteot716j8j", "checksum": "b192c064956d68ec4e19d2db778867c39cd0ad9e6a3070f71d7d91ce413a2b61"}, {"id": "fls_1ikzov7cxic1", "number": "22.7:2", "link": "inline-assembly.html#fls_1ikzov7cxic1", "checksum": "95dbbdf815af777d799412933cfb1c6139d1a5a0618aca24c1ce9095e8a3bf75"}, {"id": "fls_4lb6yh12w1cv", "number": "22.7:3", "link": "inline-assembly.html#fls_4lb6yh12w1cv", "checksum": "8b4f18328e73d75d6d74d43fa45304ecad3929469d9cfbf55a766168dac286fe"}, {"id": "fls_tgzga1lanfuo", "number": "22.7:4", "link": "inline-assembly.html#fls_tgzga1lanfuo", "checksum": "fda22eb8953825d6e52da828c1a9d947bb194cfd63115300442e862a916c0b36"}, {"id": "fls_nfkbvs86d6kz", "number": "22.7:5", "link": "inline-assembly.html#fls_nfkbvs86d6kz", "checksum": "cef34131dd6ae60d425b87a2ac6d953390e2dec00e679df1e058873e45adaf2a"}, {"id": "fls_98vyqh9bzigx", "number": "22.7:6", "link": "inline-assembly.html#fls_98vyqh9bzigx", "checksum": "76c9be8a2c13f41d46c1674de81af3faa54bf6a070033c81d62a9c8d437ac6ed"}, {"id": "fls_ppnj8bcncdp9", "number": "22.7:7", "link": "inline-assembly.html#fls_ppnj8bcncdp9", "checksum": "29bb7394c69509f75799537c989b895449d8782786410554e4b948bd0a38ada0"}, {"id": "fls_wmay1vd8u0da", "number": "22.7:8", "link": "inline-assembly.html#fls_wmay1vd8u0da", "checksum": "fb17b760d5c76e48d93d08f1722c8da1fd927224135f46c206a4d3fe54d4a55d"}, {"id": "fls_e613hpr50t9", "number": "22.7:9", "link": "inline-assembly.html#fls_e613hpr50t9", "checksum": "f1479feedda5b57e1e5936f05df2da01ee75eb433febd48f24327a86fb66916e"}, {"id": "fls_bic6iyd1nvfm", "number": "22.7:10", "link": "inline-assembly.html#fls_bic6iyd1nvfm", "checksum": "ce7ddc33151dcfba8a36c91bc23c8438759f7fce66fff26d097a1d2838d4028e"}], "informational": false}], "informational": false}, {"title": "Licenses", "link": "licenses.html", "sections": [{"id": "fls_kd7fcvfrwks0", "number": "A", "title": "Licenses", "link": "licenses.html", "paragraphs": [], "informational": false}, {"id": "fls_mwoe9jy6l7er", "number": "A.1", "title": "Ada Reference Manual Copyright Notice", "link": "licenses.html#ada-reference-manual-copyright-notice", "paragraphs": [{"id": "fls_9rpvtm5tjrpp", "number": "A.1:1", "link": "licenses.html#fls_9rpvtm5tjrpp", "checksum": "6af57950721e83dae393e90ca8d980bdcca5c9b81a188fe360ec5adfda00b6d5"}, {"id": "fls_7uhb9t9x8r0c", "number": "A.1:2", "link": "licenses.html#fls_7uhb9t9x8r0c", "checksum": "ef760ed2bc838098d7e8efb78966c4cd75d281f71907582b05283c54343ba0ce"}, {"id": "fls_ej4g7lz5eqm8", "number": "A.1:3", "link": "licenses.html#fls_ej4g7lz5eqm8", "checksum": "a5f9956bcdfc5ce615410d2af601a90ce92f066360a5467a27d39718da318796"}, {"id": "fls_l9uu4q48v1co", "number": "A.1:4", "link": "licenses.html#fls_l9uu4q48v1co", "checksum": "20b03a1ea2320f89250e61fc875c4f01597a27856b189891293511d1c3c55df5"}, {"id": "fls_3j7jx4qsqucs", "number": "A.1:5", "link": "licenses.html#fls_3j7jx4qsqucs", "checksum": "38194322b850acd0ebe5ec95d660959c07d88f87ef2fe6c7912a773201dc4836"}], "informational": false}, {"id": "fls_w6b35kn6la40", "number": "A.2", "title": "Rust Reference Apache License", "link": "licenses.html#rust-reference-apache-license", "paragraphs": [{"id": "fls_wn4kcs3skqra", "number": "A.2:1", "link": "licenses.html#fls_wn4kcs3skqra", "checksum": "7659351efeafb9bcab1f7bded9384347863a49e48384d8b8f59f4aadc9c047d5"}, {"id": "fls_mtcsb64efiw1", "number": "A.2:2", "link": "licenses.html#fls_mtcsb64efiw1", "checksum": "6b9064c87e131c2318a938f837e161eb0c65d3f5fb3d76f34c6a07ac89c08f73"}, {"id": "fls_9tssu3wp22cz", "number": "A.2:3", "link": "licenses.html#fls_9tssu3wp22cz", "checksum": "511b49aedd83a0711011cf0a3d3ffbc8faa1c1443f13b71376c4ce8d0b1c6f6d"}, {"id": "fls_4pclfuqukw5o", "number": "A.2:4", "link": "licenses.html#fls_4pclfuqukw5o", "checksum": "a423d8767937df97db94bc21dea4f19e65f5d2a464521f2deca8482ccd4eb2e1"}, {"id": "fls_rgn86bsd9tl5", "number": "A.2:5", "link": "licenses.html#fls_rgn86bsd9tl5", "checksum": "bcc06c2a274e4878336dd5b4c71758d3b854dcf325e9f4ca54c1c6501dccbcee"}, {"id": "fls_n6ash4u0e838", "number": "A.2:6", "link": "licenses.html#fls_n6ash4u0e838", "checksum": "0c8baad676d0cb1c29fe117e5864ef351160f102c13d047d354e16c2145fc69a"}, {"id": "fls_4z50m2plw8lg", "number": "A.2:7", "link": "licenses.html#fls_4z50m2plw8lg", "checksum": "619babacc89fcc3a48bee87f41d8567998cf7926a806e7bcb31bef0bc1bf70fd"}, {"id": "fls_bmx87il86j77", "number": "A.2:8", "link": "licenses.html#fls_bmx87il86j77", "checksum": "d902ee93c8c40420453bff915be7d882e3390fbfb7c3d38905a094dde4369625"}, {"id": "fls_467b9ucekcv3", "number": "A.2:9", "link": "licenses.html#fls_467b9ucekcv3", "checksum": "a5fd12a0acbcca3ac4cfca07cb3a66976c749dcabc7c73c69ed9abfad2067282"}, {"id": "fls_9ws2rqie234r", "number": "A.2:10", "link": "licenses.html#fls_9ws2rqie234r", "checksum": "aa73e595c7b2ef9149acd45a1b91fed2704f511303a5b2ae619eb01a1ffb9410"}, {"id": "fls_j075fx75s7wg", "number": "A.2:11", "link": "licenses.html#fls_j075fx75s7wg", "checksum": "c9b7d6603bdf686dc20a9604928e83ad51a6e432ce273673e0619de6904ad3a9"}, {"id": "fls_akjks1czkd7n", "number": "A.2:12", "link": "licenses.html#fls_akjks1czkd7n", "checksum": "67a79516239a86e9f3ac268c33cea7354013e2efe8dae4acf776dbee55bdf3cb"}, {"id": "fls_6n4t2e7lxq3", "number": "A.2:13", "link": "licenses.html#fls_6n4t2e7lxq3", "checksum": "03e71fa54f500a9dba9a17354fc29921b6a6421fbdde23db702448cfe7f3d731"}, {"id": "fls_g0gyduo0wc55", "number": "A.2:14", "link": "licenses.html#fls_g0gyduo0wc55", "checksum": "d890372e8c497682bf9b4b51d8b75a7211ca6e6b4ee30436e8c59dbbb0149bf3"}, {"id": "fls_w8npkgeox7u5", "number": "A.2:15", "link": "licenses.html#fls_w8npkgeox7u5", "checksum": "85d7c24f5cba0d54181181872cf27f0cad45c28f1d281733ef26114ef08e1bea"}, {"id": "fls_iygftblnws72", "number": "A.2:16", "link": "licenses.html#fls_iygftblnws72", "checksum": "f0a11688e77729f1b2fa1e4efbc104a39c8fd916d1f58f90eefccd38b209c0d6"}, {"id": "fls_s32i8ovj5nqu", "number": "A.2:17", "link": "licenses.html#fls_s32i8ovj5nqu", "checksum": "4a50d529d3ee650e897db5b0f8d99db215c718a75f11d527d5c560abc287de09"}, {"id": "fls_c673i0mbecb9", "number": "A.2:18", "link": "licenses.html#fls_c673i0mbecb9", "checksum": "74231e6684fc04c3f1ed8c36da5619eb35f84411c9f9fbbc9354ff69182ec20e"}, {"id": "fls_pwpt8rg76oj3", "number": "A.2:19", "link": "licenses.html#fls_pwpt8rg76oj3", "checksum": "b5a621567e61cacbad30b9320aa5fa59abe37e46a15e890c42ad445536c69bd0"}, {"id": "fls_yu3hgzo57bvm", "number": "A.2:20", "link": "licenses.html#fls_yu3hgzo57bvm", "checksum": "aa50ce2c3adbcfcae86514a554462ac599522a77d99072af00fd41aee7896afc"}, {"id": "fls_37aibo9w67e8", "number": "A.2:21", "link": "licenses.html#fls_37aibo9w67e8", "checksum": "ee98c5a9da1ccf20da27dc04bdfd4c6b0ee7b4dd5180bb435515d300e6aa7c1f"}, {"id": "fls_py9om9jvbulw", "number": "A.2:22", "link": "licenses.html#fls_py9om9jvbulw", "checksum": "870cf6f77ad5d8ef0cfde85af78b7c2a507c6e6c8db5bbe62b60548c02229cfc"}, {"id": "fls_wkf26wyy0ndr", "number": "A.2:23", "link": "licenses.html#fls_wkf26wyy0ndr", "checksum": "e4c5f14a1bc396e634f99d3e9c008a29af8f84b61dc6da057710d23ebb6a1855"}, {"id": "fls_qsvzdiicam4f", "number": "A.2:24", "link": "licenses.html#fls_qsvzdiicam4f", "checksum": "d3162aaf802254c584ffd111d733498e754b056c61bdb59144aed5024b8bc566"}, {"id": "fls_n4zpph83hza1", "number": "A.2:25", "link": "licenses.html#fls_n4zpph83hza1", "checksum": "c502f762cf1f733336f2b49fdabec625a400d1b9137ba436de9acfb180ea3681"}, {"id": "fls_6gvjqsyyk3sg", "number": "A.2:26", "link": "licenses.html#fls_6gvjqsyyk3sg", "checksum": "c6ab38d458c9605260610ec31abaaf83a03d54cc4109c75ce57d5330b7e0ae43"}, {"id": "fls_evwltjyhvhz", "number": "A.2:27", "link": "licenses.html#fls_evwltjyhvhz", "checksum": "dbb66a9641f131e6288803d7b31289cc46c0c00d4bf70ecaade3c44dfb5acfaa"}, {"id": "fls_xj0b5mrjgdbt", "number": "A.2:28", "link": "licenses.html#fls_xj0b5mrjgdbt", "checksum": "f6437e117dc2304d057d9a5394bea1e927d97d91a0451366fb3bdbaa35556c6c"}, {"id": "fls_ecitsmzb8l28", "number": "A.2:29", "link": "licenses.html#fls_ecitsmzb8l28", "checksum": "5cb92d044eeac194b5d3a2e2fed02e650bdca56fe9e6386c4729f39717879270"}, {"id": "fls_wx0hv6f68i4f", "number": "A.2:30", "link": "licenses.html#fls_wx0hv6f68i4f", "checksum": "a69bf85bf1838570613037b4423858a9a047187494aea6e78ae1c91c9d58f711"}, {"id": "fls_fgjjzdwbw1t8", "number": "A.2:31", "link": "licenses.html#fls_fgjjzdwbw1t8", "checksum": "df088a3e94ccbd2e98926c4f5ca34fd02f3cd8dfc3924b7ba3749ef0eb08b68d"}, {"id": "fls_hnxekf2ahnif", "number": "A.2:32", "link": "licenses.html#fls_hnxekf2ahnif", "checksum": "1a6497e3eeb694644723d0a451104bff4dd133960c27e3d4e9b6c5282cdcdf2a"}, {"id": "fls_e0ytxo6b451", "number": "A.2:33", "link": "licenses.html#fls_e0ytxo6b451", "checksum": "839ca0d83587df0f49d5e7af7a86cb4ed2526d3c7a4fb98ca1e7031d41e9c3bb"}, {"id": "fls_145e22m6bw47", "number": "A.2:34", "link": "licenses.html#fls_145e22m6bw47", "checksum": "1c4d9cbfb808d36160fd3001c512e6887268a758682958c644bcbe07f04a32af"}, {"id": "fls_9o0wr812ggf2", "number": "A.2:35", "link": "licenses.html#fls_9o0wr812ggf2", "checksum": "9c3bd1dd9f6780741a46dfb5af593752082db35d8ce9d3eb8ae7d663e403c665"}, {"id": "fls_cqaian5c7mwr", "number": "A.2:36", "link": "licenses.html#fls_cqaian5c7mwr", "checksum": "a3d8a030eaf80e2f2d7b0b8c819a8b4a03d2468cad162b5778d7535713e6eb54"}, {"id": "fls_eil4b7ffojqa", "number": "A.2:37", "link": "licenses.html#fls_eil4b7ffojqa", "checksum": "2caf6f88f365a1f0b8673022f566d0e34e5f487002cbb975f7a3810984aa2b33"}], "informational": false}, {"id": "fls_un9oqipiretc", "number": "A.3", "title": "Rust Reference MIT License", "link": "licenses.html#rust-reference-mit-license", "paragraphs": [{"id": "fls_bkxw1o1hanmk", "number": "A.3:1", "link": "licenses.html#fls_bkxw1o1hanmk", "checksum": "43b7d2588a00010b6644920dff56e6f4652ec966cf564d52f3e5e87748e58bbf"}, {"id": "fls_yc3wyw3plm1s", "number": "A.3:2", "link": "licenses.html#fls_yc3wyw3plm1s", "checksum": "efda707a511b8c7e80727098049e5458105f2960dc74c0d7faa11a43f7e7d997"}, {"id": "fls_ypomxdgiswq8", "number": "A.3:3", "link": "licenses.html#fls_ypomxdgiswq8", "checksum": "dc6e47d05ec79c0cbaa15dd61b6a60ab03fd6f9d7e2f51df6828fc53f4916265"}, {"id": "fls_q6rhvbuhxa21", "number": "A.3:4", "link": "licenses.html#fls_q6rhvbuhxa21", "checksum": "f227391839011fc1299d7eef9855e682ceab676478b839480bb5cdea3359f70b"}], "informational": false}], "informational": true}, {"title": "Items", "link": "items.html", "sections": [{"id": "fls_wb86edg02t6a", "number": "3", "title": "Items", "link": "items.html", "paragraphs": [{"id": "fls_s3b1cba9lfj5", "number": "3:1", "link": "items.html#fls_s3b1cba9lfj5", "checksum": "7828a434b91eb775a25b624f9c2c6e10d5b02ed8e26529f7471e4a787e24e10f"}, {"id": "fls_hil5f7y4xdhe", "number": "3:2", "link": "items.html#fls_hil5f7y4xdhe", "checksum": "c820b8889c9e57bcae1988c78c8217a0fcd495f92409b93715942f79e683ae67"}], "informational": false}], "informational": false}, {"title": "Lexical Elements", "link": "lexical-elements.html", "sections": [{"id": "fls_411up5z0b6n6", "number": "2", "title": "Lexical Elements", "link": "lexical-elements.html", "paragraphs": [{"id": "fls_pqwpf87b84tr", "number": "2:1", "link": "lexical-elements.html#fls_pqwpf87b84tr", "checksum": "c63cd9576e1595dfb4d7d38e0c9732d20c4044d18947914c36952a45f6592248"}], "informational": true}, {"id": "fls_2i089jvv8j5g", "number": "2.1", "title": "Character Set", "link": "lexical-elements.html#character-set", "paragraphs": [{"id": "fls_itcth8292ud6", "number": "2.1:1", "link": "lexical-elements.html#fls_itcth8292ud6", "checksum": "40ca6b69e8a1f39dacde761ccaecbaca619375767abb05e925bec6c504198244"}, {"id": "fls_vfx8byq5zo8t", "number": "2.1:2", "link": "lexical-elements.html#fls_vfx8byq5zo8t", "checksum": "e82f4769c3930c55731cfdff64cba2bf3f3fe6f20f8bbb741ec95c4bce18f4d2"}, {"id": "fls_pvslhm3chtlb", "number": "2.1:3", "link": "lexical-elements.html#fls_pvslhm3chtlb", "checksum": "a2710a596348e56b2b389ff7a77765369a97fcd53c60fc5c39a42050c3aa2b74"}, {"id": "fls_a5ec9cpn4sc8", "number": "2.1:4", "link": "lexical-elements.html#fls_a5ec9cpn4sc8", "checksum": "2a0b32b27fe371cd7e93f22f0a2244eba0ae620a5b844fe722d308d5cba30392"}, {"id": "fls_dgyrj49y3c7c", "number": "2.1:5", "link": "lexical-elements.html#fls_dgyrj49y3c7c", "checksum": "66a1720f2e9d2efd1b01c5a8e3d89b8b70f8f707c0d5c446e6b1326f2e44e146"}, {"id": "fls_5ocmngyur7by", "number": "2.1:6", "link": "lexical-elements.html#fls_5ocmngyur7by", "checksum": "2d61867ea0852e491d286632860fa0111941830a7af9e3240f26cbce126f5a67"}, {"id": "fls_1aj0rgi9kpib", "number": "2.1:7", "link": "lexical-elements.html#fls_1aj0rgi9kpib", "checksum": "7f6017bf13927f894ed1460d26d072453606445d1dbff591da54b2f1eb9fe834"}, {"id": "fls_bfzdxsbq2c2q", "number": "2.1:8", "link": "lexical-elements.html#fls_bfzdxsbq2c2q", "checksum": "ffc345f23396d082ca468df1855e3f5aca7a1585cff5388705d9c1a3f70e74bd"}, {"id": "fls_vw0kq2y1o63m", "number": "2.1:9", "link": "lexical-elements.html#fls_vw0kq2y1o63m", "checksum": "02086e7f1249fcbd972c9e0518ee1939b64715df2d4770f72ce70c688b6338ad"}, {"id": "fls_ao296bmamwzh", "number": "2.1:10", "link": "lexical-elements.html#fls_ao296bmamwzh", "checksum": "82e2f578c850a061a6aaaad593ca77086467b3ecb1e21068c97a4c8d66c0aee0"}, {"id": "fls_6kymhq7embdh", "number": "2.1:11", "link": "lexical-elements.html#fls_6kymhq7embdh", "checksum": "8815f83db374f9a454841fc1f6b6390c6ecd954fabc83881cea39dcc3e76bfc7"}, {"id": "fls_8mxmrxvhn3by", "number": "2.1:12", "link": "lexical-elements.html#fls_8mxmrxvhn3by", "checksum": "e0d4111521e0ef7716e900e64befc27972b65b3002d9d3421d0df6e070601ecd"}, {"id": "fls_bc6d1atvmjjr", "number": "2.1:13", "link": "lexical-elements.html#fls_bc6d1atvmjjr", "checksum": "8d7234572699415553e79da17fd2524d1fcc2a7efe1e5033a320ab62a52024e6"}, {"id": "fls_zfs15iel08y0", "number": "2.1:14", "link": "lexical-elements.html#fls_zfs15iel08y0", "checksum": "e3b6a12dce515b8175a3e8b860650047b16ef9d3ca779fa9d7d654e44137ddc7"}, {"id": "fls_7eifv4ksunu1", "number": "2.1:15", "link": "lexical-elements.html#fls_7eifv4ksunu1", "checksum": "0019b4f55d1b71c339a645baf16461aa169dbed3b2d823b8af749a41fe5c41ac"}, {"id": "fls_pidkem8gilnl", "number": "2.1:16", "link": "lexical-elements.html#fls_pidkem8gilnl", "checksum": "8a24c7ea76335af8905267c0228e0a1fb01b2367fb5def7030a6d69e27d6a447"}, {"id": "fls_2brw13n9ldgy", "number": "2.1:17", "link": "lexical-elements.html#fls_2brw13n9ldgy", "checksum": "d5ae1cce239b620e197250f6a2726fc8f495aee8a7115926a963718c9033130f"}], "informational": false}, {"id": "fls_fgnllgz5k3e6", "number": "2.2", "title": "Lexical Elements, Separators, and Punctuation", "link": "lexical-elements.html#lexical-elements-separators-and-punctuation", "paragraphs": [{"id": "fls_d4nvxsvxj537", "number": "2.2:1", "link": "lexical-elements.html#fls_d4nvxsvxj537", "checksum": "653136e8fac3c1c53040add411c925009e38f8501d503a48b3c73829f59e7bbc"}, {"id": "fls_a1zylpqha73x", "number": "2.2:2", "link": "lexical-elements.html#fls_a1zylpqha73x", "checksum": "73d17b1543408a0260ebf6781483f768a98a08e65e7b3efd7a67056c0769a116"}, {"id": "fls_jy6wifn5r2bu", "number": "2.2:3", "link": "lexical-elements.html#fls_jy6wifn5r2bu", "checksum": "11d71ea399510ce28be4e570347824ac5796e92cb7aeec1b5a5917ddac5f41dc"}, {"id": "fls_efdfq9nhpmp5", "number": "2.2:4", "link": "lexical-elements.html#fls_efdfq9nhpmp5", "checksum": "f7f8a0f54827276c6d4560722f7e9788d530dd5d345822294140f92d6b9bca15"}, {"id": "fls_go25sisi5fdp", "number": "2.2:5", "link": "lexical-elements.html#fls_go25sisi5fdp", "checksum": "c9af1ffb3e58642391c41d16d4207e4f717098bcbe022bdf29bec6ce24663dc4"}, {"id": "fls_a6t53o8h1vdk", "number": "2.2:6", "link": "lexical-elements.html#fls_a6t53o8h1vdk", "checksum": "761bcfdf8467cee695b29cd8d454ab4a558df08126df0edde891a74925371be6"}, {"id": "fls_8fv63w6f4udl", "number": "2.2:7", "link": "lexical-elements.html#fls_8fv63w6f4udl", "checksum": "eb78e3a8a8e977064b2d7149e4306c21f9fcdfb8f18ceeb51eb2b40b9ac4a9c7"}, {"id": "fls_es0tz1q9cmoo", "number": "2.2:8", "link": "lexical-elements.html#fls_es0tz1q9cmoo", "checksum": "2db8aaaa096a0e58bd2ffc1db8997f6950ac40fd421ec7ba8b451a13f9a86de5"}, {"id": "fls_vm86olkeecer", "number": "2.2:9", "link": "lexical-elements.html#fls_vm86olkeecer", "checksum": "f795577e13f973533719549c1acfa613203c8ccb340008307f46401e67c453d7"}, {"id": "fls_5zxdgxy8tjrq", "number": "2.2:10", "link": "lexical-elements.html#fls_5zxdgxy8tjrq", "checksum": "a00d2db187c054f568dbc3e78a1605de3149d3c6abc4a34aa93f2710ba6ca2fd"}, {"id": "fls_x89vkq9rwlyt", "number": "2.2:11", "link": "lexical-elements.html#fls_x89vkq9rwlyt", "checksum": "115718cd9f0c771924efeceb67f8b777b85cec578ef27ca2e037c38243f8f350"}, {"id": "fls_bo3xh8r60ji1", "number": "2.2:12", "link": "lexical-elements.html#fls_bo3xh8r60ji1", "checksum": "5f4e89c3e94a0b323a33d11a320cc4dcc9f49ad2aadb50b2bafe1222bc8ddf57"}, {"id": "fls_sslkjuxjnteu", "number": "2.2:13", "link": "lexical-elements.html#fls_sslkjuxjnteu", "checksum": "6f99b7bbcf1e55392ad60df6c0625665b9dc85560643ad80f415189d8c7ea74d"}, {"id": "fls_9g1godm0jp0z", "number": "2.2:14", "link": "lexical-elements.html#fls_9g1godm0jp0z", "checksum": "deb239c182541b9351e7079d839b668ddf59a12393d1595c39ea0a9e9ddb774e"}, {"id": "fls_6oith9q0soot", "number": "2.2:15", "link": "lexical-elements.html#fls_6oith9q0soot", "checksum": "0aa275a9c135534577ced486481a428aeb61c42968ca8a6ceafaada95c15ce69"}, {"id": "fls_1dledwdc8fa6", "number": "2.2:16", "link": "lexical-elements.html#fls_1dledwdc8fa6", "checksum": "da7de79db9b949ccd8272fe75b48914ed735298d02e452128b6f46462c2d48a6"}, {"id": "fls_lunw7ucj5ius", "number": "2.2:17", "link": "lexical-elements.html#fls_lunw7ucj5ius", "checksum": "47d2b64fbe4f3b6669f313e326a56bc80c9e29d2609798c8fbd66944b711bc45"}, {"id": "fls_a4oiuhz95uiv", "number": "2.2:18", "link": "lexical-elements.html#fls_a4oiuhz95uiv", "checksum": "c9313afb793a167c53fe2e63b2f4af9b33b23f6209fbf7e0b074de80d123e380"}, {"id": "fls_137x9s6guj6h", "number": "2.2:19", "link": "lexical-elements.html#fls_137x9s6guj6h", "checksum": "6e723820ff0d3af2b33911208421ec93bfa3d9388535b353d60fe2a74ccc1c8e"}, {"id": "fls_y0wdb09cpp1w", "number": "2.2:20", "link": "lexical-elements.html#fls_y0wdb09cpp1w", "checksum": "d871501237f68094e868228be1c9ed208944a082241b0cf7a5e34375ee6310ba"}, {"id": "fls_48b7mepiuupz", "number": "2.2:21", "link": "lexical-elements.html#fls_48b7mepiuupz", "checksum": "27d189b098b53140fcdc85a3f039a286f0345dd4aa05f64de22d79e472edc815"}, {"id": "fls_g9h9bsvrsmk1", "number": "2.2:22", "link": "lexical-elements.html#fls_g9h9bsvrsmk1", "checksum": "cead86db2db6918d8b043df1bb6d9a515f70eedb704cb0533f19bf1a702786d5"}, {"id": "fls_fxne2xd0zzzo", "number": "2.2:23", "link": "lexical-elements.html#fls_fxne2xd0zzzo", "checksum": "9919d5618da261c20fa0dcbe41e0e33cdadc04c63ce6b754c24cc21f2cea2143"}, {"id": "fls_il7zv5x3aw0q", "number": "2.2:24", "link": "lexical-elements.html#fls_il7zv5x3aw0q", "checksum": "1db05fadca01dde48b4ba9f4c5941275523165e10756ef03f43cfa640cb2164e"}, {"id": "fls_ovcs1qm86ss9", "number": "2.2:25", "link": "lexical-elements.html#fls_ovcs1qm86ss9", "checksum": "0f736355e9492cd634311cdd73a04550f157f18342e924ed85e3662ff008085f"}, {"id": "fls_wmhlvjm0b0j9", "number": "2.2:26", "link": "lexical-elements.html#fls_wmhlvjm0b0j9", "checksum": "90ab0fbf40492678aadc1c1460d74be57bd1740b09977b1ac1304747e519aba3"}, {"id": "fls_gg42klb2gn9v", "number": "2.2:27", "link": "lexical-elements.html#fls_gg42klb2gn9v", "checksum": "d68ed94fe4e38b43ce1f83e10bd9d63c0a70f2869947d5e7a3b05323020be8e0"}, {"id": "fls_icahptg5enj4", "number": "2.2:28", "link": "lexical-elements.html#fls_icahptg5enj4", "checksum": "2565056b10c31e82a75554c2f93e8566040b57a534228e4eb172894ee351df1e"}, {"id": "fls_baawlxoi7yd4", "number": "2.2:29", "link": "lexical-elements.html#fls_baawlxoi7yd4", "checksum": "72b90114176314f65b298489501e1763317985e1f90ddc834c7ba00bceacc339"}, {"id": "fls_m7gt3wfbtm81", "number": "2.2:30", "link": "lexical-elements.html#fls_m7gt3wfbtm81", "checksum": "7e8d7cb2d1db1915eefb51e0bb97b3578e2168dc029dbb4c6ce360f326d9f760"}, {"id": "fls_6ewl7gn3sjm2", "number": "2.2:31", "link": "lexical-elements.html#fls_6ewl7gn3sjm2", "checksum": "d1faa62ca541cacacd198a34628995933bad01292a21dd568ddcf474e4dbc4b2"}, {"id": "fls_nb8q6oq8txv3", "number": "2.2:32", "link": "lexical-elements.html#fls_nb8q6oq8txv3", "checksum": "721175acceef5a74b065e1b446344787ec7a10cbffbef36ce67f086022ce23ba"}, {"id": "fls_4nnky9ansr9j", "number": "2.2:33", "link": "lexical-elements.html#fls_4nnky9ansr9j", "checksum": "d3f16e94c1af504357ac2df39037b3897e443574d68f41a97f3a3751fb96fd49"}, {"id": "fls_h1gvudehmnn9", "number": "2.2:34", "link": "lexical-elements.html#fls_h1gvudehmnn9", "checksum": "f33b2927d4c93c042777b5efd14b10f479d4567213b07eeb39af2f226b208a84"}, {"id": "fls_6yj1c3lh691s", "number": "2.2:35", "link": "lexical-elements.html#fls_6yj1c3lh691s", "checksum": "3b19d33ec536baf30efd81e160cddae06ecb9f87449e9a2f0eb4b7b41f45a9e9"}, {"id": "fls_2d3oo9nou9vv", "number": "2.2:36", "link": "lexical-elements.html#fls_2d3oo9nou9vv", "checksum": "1849bba6049bdbc82b21b091dec81c60ec2b201d17fb46c10b00dd7008a75383"}, {"id": "fls_st2vhcy14ud9", "number": "2.2:37", "link": "lexical-elements.html#fls_st2vhcy14ud9", "checksum": "1e646156faf2fee7e2b56b8ba713276080504a642c80857cae228114284669d0"}, {"id": "fls_9gdyw71dl25", "number": "2.2:38", "link": "lexical-elements.html#fls_9gdyw71dl25", "checksum": "296ef99a61a7ee9d96f8b232724e9426eaf744eb4fee6e5a8d5f382bab039071"}, {"id": "fls_sp8ufz28l9w3", "number": "2.2:39", "link": "lexical-elements.html#fls_sp8ufz28l9w3", "checksum": "a6eb8fc79796023bbf80ae6ebebbe9aa8ca02eaea9e91dd0101a92d6502c436a"}, {"id": "fls_7kdr8biodxvz", "number": "2.2:40", "link": "lexical-elements.html#fls_7kdr8biodxvz", "checksum": "1206752913d765884541bbdca0403f9d865f619f0a66850120cd7d31fdf9dba4"}, {"id": "fls_pf92l9bkte2u", "number": "2.2:41", "link": "lexical-elements.html#fls_pf92l9bkte2u", "checksum": "313032bcb9b35d0790c79d41a0ca4b969af9522ce30869193930e68bc013f5ab"}, {"id": "fls_ui40thspgyav", "number": "2.2:42", "link": "lexical-elements.html#fls_ui40thspgyav", "checksum": "33ac534f7ecfa88d267e49b475398c2c99a9dc708d9947f300849180c325d542"}, {"id": "fls_h33qzachmimc", "number": "2.2:43", "link": "lexical-elements.html#fls_h33qzachmimc", "checksum": "7d1d9f51a7a61689fd5c36e8bb1692e0155f452ed6ee445950644a177628e200"}, {"id": "fls_13ud1clgdnyv", "number": "2.2:44", "link": "lexical-elements.html#fls_13ud1clgdnyv", "checksum": "2f5232d2dd945c47f4332b95ce35d9d402898e71f4f7c411c663e301e2429cfa"}, {"id": "fls_7fosi8l2ktz2", "number": "2.2:45", "link": "lexical-elements.html#fls_7fosi8l2ktz2", "checksum": "70b0b1197e263b4916e16125090cd6e9a9899d0554b9d920f0a3ea7fa28419bb"}, {"id": "fls_9qitp6r75ia6", "number": "2.2:46", "link": "lexical-elements.html#fls_9qitp6r75ia6", "checksum": "5683fc048d59af88dbe3eab83e4bd8d23b94856307f288a6f6377f4037f4595d"}, {"id": "fls_g0umao9roi2l", "number": "2.2:47", "link": "lexical-elements.html#fls_g0umao9roi2l", "checksum": "910783ea8b3d0346e1c6f25a4103c369012b37ccd28169fb7513ec357673c4d2"}, {"id": "fls_lamrpdpko48", "number": "2.2:48", "link": "lexical-elements.html#fls_lamrpdpko48", "checksum": "425e9c50e0a6e99ab3bd2a32d34417baaa88ef286249a7ea4c40aff88803a88d"}, {"id": "fls_s4lte9onbmqb", "number": "2.2:49", "link": "lexical-elements.html#fls_s4lte9onbmqb", "checksum": "44095be1f456e5e12848444c3cccdaf9cb0595d285c3b9af792f68c3c6d12e7a"}, {"id": "fls_ywc297y8s0dt", "number": "2.2:50", "link": "lexical-elements.html#fls_ywc297y8s0dt", "checksum": "ef74969af8ed15f1495ae8e706dfd8210ff6adfe2b49651ba869290be7687de0"}, {"id": "fls_ijb0fws4gshu", "number": "2.2:51", "link": "lexical-elements.html#fls_ijb0fws4gshu", "checksum": "5646edff72acfcef1812fe04617d99f20bd1792169e20de2737a09248d9dd74f"}, {"id": "fls_c25ur4xwbpk0", "number": "2.2:52", "link": "lexical-elements.html#fls_c25ur4xwbpk0", "checksum": "20e185246054cf07309c6a13c1abd811e9488b5a85b5b076da651edbcdb233bd"}, {"id": "fls_9dd9479zzq30", "number": "2.2:53", "link": "lexical-elements.html#fls_9dd9479zzq30", "checksum": "c9171c2be2e92bbdf83f7a6944a2ba47aed3227600b99f5fb6a50b1ee7cfffdd"}, {"id": "fls_kwsu9d3ppv3f", "number": "2.2:54", "link": "lexical-elements.html#fls_kwsu9d3ppv3f", "checksum": "6392d2a1b3e699903a3891e189ec2627cd4cdadb40b1901227056869728ed558"}, {"id": "fls_oh62j9unw4mg", "number": "2.2:55", "link": "lexical-elements.html#fls_oh62j9unw4mg", "checksum": "9cd08193b2cec929c6aa172a5dc0c456e7f5faf0dddc91f4a5010af10ff3cffb"}, {"id": "fls_g0tltt8qmbum", "number": "2.2:56", "link": "lexical-elements.html#fls_g0tltt8qmbum", "checksum": "6031f088738902177f0a06367e797bbbed6f87b4be23c0317f10da0e7ca27224"}, {"id": "fls_ounkw8b8tk4f", "number": "2.2:57", "link": "lexical-elements.html#fls_ounkw8b8tk4f", "checksum": "c66c5da22713843633a8a9e39b2b20bc790ff265b578a9814659071b19adb6d4"}, {"id": "fls_8ywv8gftsfr1", "number": "2.2:58", "link": "lexical-elements.html#fls_8ywv8gftsfr1", "checksum": "146ed363f52681258de59c4c591f3e964f91cf5b1f49ab1ba0410c4b99fb63a6"}, {"id": "fls_hsn6zc29ifyx", "number": "2.2:59", "link": "lexical-elements.html#fls_hsn6zc29ifyx", "checksum": "db921aee3f65b1447572f308b1536051374edd08a46c64e1900f1f18f7d003e1"}, {"id": "fls_o3amqe3ca82d", "number": "2.2:60", "link": "lexical-elements.html#fls_o3amqe3ca82d", "checksum": "5b84c1b6b34b6a35f73d808399557de0dda5643c5dd061eab6fe2f70f841047a"}, {"id": "fls_lkevfpj7sqd3", "number": "2.2:61", "link": "lexical-elements.html#fls_lkevfpj7sqd3", "checksum": "503fcedbff8acca4704b08fc4a18dd34eacb130b874da3393499d1b4b2767f79"}, {"id": "fls_ff05ge2189z", "number": "2.2:62", "link": "lexical-elements.html#fls_ff05ge2189z", "checksum": "d11919954e7ca0bf885a5dcecbf1173c4e7d47a9a0c9680cdfe30689bdc09607"}, {"id": "fls_nplkudde6oxf", "number": "2.2:63", "link": "lexical-elements.html#fls_nplkudde6oxf", "checksum": "f5fea3393e5672ccf2f182c92ada0ce8e51b908b4c56d6e5dff341b04aadbdda"}, {"id": "fls_qwnrklmbz0b", "number": "2.2:64", "link": "lexical-elements.html#fls_qwnrklmbz0b", "checksum": "0f4d81ea4a932a0b0c4ca39ea2ab7cf36fe9262611f07950869b94f715652cb3"}], "informational": false}, {"id": "fls_21vnag69kbwe", "number": "2.3", "title": "Identifiers", "link": "lexical-elements.html#fls-21vnag69kbwe", "paragraphs": [{"id": "fls_ls7ymvgd5kfa", "number": "2.3:1", "link": "lexical-elements.html#fls_ls7ymvgd5kfa", "checksum": "3987fd5d747ef2d4785094f84e754d8cae140017fa5f9c28362feeef107d4dac"}, {"id": "fls_aqj9aguczgqs", "number": "2.3:2", "link": "lexical-elements.html#fls_aqj9aguczgqs", "checksum": "711b7898931cab56cb1058ef3932abe5b767cb86bbe9998c0d33d0dec68b7fc5"}, {"id": "fls_xsdmun5uqy4c", "number": "2.3:3", "link": "lexical-elements.html#fls_xsdmun5uqy4c", "checksum": "17d71ec4c1973c054222c7033a9c64d1fd8dca1fdf82d323472445e8c7511c81"}, {"id": "fls_ktnf6zkrdy45", "number": "2.3:4", "link": "lexical-elements.html#fls_ktnf6zkrdy45", "checksum": "3a5077067bbd7d98abb0e8ef62f3c68e25a82638fe896907b96848701a6b9ed0"}, {"id": "fls_jpecw46eh061", "number": "2.3:5", "link": "lexical-elements.html#fls_jpecw46eh061", "checksum": "7c0456add112d85b5342b18d8e5cac6ae082a3b8287b0cc800d54f8906612b2a"}, {"id": "fls_lwcflgezgs5z", "number": "2.3:6", "link": "lexical-elements.html#fls_lwcflgezgs5z", "checksum": "198814e4e6f61528781c58b11e16a0038ae24778bba6d20a1a9a8dd79185cb3e"}, {"id": "fls_uts0hywaw1rq", "number": "2.3:7", "link": "lexical-elements.html#fls_uts0hywaw1rq", "checksum": "a2af446e5664b56514cde36964346072a3c31267e8e81fd5417885aa9f091b32"}, {"id": "fls_lju1avcn0pfd", "number": "2.3:8", "link": "lexical-elements.html#fls_lju1avcn0pfd", "checksum": "3d09604f290b1e849a5430295209e2f6556f6c9f2024c7160c92b0ac7d91a602"}, {"id": "fls_cs6cbw625np1", "number": "2.3:9", "link": "lexical-elements.html#fls_cs6cbw625np1", "checksum": "4e8345c2b229363a30e4c701ca308a343dc98f3fc1025d6321b4a101aa16e444"}, {"id": "fls_irwcldiotei2", "number": "2.3:10", "link": "lexical-elements.html#fls_irwcldiotei2", "checksum": "54da339a3e1b9269cf812fda1ad283d6cf0918c3a3807f8c61fab188ef3d2658"}, {"id": "fls_g72rxs2z5960", "number": "2.3:11", "link": "lexical-elements.html#fls_g72rxs2z5960", "checksum": "9ae1eb42d553b7e7443d02b5b2d1e3a6d78bb9bcb4eedc72060780aa692d65bf"}, {"id": "fls_w473jevurlt1", "number": "2.3:12", "link": "lexical-elements.html#fls_w473jevurlt1", "checksum": "c7c123027fb95da5b47bbb45a0d262f1ccc8a67be78b8c5e6995d4eabf0dcb75"}, {"id": "fls_mt1u4m3simhc", "number": "2.3:13", "link": "lexical-elements.html#fls_mt1u4m3simhc", "checksum": "14cfd5ffca7331e76e77c2fc7141bce89335774b3850f3cc90a06066c4660451"}, {"id": "fls_e2v58o233lvd", "number": "2.3:14", "link": "lexical-elements.html#fls_e2v58o233lvd", "checksum": "b8d023cf7da2ee836679c97c7dccb223c0cfe0d172d661327da271ea51059628"}, {"id": "fls_op0lp1i065di", "number": "2.3:15", "link": "lexical-elements.html#fls_op0lp1i065di", "checksum": "5d492f34dedfe4c347ae8fc5cc979751886b374d0f597aec7270a8850f233696"}, {"id": "fls_vde7gev5rz4q", "number": "2.3:16", "link": "lexical-elements.html#fls_vde7gev5rz4q", "checksum": "d8a9ddf03bd6e5fe69b23403d83fb785383eaa9e3e1b12e4d7a2d26f930c5843"}, {"id": "fls_j9yh8j8jgdeu", "number": "2.3:17", "link": "lexical-elements.html#fls_j9yh8j8jgdeu", "checksum": "cb6600fc3669e86c2955c97b83b7f6396c4187ddd330aa46e989b9cd1c9f0ace"}, {"id": "fls_jejt5z8m1yew", "number": "2.3:18", "link": "lexical-elements.html#fls_jejt5z8m1yew", "checksum": "8123eef62794e72515c380c13f09fe4a1a1b30ee0516beacac7e93a43c943a7b"}], "informational": false}, {"id": "fls_nrkd5wpi64oo", "number": "2.4", "title": "Literals", "link": "lexical-elements.html#literals", "paragraphs": [{"id": "fls_s76un78zyd0j", "number": "2.4:1", "link": "lexical-elements.html#fls_s76un78zyd0j", "checksum": "4303183568664aedd54d9840d1fb3ca733ea37f08af4e8a629102afce83dc9bc"}], "informational": false}, {"id": "fls_2ifjqwnw03ms", "number": "2.4.1", "title": "Byte Literals", "link": "lexical-elements.html#byte-literals", "paragraphs": [{"id": "fls_3hpzf12h60u4", "number": "2.4.1:1", "link": "lexical-elements.html#fls_3hpzf12h60u4", "checksum": "c40401452c29d8db5b9b193597726e18789ccd7a194187365e54cf4fb4b57067"}, {"id": "fls_q0qwr83frszx", "number": "2.4.1:2", "link": "lexical-elements.html#fls_q0qwr83frszx", "checksum": "59045ce2e31e65cd7b1195587644af1891984b02d9dc612c1f7a61850d140332"}, {"id": "fls_fggytrv5jvw0", "number": "2.4.1:3", "link": "lexical-elements.html#fls_fggytrv5jvw0", "checksum": "34306366aa23941d86cf2fc0d347e2b007703424de36480b5357c7c4583e3671"}], "informational": false}, {"id": "fls_fqaffyrjob7v", "number": "2.4.2", "title": "Byte String Literals", "link": "lexical-elements.html#byte-string-literals", "paragraphs": [{"id": "fls_t63zfv5jduhj", "number": "2.4.2:1", "link": "lexical-elements.html#fls_t63zfv5jduhj", "checksum": "28f4df70edac5734cc64ff6089f04d400be4ce9f2af1664070e1b0326cb24d26"}, {"id": "fls_xd6lnfzmb7t7", "number": "2.4.2:2", "link": "lexical-elements.html#fls_xd6lnfzmb7t7", "checksum": "b095fb9c6f26adc7950fc1088d0c04c0f72b0debd22e082dfe50903faa93af8d"}], "informational": false}, {"id": "fls_msbaxfc09vkk", "number": "2.4.2.1", "title": "Simple Byte String Literals", "link": "lexical-elements.html#simple-byte-string-literals", "paragraphs": [{"id": "fls_3dcqhuosqb84", "number": "2.4.2.1:1", "link": "lexical-elements.html#fls_3dcqhuosqb84", "checksum": "62ac30b5cfa63f4632a34f11e4698ea67c7ae55a34b3d28b393ca9d5fa086c06"}, {"id": "fls_moe3zfx39ox2", "number": "2.4.2.1:2", "link": "lexical-elements.html#fls_moe3zfx39ox2", "checksum": "5e13841395ee1fa0c45128b43036136b6cb4e4916df10822bac39fdbd3793ff4"}, {"id": "fls_vffxb6arj9jf", "number": "2.4.2.1:3", "link": "lexical-elements.html#fls_vffxb6arj9jf", "checksum": "8f22427e1ba53391df74a01e8e153344365f804365f3a68124e8fb15dc383bb6"}], "informational": false}, {"id": "fls_jps9102q0qfi", "number": "2.4.2.2", "title": "Raw Byte String Literals", "link": "lexical-elements.html#raw-byte-string-literals", "paragraphs": [{"id": "fls_yyw7nv651580", "number": "2.4.2.2:1", "link": "lexical-elements.html#fls_yyw7nv651580", "checksum": "990fc45d4abab0b67d0ef88df0be04d33d65c7522287bb90176a8a85a131faf8"}, {"id": "fls_5ybq0euwya42", "number": "2.4.2.2:2", "link": "lexical-elements.html#fls_5ybq0euwya42", "checksum": "f646d235451afad8b859ba4be5f8fb7a8bfd7a81daf561627ab2473cdba57128"}], "informational": false}, {"id": "fls_hv9jtycp0o1y", "number": "2.4.3", "title": "Numeric Literals", "link": "lexical-elements.html#numeric-literals", "paragraphs": [{"id": "fls_fqpqnku27v99", "number": "2.4.3:1", "link": "lexical-elements.html#fls_fqpqnku27v99", "checksum": "d35bc8c4c792333754935689e43e0ed039b2a0b85a1730fd03f18091f05a6c19"}], "informational": false}, {"id": "fls_2ed4axpsy9u0", "number": "2.4.3.1", "title": "Integer Literals", "link": "lexical-elements.html#integer-literals", "paragraphs": [{"id": "fls_vkk2krfn93ry", "number": "2.4.3.1:1", "link": "lexical-elements.html#fls_vkk2krfn93ry", "checksum": "838a11239236c63c53764779b279c93d7dd7d3de4c52d1940ac02c6568cca205"}, {"id": "fls_nxqncu5yq4eu", "number": "2.4.3.1:2", "link": "lexical-elements.html#fls_nxqncu5yq4eu", "checksum": "45573384a56c61616dc2f95c2ed80da8e157435fd2eaacf7dba7d34bd26d9f5c"}, {"id": "fls_rn8xfd66yvst", "number": "2.4.3.1:3", "link": "lexical-elements.html#fls_rn8xfd66yvst", "checksum": "b53030bb2f4fce14a508b6f1efada25625e0fd5ba0b3fecfd8c97e0cb04cda6a"}, {"id": "fls_2268lchxkzjp", "number": "2.4.3.1:4", "link": "lexical-elements.html#fls_2268lchxkzjp", "checksum": "fb04cc8a0da09c17517d97ccfff5433116894258fe657d52d61fa56ae4f58b22"}, {"id": "fls_4v7awnutbpoe", "number": "2.4.3.1:5", "link": "lexical-elements.html#fls_4v7awnutbpoe", "checksum": "39e541881b32e1399af9d22c81f2c9acf7374597615a6e067f19a2a1483716bc"}, {"id": "fls_f1e29aj0sqvl", "number": "2.4.3.1:6", "link": "lexical-elements.html#fls_f1e29aj0sqvl", "checksum": "e930d37f51da1de444b9cdce508609ab005c7df01cf636cbae19629ed63527cd"}, {"id": "fls_u83mffscqm6", "number": "2.4.3.1:7", "link": "lexical-elements.html#fls_u83mffscqm6", "checksum": "0c2fc993dbe174e0cd94651585b88f744f4e4a827c5145dd0137aa6eab3387f4"}, {"id": "fls_g10nuv14q4jn", "number": "2.4.3.1:8", "link": "lexical-elements.html#fls_g10nuv14q4jn", "checksum": "56156e06e89f2c8d0e82416fb36dbe038b0aad5dd5d553108e3cd3e560351052"}, {"id": "fls_hpkkvuj1z1ez", "number": "2.4.3.1:9", "link": "lexical-elements.html#fls_hpkkvuj1z1ez", "checksum": "f684fbad635257607f2b55c5da42894852a1ba30d630ac6d1e217b81f6bfdf8d"}, {"id": "fls_7yq2fep848ky", "number": "2.4.3.1:10", "link": "lexical-elements.html#fls_7yq2fep848ky", "checksum": "fcae3d231f80f39da6c1244a291d2760710458e799952561422e8c9280d35453"}, {"id": "fls_bzm8lwq3qlat", "number": "2.4.3.1:11", "link": "lexical-elements.html#fls_bzm8lwq3qlat", "checksum": "1f4a7189ec6869ed715b2809e1dfdf0d1da660f106391d0ae75419cb2a3bc674"}, {"id": "fls_l4cx36brc1r5", "number": "2.4.3.1:12", "link": "lexical-elements.html#fls_l4cx36brc1r5", "checksum": "da4e7c81f503ecc2ccc9f9996edd96f76f669a45826eeb0bbb333d2e4a34dc91"}, {"id": "fls_wthchinwx996", "number": "2.4.3.1:13", "link": "lexical-elements.html#fls_wthchinwx996", "checksum": "c1fe3c1f3f5a441d07e72c6702bc49ef8f801249e1a6b368c41d41cb087234e7"}, {"id": "fls_7uoaet2pm3am", "number": "2.4.3.1:14", "link": "lexical-elements.html#fls_7uoaet2pm3am", "checksum": "9efb52c23e09f3c839307b622ea91a74fb827775d9312350956fc958a2a13a48"}, {"id": "fls_p4rw583o2qbi", "number": "2.4.3.1:15", "link": "lexical-elements.html#fls_p4rw583o2qbi", "checksum": "90e73387f32e74d98fccc01498d6b81106bfa39272684edd996c6bdc2ad8f099"}, {"id": "fls_xrv4q56lmoo3", "number": "2.4.3.1:16", "link": "lexical-elements.html#fls_xrv4q56lmoo3", "checksum": "a4c17c7e7b65883a7408b8cb26441cee4c5a98f040aec9f252015fc7fa72a28e"}, {"id": "fls_66e3q5um6cwc", "number": "2.4.3.1:17", "link": "lexical-elements.html#fls_66e3q5um6cwc", "checksum": "5cd753841d4cf1b3ac2e299d851b9d7d782ffec5218f862a6145c1bb97fe48af"}, {"id": "fls_5asyk66y7c9d", "number": "2.4.3.1:18", "link": "lexical-elements.html#fls_5asyk66y7c9d", "checksum": "b8c0a318a752dfac35fa253f5eaa5d86aa4d60c81746dbef4f79760bfbbb910e"}, {"id": "fls_76fifqjka0lx", "number": "2.4.3.1:19", "link": "lexical-elements.html#fls_76fifqjka0lx", "checksum": "def3e28ea7543e8f1e3cd2976118a6057928353e8c252c4b3dbd25c489171d9e"}, {"id": "fls_fsaimo419gf0", "number": "2.4.3.1:20", "link": "lexical-elements.html#fls_fsaimo419gf0", "checksum": "7be03faca47fa6b3d15b6e1bc4e6cb7412ac921daeaa997fec6b05a74ebf315f"}, {"id": "fls_hvzacbu7yiwc", "number": "2.4.3.1:21", "link": "lexical-elements.html#fls_hvzacbu7yiwc", "checksum": "a0e4b322fa7da7cd532ed7b176659ab4f67e9391a98e3f8ff3a6aee868b8cc88"}, {"id": "fls_50qipwqi3arw", "number": "2.4.3.1:22", "link": "lexical-elements.html#fls_50qipwqi3arw", "checksum": "7addf8fc9c1954d1f299f518261046655b25344da4e2566f4a6d2ad56af8f9a2"}, {"id": "fls_idzhusp2l908", "number": "2.4.3.1:23", "link": "lexical-elements.html#fls_idzhusp2l908", "checksum": "f00c3c8190df9c8356e8d00d40dc820ee8c2066ee14bc6fa8b113f1c2338df01"}, {"id": "fls_qqrqyc6uhol", "number": "2.4.3.1:24", "link": "lexical-elements.html#fls_qqrqyc6uhol", "checksum": "a94d2d7881175e1f816e2299655e250ae163b1ded65deba1d719d1480c2c8213"}, {"id": "fls_pexi5jazthq6", "number": "2.4.3.1:25", "link": "lexical-elements.html#fls_pexi5jazthq6", "checksum": "15953208cdd66d1e39876632dc159e551d824c61166d95fef941338342da8c30"}], "informational": false}, {"id": "fls_29tlg1vyqay2", "number": "2.4.3.2", "title": "Float Literals", "link": "lexical-elements.html#float-literals", "paragraphs": [{"id": "fls_rzi7oeqokd6e", "number": "2.4.3.2:1", "link": "lexical-elements.html#fls_rzi7oeqokd6e", "checksum": "5fbdbcd887fb491134091fc535b453fbfc99b8b158a38e18667520fde61df8fd"}, {"id": "fls_2ru1zyrykd37", "number": "2.4.3.2:2", "link": "lexical-elements.html#fls_2ru1zyrykd37", "checksum": "49113c092a3bbaaee5ecc5e237faa3a1d6b023cb7963903b2987786386b06cbc"}, {"id": "fls_21mhnhplzam7", "number": "2.4.3.2:3", "link": "lexical-elements.html#fls_21mhnhplzam7", "checksum": "de707bc1cc7a5d7d39af4acc4398ef7e645ac259968bb70066966823e3320d0b"}, {"id": "fls_drqh80k0sfkb", "number": "2.4.3.2:4", "link": "lexical-elements.html#fls_drqh80k0sfkb", "checksum": "8851975681aef35016e51dcd1065ff3a7c4dcc59185943068c52b5f39a45220c"}, {"id": "fls_cbs7j9pjpusw", "number": "2.4.3.2:5", "link": "lexical-elements.html#fls_cbs7j9pjpusw", "checksum": "4f2baa57a7d41e696d29d2b12dd05976c69c2dca1d26d41b65c2ae18930aa583"}, {"id": "fls_b9w7teaw1f8f", "number": "2.4.3.2:6", "link": "lexical-elements.html#fls_b9w7teaw1f8f", "checksum": "1c3e432fbd868c7c0e6f540bab2df3a5a05a874a2cf90c0c008273c8750df94a"}, {"id": "fls_eawxng4ndhv0", "number": "2.4.3.2:7", "link": "lexical-elements.html#fls_eawxng4ndhv0", "checksum": "0ed79abbdbc256059087c1f145e130bf6ae83c5d9ee2cf63b10c872203678b32"}, {"id": "fls_yuhza1muo7o", "number": "2.4.3.2:8", "link": "lexical-elements.html#fls_yuhza1muo7o", "checksum": "5af8baeae865b0b892668889094599d1003adefb8ca8775954c2bbb981df6244"}, {"id": "fls_4sxt1ct7fyen", "number": "2.4.3.2:9", "link": "lexical-elements.html#fls_4sxt1ct7fyen", "checksum": "3ab353f0319f1a988557a20ca5d4cbbe6564a0901c1e800e65fdb0f7d63244c4"}, {"id": "fls_wa72rssp0jnt", "number": "2.4.3.2:10", "link": "lexical-elements.html#fls_wa72rssp0jnt", "checksum": "da8b316abb73b8a595ca4e315dca897882f91c0dce9825eb81538e688460e26b"}, {"id": "fls_x2cw7g8g56f8", "number": "2.4.3.2:11", "link": "lexical-elements.html#fls_x2cw7g8g56f8", "checksum": "8cf076d0fe9b1af3dae27583a7489cd5da291f7a3ad82ee704b53d75a6b88bd3"}], "informational": false}, {"id": "fls_ypa86oqxhn9u", "number": "2.4.4", "title": "Character Literals", "link": "lexical-elements.html#character-literals", "paragraphs": [{"id": "fls_j9q9ton57rvl", "number": "2.4.4:1", "link": "lexical-elements.html#fls_j9q9ton57rvl", "checksum": "74e9ccd35447ec63b8c0425e182a07fca94414ed3f7ddea9fa310ad919d551f9"}, {"id": "fls_5v9gx22g5wpm", "number": "2.4.4:2", "link": "lexical-elements.html#fls_5v9gx22g5wpm", "checksum": "eaa3a29da7d1231106d2806b74071e86016eeeac6bda726a1b67b7946fc688fe"}, {"id": "fls_vag2oy4q7d4n", "number": "2.4.4:3", "link": "lexical-elements.html#fls_vag2oy4q7d4n", "checksum": "22ca23a599d712303316952fe635355f16bf2f9ff55658bf7a1ecc55ecca4ce1"}, {"id": "fls_n8z6p6g564r2", "number": "2.4.4:4", "link": "lexical-elements.html#fls_n8z6p6g564r2", "checksum": "e33f767e24f5ea1c1341bf515463aec11114c952dba17c8c17dfa64f277d2291"}], "informational": false}, {"id": "fls_boyhlu5srp6u", "number": "2.4.5", "title": "String Literals", "link": "lexical-elements.html#string-literals", "paragraphs": [{"id": "fls_7fuctvtvdi7x", "number": "2.4.5:1", "link": "lexical-elements.html#fls_7fuctvtvdi7x", "checksum": "c886554b68518a6cb11a6671911a00850d338a207bf5813cbf9a2dfd6f6ee63a"}, {"id": "fls_nyicpu2tzjlq", "number": "2.4.5:2", "link": "lexical-elements.html#fls_nyicpu2tzjlq", "checksum": "6c653b805698505c3026af600e00b55406a4b8149cd3a8840cc94e5ad0ff0a9f"}], "informational": false}, {"id": "fls_hucd52suu6it", "number": "2.4.5.1", "title": "Simple String Literals", "link": "lexical-elements.html#simple-string-literals", "paragraphs": [{"id": "fls_1pdzwkt5txfj", "number": "2.4.5.1:1", "link": "lexical-elements.html#fls_1pdzwkt5txfj", "checksum": "ac492dd896d3af7d678cdc44d9708f856cbc67ce41ee48385f730c82f0fb65eb"}, {"id": "fls_wawtu6j3fiqn", "number": "2.4.5.1:2", "link": "lexical-elements.html#fls_wawtu6j3fiqn", "checksum": "8eeeebd628d07b2ea71c78a21c61dd978f7d9af4bd0b88a95768966881dd52b4"}, {"id": "fls_ycy5ee6orjx", "number": "2.4.5.1:3", "link": "lexical-elements.html#fls_ycy5ee6orjx", "checksum": "4a6e317133ecb5ae53aefdc730f509e09e0c3713395895908d88d18e106527b7"}, {"id": "fls_6nt5kls21xes", "number": "2.4.5.1:4", "link": "lexical-elements.html#fls_6nt5kls21xes", "checksum": "cb50f037e2188c9a58f86b87d2c9d1f90186b0dcbe6117c343aa5fba6b2d7daa"}], "informational": false}, {"id": "fls_usr6iuwpwqqh", "number": "2.4.5.2", "title": "Raw String Literals", "link": "lexical-elements.html#raw-string-literals", "paragraphs": [{"id": "fls_36suwhbwmq1t", "number": "2.4.5.2:1", "link": "lexical-elements.html#fls_36suwhbwmq1t", "checksum": "cf9f7d7333258a4d9a235a6a611a80fd87d664cafd5732da2eb6c1155dfad367"}, {"id": "fls_ms43w1towz40", "number": "2.4.5.2:2", "link": "lexical-elements.html#fls_ms43w1towz40", "checksum": "d3b402e15a8bff639df20fcf15d4306d568a4d8b0e65132224975ba1cd7ffd25"}], "informational": false}, {"id": "fls_jkab8eevzbte", "number": "2.4.6", "title": "Boolean Literals", "link": "lexical-elements.html#boolean-literals", "paragraphs": [{"id": "fls_1lll64ftupjd", "number": "2.4.6:1", "link": "lexical-elements.html#fls_1lll64ftupjd", "checksum": "9222cb981e760f03c8b46b8708ecf54b556f6fb343a0017cb16fba2bcb98c10f"}, {"id": "fls_pgngble3ilyx", "number": "2.4.6:2", "link": "lexical-elements.html#fls_pgngble3ilyx", "checksum": "68a6151c72c232478bda2c413c1552acfd1e8304956b5733ef8a13c86768b079"}], "informational": false}, {"id": "fls_q8l2jza7d9xa", "number": "2.5", "title": "Comments", "link": "lexical-elements.html#comments", "paragraphs": [{"id": "fls_8obn3dtzpe5f", "number": "2.5:1", "link": "lexical-elements.html#fls_8obn3dtzpe5f", "checksum": "80a97a25c037e20dbb697978e3c79c22243ea2bb094a1a60f10b8cc358d57568"}, {"id": "fls_qsbnl11be35s", "number": "2.5:2", "link": "lexical-elements.html#fls_qsbnl11be35s", "checksum": "2dea71c3ed9833c779a0c63b8eae45c64771074fdbc263b67cd2115d7e9cf4ab"}, {"id": "fls_nayisy85kyq2", "number": "2.5:3", "link": "lexical-elements.html#fls_nayisy85kyq2", "checksum": "21cfcc3e2a54f9de067b507a9febe04379152937834f9c805769db5f4f31efaf"}, {"id": "fls_k3hj30hjkdhw", "number": "2.5:4", "link": "lexical-elements.html#fls_k3hj30hjkdhw", "checksum": "44db9ffd84a7092979605a0738feeec5f4b7058b977a23c47673c33c3ece8211"}, {"id": "fls_tspijl68lduc", "number": "2.5:5", "link": "lexical-elements.html#fls_tspijl68lduc", "checksum": "46b1ba35f675d689f5cccd754f8935bdbf89c5ad8ddf1e0563957ca73a891019"}, {"id": "fls_kzp0yifltqxb", "number": "2.5:6", "link": "lexical-elements.html#fls_kzp0yifltqxb", "checksum": "270e8134659947ebca11488a29a6802edd92f2d00c5c5cc2cdd352343a96c6da"}, {"id": "fls_63gzofa9ktic", "number": "2.5:7", "link": "lexical-elements.html#fls_63gzofa9ktic", "checksum": "7db44552637b47a7c80a482ccb21eff193aec3ef608b793139b79c90b9d259e9"}, {"id": "fls_scko7crha0um", "number": "2.5:8", "link": "lexical-elements.html#fls_scko7crha0um", "checksum": "1d2db5c6599512c9ff5347dd4643d081ca0ef713a638861316d0eb850fea2aef"}, {"id": "fls_ryvl9kgaxkvl", "number": "2.5:9", "link": "lexical-elements.html#fls_ryvl9kgaxkvl", "checksum": "89aba4c16b95e9fa5e40e6f8fda1c986eb5097820542fc57bf4d63ee2641be25"}, {"id": "fls_7n6d3jx61ose", "number": "2.5:10", "link": "lexical-elements.html#fls_7n6d3jx61ose", "checksum": "b5cdea2b94f91084652299806e1a80b282c551014c7d65952547fca3a2bb7cf8"}, {"id": "fls_6fxcs17n4kw", "number": "2.5:11", "link": "lexical-elements.html#fls_6fxcs17n4kw", "checksum": "a34430d6423f60015c14850fbc8c713a11943c37acb592477ed6bb0ed902b6a2"}, {"id": "fls_uze7l7cxonk1", "number": "2.5:12", "link": "lexical-elements.html#fls_uze7l7cxonk1", "checksum": "fe2e7af7111eab22f62c00b2ba9fc0c53748fcdb5ec02a7e20dd1e4247706e15"}, {"id": "fls_gy23lwlqw2mc", "number": "2.5:13", "link": "lexical-elements.html#fls_gy23lwlqw2mc", "checksum": "6cff261ef0c0d257749ff6809ac237900fb6673ccb75e5186c7b4fa8857f9330"}, {"id": "fls_w7d0skpov1is", "number": "2.5:14", "link": "lexical-elements.html#fls_w7d0skpov1is", "checksum": "cf00d52ba7c749b5e814bc2852d5e73d2b5454950abb829df0c20d7bb9ba9d60"}, {"id": "fls_32ncjvj2kn7z", "number": "2.5:15", "link": "lexical-elements.html#fls_32ncjvj2kn7z", "checksum": "255a7dcb2fc2b925e5aa49e3be573dcce5c450e40835c21a4ce5008439cdbeb8"}, {"id": "fls_ok0zvo9vcmzo", "number": "2.5:16", "link": "lexical-elements.html#fls_ok0zvo9vcmzo", "checksum": "a8f479f20301435fdb8a2c41487c0cb7d5418c877b9e952dbf54836c18113058"}, {"id": "fls_nwtkupi8fw6v", "number": "2.5:17", "link": "lexical-elements.html#fls_nwtkupi8fw6v", "checksum": "4c1420ace1da3c3694b1aebd35cada39def878b5c4f642ff6950ad600c7138a5"}], "informational": false}, {"id": "fls_lish33a1naw5", "number": "2.6", "title": "Keywords", "link": "lexical-elements.html#keywords", "paragraphs": [{"id": "fls_dti0uu7rz81w", "number": "2.6:1", "link": "lexical-elements.html#fls_dti0uu7rz81w", "checksum": "b661cfaf9bef72a6f8070ed5158ce24d582cc5371b80a7c78f52e7d49157b48f"}, {"id": "fls_sxg1o4oxql51", "number": "2.6:2", "link": "lexical-elements.html#fls_sxg1o4oxql51", "checksum": "9d03ce7dba3147733fdacd077fd30354c8d7b6a79883472bedba6a9643f63d6b"}], "informational": false}, {"id": "fls_mec5cg5aptf8", "number": "2.6.1", "title": "Strict Keywords", "link": "lexical-elements.html#strict-keywords", "paragraphs": [{"id": "fls_bsh7qsyvox21", "number": "2.6.1:1", "link": "lexical-elements.html#fls_bsh7qsyvox21", "checksum": "8394e357df5177d8ada084b53fdd141fc0e1a1ca7b937b28a47415ac0dce750f"}], "informational": false}, {"id": "fls_cbsgp6k0qa82", "number": "2.6.2", "title": "Reserved Keywords", "link": "lexical-elements.html#reserved-keywords", "paragraphs": [{"id": "fls_w4b97ewwnql", "number": "2.6.2:1", "link": "lexical-elements.html#fls_w4b97ewwnql", "checksum": "3f05a14ae9bd0f2dcdc7c65c76de451ed9485badef6dc6bb29c3fae69124e92d"}], "informational": false}, {"id": "fls_9kjpxri0axvg", "number": "2.6.3", "title": "Weak Keywords", "link": "lexical-elements.html#weak-keywords", "paragraphs": [{"id": "fls_bv87t1gvj7bz", "number": "2.6.3:1", "link": "lexical-elements.html#fls_bv87t1gvj7bz", "checksum": "507c02a61084d5e2447a4401c3c9ff54ecfb2b0e46adf98b0e9f96d5fbcd8eb7"}, {"id": "fls_bl55g03jmayf", "number": "2.6.3:2", "link": "lexical-elements.html#fls_bl55g03jmayf", "checksum": "c2adb1a3f82e557d2e62b7aa4e734ce8a14427d039fd743bf82710befacdae6a"}, {"id": "fls_c354oryv513p", "number": "2.6.3:3", "link": "lexical-elements.html#fls_c354oryv513p", "checksum": "7190ee3532730e20b19057227f945e1ad04d6f993bc33984e2dad01773e09ab2"}, {"id": "fls_r9fhuiq1ys1p", "number": "2.6.3:4", "link": "lexical-elements.html#fls_r9fhuiq1ys1p", "checksum": "dc15f002b42ce194ade6b4b0f4f6b5ca7bb28176b493eac737f309f66b3e42da"}], "informational": false}], "informational": false}, {"title": "Unsafety", "link": "unsafety.html", "sections": [{"id": "fls_jep7p27kaqlp", "number": "19", "title": "Unsafety", "link": "unsafety.html", "paragraphs": [{"id": "fls_8kqo952gjhaf", "number": "19:1", "link": "unsafety.html#fls_8kqo952gjhaf", "checksum": "09ef0477163f852006ab72daea7582f28fd5b47b9ec3a4188da6a52a06c1cbb9"}, {"id": "fls_ovn9czwnwxue", "number": "19:2", "link": "unsafety.html#fls_ovn9czwnwxue", "checksum": "72911c6efacc1ea81b757fea368ab51b658c5f44690af8bb4bf5076196f02dba"}, {"id": "fls_pfhmcafsjyf7", "number": "19:3", "link": "unsafety.html#fls_pfhmcafsjyf7", "checksum": "ac90013bdfea2c44c2ea16d0d92eb8b7a3b32f33cdb44553018c9de58de2d0ab"}, {"id": "fls_jd1inwz7ulyw", "number": "19:4", "link": "unsafety.html#fls_jd1inwz7ulyw", "checksum": "509a721d7a591aac4ddac02ca26ef6fc26e0ae40b040578d4282304dbef76b45"}, {"id": "fls_3ra8s1v1vbek", "number": "19:5", "link": "unsafety.html#fls_3ra8s1v1vbek", "checksum": "9efb922ed5200526914bd3f95ddb869b8e555bd8367143db358605307ff7ea93"}, {"id": "fls_6ipl0xo5qjyl", "number": "19:6", "link": "unsafety.html#fls_6ipl0xo5qjyl", "checksum": "1b9334ca686a2f78808b0a5e1bf0b6793eef547e9367cf94416bb6a4009457bc"}, {"id": "fls_ucghxcnpaq2t", "number": "19:7", "link": "unsafety.html#fls_ucghxcnpaq2t", "checksum": "08016621bfd496b3d4c162d71caf6c3033c213bf9b52662adf1137b696285b4b"}, {"id": "fls_ljocmnaz2m49", "number": "19:8", "link": "unsafety.html#fls_ljocmnaz2m49", "checksum": "7740b81deb4cc8d3a5d63073faa941c897de8931c90af82f402d60d8f5cf7ad6"}, {"id": "fls_s5nfhbfok8bu", "number": "19:9", "link": "unsafety.html#fls_s5nfhbfok8bu", "checksum": "bb058285e28804f8335348bcfa3c28e0f032f4346bc2aaf52a67145036233241"}, {"id": "fls_jb6krd90tjmc", "number": "19:10", "link": "unsafety.html#fls_jb6krd90tjmc", "checksum": "14f513b2d197bbf061de106591d50be0e1b5efdd28b7b73e3c01a1fd27dc914d"}, {"id": "fls_ybnpe7ppq1vh", "number": "19:11", "link": "unsafety.html#fls_ybnpe7ppq1vh", "checksum": "c476883b58a5e4480fa0505d41dc097727812f40edf56fd7a46f4fd3595ee2f3"}], "informational": false}], "informational": false}, {"title": "Values", "link": "values.html", "sections": [{"id": "fls_94a8v54bufn8", "number": "7", "title": "Values", "link": "values.html", "paragraphs": [{"id": "fls_buyaqara7am4", "number": "7:1", "link": "values.html#fls_buyaqara7am4", "checksum": "1a30c4fd875bd4b58309644a55091eee8d947eb825edf66ca6ed1b979a89b878"}, {"id": "fls_rixdyyc525xp", "number": "7:2", "link": "values.html#fls_rixdyyc525xp", "checksum": "73bb0dbe94c2f521e89fae4c897fc338813c9175ff4600fed13e41c0b9878e30"}, {"id": "fls_m6ctqq70vcxr", "number": "7:3", "link": "values.html#fls_m6ctqq70vcxr", "checksum": "501fd5dc12d09844a612f32f00e4d5a2dedfdf7a1659cf1e4b1e7aa5ab84d7bb"}, {"id": "fls_s231d18x5eay", "number": "7:4", "link": "values.html#fls_s231d18x5eay", "checksum": "d4a5c1906b3bbe1c9d809c9d1156e75673a511153eedc4950f47fb135b6a59a8"}, {"id": "fls_dfr4yqo93fsn", "number": "7:5", "link": "values.html#fls_dfr4yqo93fsn", "checksum": "01045132eff6e0617d4cca46c1cc3f5d88d56776cf683971fc1530459b7f48fe"}, {"id": "fls_eoak5mdl6ma", "number": "7:6", "link": "values.html#fls_eoak5mdl6ma", "checksum": "e4226c8e3ff3c227a9d0de5f8e42ad468c5a93f6fb87c981f7f126d3d5399060"}, {"id": "fls_6lg0oaaopc26", "number": "7:7", "link": "values.html#fls_6lg0oaaopc26", "checksum": "2935b280567bdb6d4a9792e339cac22702fe95059923d9a738c60a7a8548dab5"}], "informational": false}, {"id": "fls_ixjc5jaamx84", "number": "7.1", "title": "Constants", "link": "values.html#constants", "paragraphs": [{"id": "fls_5o5iu4j8in4l", "number": "7.1:1", "link": "values.html#fls_5o5iu4j8in4l", "checksum": "2174a4a8c9a0e42e91119740bc49a39ed632666f931bc9de2607ce70e1542bd8"}, {"id": "fls_3mhj0kkupwuz", "number": "7.1:2", "link": "values.html#fls_3mhj0kkupwuz", "checksum": "7c5a50f4fdf5e813f75ac692c03fc8f4b3ef0e7f8d0ee6e1de095293de8bfffb"}, {"id": "fls_ka4y2yd100dx", "number": "7.1:3", "link": "values.html#fls_ka4y2yd100dx", "checksum": "4716f007f8ab2d62c80effe03cf31b1970b0da6143b16e60aed00dceda659994"}, {"id": "fls_vt9tlkd676ql", "number": "7.1:4", "link": "values.html#fls_vt9tlkd676ql", "checksum": "ff5ba133064323870b5d011bd88ce9eeacc9f115fdaa6244b44b18ee640a1431"}, {"id": "fls_ndmfqxjpvsqy", "number": "7.1:5", "link": "values.html#fls_ndmfqxjpvsqy", "checksum": "ca441fbadf454d310fef0a445ecd27e40458052ffd2566f775fd1f5d49ab6961"}, {"id": "fls_6rxwbbhf5tc5", "number": "7.1:6", "link": "values.html#fls_6rxwbbhf5tc5", "checksum": "195d2e43a2cb6b0474fb0ebaa8190f17c133efecdb317ae5ad83e396aaf05e0b"}, {"id": "fls_vnc3ttnid1qr", "number": "7.1:7", "link": "values.html#fls_vnc3ttnid1qr", "checksum": "ea8a4c823672702b1fff3e67be0d3834bfde988e46a4ab82202acfcc2d7b9898"}, {"id": "fls_deuo1pn8cjd6", "number": "7.1:8", "link": "values.html#fls_deuo1pn8cjd6", "checksum": "9590b37a5fb341bc26220cabf636eb0b9430c183eefc8266362a284afabdcf54"}, {"id": "fls_5x0jv4cgbolx", "number": "7.1:9", "link": "values.html#fls_5x0jv4cgbolx", "checksum": "015386deba230b6b14d0f7cf80bf7dfbacb3ff23137205e63509bf82cc10cb4e"}, {"id": "fls_xezt9hl069h4", "number": "7.1:10", "link": "values.html#fls_xezt9hl069h4", "checksum": "916f9839884f7b71825ecd5be8ae92f6b7ab789a916c47ba1a5f366bd8ac4382"}, {"id": "fls_ndobth7s92if", "number": "7.1:11", "link": "values.html#fls_ndobth7s92if", "checksum": "18ea98ed7ee862889d2d483387c3b1e28a42e39e9d60b7bbc3e65d9e4deff0a5"}], "informational": false}, {"id": "fls_xdvdl2ssnhlo", "number": "7.2", "title": "Statics", "link": "values.html#statics", "paragraphs": [{"id": "fls_ibrmiwfypldh", "number": "7.2:1", "link": "values.html#fls_ibrmiwfypldh", "checksum": "1fc950d02b5b3c40129159c65daf7d001e7f01521a71c3d8b8a2058dbe50c167"}, {"id": "fls_mt94jvoot9dx", "number": "7.2:2", "link": "values.html#fls_mt94jvoot9dx", "checksum": "8c4334c679018baf9392151eb71d12964b85d09d0477dbea3910ea98adb3612f"}, {"id": "fls_k0r2c6uq29tu", "number": "7.2:3", "link": "values.html#fls_k0r2c6uq29tu", "checksum": "5c1b55de587710b67a5131939b84300663f0c0699041210a7ce0779e6c1a0f65"}, {"id": "fls_b6ods85htuyn", "number": "7.2:4", "link": "values.html#fls_b6ods85htuyn", "checksum": "db2fb6ad99eb58cdd6f4bdb9e2edeff34b4c9b422e25781877ba2d6267194842"}, {"id": "fls_doi4z6u55bi7", "number": "7.2:5", "link": "values.html#fls_doi4z6u55bi7", "checksum": "61e4575688b23d6d7db99392e1b544003c08b7a838ac8fc1fdad3b1e44ad8ce6"}, {"id": "fls_74hp208pto22", "number": "7.2:6", "link": "values.html#fls_74hp208pto22", "checksum": "436a9f15d2686b36fb1f179b13f38d0cce872399fc6c8d997896182219ca9b12"}, {"id": "fls_jfde2vg6mtww", "number": "7.2:7", "link": "values.html#fls_jfde2vg6mtww", "checksum": "7594d6fedfa7f00a180909cf5235b4243c8be61026a444da258f79f104bdd93f"}, {"id": "fls_k4tyqb1j6zjo", "number": "7.2:8", "link": "values.html#fls_k4tyqb1j6zjo", "checksum": "ac1f8731f3004fb8442f085915588c449be8d285a8cae244ac37519247a147c9"}, {"id": "fls_t17h5h6a6v4c", "number": "7.2:9", "link": "values.html#fls_t17h5h6a6v4c", "checksum": "ae7960becaff9d4e85d3aa35ebbfdf4c482ac55566c5938d255ec72bb2cfe41e"}, {"id": "fls_yq0hpy4jx2qb", "number": "7.2:10", "link": "values.html#fls_yq0hpy4jx2qb", "checksum": "74a8e2029bbf9068f3842d85c2c37aa40cf499e68bbff4aaad87bbcca3cddcff"}, {"id": "fls_vgidvfwzm4ks", "number": "7.2:11", "link": "values.html#fls_vgidvfwzm4ks", "checksum": "d07bf654cb1e5a9429203f2ebf243ae97b0345768f8f570784f2e53ba60d1a81"}, {"id": "fls_8dcldbvu7lav", "number": "7.2:12", "link": "values.html#fls_8dcldbvu7lav", "checksum": "14ed04b36fe95b827d15d5985c20be8554b5d34cabcbdcff30e24ab1af96c712"}, {"id": "fls_w0nb0mphho7b", "number": "7.2:13", "link": "values.html#fls_w0nb0mphho7b", "checksum": "0bef3205d769452568c2d9b7420b359b46261b2fd90918adcdf762a9b9d97651"}, {"id": "fls_eeocxst9vafn", "number": "7.2:14", "link": "values.html#fls_eeocxst9vafn", "checksum": "c16b08cc3a5ca2e215cad78f4c6f8d9d9c03d11b6737b12ca2cf558d58a77b3e"}, {"id": "fls_47khd5ljsxeq", "number": "7.2:15", "link": "values.html#fls_47khd5ljsxeq", "checksum": "8aa9153a03b15bd583210b61b2721907a729d0f7febdc4e7a31ff91f096d0e47"}, {"id": "fls_dowxbphqvk3n", "number": "7.2:16", "link": "values.html#fls_dowxbphqvk3n", "checksum": "adfd4f4616593d54184002394d94d8724adb27b43f0a4ac9b591831eb3d24ce0"}, {"id": "fls_b5wsmii7vz3v", "number": "7.2:17", "link": "values.html#fls_b5wsmii7vz3v", "checksum": "ae3be52255b3602f2d17694a7c90103ed859c959d8b5e8b02d731dd9ee8ac70f"}], "informational": false}, {"id": "fls_cleoffpn5ew6", "number": "7.3", "title": "Temporaries", "link": "values.html#temporaries", "paragraphs": [{"id": "fls_awpw61yofckz", "number": "7.3:1", "link": "values.html#fls_awpw61yofckz", "checksum": "c643b7ee2f09d4d661349de57526a0d8f6ba3fa1f1d3cf25ce2abb1ca7ad5487"}], "informational": false}, {"id": "fls_gho955gmob73", "number": "7.4", "title": "Variables", "link": "values.html#variables", "paragraphs": [{"id": "fls_hl5tnd9yy252", "number": "7.4:1", "link": "values.html#fls_hl5tnd9yy252", "checksum": "e459e293d2e06ba989b65a863e33bf3d1559d14ba80224385e6471d4187db194"}, {"id": "fls_vgi0gh5zmoiu", "number": "7.4:2", "link": "values.html#fls_vgi0gh5zmoiu", "checksum": "a56061a790ee2cc114f7f43c891827153cacfdd9d5bbdee36e4db521b6d5fc2f"}, {"id": "fls_81dlbula47nu", "number": "7.4:3", "link": "values.html#fls_81dlbula47nu", "checksum": "317f39071a5788d82b4865c063b86490996160f886858c0f19fdba967e4204e8"}, {"id": "fls_3p0sb9ppmg3w", "number": "7.4:4", "link": "values.html#fls_3p0sb9ppmg3w", "checksum": "08b9626baa3159ce1dfdeca36fdc64f24594ba26b6b57c9810b67ee7c84c26cb"}, {"id": "fls_r9km9f969bu8", "number": "7.4:5", "link": "values.html#fls_r9km9f969bu8", "checksum": "13806969584a605aded5db6ac700acea4334fa75cce1409689f2cdc10b30c2c8"}, {"id": "fls_g8etd5lsgn9j", "number": "7.4:6", "link": "values.html#fls_g8etd5lsgn9j", "checksum": "4de69432bc744f7df3566698f62d36feec0eb8432fae9503c73491871c1858d3"}], "informational": false}, {"id": "fls_wttihxen35as", "number": "7.4.1", "title": "Constant Promotion", "link": "values.html#constant-promotion", "paragraphs": [{"id": "fls_udn9lyf3m0z6", "number": "7.4.1:1", "link": "values.html#fls_udn9lyf3m0z6", "checksum": "2ab496292105588acffc417faa7257c109d7d2599887fea194b6276c78d7d9f9"}, {"id": "fls_yvkdcs4pmxjf", "number": "7.4.1:2", "link": "values.html#fls_yvkdcs4pmxjf", "checksum": "0802dcedbdb411093a11433793ec2d81046430a75caa08c88a0652e21e3f2b48"}, {"id": "fls_n570za6a9nqd", "number": "7.4.1:3", "link": "values.html#fls_n570za6a9nqd", "checksum": "7495b43c987ba177e81ed96d19821da97b72ed887800433fa2c3b5d3899da923"}, {"id": "fls_tms5r9f5ogcb", "number": "7.4.1:4", "link": "values.html#fls_tms5r9f5ogcb", "checksum": "c27b3a87d8e551f6925166f12702de6c3b84e10e0560e1124e14b34b75af3571"}, {"id": "fls_bysv5r7iuf5j", "number": "7.4.1:5", "link": "values.html#fls_bysv5r7iuf5j", "checksum": "4b1f204406987d2425c7aa65db5e4321ca60c66f8abe6f59d4b9c954b56369fc"}, {"id": "fls_3h5vr7xk2rrt", "number": "7.4.1:6", "link": "values.html#fls_3h5vr7xk2rrt", "checksum": "26b8f032dee42ea2be31ad066b7ea126c0a123b1038d4a62f29eb01d10f33637"}, {"id": "fls_3bgncwvmumet", "number": "7.4.1:7", "link": "values.html#fls_3bgncwvmumet", "checksum": "75d27ef13729037fd83b4022475756231b8ae7d7944805b47de72178a03c8b1a"}, {"id": "fls_m690b8qg9d9r", "number": "7.4.1:8", "link": "values.html#fls_m690b8qg9d9r", "checksum": "d4d542c7748a3c35fbf6025eac3cfaadc015af1b45fc042ee9cdfe0b8b09c0db"}, {"id": "fls_uf0sg25awre6", "number": "7.4.1:9", "link": "values.html#fls_uf0sg25awre6", "checksum": "8f845fa5e99e7c007d619bef33689d1b260b69d4631f9648c454ffebb40c4360"}, {"id": "fls_o7cqfdnr253y", "number": "7.4.1:10", "link": "values.html#fls_o7cqfdnr253y", "checksum": "b6c301614db85e9f9a3aa268b8e6ec7397cfd563b3d321bedae74884809dc6ab"}, {"id": "fls_ap85svxyuhvg", "number": "7.4.1:11", "link": "values.html#fls_ap85svxyuhvg", "checksum": "3bb8d78cd408d9dd893e63b174a91171c065d65c7708b50a9d029c3bff7c32b1"}], "informational": false}], "informational": false}, {"title": "Ownership and Destruction", "link": "ownership-and-deconstruction.html", "sections": [{"id": "fls_ronnwodjjjsh", "number": "15", "title": "Ownership and Destruction", "link": "ownership-and-deconstruction.html", "paragraphs": [], "informational": false}, {"id": "fls_svkx6szhr472", "number": "15.1", "title": "Ownership", "link": "ownership-and-deconstruction.html#ownership", "paragraphs": [{"id": "fls_wt81sbsecmu0", "number": "15.1:1", "link": "ownership-and-deconstruction.html#fls_wt81sbsecmu0", "checksum": "5144c7d76d836132f4544481a5a0aa566e56d0824bc6757bb51dfdf413f2809e"}, {"id": "fls_ckcnkbb6y3cq", "number": "15.1:2", "link": "ownership-and-deconstruction.html#fls_ckcnkbb6y3cq", "checksum": "317ff352b8f0f3c112a25e2c334aa6f7e2c227140ef1153851b0068b65544c4b"}, {"id": "fls_ze0u9gfylmhn", "number": "15.1:3", "link": "ownership-and-deconstruction.html#fls_ze0u9gfylmhn", "checksum": "5aae1e903f79062d2e7d47807976de140feb73932e1bd4d1db63f2eda9a280e8"}], "informational": false}, {"id": "fls_3xvm61x0t251", "number": "15.2", "title": "Initialization", "link": "ownership-and-deconstruction.html#initialization", "paragraphs": [{"id": "fls_drfzu02bo7oe", "number": "15.2:1", "link": "ownership-and-deconstruction.html#fls_drfzu02bo7oe", "checksum": "e347ab2d0c9e7fb6d14b8e7ee107a2220a39391724c13eeaab6b25939b1be2d9"}, {"id": "fls_wnhci8phdu4m", "number": "15.2:2", "link": "ownership-and-deconstruction.html#fls_wnhci8phdu4m", "checksum": "6ee782d7b7403e35dd81c6622fb5562c3c6116ef95eca20a6496d36f6acfe442"}, {"id": "fls_ch2lvm50olqd", "number": "15.2:3", "link": "ownership-and-deconstruction.html#fls_ch2lvm50olqd", "checksum": "ba3e26bd692acacc422e0367466b77045e1802b133f0ba5cdf155ae1e2c0b5d4"}, {"id": "fls_46910buiwvv9", "number": "15.2:4", "link": "ownership-and-deconstruction.html#fls_46910buiwvv9", "checksum": "b86bc58a37e2d666845ddee6d0ec0fd647264ab45a39b676bc6bf201782eb03a"}, {"id": "fls_caufcwkpz689", "number": "15.2:5", "link": "ownership-and-deconstruction.html#fls_caufcwkpz689", "checksum": "5948683124b4a837517cb460bac495efff05e298bed8420a688b19d16de45eb2"}, {"id": "fls_4lg92b9yima6", "number": "15.2:6", "link": "ownership-and-deconstruction.html#fls_4lg92b9yima6", "checksum": "0cd3d0fa123e7c11a9a250acaa0cce74c5f8760b6099acac8e084cea9be81ebd"}, {"id": "fls_xn1au0blioa3", "number": "15.2:7", "link": "ownership-and-deconstruction.html#fls_xn1au0blioa3", "checksum": "063dff1709d956a48b2bb9876a5fabfda25c3ed4b35d8449d19f6163c27811c5"}, {"id": "fls_jmcjboopvytb", "number": "15.2:8", "link": "ownership-and-deconstruction.html#fls_jmcjboopvytb", "checksum": "4f92e492c63996bf71cb5f3ffb86c48dd7a928decb62b7ea6fa936acfbef7a78"}], "informational": false}, {"id": "fls_v5x85lt5ulva", "number": "15.3", "title": "References", "link": "ownership-and-deconstruction.html#references", "paragraphs": [{"id": "fls_7x9pi2o7pee7", "number": "15.3:1", "link": "ownership-and-deconstruction.html#fls_7x9pi2o7pee7", "checksum": "681fcd31b82b3e32670aecd9ea9b4eb8068d07a7b2cdeaa6d9fb1442eb63ed86"}, {"id": "fls_tsqvr3fmcel", "number": "15.3:2", "link": "ownership-and-deconstruction.html#fls_tsqvr3fmcel", "checksum": "1a8fde4fb240539c10a88279cc4dae22433448e6531485e2124cb8558d6c828c"}, {"id": "fls_ev4a82fdhwr8", "number": "15.3:3", "link": "ownership-and-deconstruction.html#fls_ev4a82fdhwr8", "checksum": "f967a5d91406384965a89b7d358d856f9b96ad76e062a2aa0cb0b238c5053633"}, {"id": "fls_cckf6dtkgwb4", "number": "15.3:4", "link": "ownership-and-deconstruction.html#fls_cckf6dtkgwb4", "checksum": "bf9feda03dfdc034cc70417fab5c0fb8c43e76acb709672e810538a059178ac6"}, {"id": "fls_8kqb8754e6p4", "number": "15.3:5", "link": "ownership-and-deconstruction.html#fls_8kqb8754e6p4", "checksum": "71b66b39ac5995dd5408a51d900c9e4a4c0b3f6de90df9f32eeaf0c9f79a747a"}, {"id": "fls_v69rptdjao42", "number": "15.3:6", "link": "ownership-and-deconstruction.html#fls_v69rptdjao42", "checksum": "0f5c895a4ac62ecc6ec04b6282dff022b535c2a19bd75b50defdbb28493da899"}, {"id": "fls_vg9h6tz6z37w", "number": "15.3:7", "link": "ownership-and-deconstruction.html#fls_vg9h6tz6z37w", "checksum": "f0435a5375c7104a39cbb51a31167f29e447129fae4e42da7755fd5b0d546300"}, {"id": "fls_wcf5mxrzbujn", "number": "15.3:8", "link": "ownership-and-deconstruction.html#fls_wcf5mxrzbujn", "checksum": "94a208b99cd67ebc20f0f3baf1d225f9f8e7bd033c2196e35b0a01a1aa4c092d"}, {"id": "fls_fckoj1jh5mrc", "number": "15.3:9", "link": "ownership-and-deconstruction.html#fls_fckoj1jh5mrc", "checksum": "d346ee1754805482153eb4b0ca31367a70b20b0e6b21c40c6d681b5c9b3409cc"}, {"id": "fls_hqxsuyn285he", "number": "15.3:10", "link": "ownership-and-deconstruction.html#fls_hqxsuyn285he", "checksum": "e8deafe60392b60bd424d7aa0309647dbf4ed1e7325348f23f15970de9f05ebf"}, {"id": "fls_i1ny0k726a4a", "number": "15.3:11", "link": "ownership-and-deconstruction.html#fls_i1ny0k726a4a", "checksum": "8d9978a993a2da848a7a6a9e23d189173372b34e01fa6d81ba7a78e75f621064"}, {"id": "fls_et1hnlox6vxk", "number": "15.3:12", "link": "ownership-and-deconstruction.html#fls_et1hnlox6vxk", "checksum": "7ed63b28b2b7484eed35560cff9dd3420475b6cf99b8b7e943fe944ad33957d9"}], "informational": false}, {"id": "fls_a14slch83hzn", "number": "15.4", "title": "Borrowing", "link": "ownership-and-deconstruction.html#borrowing", "paragraphs": [{"id": "fls_c02flohk54pc", "number": "15.4:1", "link": "ownership-and-deconstruction.html#fls_c02flohk54pc", "checksum": "de2ae1e7180e12235906678b7ee4195bc10b9f11839f8d171f9c875c94521eca"}, {"id": "fls_j9kof0px3l7s", "number": "15.4:2", "link": "ownership-and-deconstruction.html#fls_j9kof0px3l7s", "checksum": "437a4bdfe9c8e90e143c24e1ca0e4cb8226d0c5ca7f02bc701a25d5adc9b50c0"}, {"id": "fls_zepwytjwy049", "number": "15.4:3", "link": "ownership-and-deconstruction.html#fls_zepwytjwy049", "checksum": "35970b8df578395e654434eed83f9a06ec63a12c4bbf7e89bdfb97e21a7b9620"}, {"id": "fls_nordokzfy36d", "number": "15.4:4", "link": "ownership-and-deconstruction.html#fls_nordokzfy36d", "checksum": "25fd85d527ce1e92367c4336524809c097742c03ed948860ca2f57d950ed5846"}, {"id": "fls_bjf3futso849", "number": "15.4:5", "link": "ownership-and-deconstruction.html#fls_bjf3futso849", "checksum": "3b7581ecddc33582b4cf58929333c27e97df213d56721343355ed7008eff2fa2"}, {"id": "fls_yfmy4v5zlgw9", "number": "15.4:6", "link": "ownership-and-deconstruction.html#fls_yfmy4v5zlgw9", "checksum": "9d0d7ecaba0ada2895a59198323192c4c0562b596b94bea2c49be0968c22b934"}, {"id": "fls_jv18y618j2s3", "number": "15.4:7", "link": "ownership-and-deconstruction.html#fls_jv18y618j2s3", "checksum": "20c3b044f90c2789882b18d6e87d0e3e641507a2d6af5c0de0ae5274181a7d06"}, {"id": "fls_g4i0jb27iryr", "number": "15.4:8", "link": "ownership-and-deconstruction.html#fls_g4i0jb27iryr", "checksum": "1acb26f55ea7c004ebe759dee3d3aa058f514f0dc242d2f980413f9e5269d8e9"}, {"id": "fls_kky9ufexrvaw", "number": "15.4:9", "link": "ownership-and-deconstruction.html#fls_kky9ufexrvaw", "checksum": "f6b207663eafd42b6f7e8445b48751f5e9f3ca1c278b649e94105c3b0c9d95cb"}, {"id": "fls_o5oq4jfswr4q", "number": "15.4:10", "link": "ownership-and-deconstruction.html#fls_o5oq4jfswr4q", "checksum": "cbca8f374f46d1ef54e4cf6beede54e85406b5090edddcbec4fdff0d1c91b6cf"}, {"id": "fls_mt69agrxh9ps_", "number": "15.4:11", "link": "ownership-and-deconstruction.html#fls_mt69agrxh9ps_", "checksum": "7f48612f428ed200a7e825eccbdeb3e446b9610271bd51fd922132fbe878f65c"}, {"id": "fls_hyl4bdjbuzbw", "number": "15.4:12", "link": "ownership-and-deconstruction.html#fls_hyl4bdjbuzbw", "checksum": "958c02a18095324946b8dff0ea0a0e73b7cf7e255dffeaad921362798fa774a8"}, {"id": "fls_pu19i4sj6yg0", "number": "15.4:13", "link": "ownership-and-deconstruction.html#fls_pu19i4sj6yg0", "checksum": "72159700271717da9f616eff159a367b6f9b0637825319d7dec05001f401a601"}, {"id": "fls_kxws4zmaahj6", "number": "15.4:14", "link": "ownership-and-deconstruction.html#fls_kxws4zmaahj6", "checksum": "358d780a2a3e8a51b742e63c460cc75632190978e72b9815081a4a81aa80761e"}, {"id": "fls_kup2ou22nwyl", "number": "15.4:15", "link": "ownership-and-deconstruction.html#fls_kup2ou22nwyl", "checksum": "d898ade965c0b2fab9cda5bc5233816f4058b485ac65840643912b375625ae78"}, {"id": "fls_5bf2x4sm5ei", "number": "15.4:16", "link": "ownership-and-deconstruction.html#fls_5bf2x4sm5ei", "checksum": "149e44f235c43374c698f45f8d37c9cc0f3fdf6259dbed8ebf1e378cd322196d"}, {"id": "fls_8q5ly4x104ai", "number": "15.4:17", "link": "ownership-and-deconstruction.html#fls_8q5ly4x104ai", "checksum": "cc4a5686c478a89047c0820552383801bd383016256838e3863695f994f8b314"}, {"id": "fls_yhchu2bpil4m", "number": "15.4:18", "link": "ownership-and-deconstruction.html#fls_yhchu2bpil4m", "checksum": "fb76d5f2ecb1ceb8b3aa709c4729fa2ce46d3bf98262aa34f8d39dcdabc2aa10"}, {"id": "fls_568o7nyihndd", "number": "15.4:19", "link": "ownership-and-deconstruction.html#fls_568o7nyihndd", "checksum": "03dd78205c60d4db34d2c0df7ae70512ef3146fca9448710dd95263fcd3f6d2b"}, {"id": "fls_z2n7ejily5ct", "number": "15.4:20", "link": "ownership-and-deconstruction.html#fls_z2n7ejily5ct", "checksum": "5812abb90fe17f8f0b9ec36241547534230a80cfd63db34d650ad71f90d18b2e"}, {"id": "fls_ibi9mqgehnlp", "number": "15.4:21", "link": "ownership-and-deconstruction.html#fls_ibi9mqgehnlp", "checksum": "f183cb055a44d89fb2eb1b2848aa4536e06650cf6344a523690b83a29d829f61"}, {"id": "fls_f9we73i8vwq3", "number": "15.4:22", "link": "ownership-and-deconstruction.html#fls_f9we73i8vwq3", "checksum": "fea10cfdc65f1e4d588fe2818f275ba47fdfcddd88877c316ca57791ba5de14f"}, {"id": "fls_w5bjgaov8w60", "number": "15.4:23", "link": "ownership-and-deconstruction.html#fls_w5bjgaov8w60", "checksum": "3e31ed577d258e6cdf238a0549751e8b896d9c2cb6ae51fc176c88803e14822f"}, {"id": "fls_gbqizu6gu6kk", "number": "15.4:24", "link": "ownership-and-deconstruction.html#fls_gbqizu6gu6kk", "checksum": "c316a6c432e9e7d33fde24e96df550a3e74333f7b65cd38e5a7f799997d5db11"}, {"id": "fls_ovkkxeybumvt", "number": "15.4:25", "link": "ownership-and-deconstruction.html#fls_ovkkxeybumvt", "checksum": "2a70cecfdc326c846957ef22ba6e0c76d8a4facbba9982e01c2fc53517b16b2b"}, {"id": "fls_7kzu0qxibucb", "number": "15.4:26", "link": "ownership-and-deconstruction.html#fls_7kzu0qxibucb", "checksum": "6a5074176f0372826a30df9614dbe4e54b3e06eab80a1ce84b7b9d7c94e3740d"}, {"id": "fls_vdhbp4oaoqt5", "number": "15.4:27", "link": "ownership-and-deconstruction.html#fls_vdhbp4oaoqt5", "checksum": "4478129ff7c47921151d2dcf57a362bba167ad848f1379667903982fe9676594"}], "informational": false}, {"id": "fls_77scxuomlbgs", "number": "15.5", "title": "Passing Conventions", "link": "ownership-and-deconstruction.html#passing-conventions", "paragraphs": [{"id": "fls_fvwx2ufeyzcs", "number": "15.5:1", "link": "ownership-and-deconstruction.html#fls_fvwx2ufeyzcs", "checksum": "ff08808a01947415fb2eb38d55e453078c88c4c344cfdd584e2fcd09ce24ec29"}, {"id": "fls_h2pgsij1rbms", "number": "15.5:2", "link": "ownership-and-deconstruction.html#fls_h2pgsij1rbms", "checksum": "aeefde9a0ac87118b21744a83a1a7e010b3cdd7a6d484f2225c2909cc9256ef6"}, {"id": "fls_yx2knbby70fy", "number": "15.5:3", "link": "ownership-and-deconstruction.html#fls_yx2knbby70fy", "checksum": "632e60b88c4c64ddd9b7398bf3476151bc5701ad1b4a760220667139cf7bb56b"}, {"id": "fls_6ul3f6v0foma", "number": "15.5:4", "link": "ownership-and-deconstruction.html#fls_6ul3f6v0foma", "checksum": "f8d36262285cdd2b4bef51b17a98103be0501e5e38a087145322a3fd9713f59c"}, {"id": "fls_3ztdz02efeoc", "number": "15.5:5", "link": "ownership-and-deconstruction.html#fls_3ztdz02efeoc", "checksum": "1f5f58ea8bff9c3f06d08ec8804d370315b1c1190ffc8f6354263a3d92fe64a7"}, {"id": "fls_konzgoybhfqm", "number": "15.5:6", "link": "ownership-and-deconstruction.html#fls_konzgoybhfqm", "checksum": "e1dedaef11fca8fa7e09c7906b87ca804da421ff7b5ada8a981d024d16ae5c6f"}, {"id": "fls_4bnbv7mqod57", "number": "15.5:7", "link": "ownership-and-deconstruction.html#fls_4bnbv7mqod57", "checksum": "e84118fd70dabb3e58425bef7f6dff825e6a847042faa9129285c5a1ed911a36"}, {"id": "fls_3xk3p1unbjy5", "number": "15.5:8", "link": "ownership-and-deconstruction.html#fls_3xk3p1unbjy5", "checksum": "97a3445c9540e7ad4cee9865d34bc4dd2fa75219dffd54e92dded06b85c59541"}, {"id": "fls_vk1xhvdaakh0", "number": "15.5:9", "link": "ownership-and-deconstruction.html#fls_vk1xhvdaakh0", "checksum": "8c23071abb8829ee058cb57ae16a5f81b804ff2c1d55f7ec813bdf648a0e5ae8"}, {"id": "fls_vveejn7lngt8", "number": "15.5:10", "link": "ownership-and-deconstruction.html#fls_vveejn7lngt8", "checksum": "5fc750214c56a9e1435062359732e69a801b4413b5f235c73614e41074c91c13"}, {"id": "fls_gq35gqagw35", "number": "15.5:11", "link": "ownership-and-deconstruction.html#fls_gq35gqagw35", "checksum": "ce6808e7d0727241eb783b7bdfb02998d6e5865d3d0d97dee49053512f5a3943"}, {"id": "fls_cfqzpmnfeh8h", "number": "15.5:12", "link": "ownership-and-deconstruction.html#fls_cfqzpmnfeh8h", "checksum": "994382b24fcb146882e480cba7da6ddcbbb55a473b76161b1167a520daba8fde"}, {"id": "fls_go9gdlk5d3km", "number": "15.5:13", "link": "ownership-and-deconstruction.html#fls_go9gdlk5d3km", "checksum": "754c9ebda067292c99d20bc43c433c797e386d1c651bf1cd0d37d42596ad9b86"}, {"id": "fls_459xx6febmf0", "number": "15.5:14", "link": "ownership-and-deconstruction.html#fls_459xx6febmf0", "checksum": "1f27a382873eeb1cbf8a680f1f4445841e31a6ca70791b7e72d1f0064c2e99e4"}, {"id": "fls_3xyq50abdiv6", "number": "15.5:15", "link": "ownership-and-deconstruction.html#fls_3xyq50abdiv6", "checksum": "794dbaeb036da65d453284a372c0a58b55b03099b8433c2c1acea02cf3ebfd44"}, {"id": "fls_7kcx3u8gvl1d", "number": "15.5:16", "link": "ownership-and-deconstruction.html#fls_7kcx3u8gvl1d", "checksum": "2f24b0e12326e4ad6c1cff5ea009d0cc6878e98b4f8f16fd738a89a432461c62"}, {"id": "fls_i4hrifsb9msr", "number": "15.5:17", "link": "ownership-and-deconstruction.html#fls_i4hrifsb9msr", "checksum": "45a7939e44809197b647eab86a5bbb791bbd9b7b492d99ff134fd6b1b35bd6f6"}, {"id": "fls_7tadh1zel0fc", "number": "15.5:18", "link": "ownership-and-deconstruction.html#fls_7tadh1zel0fc", "checksum": "242ee9281937fc599be5d057484f99ff16cac54d4dedfc9817b957bbec3eac6c"}, {"id": "fls_ywt328hcieka", "number": "15.5:19", "link": "ownership-and-deconstruction.html#fls_ywt328hcieka", "checksum": "162688f5929bce2f33343b1dcf6263ceb3ca10d03307199ad9ab3e4ec746aaf9"}], "informational": false}, {"id": "fls_4jiw35pan7vn", "number": "15.6", "title": "Destruction", "link": "ownership-and-deconstruction.html#destruction", "paragraphs": [{"id": "fls_e7ucq87s806d", "number": "15.6:1", "link": "ownership-and-deconstruction.html#fls_e7ucq87s806d", "checksum": "b715c62ba79445fc86b207de20ae057aeb387fa46fc4a9f8b5d99105c88061e7"}], "informational": false}, {"id": "fls_u2mzjgiwbkz0", "number": "15.7", "title": "Destructors", "link": "ownership-and-deconstruction.html#destructors", "paragraphs": [{"id": "fls_9m0gszdle0qb", "number": "15.7:1", "link": "ownership-and-deconstruction.html#fls_9m0gszdle0qb", "checksum": "58a815029e5c5abf31dbdc0ae371a884c35141c19fa227ecd118d8ec5c7977c3"}, {"id": "fls_4nkzidytpi6", "number": "15.7:2", "link": "ownership-and-deconstruction.html#fls_4nkzidytpi6", "checksum": "99e01849a304562c74b7705792700bbb8f792f332352a99fbdf6a23f3f2749a0"}, {"id": "fls_wzuwapjqtyyy", "number": "15.7:3", "link": "ownership-and-deconstruction.html#fls_wzuwapjqtyyy", "checksum": "780a665cd5b58bccb729342e33dea24cd6f074a7109cee63ca9412cf67d69b2c"}, {"id": "fls_gfvm70iqu1l4", "number": "15.7:4", "link": "ownership-and-deconstruction.html#fls_gfvm70iqu1l4", "checksum": "25fab97c21fc263acb73e4f9c015d9ebb7c96ec0f09fdfa35e4550aed472dde1"}, {"id": "fls_l2xkdjeydqtx", "number": "15.7:5", "link": "ownership-and-deconstruction.html#fls_l2xkdjeydqtx", "checksum": "e33f94694a42a7f211aaec4bd688778421eba9168af369f075a51652a55c55d8"}, {"id": "fls_bync24y6gp93", "number": "15.7:6", "link": "ownership-and-deconstruction.html#fls_bync24y6gp93", "checksum": "b88a85aa7e4b1891ac3ed4ca23a4b92b4e035715e966e1f848f1e21427d23845"}, {"id": "fls_jzancf72i95f", "number": "15.7:7", "link": "ownership-and-deconstruction.html#fls_jzancf72i95f", "checksum": "ce0fe2c8975789b3ccac42978e94c8cf22385f6f021e809465af734f19bbe334"}, {"id": "fls_gjn2jnsal9gs", "number": "15.7:8", "link": "ownership-and-deconstruction.html#fls_gjn2jnsal9gs", "checksum": "6700d76d9b324a672ad7ab38cea76bb82dc3777d197b6f7e89d0e5f3156594b2"}, {"id": "fls_ol2w2292frfi", "number": "15.7:9", "link": "ownership-and-deconstruction.html#fls_ol2w2292frfi", "checksum": "27ce20568cf31821f40322d7cbca37c6e7f9a154497206aa2cd66da3c71e14fe"}, {"id": "fls_6ii5o68vuymj", "number": "15.7:10", "link": "ownership-and-deconstruction.html#fls_6ii5o68vuymj", "checksum": "3a5360261dcb8e8292661839009fff3c71ef4a3d1c9f45a2d85f861f4b707310"}, {"id": "fls_sup43es8ps8r", "number": "15.7:11", "link": "ownership-and-deconstruction.html#fls_sup43es8ps8r", "checksum": "2b1fcd39b5b78562ea6e359c8e98307553d5ffc8a1c9188166ffd9fc296d0a8d"}, {"id": "fls_y9q0eqr865b3", "number": "15.7:12", "link": "ownership-and-deconstruction.html#fls_y9q0eqr865b3", "checksum": "622d773bd119d86de850502b8e92eee57b581476e14eff7478ba5d558629c86f"}, {"id": "fls_kdqng6eovxns", "number": "15.7:13", "link": "ownership-and-deconstruction.html#fls_kdqng6eovxns", "checksum": "3df5eb307218abb09b95ebf9bab92992011b11bb1c5d1e246c3160e5a71afd94"}, {"id": "fls_ag249y74jg6c", "number": "15.7:14", "link": "ownership-and-deconstruction.html#fls_ag249y74jg6c", "checksum": "a023dc4d0c98b62c2d9576d70e51108a0fdb29ba3f14769c7d87ab09d1f0938a"}, {"id": "fls_tw36n3g32a0y", "number": "15.7:15", "link": "ownership-and-deconstruction.html#fls_tw36n3g32a0y", "checksum": "69b3fa403d23f715b291788890e24ebd09e6b009e67a21e5edf9c25f29e037eb"}, {"id": "fls_fmn33zhorkf", "number": "15.7:16", "link": "ownership-and-deconstruction.html#fls_fmn33zhorkf", "checksum": "9a3ba3981279a98242813d19ecc21dcce387bb841f1be9398442ba10e7d9addd"}], "informational": false}, {"id": "fls_rm4ncoopcdvj", "number": "15.8", "title": "Drop Scopes", "link": "ownership-and-deconstruction.html#drop-scopes", "paragraphs": [{"id": "fls_7uav7vkcv4pz", "number": "15.8:1", "link": "ownership-and-deconstruction.html#fls_7uav7vkcv4pz", "checksum": "fa365174cbf5682b2addb5a47523a886be22f15c45e88cb5d01ef13a92c0d9b2"}, {"id": "fls_txvxrn6wbyql", "number": "15.8:2", "link": "ownership-and-deconstruction.html#fls_txvxrn6wbyql", "checksum": "7fcf965dcbfb27fdef8959d59a625da3fa44a0d931095edf51cd4b5db75eb01c"}, {"id": "fls_n6y6brm6pghr", "number": "15.8:3", "link": "ownership-and-deconstruction.html#fls_n6y6brm6pghr", "checksum": "aa4f1d2f9b7ef3586caec5b558b58e35cb2b8cd615ba21adcf9234ba7283bec9"}, {"id": "fls_gdh6wwvi7ci6", "number": "15.8:4", "link": "ownership-and-deconstruction.html#fls_gdh6wwvi7ci6", "checksum": "557bd0675e3046e13b7a004ef78b8b0f946bcca78bc242cb76364e3f991f1d3a"}, {"id": "fls_owqk2fcpvc4s", "number": "15.8:5", "link": "ownership-and-deconstruction.html#fls_owqk2fcpvc4s", "checksum": "89634ecd6c544d1fbf8a649d790b5173d2a09803e97525c89f9d827df73ab265"}, {"id": "fls_ckh8wkq0y5ja", "number": "15.8:6", "link": "ownership-and-deconstruction.html#fls_ckh8wkq0y5ja", "checksum": "62c1b4c8906b7867a552ab0c166e92d1673c4e6c996c6e82c55fb18155b337a5"}, {"id": "fls_2zwwnzepgmje", "number": "15.8:7", "link": "ownership-and-deconstruction.html#fls_2zwwnzepgmje", "checksum": "e18cce725d7e3e2f64db15d95adeb42a7a9e3d806e422bcad663e4734ed8ebab"}, {"id": "fls_vlbx5ukw5c8l", "number": "15.8:8", "link": "ownership-and-deconstruction.html#fls_vlbx5ukw5c8l", "checksum": "06a9f847c5fd97acf184ee400bbbe296accf5d480e6cef5d1766f5fef9270c17"}, {"id": "fls_d5yg6w8gv6aq", "number": "15.8:9", "link": "ownership-and-deconstruction.html#fls_d5yg6w8gv6aq", "checksum": "7478e15bd141efde6f849fddd3e660a3198328261280e11802f707445106483f"}, {"id": "fls_qidma4fpkhb0", "number": "15.8:10", "link": "ownership-and-deconstruction.html#fls_qidma4fpkhb0", "checksum": "2210651d12709f733124d5831bdb32f27f192f93fa3be518eb6b7334a6531966"}, {"id": "fls_1o9ye6cwoyiq", "number": "15.8:11", "link": "ownership-and-deconstruction.html#fls_1o9ye6cwoyiq", "checksum": "04f68fcba1cc880a1b5acaefe6abf4f93cac7e0150747463062aef3aecedc14f"}, {"id": "fls_16htxf824xbk", "number": "15.8:12", "link": "ownership-and-deconstruction.html#fls_16htxf824xbk", "checksum": "aa403db4f036453bba3271f4509a2302488c5fd4205bfdc4f54cde71db726013"}, {"id": "fls_lbsfhg42yiqy", "number": "15.8:13", "link": "ownership-and-deconstruction.html#fls_lbsfhg42yiqy", "checksum": "070c24d985ad07d4a8affc27d166c94f9beaee7f6c83f82c5249ef04eb845c8a"}, {"id": "fls_5m3u3k6f00bd", "number": "15.8:14", "link": "ownership-and-deconstruction.html#fls_5m3u3k6f00bd", "checksum": "3f43cdcc50a1a53af990b4beeb71262819034dd32a82fcb54484c052b19b44c6"}, {"id": "fls_m86ljncnmo7j", "number": "15.8:15", "link": "ownership-and-deconstruction.html#fls_m86ljncnmo7j", "checksum": "38a763a575ed36ac0f33c0e4c97708f46f5634a6bfca712737225d732788d27f"}, {"id": "fls_bewcu5xceu8i", "number": "15.8:16", "link": "ownership-and-deconstruction.html#fls_bewcu5xceu8i", "checksum": "05382bcb6a5dca3a3b33debf11b819bbb3b2b29f4559e6beeaad692d688c87c8"}, {"id": "fls_ihhhlxciqnwz", "number": "15.8:17", "link": "ownership-and-deconstruction.html#fls_ihhhlxciqnwz", "checksum": "c38a81f8df72f87ccafba9e41d742d2b2de00acfe77e463a03ec5d0e96082258"}, {"id": "fls_swxxkbzglpka", "number": "15.8:18", "link": "ownership-and-deconstruction.html#fls_swxxkbzglpka", "checksum": "08316305ae1b30302790dfc45803df2f527f449747eb34b2a91b407beec878b4"}, {"id": "fls_vrqgac634wpr", "number": "15.8:19", "link": "ownership-and-deconstruction.html#fls_vrqgac634wpr", "checksum": "770bb15fa73a6c965d591c00604c440c7de7c3e3257c6f0946cf7be4e1cb394b"}, {"id": "fls_fnvr5w2wzxns", "number": "15.8:20", "link": "ownership-and-deconstruction.html#fls_fnvr5w2wzxns", "checksum": "a35aa796d1ab80a5df343d39e3e12923a8a46fd0df82325bf334669986e7d03a"}, {"id": "fls_1vzfa5mdebxw", "number": "15.8:21", "link": "ownership-and-deconstruction.html#fls_1vzfa5mdebxw", "checksum": "67a942cc52a66f9f90a3a9131beae16808a17f3f4d7d49fdb08ff42f734ce302"}, {"id": "fls_3jtu8grramm9", "number": "15.8:22", "link": "ownership-and-deconstruction.html#fls_3jtu8grramm9", "checksum": "1dec6a051b1fff3a1bdeae59f4b0c13eae973e22d62993017cf9176ae6c41ef8"}, {"id": "fls_8r39duatupxw", "number": "15.8:23", "link": "ownership-and-deconstruction.html#fls_8r39duatupxw", "checksum": "92013afe5f273d886cf33357afa293c5145b38dd0ea03a2758611998c0ac0b32"}, {"id": "fls_2peq1tihglnr", "number": "15.8:24", "link": "ownership-and-deconstruction.html#fls_2peq1tihglnr", "checksum": "c3e4aa156bda861e6ef22a6fa15d0e213a08ac8a395097b3bae8fb744bcac564"}, {"id": "fls_il09n7sq0a3k", "number": "15.8:25", "link": "ownership-and-deconstruction.html#fls_il09n7sq0a3k", "checksum": "1f13a26446ed0aea0e199436fd0adb97cab249490f3e88c061ca7f09229125e7"}, {"id": "fls_s1wbqld139gz", "number": "15.8:26", "link": "ownership-and-deconstruction.html#fls_s1wbqld139gz", "checksum": "942aadd6edb16dc7e80b6f2cd3392f324ea9d00f9e61794c8fa5ec6b65b30d82"}, {"id": "fls_asvuef2pc3m0", "number": "15.8:27", "link": "ownership-and-deconstruction.html#fls_asvuef2pc3m0", "checksum": "750908f479d13e69946a538f5a81e56c3d71d08e5c2493c6129c77568fe3de66"}, {"id": "fls_560437qmeqtr", "number": "15.8:28", "link": "ownership-and-deconstruction.html#fls_560437qmeqtr", "checksum": "690427f07bce841d8ea70b8cb0864491ae88e1b7d4cfcf9ca2fb45657c8c0d87"}, {"id": "fls_8cunkfc6x24q", "number": "15.8:29", "link": "ownership-and-deconstruction.html#fls_8cunkfc6x24q", "checksum": "96c9a3b88a3cf78a0260b534ac8bac2c2676692e6504f28abb95658a7c723ea2"}, {"id": "fls_n108lvc4otoc", "number": "15.8:30", "link": "ownership-and-deconstruction.html#fls_n108lvc4otoc", "checksum": "41cab1feee08b6f4c71f9ce9cb18a539787287a0d87320b8477673fd090b1221"}, {"id": "fls_ptk6yibqyfzi", "number": "15.8:31", "link": "ownership-and-deconstruction.html#fls_ptk6yibqyfzi", "checksum": "d23e4c8eeb0eed8bb71e11637e19abe752abf0f59454434c187efb281833b269"}, {"id": "fls_dltmd8e8c5ia", "number": "15.8:32", "link": "ownership-and-deconstruction.html#fls_dltmd8e8c5ia", "checksum": "571f4508156e008bb63439e1b7abe647297d7fbafe515b8c2a3a24456a52e99b"}], "informational": false}, {"id": "fls_5eima0pd31c0", "number": "15.8.1", "title": "Drop Scope Extension", "link": "ownership-and-deconstruction.html#drop-scope-extension", "paragraphs": [{"id": "fls_kflqez2mtbit", "number": "15.8.1:1", "link": "ownership-and-deconstruction.html#fls_kflqez2mtbit", "checksum": "5c3d236f194a8a669a999473090570b17a9c5b62ef5f44c8025bcba89e97b82f"}, {"id": "fls_xjw82bujm148", "number": "15.8.1:2", "link": "ownership-and-deconstruction.html#fls_xjw82bujm148", "checksum": "3261611ac54de3039f960d9c6a30c641626dd062081332cd0f8cb2e0db746c2f"}, {"id": "fls_965wt48ooqyw", "number": "15.8.1:3", "link": "ownership-and-deconstruction.html#fls_965wt48ooqyw", "checksum": "95c5c42ea8af76e5ec13e3556a9f4104b818bf056900164658866e0c491b17bb"}, {"id": "fls_r8nt0zp8dnyp", "number": "15.8.1:4", "link": "ownership-and-deconstruction.html#fls_r8nt0zp8dnyp", "checksum": "5034d75dc865e69bdf2efb3059a8f9cf91eff07283969d9f524cbfabd137b3c7"}, {"id": "fls_3ycn4u1fe9h", "number": "15.8.1:5", "link": "ownership-and-deconstruction.html#fls_3ycn4u1fe9h", "checksum": "cab57995b7b7f326223f4f7bb819e8eea5a8ad676cdbed06ce58b66817c6a3c9"}, {"id": "fls_wyzau8hhq74d", "number": "15.8.1:6", "link": "ownership-and-deconstruction.html#fls_wyzau8hhq74d", "checksum": "0836f8daa7f6588b9456d90b372c0946700d6eb342da49b2767e6605dba0c21b"}, {"id": "fls_ju7cpftd8r2g", "number": "15.8.1:7", "link": "ownership-and-deconstruction.html#fls_ju7cpftd8r2g", "checksum": "aea23e828f184cda611d99e160befc6e9e895758347678db72a4029a5d852fd2"}, {"id": "fls_gjd1ow3l7swe", "number": "15.8.1:8", "link": "ownership-and-deconstruction.html#fls_gjd1ow3l7swe", "checksum": "103c691d3e10bb12cabdb5a93c6650a85e45c7e566560b225feecfadc4cbed76"}, {"id": "fls_iqw0d1l1lj3i", "number": "15.8.1:9", "link": "ownership-and-deconstruction.html#fls_iqw0d1l1lj3i", "checksum": "f9d27231592868802964cc99b81ef283fb6e96cd3abae622cbd859e5d1dd4caa"}, {"id": "fls_aq01wjpkxhq9", "number": "15.8.1:10", "link": "ownership-and-deconstruction.html#fls_aq01wjpkxhq9", "checksum": "ac60d872c2d76afebdf1240a5b1a41539175dcd095ba1374d768e8bce3e15b83"}, {"id": "fls_vdpi1djzjmub", "number": "15.8.1:11", "link": "ownership-and-deconstruction.html#fls_vdpi1djzjmub", "checksum": "46590c95c001116b2b295d3fc9fa40d5606614d0db1cfd11751f0a52118c3ef7"}, {"id": "fls_elgh7hsawmrb", "number": "15.8.1:12", "link": "ownership-and-deconstruction.html#fls_elgh7hsawmrb", "checksum": "d24a178200c6d509f3d2649dd64705b91fb52709df2446bfa5b4e8fa8ad62f32"}, {"id": "fls_29y59x8bmw75", "number": "15.8.1:13", "link": "ownership-and-deconstruction.html#fls_29y59x8bmw75", "checksum": "44d7f93b36e564d7dd23acdecf6d4a1a3a7cf215632d946a757ea1b25f3d6f7e"}, {"id": "fls_subo2w7ln43q", "number": "15.8.1:14", "link": "ownership-and-deconstruction.html#fls_subo2w7ln43q", "checksum": "42a669613202095a2133d66d495e0e881e4d7819d202aae70dc008b2a1f19724"}], "informational": false}, {"id": "fls_afafmafz4hf2", "number": "15.9", "title": "Drop Order", "link": "ownership-and-deconstruction.html#drop-order", "paragraphs": [{"id": "fls_n6o1xzjiz8cv", "number": "15.9:1", "link": "ownership-and-deconstruction.html#fls_n6o1xzjiz8cv", "checksum": "6d998923ce960019bd73240feb0f4f1e3e9d705bbedbaf213c73707899dfd504"}, {"id": "fls_jwofws3022ar", "number": "15.9:2", "link": "ownership-and-deconstruction.html#fls_jwofws3022ar", "checksum": "0c3b33caf3b9c961df39107ec74da60de4eb20ab99798df119cb2faed79efe15"}, {"id": "fls_g07zq3n55094", "number": "15.9:3", "link": "ownership-and-deconstruction.html#fls_g07zq3n55094", "checksum": "bc677cb2ecd387ad028dfeba3096263c7bc2aa8bdf981bb3fc76e9d4bd8d0885"}, {"id": "fls_a5tmilqxdb6f", "number": "15.9:4", "link": "ownership-and-deconstruction.html#fls_a5tmilqxdb6f", "checksum": "14fdcee19609abf8aeed5f7e20952a848faecfba256dd405eca3cc49a24b338f"}, {"id": "fls_zqgkvgwizmq7", "number": "15.9:5", "link": "ownership-and-deconstruction.html#fls_zqgkvgwizmq7", "checksum": "717f7f256a61d53de344e5a6553b5529ee34e430a67efc99ceab0162e8631a2a"}, {"id": "fls_k8whhuwauvqr", "number": "15.9:6", "link": "ownership-and-deconstruction.html#fls_k8whhuwauvqr", "checksum": "8da2ed90a465a8e65f20c991391be8fcdc1d7b7d35ec5e06dfef767d9b68cae4"}, {"id": "fls_npcrm4t03oqg", "number": "15.9:7", "link": "ownership-and-deconstruction.html#fls_npcrm4t03oqg", "checksum": "df8e0a488a8a05da58f4656abffbbd5eb240a8a0ff05293049814a5fdf5acb4b"}, {"id": "fls_3i348l3pbtrx", "number": "15.9:8", "link": "ownership-and-deconstruction.html#fls_3i348l3pbtrx", "checksum": "4b4f51cb30705d0cc7632e1f0e4132697ef1cdbe4cb781a401e1baf0ec958fba"}, {"id": "fls_oe8l81y0wnao", "number": "15.9:9", "link": "ownership-and-deconstruction.html#fls_oe8l81y0wnao", "checksum": "1dd15f42037f9a83cd43f4dd42e7ae00f8d5a9e674152e738a0abc09c7f2ba8a"}, {"id": "fls_4sgca9wcl8h0", "number": "15.9:10", "link": "ownership-and-deconstruction.html#fls_4sgca9wcl8h0", "checksum": "61f14bc12e0d1c55c7aa99cf8c4e500d1effa786d1f50cc8ac8463693abeb1fa"}, {"id": "fls_a2m4ibzhgupa", "number": "15.9:11", "link": "ownership-and-deconstruction.html#fls_a2m4ibzhgupa", "checksum": "2ac52c80f7a45d49874b8b452b7d5541e0200bef9c38d6f5b32c0e20bf9296b3"}, {"id": "fls_go3bvd23vzi9", "number": "15.9:12", "link": "ownership-and-deconstruction.html#fls_go3bvd23vzi9", "checksum": "5cbdd388b3d5de9f7fcb63733ebb916504fce634b415f2fcd87d3683cdcb52c6"}, {"id": "fls_7rwo0he8x143", "number": "15.9:13", "link": "ownership-and-deconstruction.html#fls_7rwo0he8x143", "checksum": "095cc1d51b861087a618aa1e4e9fc0377405a71c6d4d02c44502cfbfb34e962e"}, {"id": "fls_43yqlxjr3a10", "number": "15.9:14", "link": "ownership-and-deconstruction.html#fls_43yqlxjr3a10", "checksum": "beaea22f979a7a281290ec83d8d0ac0786a9365b64f973a51a5c48539df32310"}, {"id": "fls_a7lsq2kkzkk4", "number": "15.9:15", "link": "ownership-and-deconstruction.html#fls_a7lsq2kkzkk4", "checksum": "b0246b982f33561e6c330d7de3f8c8d00db491873c9db1eda52117c58981edbc"}], "informational": false}], "informational": false}, {"title": "Patterns", "link": "patterns.html", "sections": [{"id": "fls_xgqh0ju6bmbn", "number": "5", "title": "Patterns", "link": "patterns.html", "paragraphs": [{"id": "fls_imegtsi224ts", "number": "5:1", "link": "patterns.html#fls_imegtsi224ts", "checksum": "fd701b3ef4e17c49416e15bb5e0685b07ec2165ebe338ee5ed86433fe2a1791c"}, {"id": "fls_mp6i4blzexnu", "number": "5:2", "link": "patterns.html#fls_mp6i4blzexnu", "checksum": "f11f4d96ce76157d36700b1642b225614023417f88f39e02004f751fa0ceca1c"}, {"id": "fls_jj1fja1ssawh", "number": "5:3", "link": "patterns.html#fls_jj1fja1ssawh", "checksum": "640a01339d6302f50e834a92db0b99f585848a4dc1dfb4801941267dfe6c1eff"}, {"id": "fls_6xx34zr069bj", "number": "5:4", "link": "patterns.html#fls_6xx34zr069bj", "checksum": "28dec289d15cad76b56462aa121b43b5d1e42ef0f0d0636c38ac0eb7eca4b4f9"}, {"id": "fls_8xzjb0yzftkd", "number": "5:5", "link": "patterns.html#fls_8xzjb0yzftkd", "checksum": "32457ed53a0bf4373c4cfb97677b5e208930233d39b87a5accc8c508af6f58ce"}, {"id": "fls_cma5t8waon0x", "number": "5:6", "link": "patterns.html#fls_cma5t8waon0x", "checksum": "5ac967f09550667532acd0916172717779d286369a004f6e89c12e7852e25bc4"}, {"id": "fls_tuanrt7wu14e", "number": "5:7", "link": "patterns.html#fls_tuanrt7wu14e", "checksum": "d92c5c133b1308dfee746f9722cc628be4cc1b150f3f387c0d2c08e961e687fb"}, {"id": "fls_8luyomzppck", "number": "5:8", "link": "patterns.html#fls_8luyomzppck", "checksum": "ee361e573cbe4dbcbc9c1aec4bea99d7af68ce46d7a8f305323fea2d888a73ae"}, {"id": "fls_rpvdfmy3n05a", "number": "5:9", "link": "patterns.html#fls_rpvdfmy3n05a", "checksum": "b70079f33aaa9cb4c2507706bdb13c9e8beed748288a7751770b7aa4309c17bf"}, {"id": "fls_kv533rntni1x", "number": "5:10", "link": "patterns.html#fls_kv533rntni1x", "checksum": "66e6567b6902e8a974dcb281251e03d5341f1fbcd6c52bc6d9398d5b175905b1"}], "informational": false}, {"id": "fls_uh76pw6ykd57", "number": "5.1", "title": "Refutability", "link": "patterns.html#refutability", "paragraphs": [{"id": "fls_9ntc4qmjmo90", "number": "5.1:1", "link": "patterns.html#fls_9ntc4qmjmo90", "checksum": "74e294f01efeecaf5f7ea7508839e45750aee3872825525951cd7e1a5a369127"}, {"id": "fls_9fjspnefoyvz", "number": "5.1:2", "link": "patterns.html#fls_9fjspnefoyvz", "checksum": "97aa1ac1d06fc804666c43daa72ee75966f2d95b18e279d427a218d76ae31229"}, {"id": "fls_uq7ftuuq1sig", "number": "5.1:3", "link": "patterns.html#fls_uq7ftuuq1sig", "checksum": "37e388ffc7dca1dd4a94161e0cb558418e13e628a5cb1789796cb37117591344"}, {"id": "fls_mnbyt7jfyaz9", "number": "5.1:4", "link": "patterns.html#fls_mnbyt7jfyaz9", "checksum": "788cc1b098646556626fa9669f0f2c05d8907e582b4bc899ecac453fcfc61dde"}, {"id": "fls_l76ycteulo8e", "number": "5.1:5", "link": "patterns.html#fls_l76ycteulo8e", "checksum": "fb93c07735fd3880cae598758a01af1eb04fd98aa6fbdca79a2fd2e8a525c26d"}, {"id": "fls_lh0d85tl4qvy", "number": "5.1:6", "link": "patterns.html#fls_lh0d85tl4qvy", "checksum": "8cbff3175ce2f1524fa0ece5a443ba2edd4a78433ff410a98a31ed00f38a2bde"}, {"id": "fls_sgu9bnp7xajv", "number": "5.1:7", "link": "patterns.html#fls_sgu9bnp7xajv", "checksum": "9a88f2c440cf4fcdd3f5bf99543aa48a1574d061b3ee71b3dc371a4bb568af80"}, {"id": "fls_cl1g4fxfa020", "number": "5.1:8", "link": "patterns.html#fls_cl1g4fxfa020", "checksum": "9e80bd2a9954f565738c5bdf0455cf342bf2fbf27b91fa6fd9b86def2bfde161"}], "informational": false}, {"id": "fls_7bxv8lybxm18", "number": "5.1.1", "title": "Identifier Patterns", "link": "patterns.html#fls-7bxv8lybxm18", "paragraphs": [{"id": "fls_uljdw9rf7ies", "number": "5.1.1:1", "link": "patterns.html#fls_uljdw9rf7ies", "checksum": "12df3c9420d70b5492aee216c48d595bec10c1bfc7c95589c1aa150787788c68"}, {"id": "fls_vy9uw586wy0d", "number": "5.1.1:2", "link": "patterns.html#fls_vy9uw586wy0d", "checksum": "241eeb37b7dae1635d202ba61372dfbf4a693e183ca1ece17e3818904f6c809d"}, {"id": "fls_hqwt3fvr063y", "number": "5.1.1:3", "link": "patterns.html#fls_hqwt3fvr063y", "checksum": "d9b79bd4e33b5e5d59d8f9ed2df014f66c7fa0c487fc3b0b70e3700fdc7dc420"}, {"id": "fls_joiqddn44oit", "number": "5.1.1:4", "link": "patterns.html#fls_joiqddn44oit", "checksum": "4f2142d8ccdb2e64efc1eaedfef6bdc5b02f5ab32bf7ed59698ff61681fd7384"}, {"id": "fls_24c95c56tugl", "number": "5.1.1:5", "link": "patterns.html#fls_24c95c56tugl", "checksum": "e7b226edcf6dc4bc129b1212d923d2b0052764e5f3087f635a8f5c48af37d436"}, {"id": "fls_twcavjk7iquy", "number": "5.1.1:6", "link": "patterns.html#fls_twcavjk7iquy", "checksum": "3ee68e9c11cc6de58983cada3e69d6e25c9096bea32debb22614bb2a25d155f0"}, {"id": "fls_k1ybtstx7jee", "number": "5.1.1:7", "link": "patterns.html#fls_k1ybtstx7jee", "checksum": "e762d3ac05f362349d87a2a26cc37f37eaa2148eadb4ab7a97745abed9a62df2"}, {"id": "fls_hw26hy33guk5", "number": "5.1.1:8", "link": "patterns.html#fls_hw26hy33guk5", "checksum": "a52f9ed5eaa2b34c018a779a37184c71defa111f92bc5a73d7642178df8e755f"}, {"id": "fls_svfxwz4yy5i", "number": "5.1.1:9", "link": "patterns.html#fls_svfxwz4yy5i", "checksum": "b439ed8b20762b4889891571152f54745dc81b2f6b4abc45db0448e2cac4888d"}, {"id": "fls_x6f6q22b5jpc", "number": "5.1.1:10", "link": "patterns.html#fls_x6f6q22b5jpc", "checksum": "db308f657bf02a10ddea3390b29681c6eccf4bb81b2069d5f1b2ecfbc7853dc1"}, {"id": "fls_r2mb8v2lh3x0", "number": "5.1.1:11", "link": "patterns.html#fls_r2mb8v2lh3x0", "checksum": "dd8b86458df1b70addc97086f4ada7c7692ff5103622010059fbf0283f8ffbb3"}, {"id": "fls_7oioaitb075g", "number": "5.1.1:12", "link": "patterns.html#fls_7oioaitb075g", "checksum": "0905da49ff8fceb1c24a37a019ba80b02f466cbede9db934f3506067251411de"}, {"id": "fls_40qin0ss5sqd", "number": "5.1.1:13", "link": "patterns.html#fls_40qin0ss5sqd", "checksum": "11934cfbec627d51e8441eeef28fa1983d4ed59d73d9dcbff26e5d4cf4007fed"}, {"id": "fls_pivz0v7ey6sw", "number": "5.1.1:14", "link": "patterns.html#fls_pivz0v7ey6sw", "checksum": "05ce4678c850feb8fbdc7b0bf9a65ccdd82414dec3163903b5ff487cf3cc1b8c"}, {"id": "fls_2ahkrddxwj1n", "number": "5.1.1:15", "link": "patterns.html#fls_2ahkrddxwj1n", "checksum": "6827708c08fa8d7048aaf70d448f1ed456a018a5621ccbad9e38ba38eb4f001f"}, {"id": "fls_eucnafj3uedy", "number": "5.1.1:16", "link": "patterns.html#fls_eucnafj3uedy", "checksum": "5938b3e5c53f5eb860f3c7aae1864e4e5b74c0a93b9460455798ee597639f3bd"}, {"id": "fls_f8zo4scodhcr", "number": "5.1.1:17", "link": "patterns.html#fls_f8zo4scodhcr", "checksum": "6853dfde9579870712b9fa937c1b65941c6cd04e82272bc721064e696c10938b"}, {"id": "fls_d3fs2h7oqjl0", "number": "5.1.1:18", "link": "patterns.html#fls_d3fs2h7oqjl0", "checksum": "7d886e7fba9c09e14a0789ddb951c710bb88a50cf8e06a6bcdd6629fb55562f6"}, {"id": "fls_exo8asevh5x1", "number": "5.1.1:19", "link": "patterns.html#fls_exo8asevh5x1", "checksum": "655158cf590f06600319e8e2695db1b56219fadc4cc034888e17c53b07a84274"}, {"id": "fls_sfyfdxhvhk44", "number": "5.1.1:20", "link": "patterns.html#fls_sfyfdxhvhk44", "checksum": "d3b46f205bcb595fe85d75191fcd80dd7933343080fd05b57200c0118ad6b609"}, {"id": "fls_as0pqqmo1des", "number": "5.1.1:21", "link": "patterns.html#fls_as0pqqmo1des", "checksum": "b32516046ade3590c7036c2a5ecbf17d55a9f6f00da394c3d5281096f8cf26dc"}], "informational": false}, {"id": "fls_2krxnq8q9ef1", "number": "5.1.2", "title": "Literal Patterns", "link": "patterns.html#literal-patterns", "paragraphs": [{"id": "fls_pah15qa54irs", "number": "5.1.2:1", "link": "patterns.html#fls_pah15qa54irs", "checksum": "7afee4377bf01eee53e398835c943ac86067eba24c1cf64551d7f801915e5ece"}, {"id": "fls_co60bzvwashg", "number": "5.1.2:2", "link": "patterns.html#fls_co60bzvwashg", "checksum": "b5e4dea23898449138503e31ca3616865806df2f2af08e0460bf75c15cfda0d0"}, {"id": "fls_fqclaznjgtb1", "number": "5.1.2:3", "link": "patterns.html#fls_fqclaznjgtb1", "checksum": "9523bfb2f8baa5008bc1e0027689e39ccb5e220a0549096f0b83c5c7246298fc"}], "informational": false}, {"id": "fls_1xit18et4ohh", "number": "5.1.3", "title": "Parenthesized Patterns", "link": "patterns.html#parenthesized-patterns", "paragraphs": [{"id": "fls_kvqzmt7my5dh", "number": "5.1.3:1", "link": "patterns.html#fls_kvqzmt7my5dh", "checksum": "24403c83d4acc034aaa73d968a14afbfe7d9f1bfdbee90b17ef960075453aaac"}, {"id": "fls_mrjhpiq5refe", "number": "5.1.3:2", "link": "patterns.html#fls_mrjhpiq5refe", "checksum": "5f42a52d41b664edb742dfd664f01990bf8432d041e601e283d750cb83a85f90"}, {"id": "fls_pe5kh8y8u664", "number": "5.1.3:3", "link": "patterns.html#fls_pe5kh8y8u664", "checksum": "41b7c39a45d4144509bc833e84ea455b7d86c0a67c5d58960e14e6337b2c44d4"}, {"id": "fls_2xq8852gihn9", "number": "5.1.3:4", "link": "patterns.html#fls_2xq8852gihn9", "checksum": "52b7260cc5a853d5a086c015be7f8a33e52909e289883c03c7dd49664172129d"}, {"id": "fls_2dmeukyjqz9y", "number": "5.1.3:5", "link": "patterns.html#fls_2dmeukyjqz9y", "checksum": "6b2bf289b930cfce356ecbd497063fe3f045ee08dc3919d303a7a90c52eae0fb"}], "informational": false}, {"id": "fls_uloyjbaso8pz", "number": "5.1.4", "title": "Path Patterns", "link": "patterns.html#path-patterns", "paragraphs": [{"id": "fls_1crq0mexo5r1", "number": "5.1.4:1", "link": "patterns.html#fls_1crq0mexo5r1", "checksum": "6eab6a03669622290fe084028190344d03230efeca455f6bd9e2891ac8781c05"}, {"id": "fls_xz5otkhogn31", "number": "5.1.4:2", "link": "patterns.html#fls_xz5otkhogn31", "checksum": "6b5457b32a2fa8723c542bd4b63d6de477dfc4e8406457a6b0ec05a421fbb295"}, {"id": "fls_t8sjzsif2ilf", "number": "5.1.4:3", "link": "patterns.html#fls_t8sjzsif2ilf", "checksum": "853158ce8e75116be9bf2d63bc0d49626010b9d0fa0c5ebe80a595ef4da37aa3"}, {"id": "fls_zcswsyuitexi", "number": "5.1.4:4", "link": "patterns.html#fls_zcswsyuitexi", "checksum": "32107632e6d0b56902397df91b587c925c1cf6ce0a1f364dd9a3708ce1e015f6"}, {"id": "fls_hf19k8swu8ff", "number": "5.1.4:5", "link": "patterns.html#fls_hf19k8swu8ff", "checksum": "c1c27a19deb008cded1ee11e11c906c699c4a1a086d847190fd58dcc97f4785c"}, {"id": "fls_bv9psmitxfuw", "number": "5.1.4:6", "link": "patterns.html#fls_bv9psmitxfuw", "checksum": "e3791cb88451803cd0eccbbf5f370fc3c972abe87f321825dc692aacb617742b"}, {"id": "fls_sl47k9oj5p7t", "number": "5.1.4:7", "link": "patterns.html#fls_sl47k9oj5p7t", "checksum": "7f7d5841b9bc8e1f3eca2f3f52fb1c78bb016e93d8212e3225a673fd4bc4b053"}, {"id": "fls_cfoy86mkmqa4", "number": "5.1.4:8", "link": "patterns.html#fls_cfoy86mkmqa4", "checksum": "02aca8f7474b9b51097bfc5d6ab6e5f5fe22f7bd5eb8847ee5d4f3b70392c46b"}, {"id": "fls_rnppz6y5z8pi", "number": "5.1.4:9", "link": "patterns.html#fls_rnppz6y5z8pi", "checksum": "1c34cc598291b31ea8a8e18057c24a39a3b1260ccf47acdefb76df1c0ffd1b05"}, {"id": "fls_ag6m4mvpturw", "number": "5.1.4:10", "link": "patterns.html#fls_ag6m4mvpturw", "checksum": "686e4dfe42f5f913ee2465c883ade027d7e59e9e065e490993681639adbc6114"}, {"id": "fls_pedy2pqrvnx7", "number": "5.1.4:11", "link": "patterns.html#fls_pedy2pqrvnx7", "checksum": "0156b2335414d9b4db2b75d75ed55fbca446bd1b5b81604e0171ea7872fd44a2"}, {"id": "fls_u59rilepu8z9", "number": "5.1.4:12", "link": "patterns.html#fls_u59rilepu8z9", "checksum": "828f48eb56377d3b46c0da453d4e59253c0dc1419ef356ebdec3471ff072a7ef"}], "informational": false}, {"id": "fls_6tl1fx99yn6c", "number": "5.1.5", "title": "Range Patterns", "link": "patterns.html#range-patterns", "paragraphs": [{"id": "fls_okupyoav13rm", "number": "5.1.5:1", "link": "patterns.html#fls_okupyoav13rm", "checksum": "959fe2ad28f3934a1ce306646ec29b82f95de36f84a5c69840957aeac1b88eb9"}, {"id": "fls_jhchm7dy927k", "number": "5.1.5:2", "link": "patterns.html#fls_jhchm7dy927k", "checksum": "0b382770b9780b9239f762eb87f95835b03588805b1a4b3def28336d666ff7a1"}, {"id": "fls_q86j23iiqv8w", "number": "5.1.5:3", "link": "patterns.html#fls_q86j23iiqv8w", "checksum": "1cfc9d659ff30640a5179ad40746d5c08c3c187b5271f28b88305b4de6ba138a"}, {"id": "fls_akf9x5r6e0ta", "number": "5.1.5:4", "link": "patterns.html#fls_akf9x5r6e0ta", "checksum": "2730f4be7e58310acdcc2e8df0d5792b76b2437850f3bea63f0e94ad25e46eee"}, {"id": "fls_vrpr6ttpfpal", "number": "5.1.5:5", "link": "patterns.html#fls_vrpr6ttpfpal", "checksum": "0ba8c1ec907ade4c15c689e735f0a5a8b187b5496f656c893968eca7e5468b54"}, {"id": "fls_nk48gregn3me", "number": "5.1.5:6", "link": "patterns.html#fls_nk48gregn3me", "checksum": "656232ce77042076d43593f3f21939aac2c7066d0c750836345ff9ec0a42124b"}, {"id": "fls_83v1xqbebs58", "number": "5.1.5:7", "link": "patterns.html#fls_83v1xqbebs58", "checksum": "6316acea87cf2eeeb7b2e0acb3d99f9f56716dc64ba70e167716659033b9bde4"}, {"id": "fls_2hpuccwh2xml", "number": "5.1.5:8", "link": "patterns.html#fls_2hpuccwh2xml", "checksum": "785db35c5291babacd0f8648588325297f8f45c2eebe7fb665e52b8ac76eca68"}, {"id": "fls_9kk81isk0mlp", "number": "5.1.5:9", "link": "patterns.html#fls_9kk81isk0mlp", "checksum": "0c9d1f2587c2e5d8ed9ee166a68762909b9b7936245dc9d2341c1f7df6670e6e"}, {"id": "fls_s2b5n4snc4d7", "number": "5.1.5:10", "link": "patterns.html#fls_s2b5n4snc4d7", "checksum": "88a5cfae2ddc1c38d1df4a2dc1b86e99bcced79bc5b40afef543633e7c48bce9"}, {"id": "fls_4o4ge6x9a8rs", "number": "5.1.5:11", "link": "patterns.html#fls_4o4ge6x9a8rs", "checksum": "b55a395def7ce875a26f0fe8a3f186342864481fa72edba9c13c5d5f3f93c9e6"}, {"id": "fls_6o995ak4hywq", "number": "5.1.5:12", "link": "patterns.html#fls_6o995ak4hywq", "checksum": "fe437f18136d4053707f9c2e3b8a79e527d78c77863abc6bfd04f4a73204d3b5"}, {"id": "fls_3js1645tgh31", "number": "5.1.5:13", "link": "patterns.html#fls_3js1645tgh31", "checksum": "5d22fc340f1c7e324df48a970cf5ae8a4811f8a5ad3880704eda257dd3d2add8"}, {"id": "fls_wfqrbwrogjnq", "number": "5.1.5:14", "link": "patterns.html#fls_wfqrbwrogjnq", "checksum": "0258d7139362363521a799c8ad54725da66ba2ef0bd98e5d4a941a507679ac3e"}, {"id": "fls_rgr7t33s0m7m", "number": "5.1.5:15", "link": "patterns.html#fls_rgr7t33s0m7m", "checksum": "4993d699bb304cc5b32245e03cfd7425d322876b5dc54fef12048c5874c667c0"}, {"id": "fls_5ey5mj8t8knd", "number": "5.1.5:16", "link": "patterns.html#fls_5ey5mj8t8knd", "checksum": "0315d5b53fda43c91943de2a08eda96b79f469004237b8d0f02f52f4c1f35567"}, {"id": "fls_z4js96mchcsv", "number": "5.1.5:17", "link": "patterns.html#fls_z4js96mchcsv", "checksum": "9f6d9020a6778f7a34629150159b8a67764f0aea6638d4f0d47a20fc22fbe70e"}, {"id": "fls_3wwpq8i6mo2a", "number": "5.1.5:18", "link": "patterns.html#fls_3wwpq8i6mo2a", "checksum": "c5f72fee7eaf39bc3ba6e09ef2aeadf91898aa80c3ec33ac0edcf6154204e82f"}], "informational": false}, {"id": "fls_d2sc9hl3v0mk", "number": "5.1.6", "title": "Reference Patterns", "link": "patterns.html#reference-patterns", "paragraphs": [{"id": "fls_fhahcc1mz2qh", "number": "5.1.6:1", "link": "patterns.html#fls_fhahcc1mz2qh", "checksum": "0ac86e5a12c490f5eb80008b0e18cc9da39af2074dfbdc99545777192814afa3"}, {"id": "fls_x0bmzl1315gq", "number": "5.1.6:2", "link": "patterns.html#fls_x0bmzl1315gq", "checksum": "6a57abc9dd69b10cfed97889b75688970d20e1d41ef2a43eb713a41472cebe59"}, {"id": "fls_fedo8zhgpla5", "number": "5.1.6:3", "link": "patterns.html#fls_fedo8zhgpla5", "checksum": "cdf387e98a664c3724ff90541e30f67670be603da49923fcb4e3a4ee54ba432e"}, {"id": "fls_30u9ij164ww3", "number": "5.1.6:4", "link": "patterns.html#fls_30u9ij164ww3", "checksum": "b78639be70162116c61abcb66a81cfa0e2adb505b2a71ffb60f9639cf7a038d5"}, {"id": "fls_d1kc73hpncpo", "number": "5.1.6:5", "link": "patterns.html#fls_d1kc73hpncpo", "checksum": "cc0ee91216508f36e23696e7ee09cd4fa77b065e4c323a2cf3610c891336fe3f"}, {"id": "fls_mpeuhov0umfa", "number": "5.1.6:6", "link": "patterns.html#fls_mpeuhov0umfa", "checksum": "a25a7095fc72a731e04329d8ab3d3101d3671e76267de53f09aa6d749f866a5d"}], "informational": false}, {"id": "fls_7wpgnp4kjq82", "number": "5.1.7", "title": "Rest Patterns", "link": "patterns.html#rest-patterns", "paragraphs": [{"id": "fls_eso51epfofxb", "number": "5.1.7:1", "link": "patterns.html#fls_eso51epfofxb", "checksum": "071b1b905e799a04118d9b0fe22e82b9944ef00a527e80a327c0c4f6511fd52b"}, {"id": "fls_5a75a2y43uev", "number": "5.1.7:2", "link": "patterns.html#fls_5a75a2y43uev", "checksum": "d787720d08f2fd60c09276b2b5be62b0bd3a0ad5aef799a71bacba9691897fda"}, {"id": "fls_rsqyza99vl3x", "number": "5.1.7:3", "link": "patterns.html#fls_rsqyza99vl3x", "checksum": "3bf650bd8078af8405ff969b3616899e1bc80ef2ef591d2b291cf99f03008f32"}, {"id": "fls_w1pw40phsv2o", "number": "5.1.7:4", "link": "patterns.html#fls_w1pw40phsv2o", "checksum": "11486a40e40c1eaa6529d06f4f52771cd804d9d0cea29d215e5e9e6748877b01"}, {"id": "fls_x8ylgxrf9ca", "number": "5.1.7:5", "link": "patterns.html#fls_x8ylgxrf9ca", "checksum": "318a513cb1fdf4e37047eccc4975636818c7cd86126e00b5b3e132411c629003"}, {"id": "fls_zgoke73xrhk3", "number": "5.1.7:6", "link": "patterns.html#fls_zgoke73xrhk3", "checksum": "de50b523931b5b23b262977da389190179884668be06d4b514d2908f9ad2aeab"}, {"id": "fls_bdcv6rwx0fsv", "number": "5.1.7:7", "link": "patterns.html#fls_bdcv6rwx0fsv", "checksum": "3e6c88357b38cf981ef309c03b2df1cb25d9f796365ca21fbbd67f2d4571cd42"}, {"id": "fls_qz9guhlg19j3", "number": "5.1.7:8", "link": "patterns.html#fls_qz9guhlg19j3", "checksum": "c6203fbb28f63565945031f16bc7f7096f16bee4c02f2c16161cb0c3cf80c7a5"}], "informational": false}, {"id": "fls_qte70mgzpras", "number": "5.1.8", "title": "Slice Patterns", "link": "patterns.html#slice-patterns", "paragraphs": [{"id": "fls_qqiu594hki8g", "number": "5.1.8:1", "link": "patterns.html#fls_qqiu594hki8g", "checksum": "f9dbdad2eec41e1e1c60cd8c0cacf14973b904c94631089f41ca0e1bbda98a17"}, {"id": "fls_h6x9xlxi7y5n", "number": "5.1.8:2", "link": "patterns.html#fls_h6x9xlxi7y5n", "checksum": "948b35cfd7619032dc69a5d84fa17b28a615e792a6f0e0d49e140816b136e7e9"}, {"id": "fls_jbmxu7y5fnm6", "number": "5.1.8:3", "link": "patterns.html#fls_jbmxu7y5fnm6", "checksum": "b21f2e9bea39902d97b0a75bd48f584b5bcb685635cecfeab096b27a096de184"}, {"id": "fls_r78zzw7yyg34", "number": "5.1.8:4", "link": "patterns.html#fls_r78zzw7yyg34", "checksum": "9ea93d82c4cebaa6550a0787f2925118cf5370ed8a0c02104b3a623c197ae9c1"}, {"id": "fls_ndor56nou676", "number": "5.1.8:5", "link": "patterns.html#fls_ndor56nou676", "checksum": "93891609dbf9042a20ed470adda1893453d146707a716c6a05793ff9c64e10f0"}, {"id": "fls_9yuobz1jsehf", "number": "5.1.8:6", "link": "patterns.html#fls_9yuobz1jsehf", "checksum": "b7fb9cf107baa52a1c3140dbb24ee079813601a2c74f83321a61e14127737833"}], "informational": false}, {"id": "fls_7dbd5t2750ce", "number": "5.2", "title": "Struct Patterns", "link": "patterns.html#struct-patterns", "paragraphs": [{"id": "fls_vjdkpr3zml51", "number": "5.2:1", "link": "patterns.html#fls_vjdkpr3zml51", "checksum": "d667b4f41510c041296f0f8c9950b33a0e697269e268024bd87aac1d04c4b450"}, {"id": "fls_6o3x101wo478", "number": "5.2:2", "link": "patterns.html#fls_6o3x101wo478", "checksum": "1226159f94faa8a70839d078914f48a7ec073bb47550a83a77554fab5106550c"}, {"id": "fls_k9zih9s0oe5h", "number": "5.2:3", "link": "patterns.html#fls_k9zih9s0oe5h", "checksum": "4951a056adbfabc5da1900d164468c7f4be7716b2094657ab9e28e53f3b985a9"}, {"id": "fls_r8rat3qmc4hy", "number": "5.2:4", "link": "patterns.html#fls_r8rat3qmc4hy", "checksum": "b68597321297c9f745d6b9be53beda335702f6e28a1bb97a08c277dac931130d"}, {"id": "fls_hux723dmlg2a", "number": "5.2:5", "link": "patterns.html#fls_hux723dmlg2a", "checksum": "c8b65f1ad8bbb7a147b1cfa9636cd2ebe6b61c1727898f08637df63d004a8391"}, {"id": "fls_p4oplpuvs04l", "number": "5.2:6", "link": "patterns.html#fls_p4oplpuvs04l", "checksum": "5b84c7b52bafc282a2d2f47804bec3323bbdacc365ee09d0099d08c9d131bf81"}, {"id": "fls_pre3ywav01fe", "number": "5.2:7", "link": "patterns.html#fls_pre3ywav01fe", "checksum": "0bdc00a13a57ef1c0b6611c62de6e170f3d281e81b68d9cf86a7b8f227180905"}, {"id": "fls_mk83we0idqnf", "number": "5.2:8", "link": "patterns.html#fls_mk83we0idqnf", "checksum": "8bfb976bafb3e725050a2a415fd644fc9981cf4b45e809c13c254477bafe4502"}], "informational": false}, {"id": "fls_nruvg0es3kx7", "number": "5.2.1", "title": "Record Struct Patterns", "link": "patterns.html#record-struct-patterns", "paragraphs": [{"id": "fls_g6dytd6aq62d", "number": "5.2.1:1", "link": "patterns.html#fls_g6dytd6aq62d", "checksum": "939f66a2cc6a712f7ec20d7536b02ec2600f18a1799b2144aea19eec95022846"}, {"id": "fls_3px4oiweg9dm", "number": "5.2.1:2", "link": "patterns.html#fls_3px4oiweg9dm", "checksum": "62c9ac85366cbfb730c4705821715b95ce875f485a87b252fa3dd810128a62b6"}, {"id": "fls_mnh35ehva8tx", "number": "5.2.1:3", "link": "patterns.html#fls_mnh35ehva8tx", "checksum": "e1814d800e0feb6269bf895ed95022e6deb5cc33cc635c2bb63b14baec538159"}, {"id": "fls_p2rjnlbvifaa", "number": "5.2.1:4", "link": "patterns.html#fls_p2rjnlbvifaa", "checksum": "3e48a4f72d15cce2c39a5d3dc6ee479532f77da0b1bf93691b99fc840384f6fe"}, {"id": "fls_23be2x50at14", "number": "5.2.1:5", "link": "patterns.html#fls_23be2x50at14", "checksum": "6645895b56834ed4cc394b448f835a215f06b82857dcc694fa41f1413c2e8780"}, {"id": "fls_46u4ddj0yf93", "number": "5.2.1:6", "link": "patterns.html#fls_46u4ddj0yf93", "checksum": "a4aa45e4d07c9304ffcc9d862e913507d5000a1730b669278ac285dc603a771c"}, {"id": "fls_qu3dvfdq6oy7", "number": "5.2.1:7", "link": "patterns.html#fls_qu3dvfdq6oy7", "checksum": "7df489a39e2a1942c161d32a9ce2ef5ce0e4848eab53b9ff7321c1d546572c74"}, {"id": "fls_4b2hchdzv30u", "number": "5.2.1:8", "link": "patterns.html#fls_4b2hchdzv30u", "checksum": "b07b1a9330e57dc967b57e196fbc8f1a408952860995a438d3d757900c0a9bb5"}, {"id": "fls_9wfizujx0szd", "number": "5.2.1:9", "link": "patterns.html#fls_9wfizujx0szd", "checksum": "a8132d829bf34f884995af4cb9ae77e246d14ffc39f464dfd0579841244ed1a7"}, {"id": "fls_jth9hur0qsib", "number": "5.2.1:10", "link": "patterns.html#fls_jth9hur0qsib", "checksum": "6e903cc0782eee63efea8b0c7d9bd83aaeca3c3659c72b4f1b64b24dbae63273"}, {"id": "fls_as54u97xis8z", "number": "5.2.1:11", "link": "patterns.html#fls_as54u97xis8z", "checksum": "c8519c37bf9a85c68075db3cb98c5ff8ab8db77174740ac05497368044b20534"}, {"id": "fls_8364ueejn5y3", "number": "5.2.1:12", "link": "patterns.html#fls_8364ueejn5y3", "checksum": "3515e0658c65c83d72e0dd7ad0e82d86216d338c31040d3e27832951a2aa83b5"}, {"id": "fls_7t0be1w2hq3c", "number": "5.2.1:13", "link": "patterns.html#fls_7t0be1w2hq3c", "checksum": "f951f3c203a03b558cf318fb35a3313fa155405830ed6d804fcdea0b828eb716"}, {"id": "fls_3vgmkm2mzwwy", "number": "5.2.1:14", "link": "patterns.html#fls_3vgmkm2mzwwy", "checksum": "6103ce2aaa63552db1ddd1712d330355e209efd8b3f05e2ee118128d79c0f57a"}, {"id": "fls_m91ith3rjy79", "number": "5.2.1:15", "link": "patterns.html#fls_m91ith3rjy79", "checksum": "b94ca5c69e41ecdd7da89cf82764d0e4561528548bd0a3491afd0dcc1dc27452"}, {"id": "fls_c09jf2vpcr58", "number": "5.2.1:16", "link": "patterns.html#fls_c09jf2vpcr58", "checksum": "b71b81a6c560dbce28bfa29908e6476ea8fd75a9b27df354ac6d310149124194"}, {"id": "fls_4h00oqypa8qg", "number": "5.2.1:17", "link": "patterns.html#fls_4h00oqypa8qg", "checksum": "cb358844aa1dd3a9c5395b092c62c4e62c28a58e0b909d2c9d99344e409fafac"}, {"id": "fls_195mqijyrnam", "number": "5.2.1:18", "link": "patterns.html#fls_195mqijyrnam", "checksum": "2406df736b1c1b7e052beb8d6a704041b3804de21cf83ac7e64bb84ea5c0180f"}, {"id": "fls_ta0vdoqmt2k1", "number": "5.2.1:19", "link": "patterns.html#fls_ta0vdoqmt2k1", "checksum": "685de37c2ee81a66dccabb7f81942c82479d896f00e1e1334d4a60a9ea3b6bdc"}, {"id": "fls_f0u0j4q90lpl", "number": "5.2.1:20", "link": "patterns.html#fls_f0u0j4q90lpl", "checksum": "c02d71a02dfad46132450d2be620a7cabbd2eabf47c6bd9b01945121cd5d3aa0"}, {"id": "fls_8bi8q3usubby", "number": "5.2.1:21", "link": "patterns.html#fls_8bi8q3usubby", "checksum": "b0f4dad87afccd06af733d465607f36dcde450f57438e710856d594b3dfb6e8d"}, {"id": "fls_1x0o71kxj3yq", "number": "5.2.1:22", "link": "patterns.html#fls_1x0o71kxj3yq", "checksum": "da482f0aac1389101e1acc7d29df971ea52cbb5a914a549589717f367179ec59"}, {"id": "fls_1thgpx95lfg5", "number": "5.2.1:23", "link": "patterns.html#fls_1thgpx95lfg5", "checksum": "d75c1d570151a0c0add5bd9dbd8879ab364860d21ddd5a1981f20b5a358d8ac6"}, {"id": "fls_rpo1wimbmzhc", "number": "5.2.1:24", "link": "patterns.html#fls_rpo1wimbmzhc", "checksum": "014416678ebb189d6688fb5242e5205e11770c286ca59a48f79dda7f6ae4a8b1"}, {"id": "fls_brhtaaxt1s3s", "number": "5.2.1:25", "link": "patterns.html#fls_brhtaaxt1s3s", "checksum": "5dfa02c07c1e043d1fbc3b8eab7d4555147d7e61752f59b311c2486f4a53c2ef"}, {"id": "fls_jwz3arnfkxwn", "number": "5.2.1:26", "link": "patterns.html#fls_jwz3arnfkxwn", "checksum": "bc8d158c05838e267c985dd76e4808b795b9c9b82d65690a8d2744bf8753e87e"}, {"id": "fls_pfz8xlwezbw1", "number": "5.2.1:27", "link": "patterns.html#fls_pfz8xlwezbw1", "checksum": "cd32c48d96ca8821d8b097e61f7031858e9955ae4cb198bb1001a71624f77a7f"}, {"id": "fls_xfkbjze6k1o2", "number": "5.2.1:28", "link": "patterns.html#fls_xfkbjze6k1o2", "checksum": "892be146ad066dad2bd25128cc3091054cbd49abdf7268f54e6f21339362e750"}, {"id": "fls_mu166csowj71", "number": "5.2.1:29", "link": "patterns.html#fls_mu166csowj71", "checksum": "3dda2685fefad7736c09572d77850f39aea37aff6a75b4775df949965c478004"}, {"id": "fls_y09fygnglu3n", "number": "5.2.1:30", "link": "patterns.html#fls_y09fygnglu3n", "checksum": "ae7dbf4db5d0804bb1b4f47f1a3d6ac4f752d00aacb5fd25e7d8f748f4760adc"}, {"id": "fls_2tadaatmauzk", "number": "5.2.1:31", "link": "patterns.html#fls_2tadaatmauzk", "checksum": "b61a46d5ed3d3618df19128c327bc64de735101d00f7fc3b645d60b73ded72dd"}, {"id": "fls_oq30xkmvyz72", "number": "5.2.1:32", "link": "patterns.html#fls_oq30xkmvyz72", "checksum": "d75819f44a8d7f85c50196f3a44487fcbfdaa07c19627675b6bb09b4f2fc97c4"}, {"id": "fls_9y1gbv47z23o", "number": "5.2.1:33", "link": "patterns.html#fls_9y1gbv47z23o", "checksum": "5f55bfd0214be05b8229314e347c9671c485811ab7606a2c8c5a06c39aa89aae"}, {"id": "fls_dhtv2bprfvbb", "number": "5.2.1:34", "link": "patterns.html#fls_dhtv2bprfvbb", "checksum": "013fca3143fcb9507c780ebe41cc1f74a40222e55f6c4b695758e3b78c605d12"}], "informational": false}, {"id": "fls_vlrto778v49m", "number": "5.2.2", "title": "Tuple Struct Patterns", "link": "patterns.html#tuple-struct-patterns", "paragraphs": [{"id": "fls_ks6y1syab2bp", "number": "5.2.2:1", "link": "patterns.html#fls_ks6y1syab2bp", "checksum": "398db4748805660067dff91c2d8c07f0ce9a02f750eedab4d786b7097ea8a772"}, {"id": "fls_t1mrijw16k9a", "number": "5.2.2:2", "link": "patterns.html#fls_t1mrijw16k9a", "checksum": "c49ac22e3f94f28c61a3b041503608d3e3f6a337ad9fdd9162106b3e8a729ddd"}, {"id": "fls_ryfcrqrkp28y", "number": "5.2.2:3", "link": "patterns.html#fls_ryfcrqrkp28y", "checksum": "caed82759506953820cc05207e2ff166b8c73479f82882f1d52cec340b5ea5f2"}, {"id": "fls_ehf9r6halgh1", "number": "5.2.2:4", "link": "patterns.html#fls_ehf9r6halgh1", "checksum": "52efa16e2d2072309e596e1e678e1ed4c435a2a10a044d200823d457ae75c86b"}, {"id": "fls_5lo1hs8wzz0t", "number": "5.2.2:5", "link": "patterns.html#fls_5lo1hs8wzz0t", "checksum": "88a50cbe98942f52e03b0825ff7e25f2b0c89e3c3a66979381da5376a170cee7"}, {"id": "fls_gwuc2xffosu", "number": "5.2.2:6", "link": "patterns.html#fls_gwuc2xffosu", "checksum": "3dc2817ca063542426c88f985729203dbe054c09d6efe49d7eb52097ec52bca6"}, {"id": "fls_w369n8lmwr7g", "number": "5.2.2:7", "link": "patterns.html#fls_w369n8lmwr7g", "checksum": "541bd9b4e34b9b13bac861950cbc1ff7a06f887ca4d3a08d65ca538b08a21639"}, {"id": "fls_4is6h95jj3gd", "number": "5.2.2:8", "link": "patterns.html#fls_4is6h95jj3gd", "checksum": "ca44a0d983f6a2c58de0d0da866f70042fb1589545be9d179d6b19542bf94f4f"}, {"id": "fls_budf0rpsa4lx", "number": "5.2.2:9", "link": "patterns.html#fls_budf0rpsa4lx", "checksum": "d8b0cbea39dac23dc53d3b24c98a4832ca33e84bd17e7a35598838c1ec69d58b"}, {"id": "fls_vo6mtauh4qhb", "number": "5.2.2:10", "link": "patterns.html#fls_vo6mtauh4qhb", "checksum": "f47bc7199534d69e8491c54e3507a6dab7fa624a91bc061b87c451e8ed8af807"}, {"id": "fls_rco3fwlx2a76", "number": "5.2.2:11", "link": "patterns.html#fls_rco3fwlx2a76", "checksum": "9e91b8f7ea80554c6c9d801b284fd737f8072273ca2869a7a1a7c23f6cba1e10"}, {"id": "fls_4vrnxslad09e", "number": "5.2.2:12", "link": "patterns.html#fls_4vrnxslad09e", "checksum": "435aadfae6890acd5b2f7c089d2bf6c6bde46b865278bc446f816f2900ad444d"}, {"id": "fls_qgilaqy5zx7q", "number": "5.2.2:13", "link": "patterns.html#fls_qgilaqy5zx7q", "checksum": "c18b1eaabbf21d6d906c4d4255fe8e1efcf58af3fbebbfffa7348ac6b6edf3c5"}, {"id": "fls_2u99arsbnlnk", "number": "5.2.2:14", "link": "patterns.html#fls_2u99arsbnlnk", "checksum": "9d386d3779e3a03ab5fa632bb3790b3682a87d11304efd42205239ba9080f938"}], "informational": false}, {"id": "fls_urbr5rg9206v", "number": "5.2.3", "title": "Tuple Patterns", "link": "patterns.html#tuple-patterns", "paragraphs": [{"id": "fls_e2manugp4e0b", "number": "5.2.3:1", "link": "patterns.html#fls_e2manugp4e0b", "checksum": "86e5cf86cc1727a1ec3d2c9b3c7770ba2d5a0a0be11e05f181cf89208cef7e8f"}, {"id": "fls_xk8udu4k61kj", "number": "5.2.3:2", "link": "patterns.html#fls_xk8udu4k61kj", "checksum": "968065a0acde4dc1fc6772c9a80d889371d997d4d812bece3bb143b855b791f3"}, {"id": "fls_yhcaz6v49ub2", "number": "5.2.3:3", "link": "patterns.html#fls_yhcaz6v49ub2", "checksum": "c046f561eb355602680f839ad87e202a633dd889397bbc12f7027ffc7b5a284a"}, {"id": "fls_6wcm0ra8nql4", "number": "5.2.3:4", "link": "patterns.html#fls_6wcm0ra8nql4", "checksum": "208f90ce72da5d32c30755d34df67702194f5fe887e9c7a1bd0554c4718eeede"}, {"id": "fls_a3qvqjyilorx", "number": "5.2.3:5", "link": "patterns.html#fls_a3qvqjyilorx", "checksum": "d4a0b43d9d6a5e0b17d67fcdf081a940f340d1b85d971f31c684778d9986fb2b"}, {"id": "fls_kmihfxlbyelz", "number": "5.2.3:6", "link": "patterns.html#fls_kmihfxlbyelz", "checksum": "289e79602b945e44a6b259d8d0c1e225e914afa943874c7698ef97f89f8f3def"}, {"id": "fls_5bxqiakifclg", "number": "5.2.3:7", "link": "patterns.html#fls_5bxqiakifclg", "checksum": "bd944455b4e5b2992d60a0276dd284685483fbdb2ce0a6e8b861676e3d2069b7"}, {"id": "fls_sohcavfglv5f", "number": "5.2.3:8", "link": "patterns.html#fls_sohcavfglv5f", "checksum": "47877ba9b3984b4661b6db0b34526c8edb770ea1f800c33d64c5523a6d44b8f2"}, {"id": "fls_iikvys61959s", "number": "5.2.3:9", "link": "patterns.html#fls_iikvys61959s", "checksum": "325628fddc5edcfee5dde126d580262949d54d516c4f6d9243baff7c4f607da9"}, {"id": "fls_f4k6ljup8amf", "number": "5.2.3:10", "link": "patterns.html#fls_f4k6ljup8amf", "checksum": "80b589c7aaacf22228397ab8de7f859870551fa23bbc58316341c4fe297455b0"}, {"id": "fls_gjjcdkvjpqs8", "number": "5.2.3:11", "link": "patterns.html#fls_gjjcdkvjpqs8", "checksum": "d0a0133555000675455b2bf5ab37681e6e7bb93783c7e8ebd5178f80704e6ce1"}, {"id": "fls_9qw9n87swwne", "number": "5.2.3:12", "link": "patterns.html#fls_9qw9n87swwne", "checksum": "46bd974ba3f88ec8c528de9c9907e74139719b19f51d32a06f37cede033afd44"}, {"id": "fls_cq84wklyrajv", "number": "5.2.3:13", "link": "patterns.html#fls_cq84wklyrajv", "checksum": "f1887b73be484d54fe02b6a04ea8aee012209872ae40fb9179a705c3f4856242"}, {"id": "fls_cc6ohnuiltfl", "number": "5.2.3:14", "link": "patterns.html#fls_cc6ohnuiltfl", "checksum": "176644151cc57b936a43b35578e7182a3c89ac881b62ba4e3aa5bfede1008ecf"}, {"id": "fls_8r81vtv5hnrd", "number": "5.2.3:15", "link": "patterns.html#fls_8r81vtv5hnrd", "checksum": "c479906bca39314417e1caa942e7ef8efbb0987857a2c5ea2e3dc30d69cc4a20"}], "informational": false}, {"id": "fls_qfsfnql1t7m", "number": "5.2.4", "title": "Underscore Patterns", "link": "patterns.html#underscore-patterns", "paragraphs": [{"id": "fls_dreny9e0ei6r", "number": "5.2.4:1", "link": "patterns.html#fls_dreny9e0ei6r", "checksum": "ffe05e2b6f44aab3204db8f037bcbabda722b0b2a4c36233bd344165b0915664"}, {"id": "fls_42fye1v0th8l", "number": "5.2.4:2", "link": "patterns.html#fls_42fye1v0th8l", "checksum": "512af904f1afbc0ae83e21197bac2017c65eb4d2820eb33ef0e964251753ac99"}, {"id": "fls_b87mvrcc13f2", "number": "5.2.4:3", "link": "patterns.html#fls_b87mvrcc13f2", "checksum": "4df12d4b4abe0cd1029651c34033e70582bd69ad83cfc6a3a733e4bf20d8da0a"}, {"id": "fls_j3u6x1ensrbe", "number": "5.2.4:4", "link": "patterns.html#fls_j3u6x1ensrbe", "checksum": "8ae58cda06fc53f1738c98075991062f64264fcb87108570d670eb709bdfc97f"}], "informational": false}, {"id": "fls_qssijtofa9i8", "number": "5.3", "title": "Binding Modes", "link": "patterns.html#binding-modes", "paragraphs": [{"id": "fls_7xby6d1903kw", "number": "5.3:1", "link": "patterns.html#fls_7xby6d1903kw", "checksum": "ce737fd6a8e0011aa5361836e179e7da00b62d001685d8a3099eda2e5f94ff52"}, {"id": "fls_vnh9wfrvumdz", "number": "5.3:2", "link": "patterns.html#fls_vnh9wfrvumdz", "checksum": "ee24110781d1935c43cf0567d764e1aadf2cc3db7f17740efe4e767ac0ee9632"}, {"id": "fls_rvic5uezpquv", "number": "5.3:3", "link": "patterns.html#fls_rvic5uezpquv", "checksum": "3689001f3e5a3fadb5bce3f16c76e8babf3aa8a1b12b24dc1d08cc2709b6336c"}, {"id": "fls_6lxtoxebd5it", "number": "5.3:4", "link": "patterns.html#fls_6lxtoxebd5it", "checksum": "1a8541da9715b497aff0fb8fd6116cd249a0350898d3dd89d00b2c30c7e82671"}, {"id": "fls_xnxqn8sgpz3o", "number": "5.3:5", "link": "patterns.html#fls_xnxqn8sgpz3o", "checksum": "0b306a42847f796ecf6339eefc0af21e5781a2cde421ae3141018b146e11ffb0"}, {"id": "fls_dqe75i8h2fie", "number": "5.3:6", "link": "patterns.html#fls_dqe75i8h2fie", "checksum": "0871ae0bb0826a8d223e8c2cee52f184b7c0e39f86c5063fcd676f7fbc614365"}, {"id": "fls_y3wuvj1y5j20", "number": "5.3:7", "link": "patterns.html#fls_y3wuvj1y5j20", "checksum": "959846317dd64ecd23fd6c93f96608048d818682c7cd48599dfffcd231a8557a"}, {"id": "fls_55jtzh6a292x", "number": "5.3:8", "link": "patterns.html#fls_55jtzh6a292x", "checksum": "edc7cf534c55c29625cd191432a05763797465d54cbd387fee8127a17ad0f1ed"}, {"id": "fls_qcaf2kup7zn0", "number": "5.3:9", "link": "patterns.html#fls_qcaf2kup7zn0", "checksum": "174692122d916648a54e197fff15a1e7bf17984b9523fd06224c71a7484e0445"}, {"id": "fls_6acdqz8rwnn", "number": "5.3:10", "link": "patterns.html#fls_6acdqz8rwnn", "checksum": "c9dfbc0519fed7bb3f112777102c928f15a4d5c3cfc13d4d3017e9c15259ce08"}, {"id": "fls_tv0avib387bv", "number": "5.3:11", "link": "patterns.html#fls_tv0avib387bv", "checksum": "61b076c4aa153ed7b1ed996845d08b881a2327bfe131501f20b3ae9b3a2c042d"}, {"id": "fls_dbgmwldye42e", "number": "5.3:12", "link": "patterns.html#fls_dbgmwldye42e", "checksum": "a30925ea032d35a24204cb5c81fc5ad636e77d19ce00fb38615985b1bec396d6"}, {"id": "fls_t34oqarwcusu", "number": "5.3:13", "link": "patterns.html#fls_t34oqarwcusu", "checksum": "e9940ece8b67430f6507527efb4e0837eea8ecd615884b2d4a3773018ca5df88"}, {"id": "fls_7gxb74u1np36", "number": "5.3:14", "link": "patterns.html#fls_7gxb74u1np36", "checksum": "94de4c12fad70f9cac54c2a50a2c65b9a5d0f42b1847bddbbb2e5c23d1e9917c"}, {"id": "fls_7y56d0ulxomf", "number": "5.3:15", "link": "patterns.html#fls_7y56d0ulxomf", "checksum": "7b6cefba0ed64069e11e48d9eddf7bdab4f5ec7b32d73b3a9c0c92d7fd078d3a"}, {"id": "fls_pxvtqxke1enp", "number": "5.3:16", "link": "patterns.html#fls_pxvtqxke1enp", "checksum": "7a06ffc02f7927cd15e2513d53f8a618b2100301b066a92e111ba6ce488b6941"}], "informational": false}, {"id": "fls_jm6l7b90h6wa", "number": "5.4", "title": "Pattern Matching", "link": "patterns.html#pattern-matching", "paragraphs": [{"id": "fls_tlwr4u7bjhh5", "number": "5.4:1", "link": "patterns.html#fls_tlwr4u7bjhh5", "checksum": "6b0c9b448ffa1317860d5ce72327a183542c035ca71f57b637fe069226784ff8"}, {"id": "fls_67ajub7d2b4c", "number": "5.4:2", "link": "patterns.html#fls_67ajub7d2b4c", "checksum": "b6d21ac4978904629594c63e865c13ff0e8188557a1ee1fc16bf38d292273905"}, {"id": "fls_62626ws222op", "number": "5.4:3", "link": "patterns.html#fls_62626ws222op", "checksum": "d6e77f76c3b70cd441241b2ddcb2ece4258490b36edc54866617c3d56b1d1db9"}, {"id": "fls_q0z46h1gnzez", "number": "5.4:4", "link": "patterns.html#fls_q0z46h1gnzez", "checksum": "6867ae30832eda7ee1fee559e718d1cc657447cfdb727917e47a405431cbb8fc"}, {"id": "fls_1r0vm6rg13o9", "number": "5.4:5", "link": "patterns.html#fls_1r0vm6rg13o9", "checksum": "b919a4d8d9ed226bbf402a3d3d51992d55a4159a5723b7534992db054a299aa0"}, {"id": "fls_am5h8r887bz5", "number": "5.4:6", "link": "patterns.html#fls_am5h8r887bz5", "checksum": "7a5e47b54e578d0454d02d99d9d1735d8480757b894acfedb724f6f4945d4557"}, {"id": "fls_eppmiloh7bgg", "number": "5.4:7", "link": "patterns.html#fls_eppmiloh7bgg", "checksum": "0261db6dc821115e2d72a8963d41e3816c27ff5dec58ab612b4b0043bab2628c"}, {"id": "fls_gwc08xayno7q", "number": "5.4:8", "link": "patterns.html#fls_gwc08xayno7q", "checksum": "d8bde8dafa190be72dc04dbd04f9dcc381ba9e56fc7c59ef14e0adf12d08da99"}, {"id": "fls_19iygu12s315", "number": "5.4:9", "link": "patterns.html#fls_19iygu12s315", "checksum": "5b38e89f8e8e644db16464772877616b08bec8b5dc081183f140b1944cd02d7d"}, {"id": "fls_r307spfk6cs9", "number": "5.4:10", "link": "patterns.html#fls_r307spfk6cs9", "checksum": "e7cdc075b361ca70248b735173fd1ae43a881787197759e135ebe311f34f316a"}, {"id": "fls_qhdofvbso3gl", "number": "5.4:11", "link": "patterns.html#fls_qhdofvbso3gl", "checksum": "7e28619896a113dc0b4fcbbfbc7c0e60f3fbe58465cdd9e0c57ae6883ca75849"}, {"id": "fls_drb114dtvlpt", "number": "5.4:12", "link": "patterns.html#fls_drb114dtvlpt", "checksum": "0f085b2b200d131b0f3ad93e901232589ae5185e8b937688595401a2281802f1"}, {"id": "fls_uxysntb3u03j", "number": "5.4:13", "link": "patterns.html#fls_uxysntb3u03j", "checksum": "1b7c6f4e677eefe1fb3db44988440585f0a06c492b2c55de71cbc12e1ee26149"}, {"id": "fls_wh201rmh6u6d", "number": "5.4:14", "link": "patterns.html#fls_wh201rmh6u6d", "checksum": "8bd4950f12c3fc2761c334a84cb412e80a671197a21ca640ebe447e01836d826"}, {"id": "fls_vstdqifqipbh", "number": "5.4:15", "link": "patterns.html#fls_vstdqifqipbh", "checksum": "fd13d0bd953b8f054714e974f43ba2b7fa374ed3ffd288303907a4242b346c4e"}], "informational": false}, {"id": "fls_vnai6ag4qrdb", "number": "5.4.1", "title": "Identifier Pattern Matching", "link": "patterns.html#fls-vnai6ag4qrdb", "paragraphs": [{"id": "fls_4f3lzw64myhk", "number": "5.4.1:1", "link": "patterns.html#fls_4f3lzw64myhk", "checksum": "dd60a44dea7a972ddea069491ecd9f406558f404e901527ddd0d2149eeb48ebd"}, {"id": "fls_wauqwmdbcpna", "number": "5.4.1:2", "link": "patterns.html#fls_wauqwmdbcpna", "checksum": "aa285e853a6324a841c40d2b74e066fb6002f1fb6707b20a81ff680616eae3fc"}, {"id": "fls_3jyog8n6x2aa", "number": "5.4.1:3", "link": "patterns.html#fls_3jyog8n6x2aa", "checksum": "4aef617035a62c693b0db6e84d556a1afe10c28af4f9b0ca18065503767f6015"}, {"id": "fls_w637uvlbzsyo", "number": "5.4.1:4", "link": "patterns.html#fls_w637uvlbzsyo", "checksum": "0db8e23416d53e90ad73fa4df5b10d7e3ef8d53418d42a8860380a85d5d1163a"}, {"id": "fls_arz8ik3gf6u4", "number": "5.4.1:5", "link": "patterns.html#fls_arz8ik3gf6u4", "checksum": "1cf4f4074ffc3e6745944b1dcd726ac4b7d65f44568c669f04ddfcbe8068d57e"}, {"id": "fls_u6o5ndnezwbe", "number": "5.4.1:6", "link": "patterns.html#fls_u6o5ndnezwbe", "checksum": "5003a32c5e8a49a9e7d778d70ff05edcf2411bd284272a8bf7bd04d2df3a40fe"}, {"id": "fls_h1er04t0yta7", "number": "5.4.1:7", "link": "patterns.html#fls_h1er04t0yta7", "checksum": "de66751e709611b36e4517f705acf75d052724e2501a8c5ee5ab8c40757115e5"}], "informational": false}, {"id": "fls_azzf1llv3wf", "number": "5.4.2", "title": "Literal Pattern Matching", "link": "patterns.html#literal-pattern-matching", "paragraphs": [{"id": "fls_fqkhhgushje9", "number": "5.4.2:1", "link": "patterns.html#fls_fqkhhgushje9", "checksum": "ffb06275d46d70835ab2e118cff4b0071d02544ee94a260f428fd2b5533bed1c"}, {"id": "fls_m01eo9sa55s", "number": "5.4.2:2", "link": "patterns.html#fls_m01eo9sa55s", "checksum": "d04dcff15efbb13e790e1f78948bf446426570ec9618c3b921293adfc2012199"}, {"id": "fls_294jtwbfq3p9", "number": "5.4.2:3", "link": "patterns.html#fls_294jtwbfq3p9", "checksum": "fe6504c691ded75e993e4d66b216f7260d30ac52c0a60e35151af31c01905992"}], "informational": false}, {"id": "fls_5loglxds6zik", "number": "5.4.3", "title": "Parenthesized Pattern Matching", "link": "patterns.html#parenthesized-pattern-matching", "paragraphs": [{"id": "fls_jajvvwoy3399", "number": "5.4.3:1", "link": "patterns.html#fls_jajvvwoy3399", "checksum": "7f3d87f0e2bf7a6dc15e6e0bcda2506008be955f016459a792ea2b99d16bacbf"}], "informational": false}, {"id": "fls_d44aflefat88", "number": "5.4.4", "title": "Path Pattern Matching", "link": "patterns.html#path-pattern-matching", "paragraphs": [{"id": "fls_4faltss0xbn4", "number": "5.4.4:1", "link": "patterns.html#fls_4faltss0xbn4", "checksum": "b62c95bf3039a32f793c95cd983bcc5cd80b8faeb5d469cc963c3a487f437fae"}, {"id": "fls_fqt5w3qsykca", "number": "5.4.4:2", "link": "patterns.html#fls_fqt5w3qsykca", "checksum": "ee205e802f76cf743647cd0b8c7be7f9d118ea51ef62a9f8ccd237ee2a7c874c"}, {"id": "fls_h3y8r4298s53", "number": "5.4.4:3", "link": "patterns.html#fls_h3y8r4298s53", "checksum": "10a9ff549fbafbc317a299a46f8f61ed3ec121a3f1c97d94c1a3ae2aeee961f7"}], "informational": false}, {"id": "fls_fyskeih6twyb", "number": "5.4.5", "title": "Range Pattern Matching", "link": "patterns.html#range-pattern-matching", "paragraphs": [{"id": "fls_mrh9vfdek5fi", "number": "5.4.5:1", "link": "patterns.html#fls_mrh9vfdek5fi", "checksum": "74c808f389212d771098798db71f913b01fad773d198d3babf0a21ae6f4ce792"}, {"id": "fls_7nxkgls0a5os", "number": "5.4.5:2", "link": "patterns.html#fls_7nxkgls0a5os", "checksum": "4e77c3805f9c1fde39877a54a3b99be7582ff7dde64d6f8b033465fcfb625c8c"}, {"id": "fls_6kgj2fjccoig", "number": "5.4.5:3", "link": "patterns.html#fls_6kgj2fjccoig", "checksum": "fd8fba85c57e8cde11619040e0cf63b8bee10a4ad77a5a663655cf44f7527d00"}, {"id": "fls_n4t3xah1pk7i", "number": "5.4.5:4", "link": "patterns.html#fls_n4t3xah1pk7i", "checksum": "7ee404fd4fb97fe0f1daafdb86a76994a1056bc3cbc4571522f37b405f651572"}], "informational": false}, {"id": "fls_org6hqv397fp", "number": "5.4.6", "title": "Reference Pattern Matching", "link": "patterns.html#reference-pattern-matching", "paragraphs": [{"id": "fls_ysfgdzaiww8z", "number": "5.4.6:1", "link": "patterns.html#fls_ysfgdzaiww8z", "checksum": "b6dad8a8eb45a793423595800323ed5f357d864241174e7198f4101b4d5c9c9b"}, {"id": "fls_7rxnxd4ybxbt", "number": "5.4.6:2", "link": "patterns.html#fls_7rxnxd4ybxbt", "checksum": "9932447e7ad4cb062a332bea07f5eb902fa9f0482de8917d2a3bee05f86c2fdf"}, {"id": "fls_l2nwz166curc", "number": "5.4.6:3", "link": "patterns.html#fls_l2nwz166curc", "checksum": "b76bff46c3fb725fb95fd036da6eec2951e358e24662e16fe7a2b277948422eb"}], "informational": false}, {"id": "fls_57ic33pwdvp3", "number": "5.4.7", "title": "Slice Pattern Matching", "link": "patterns.html#slice-pattern-matching", "paragraphs": [{"id": "fls_hzyv4ofu0ny", "number": "5.4.7:1", "link": "patterns.html#fls_hzyv4ofu0ny", "checksum": "545a7b4ddaf1e7bfb2237db616a2cf9a24e53676e02591cec035c44ace0b0fd1"}, {"id": "fls_x10akxoxxbs8", "number": "5.4.7:2", "link": "patterns.html#fls_x10akxoxxbs8", "checksum": "a08c2a45fe77ae5f047f5e6cf64b8f743c4433b940e5f5fb0245051c079e7e8a"}, {"id": "fls_69bnxrtj0nar", "number": "5.4.7:3", "link": "patterns.html#fls_69bnxrtj0nar", "checksum": "00b9a97b9280c3716ddfa172c721a2bf0e2081a9fa912cffde3cda55d1197952"}, {"id": "fls_twhwiy213ibf", "number": "5.4.7:4", "link": "patterns.html#fls_twhwiy213ibf", "checksum": "c48b717f055594a928a658edaf02b1fabf8a096bdefdb3fbc8f24437462635da"}, {"id": "fls_ei7y4ul6n6hu", "number": "5.4.7:5", "link": "patterns.html#fls_ei7y4ul6n6hu", "checksum": "3f7ea24067807e7941333db26d088679f21fbd2c64a2407cf545ff6861841872"}, {"id": "fls_ad2jud5h1rfp", "number": "5.4.7:6", "link": "patterns.html#fls_ad2jud5h1rfp", "checksum": "4925bc389627a9c0258c8b5aa732c62f27ea3c62e2b3c0bbfd6e8f9c1350920e"}, {"id": "fls_pc97m47p34wq", "number": "5.4.7:7", "link": "patterns.html#fls_pc97m47p34wq", "checksum": "0a3498e1551afa3c7f492391c8187746fccf5ebb43ae48f55741d4dd39aaceab"}, {"id": "fls_kwqyisoyawz8", "number": "5.4.7:8", "link": "patterns.html#fls_kwqyisoyawz8", "checksum": "ff3c524edac17baef16b63f1da2eead531f9c065f671838de8c437b87e87f859"}, {"id": "fls_zadtysiuuwbx", "number": "5.4.7:9", "link": "patterns.html#fls_zadtysiuuwbx", "checksum": "624d69de485ef8707d6d98a26dcdfd92081861894d0c06dba07882fe19de3ee2"}, {"id": "fls_sezcyxcsleq7", "number": "5.4.7:10", "link": "patterns.html#fls_sezcyxcsleq7", "checksum": "8f94a20f9d18e18084cc5e7931d668de6254cce6b14813fce2f2a16d4a699598"}, {"id": "fls_6xrxet2pgnzi", "number": "5.4.7:11", "link": "patterns.html#fls_6xrxet2pgnzi", "checksum": "f14008365b9b2173763090e4ac8e371acae7932276efa64dd5c4bef234a9b625"}], "informational": false}, {"id": "fls_asj8rgccvkoe", "number": "5.4.8", "title": "Record Struct Pattern Matching", "link": "patterns.html#record-struct-pattern-matching", "paragraphs": [{"id": "fls_evuhau2rwm8i", "number": "5.4.8:1", "link": "patterns.html#fls_evuhau2rwm8i", "checksum": "a64d7a8315d7d5f47ec10463a26465d1b20225bc5c426030b5af68285a662722"}, {"id": "fls_bde1hpvrosui", "number": "5.4.8:2", "link": "patterns.html#fls_bde1hpvrosui", "checksum": "202123ed4c141cd00114f671cc7b4a9caaafd86ff150c865e93c8e9dad4257fc"}, {"id": "fls_447s4hc07ozn", "number": "5.4.8:3", "link": "patterns.html#fls_447s4hc07ozn", "checksum": "d0da6696f0030559710cd9ee013efb4dbfb95b1df235fe5f469bfcd2d24034c4"}, {"id": "fls_vfdb1i5l41yk", "number": "5.4.8:4", "link": "patterns.html#fls_vfdb1i5l41yk", "checksum": "b11dc2c5dfcaf758c45e4029e582f72a53c74e7c2c98575fb2b7461ae1e7d805"}, {"id": "fls_yfk52fr7trw3", "number": "5.4.8:5", "link": "patterns.html#fls_yfk52fr7trw3", "checksum": "36081581a365a6503d56139e07b8e1749757cf878634d805e84663d3172cb005"}, {"id": "fls_6sdcykdrpe5d", "number": "5.4.8:6", "link": "patterns.html#fls_6sdcykdrpe5d", "checksum": "8b8f1725d0cf2ef6489bd548eec9d59fab537eca1f33a509f8141751325cba76"}], "informational": false}, {"id": "fls_eexupzdsu7f", "number": "5.4.9", "title": "Tuple Struct Pattern Matching", "link": "patterns.html#tuple-struct-pattern-matching", "paragraphs": [{"id": "fls_dexg9g9cct30", "number": "5.4.9:1", "link": "patterns.html#fls_dexg9g9cct30", "checksum": "ed45c176d905341bee988af8640b3011dd6a97d9c8fe53b45410925a79d5e056"}, {"id": "fls_boc7juqj69hw", "number": "5.4.9:2", "link": "patterns.html#fls_boc7juqj69hw", "checksum": "03c31f4e25eebbe78169c4bc173609effc1e8269dfe4f263b29363409e316dab"}, {"id": "fls_4dr1stiw82v9", "number": "5.4.9:3", "link": "patterns.html#fls_4dr1stiw82v9", "checksum": "6b75afdc8b9b09fcd7df94b0c730c87e30d4bb2de200714adf3a08575e90a90a"}, {"id": "fls_h14emtt6iyk3", "number": "5.4.9:4", "link": "patterns.html#fls_h14emtt6iyk3", "checksum": "13343ca1b2a108f58c91e7fcdb4c9e4c975f5fa11d841db4951a8883a4bcc7d5"}], "informational": false}, {"id": "fls_rce8bb7nz2jy", "number": "5.4.10", "title": "Tuple Pattern Matching", "link": "patterns.html#tuple-pattern-matching", "paragraphs": [{"id": "fls_w4xypnrnhycb", "number": "5.4.10:1", "link": "patterns.html#fls_w4xypnrnhycb", "checksum": "746ffe5085ba7cfbb59d3c44688b6f8584fa574128327bb37f2f051173efb07d"}, {"id": "fls_vnx1bpval595", "number": "5.4.10:2", "link": "patterns.html#fls_vnx1bpval595", "checksum": "5f1c0e7fad583c2e4331c5805f1dbf89717118d493a01549a42dfeaa3f0279ca"}, {"id": "fls_dzf32f40y7fr", "number": "5.4.10:3", "link": "patterns.html#fls_dzf32f40y7fr", "checksum": "e86a7e2ae632d8ce6ffaeb404902846bb48e160aab297c2c2652d9b985f7982e"}, {"id": "fls_krl32txvxxkz", "number": "5.4.10:4", "link": "patterns.html#fls_krl32txvxxkz", "checksum": "37eed365431808077ba3f82d504515f343520002fd244c7649305e39f6c96d7e"}], "informational": false}, {"id": "fls_yc4xm4hrfyw7", "number": "5.4.11", "title": "Underscore Pattern Matching", "link": "patterns.html#underscore-pattern-matching", "paragraphs": [{"id": "fls_dvk7r1gf7pwp", "number": "5.4.11:1", "link": "patterns.html#fls_dvk7r1gf7pwp", "checksum": "b9ccebce07421997dfd958ff40f0aef3a1b9e546fb3bcf0c2cefe7fbfdd64d01"}, {"id": "fls_e0uprihqn1y6", "number": "5.4.11:2", "link": "patterns.html#fls_e0uprihqn1y6", "checksum": "33c34bf81e9f7a3651a3718b8ab5b88c0ba416ea85e283b4fbd4a7e30e78b48a"}, {"id": "fls_ljcq2vyo052q", "number": "5.4.11:3", "link": "patterns.html#fls_ljcq2vyo052q", "checksum": "8e3a3ff978133c3bfffe09986eace47f5b4afb21f6c71af39fd93f4f27ad2860"}], "informational": false}], "informational": false}, {"title": "Program Structure and Compilation", "link": "program-structure-and-compilation.html", "sections": [{"id": "fls_hdwwrsyunir", "number": "18", "title": "Program Structure and Compilation", "link": "program-structure-and-compilation.html", "paragraphs": [], "informational": false}, {"id": "fls_s35hob3i7lr", "number": "18.1", "title": "Source Files", "link": "program-structure-and-compilation.html#source-files", "paragraphs": [{"id": "fls_4vicosdeaqmp", "number": "18.1:1", "link": "program-structure-and-compilation.html#fls_4vicosdeaqmp", "checksum": "55f6d3282e08235092b6157374cbc8fad302ec5965229b94dca69fbf5a239934"}, {"id": "fls_ann3cha1xpek", "number": "18.1:2", "link": "program-structure-and-compilation.html#fls_ann3cha1xpek", "checksum": "7555cb7065456e8c9abbac7b69fc1d5e7a6e631762739806e629635a718a19ac"}], "informational": false}, {"id": "fls_e9hwvqsib5d5", "number": "18.2", "title": "Modules", "link": "program-structure-and-compilation.html#modules", "paragraphs": [{"id": "fls_odd1hj3y1mgu", "number": "18.2:1", "link": "program-structure-and-compilation.html#fls_odd1hj3y1mgu", "checksum": "ec4163446ba1d6053faea2c9be55ae44b49f9e489b2fb4266106708fe16bdda3"}, {"id": "fls_whgv72emrm47", "number": "18.2:2", "link": "program-structure-and-compilation.html#fls_whgv72emrm47", "checksum": "43876d9ff9e824879a24c72af81dd273e69c3a6f6646e9c7751272942fec04b9"}, {"id": "fls_qypjjpcf8uwq", "number": "18.2:3", "link": "program-structure-and-compilation.html#fls_qypjjpcf8uwq", "checksum": "1233b4977ef4e5fd6c5969530904ff70690f361cc5fccddbf8952e1cc7d299f8"}, {"id": "fls_cavwpr1ybk37", "number": "18.2:4", "link": "program-structure-and-compilation.html#fls_cavwpr1ybk37", "checksum": "f54b92d3867600666f831b9a1ca07de6acba61ac72937335bd0451a3de4cbb27"}, {"id": "fls_plepew2319g4", "number": "18.2:5", "link": "program-structure-and-compilation.html#fls_plepew2319g4", "checksum": "ddcd4deef3d419dcbf8b2c18aaa5d8bb453229bce34e4d7180d9e8f93d2bf303"}, {"id": "fls_1aruwps62c4p", "number": "18.2:6", "link": "program-structure-and-compilation.html#fls_1aruwps62c4p", "checksum": "fa07c91c0b0de63411270c072bdc923db3f1db860082d3eddad31ca6eed189c5"}], "informational": false}, {"id": "fls_maw4u1o8q37u", "number": "18.3", "title": "Crates", "link": "program-structure-and-compilation.html#crates", "paragraphs": [{"id": "fls_qwghk79ok5h0", "number": "18.3:1", "link": "program-structure-and-compilation.html#fls_qwghk79ok5h0", "checksum": "c64331512493388d716b5e98082811475682dcffee41348b82483eb48cd91fc5"}, {"id": "fls_9ub6ks8qrang", "number": "18.3:2", "link": "program-structure-and-compilation.html#fls_9ub6ks8qrang", "checksum": "a6fb6914ba7b4eb15927a700f8807dc472322bdd250e0bf7d0651861d8f533d7"}, {"id": "fls_d9nn4yuiw1ja", "number": "18.3:3", "link": "program-structure-and-compilation.html#fls_d9nn4yuiw1ja", "checksum": "5ac27b3cd3ea1dfc7dc3f49e598adc90192ce80d0ed32afdd344789524db1dc0"}, {"id": "fls_mf62vqahoz3c", "number": "18.3:4", "link": "program-structure-and-compilation.html#fls_mf62vqahoz3c", "checksum": "70f4de38c7e4be7d2cf02f89023684e7d042ecc57c81e178147630244368220a"}, {"id": "fls_cxlycjs9t3mj", "number": "18.3:5", "link": "program-structure-and-compilation.html#fls_cxlycjs9t3mj", "checksum": "24cfe75773c77d73d1f5bb3607265ec98dccb02854a636db3ff8b96cacc593cd"}, {"id": "fls_h93c3wfbaoz1", "number": "18.3:6", "link": "program-structure-and-compilation.html#fls_h93c3wfbaoz1", "checksum": "7285d85fe56e6377849b918e1d006071c4bb14a18476290ddc8cce3adcc11a30"}], "informational": false}, {"id": "fls_gklst7joeo33", "number": "18.4", "title": "Crate Imports", "link": "program-structure-and-compilation.html#crate-imports", "paragraphs": [{"id": "fls_d0pa807s5d5h", "number": "18.4:1", "link": "program-structure-and-compilation.html#fls_d0pa807s5d5h", "checksum": "dbf3d3e47ad3d7220f2ffe8d071ff0607474ea6e8f4c3edd18a553ed36509d07"}, {"id": "fls_vfam3wzeaiah", "number": "18.4:2", "link": "program-structure-and-compilation.html#fls_vfam3wzeaiah", "checksum": "fc37a08d96af01fa9eddc305c921ac70c13dabc6a3a41c58f09f74622cc29075"}, {"id": "fls_ft860vkz0lkc", "number": "18.4:3", "link": "program-structure-and-compilation.html#fls_ft860vkz0lkc", "checksum": "c98120af9e1e4f6ac518733e42a91af54ae118579dc4ea7355c255e9b3e077e7"}, {"id": "fls_k90qtnf8kgu1", "number": "18.4:4", "link": "program-structure-and-compilation.html#fls_k90qtnf8kgu1", "checksum": "662c29b5a73d3fc1aa97c39557c1a8401d2f480bba1ec488dba0c4bf1833fed3"}, {"id": "fls_siv8bl6s2ndu", "number": "18.4:5", "link": "program-structure-and-compilation.html#fls_siv8bl6s2ndu", "checksum": "294202b2babc6658a990fded4bd4d3b7339acad054913a48ad0243ba8a907189"}, {"id": "fls_7vz5n3x6jo1s", "number": "18.4:6", "link": "program-structure-and-compilation.html#fls_7vz5n3x6jo1s", "checksum": "0cecb1f1189c7f1a06d3c8d132b1e51f25548a0bf043f3ed3a93308b36f1506f"}, {"id": "fls_3bgpc8m8yk4p", "number": "18.4:7", "link": "program-structure-and-compilation.html#fls_3bgpc8m8yk4p", "checksum": "06a0e85326100e5036cbd423c273ca615cb80431541ea5e8806f3714ffb46193"}], "informational": false}, {"id": "fls_5w50kf83oo1u", "number": "18.5", "title": "Compilation Roots", "link": "program-structure-and-compilation.html#compilation-roots", "paragraphs": [{"id": "fls_fhiqvgdamq5", "number": "18.5:1", "link": "program-structure-and-compilation.html#fls_fhiqvgdamq5", "checksum": "3a9ce035689a8fb35cebf8668b6c24df7ee70eff17799938db3029dea0b1edf4"}, {"id": "fls_tk8tl2e0a34", "number": "18.5:2", "link": "program-structure-and-compilation.html#fls_tk8tl2e0a34", "checksum": "f870a40ce0c25e251e0e8856014efc6ad4611f1a28cdef8c9f460cfde2be372f"}, {"id": "fls_bsyfxdk3ap1t", "number": "18.5:3", "link": "program-structure-and-compilation.html#fls_bsyfxdk3ap1t", "checksum": "232503cded53dd7221dcff57d6ac1d42bde0b44a3d83a1af322de4c453e185fa"}], "informational": false}, {"id": "fls_u1afezy1ye99", "number": "18.6", "title": "Conditional Compilation", "link": "program-structure-and-compilation.html#conditional-compilation", "paragraphs": [{"id": "fls_9stc6nul6vq9", "number": "18.6:1", "link": "program-structure-and-compilation.html#fls_9stc6nul6vq9", "checksum": "1a29f8f4ec010a8c63819db415dfd3ccd84eaad03d75e2973e3fe3313e327406"}, {"id": "fls_a0u9nnaf6drz", "number": "18.6:2", "link": "program-structure-and-compilation.html#fls_a0u9nnaf6drz", "checksum": "b3978159779eed65918ef78768828461f8b34e7ba551de7a8c9048cac3b6edcc"}, {"id": "fls_pf1v89h7pjhh", "number": "18.6:3", "link": "program-structure-and-compilation.html#fls_pf1v89h7pjhh", "checksum": "547cdabd4f386341f56db0ee6332a762b67d119af87f9944ebe2697637857ef7"}, {"id": "fls_y56rgw3cbfex", "number": "18.6:4", "link": "program-structure-and-compilation.html#fls_y56rgw3cbfex", "checksum": "82d166eb360bad50b80bad46ce10a4d656966e94303a0fced35f59151561be1e"}, {"id": "fls_h6b1fuw4nvi1", "number": "18.6:5", "link": "program-structure-and-compilation.html#fls_h6b1fuw4nvi1", "checksum": "483be06af44f42bd953cf6480fb4ba9de360289eef475b6671f2fc106a97e109"}], "informational": false}], "informational": false}, {"title": "Statements", "link": "statements.html", "sections": [{"id": "fls_wdicg3sqa98e", "number": "8", "title": "Statements", "link": "statements.html", "paragraphs": [{"id": "fls_7zh6ziglo5iy", "number": "8:1", "link": "statements.html#fls_7zh6ziglo5iy", "checksum": "03f55779646bda5f8b813a0bda5a8000aaa7a3f7df2147c58d37a6a19d213825"}, {"id": "fls_kdxe1ukmgl1", "number": "8:2", "link": "statements.html#fls_kdxe1ukmgl1", "checksum": "857eb6f6081f30de98150db89a25a25467c0e180b1c3eb19f2786475a5a6e424"}, {"id": "fls_fftdnwe22xrb", "number": "8:3", "link": "statements.html#fls_fftdnwe22xrb", "checksum": "1ea74f2f77df136dd43cf45552f12fb2f6c366bcf10505917c84e5c9f9fd5fd8"}, {"id": "fls_or125cqtxg9j", "number": "8:4", "link": "statements.html#fls_or125cqtxg9j", "checksum": "36cd13cda4653f00db550d04d91838c3dc10bfcbbf15d67f8ba19c0d5ddc297b"}, {"id": "fls_estqu395zxgk", "number": "8:5", "link": "statements.html#fls_estqu395zxgk", "checksum": "82751916e76e8a528dd974fcf8f394553a002d42480c43ef8ca7bd23dec0d51a"}, {"id": "fls_dl763ssb54q1", "number": "8:6", "link": "statements.html#fls_dl763ssb54q1", "checksum": "085c0b250339d5488037ef839a9f6dd3672026ab75232f7a43c422bca728726c"}], "informational": false}, {"id": "fls_yivm43r5wnp1", "number": "8.1", "title": "Let Statements", "link": "statements.html#let-statements", "paragraphs": [{"id": "fls_ct7pp7jnfr86", "number": "8.1:1", "link": "statements.html#fls_ct7pp7jnfr86", "checksum": "fa270e107510c6e1cbbd96841a51e304e617eb94f030aaa20c17913ff260d725"}, {"id": "fls_sr3digr5k0kq", "number": "8.1:2", "link": "statements.html#fls_sr3digr5k0kq", "checksum": "d10976aa00e76b2bd9ae4e6118e2bb91d70d4093d2416f3c38179f5e2786f112"}, {"id": "fls_iqar7vvtw22c", "number": "8.1:3", "link": "statements.html#fls_iqar7vvtw22c", "checksum": "be1f15f55c52d38164795fc8324e4f7a5b3ca997e5de0de3c0c4ebe283e2d68e"}, {"id": "fls_ib25befys0j8", "number": "8.1:4", "link": "statements.html#fls_ib25befys0j8", "checksum": "925e4f38b1fdb1037706134fa36069b0e1bf99946535bcf9436afefb7f125751"}, {"id": "fls_zobyldya4dyc", "number": "8.1:5", "link": "statements.html#fls_zobyldya4dyc", "checksum": "26ae7688e4cf12ac86f435a74e0d59c024f99d84becc12e274a1113707e5bcdf"}, {"id": "fls_r38txwkqpjxv", "number": "8.1:6", "link": "statements.html#fls_r38txwkqpjxv", "checksum": "14989244832f8c7b3fd3884340df2f4df49e5f8442fe0aa7848cc011cb94a6f6"}, {"id": "fls_6qsdwf4pzjoe", "number": "8.1:7", "link": "statements.html#fls_6qsdwf4pzjoe", "checksum": "1635f6e94205f0755cc45a4da9f7272940034fa7496b94ccdff8a2284b0b8e38"}, {"id": "fls_1prqh1trybwz", "number": "8.1:8", "link": "statements.html#fls_1prqh1trybwz", "checksum": "6e23f656fcfe54a647a2278c5484a3fc80ed08112e18b6d4d6a5f11a8c2f6b5f"}, {"id": "fls_djkm8r2iuu6u", "number": "8.1:9", "link": "statements.html#fls_djkm8r2iuu6u", "checksum": "271df8c51d41c031901cb4d22bea984e6f6a8e260e878213b8ed7c580900eabc"}, {"id": "fls_ppj9gvhp8wcj", "number": "8.1:10", "link": "statements.html#fls_ppj9gvhp8wcj", "checksum": "5c3b2ab8a0b6d48dff5c50e3ca9743ba453c77aadcaa49d6a9485a5fc393c244"}, {"id": "fls_1ebqdzdbudsn", "number": "8.1:11", "link": "statements.html#fls_1ebqdzdbudsn", "checksum": "9fc5558523a5dc96084b645182a9748a4ea46e67b31afc2341107cee0b0121aa"}, {"id": "fls_m8a7gesa4oim", "number": "8.1:12", "link": "statements.html#fls_m8a7gesa4oim", "checksum": "99c4feb3265bf0e6b3a0c606397811171dba2b964d2471c4ccefa87af19ab501"}, {"id": "fls_oaxnre7m9s10", "number": "8.1:13", "link": "statements.html#fls_oaxnre7m9s10", "checksum": "ed71cf991f9a7542c7a7106e4754bb01cdd386dcf21b1c27e7f21519ac4a12cc"}, {"id": "fls_t5bjwluyv8za", "number": "8.1:14", "link": "statements.html#fls_t5bjwluyv8za", "checksum": "24c8c95a02e8ee0e3828c7b00c71b666881c4ac437e3c018d06b7d83ad58b70d"}, {"id": "fls_4j9riqyf4p9", "number": "8.1:15", "link": "statements.html#fls_4j9riqyf4p9", "checksum": "017c4fc4f03e296f8d96a0a62fc006c647bf0a9faaa94ad561061c93e9402928"}, {"id": "fls_t53g5hlabqw1", "number": "8.1:16", "link": "statements.html#fls_t53g5hlabqw1", "checksum": "ab96a34396479306ef71b507703ffdd2fe9dd68512c87538bc972ad910a8d508"}, {"id": "fls_7j4qlwg72ege", "number": "8.1:17", "link": "statements.html#fls_7j4qlwg72ege", "checksum": "3c6ccdcf4fec0d1389605503a83c401562b7c707fe92ad33814c8cd10b1d3b1e"}, {"id": "fls_ea9brfzjh8im", "number": "8.1:18", "link": "statements.html#fls_ea9brfzjh8im", "checksum": "14d436071a7dda876a858e8877ad564c71299dacb6239d9bff7ea3299d8d6a65"}], "informational": false}, {"id": "fls_1pg5ig740tg1", "number": "8.2", "title": "Expression Statements", "link": "statements.html#expression-statements", "paragraphs": [{"id": "fls_xmdj8uj7ixoe", "number": "8.2:1", "link": "statements.html#fls_xmdj8uj7ixoe", "checksum": "990f51f353986bd884828681d0f82474e27e8ff3042cd1c0b1908f048e7c7315"}, {"id": "fls_gzzmudc1hl6s", "number": "8.2:2", "link": "statements.html#fls_gzzmudc1hl6s", "checksum": "0c5f0f107d5b1e196ef1a3003b0eb3d235bc6cbebd98a9537e5a9caf9df0c146"}, {"id": "fls_kc99n8qrszxh", "number": "8.2:3", "link": "statements.html#fls_kc99n8qrszxh", "checksum": "28b62503095184fa5c0dc9898c27c50ecaeebfef606f663370bdcaefa1c68cea"}, {"id": "fls_r8poocwqaglf", "number": "8.2:4", "link": "statements.html#fls_r8poocwqaglf", "checksum": "f02ee18552936ea98c3764181f5651c46b54e5af37f3149b17bd6906ecb33556"}, {"id": "fls_88e6s3erk8tj", "number": "8.2:5", "link": "statements.html#fls_88e6s3erk8tj", "checksum": "cf7b0c182db5007a86bf5c05bdfb68e63de338e95ef2e377bafa1708a7c00738"}, {"id": "fls_4q90jb39apwr", "number": "8.2:6", "link": "statements.html#fls_4q90jb39apwr", "checksum": "fe5fb38b0a811437c9b5e6e9f70af727c9013f79573eee3673146cf030c660c4"}, {"id": "fls_xqtztcu8ibwq", "number": "8.2:7", "link": "statements.html#fls_xqtztcu8ibwq", "checksum": "737bef4656101e6322af305e26b7c23b0c56fe07e9b5404ed0fe6daff16a8d02"}, {"id": "fls_2p9xnt519nbw", "number": "8.2:8", "link": "statements.html#fls_2p9xnt519nbw", "checksum": "93c30bb9a1f379d6fce63a4b7aded720c5328d70432fdb6c05a7aa2312426a73"}], "informational": false}], "informational": false}, {"title": "Types and Traits", "link": "types-and-traits.html", "sections": [{"id": "fls_vgb6ev541b2r", "number": "4", "title": "Types and Traits", "link": "types-and-traits.html", "paragraphs": [], "informational": false}, {"id": "fls_kwsbxmqntrnl", "number": "4.1", "title": "Types", "link": "types-and-traits.html#types", "paragraphs": [{"id": "fls_4rhjpdu4zfqj", "number": "4.1:1", "link": "types-and-traits.html#fls_4rhjpdu4zfqj", "checksum": "0f3224c81474a43ebf7a037ebb226c3b28b450e79a50de818459bb6d93a03b4d"}, {"id": "fls_0yayknfrjkhg", "number": "4.1:2", "link": "types-and-traits.html#fls_0yayknfrjkhg", "checksum": "d7948a2adf90ff0fa015b4f90967c0801c9271d1aaf7f17e291db8a682522035"}], "informational": false}, {"id": "fls_963gsjp2jas2", "number": "4.2", "title": "Type Classification", "link": "types-and-traits.html#type-classification", "paragraphs": [{"id": "fls_c4xe3pkn0n3o", "number": "4.2:1", "link": "types-and-traits.html#fls_c4xe3pkn0n3o", "checksum": "23b6212015d6348a703cb5be2c0d3c0f812bfb0ece7139873025d578f50472c1"}, {"id": "fls_69zyas59o8ff", "number": "4.2:2", "link": "types-and-traits.html#fls_69zyas59o8ff", "checksum": "e9bace1e5151ffdeeff57cb5069120c81735b17734fa05f4c4075277f6e081ad"}, {"id": "fls_65hcyqizo1da", "number": "4.2:3", "link": "types-and-traits.html#fls_65hcyqizo1da", "checksum": "40842ff24d030ea0ccb5075ecd6ec1492cd9d9c98e960ed9563cfe03bb7e2487"}, {"id": "fls_zge99l49az8w", "number": "4.2:4", "link": "types-and-traits.html#fls_zge99l49az8w", "checksum": "cb6e139cbd46fe7899e08fd9f0c9a48a4bccedd925c0a7bcf78f8babca270948"}, {"id": "fls_vizoconv3ir", "number": "4.2:5", "link": "types-and-traits.html#fls_vizoconv3ir", "checksum": "e8e0cdfb96e0c3ecba3291745e9a1299586805ca7b8b0aecf19b7d32f235e8f7"}, {"id": "fls_ne6bgnh1eyrj", "number": "4.2:6", "link": "types-and-traits.html#fls_ne6bgnh1eyrj", "checksum": "25f59f09cdc29f543ccae977ee66e0ee9b0fee1d55202cfa983eabe4f00b16a3"}, {"id": "fls_jvj8l8366kl2", "number": "4.2:7", "link": "types-and-traits.html#fls_jvj8l8366kl2", "checksum": "00ac1f2e576d6d3d14dcb244d363bf14795ddfee222c420efa28a171c91598f2"}, {"id": "fls_eek1jn1rwjh9", "number": "4.2:8", "link": "types-and-traits.html#fls_eek1jn1rwjh9", "checksum": "65b9ca746467c1af24795a49cf507e5a0494d59801db4665214cf5d87fb169db"}, {"id": "fls_s0aduyvz4i7f", "number": "4.2:9", "link": "types-and-traits.html#fls_s0aduyvz4i7f", "checksum": "a23c0b697c2b2e686673f2956a5b9c81a3369d2a7897c67840ba014cc59c625d"}, {"id": "fls_zb5e79ai7w5i", "number": "4.2:10", "link": "types-and-traits.html#fls_zb5e79ai7w5i", "checksum": "b59affa079dfb0e436f28a313ff4e96d3831d765ff0063eb18342f6e749c79a7"}, {"id": "fls_yjp19vt46asy", "number": "4.2:11", "link": "types-and-traits.html#fls_yjp19vt46asy", "checksum": "4eb758fbe24b08d1aee74c97d4f8541b0dbcb444784a6569c21d17094fb49fb1"}, {"id": "fls_xflj5df6upc7", "number": "4.2:12", "link": "types-and-traits.html#fls_xflj5df6upc7", "checksum": "1e5dc2e803a63fd05b7dec479ef1d0add6eea160c45fe290772c02fd26bc89d9"}, {"id": "fls_u43jnp9jnw29", "number": "4.2:13", "link": "types-and-traits.html#fls_u43jnp9jnw29", "checksum": "b85bfd2e2cfc13a7fc78a87c008d62c82d235fb2d2d7e4d188df4acda7e8aac5"}, {"id": "fls_lric8bf631nw", "number": "4.2:14", "link": "types-and-traits.html#fls_lric8bf631nw", "checksum": "454e730423cb4d7f069989e61ff7aa256e85e03a5c1e7b29e64e627e192c47e1"}, {"id": "fls_98djh9avlqc0", "number": "4.2:15", "link": "types-and-traits.html#fls_98djh9avlqc0", "checksum": "e821be0746413ff9f5096aec87f2ce2d467ea6cb27fb68fa64c8a116c0207238"}, {"id": "fls_b3ymsm8dmo4", "number": "4.2:16", "link": "types-and-traits.html#fls_b3ymsm8dmo4", "checksum": "fe0aac8860ab0c5746c0c07b373e29983a82fc0ebd52f6dd2630ace413a9fabb"}, {"id": "fls_9x5atvhdq0j2", "number": "4.2:17", "link": "types-and-traits.html#fls_9x5atvhdq0j2", "checksum": "c36d1f9962298745f389857334fa11b8218d392e0116702a80ad091719503e13"}, {"id": "fls_n5rgqgnxk9to", "number": "4.2:18", "link": "types-and-traits.html#fls_n5rgqgnxk9to", "checksum": "e46c85f680edc5614a12b9207c497460b0042af968c92f40fa5ab637e14571a2"}, {"id": "fls_s7ndqc5sizdy", "number": "4.2:19", "link": "types-and-traits.html#fls_s7ndqc5sizdy", "checksum": "eaf6ddda440baca7044641c33a4f8d9d84b75648732ea1f9dc8bbb44641bbb7a"}, {"id": "fls_jrohsv7hx7yw", "number": "4.2:20", "link": "types-and-traits.html#fls_jrohsv7hx7yw", "checksum": "64386326aff45271fd69d938c23b27ac3d34103a3520b4b76a78cf860663636b"}, {"id": "fls_1kg1mknf4yx7", "number": "4.2:21", "link": "types-and-traits.html#fls_1kg1mknf4yx7", "checksum": "da5f5e5fcdb5726c1a0dabc99f8770f5e3fbae1459f5833ff33532110822caf6"}, {"id": "fls_bw8zutjcteki", "number": "4.2:22", "link": "types-and-traits.html#fls_bw8zutjcteki", "checksum": "22c62b9e8996f6fbd50fec2e75e53a84a790744792c0aa40834de29215569f84"}, {"id": "fls_nqezuc9u6wpn", "number": "4.2:23", "link": "types-and-traits.html#fls_nqezuc9u6wpn", "checksum": "b0d2ad5646194c0d8310df4d3333f7afb79755cea464d60a3fbda29273383ef6"}, {"id": "fls_lh52q6f6snfh", "number": "4.2:24", "link": "types-and-traits.html#fls_lh52q6f6snfh", "checksum": "f1a647d67b3a801d2ab2b7a315771e5d26e67d2662bb331181a88afa5c152bc1"}, {"id": "fls_qqg0uixrd1a4", "number": "4.2:25", "link": "types-and-traits.html#fls_qqg0uixrd1a4", "checksum": "9ca4aa25f308f26f33fb8ec4fe5dec350c1d8526c6675053e5be2719e863556f"}, {"id": "fls_b8ecqp2argmn", "number": "4.2:26", "link": "types-and-traits.html#fls_b8ecqp2argmn", "checksum": "d8cca7522f47f0479ce66bd850d2931ae4f7c4c1d4b198e4aad88f9b90a1ac07"}, {"id": "fls_m5vtcars8aga", "number": "4.2:27", "link": "types-and-traits.html#fls_m5vtcars8aga", "checksum": "21c1d49526e5ca8d23c874a230759bb497548ab543740fce1095850fdc4fcf63"}, {"id": "fls_lw38557rqikt", "number": "4.2:28", "link": "types-and-traits.html#fls_lw38557rqikt", "checksum": "753ab4b03e9c965a6fffd92d30e2769c5a63a344bfb1b7e76971ac8499be82d8"}, {"id": "fls_jxn63ow9xby3", "number": "4.2:29", "link": "types-and-traits.html#fls_jxn63ow9xby3", "checksum": "0dd8bcf2a274d471aaa36ab380441dd3b6ca39976303324ddd118e50013d02dd"}, {"id": "fls_a81tweobvm0p", "number": "4.2:30", "link": "types-and-traits.html#fls_a81tweobvm0p", "checksum": "1fa312839ea42e8a1bbcaecbc879efed22264c8ac233c6cfe5339ac2db24a2b3"}], "informational": true}, {"id": "fls_id66vnaqw0zt", "number": "4.3", "title": "Scalar Types", "link": "types-and-traits.html#scalar-types", "paragraphs": [], "informational": false}, {"id": "fls_tiqp1gxf116z", "number": "4.3.1", "title": "Bool Type", "link": "types-and-traits.html#bool-type", "paragraphs": [{"id": "fls_h5994su1yft3", "number": "4.3.1:1", "link": "types-and-traits.html#fls_h5994su1yft3", "checksum": "7c27f15ca1c523ef1db5071f2a63bedb21181cf04aa94d9878250ca53b434971"}, {"id": "fls_v8atmrwz6wzk", "number": "4.3.1:2", "link": "types-and-traits.html#fls_v8atmrwz6wzk", "checksum": "930adef3b1506fb337f66675f973e54769ff8fca1db32c838183ef22a2422029"}, {"id": "fls_iye7ho2ynyhn", "number": "4.3.1:3", "link": "types-and-traits.html#fls_iye7ho2ynyhn", "checksum": "9858c13d3708357c30873cd608d2b3383dcc3035f0dd687ef3896541dd1695fd"}, {"id": "fls_7nd5tixyqir8", "number": "4.3.1:4", "link": "types-and-traits.html#fls_7nd5tixyqir8", "checksum": "ac65b3d93d3994e5d0068317e02275db13c2c1913d48494bb2de79b24ec72eec"}, {"id": "fls_w2dzqq54fjhb", "number": "4.3.1:5", "link": "types-and-traits.html#fls_w2dzqq54fjhb", "checksum": "1d12935dda46819ad41ab1cb8f82b49105c7771bd832109bde39a210a366c23f"}, {"id": "fls_ufmd38hi9t9y", "number": "4.3.1:6", "link": "types-and-traits.html#fls_ufmd38hi9t9y", "checksum": "b94216bb8df77b4a82ab94c901933b3b6d6d065364960315dab51522e1c8c31e"}, {"id": "fls_5allcjkjnon2", "number": "4.3.1:7", "link": "types-and-traits.html#fls_5allcjkjnon2", "checksum": "99e00eb99e3b71db0f644227f19ee709ef82e2c6f386deaa36c2a399f7979685"}, {"id": "fls_3bibysz95ktn", "number": "4.3.1:8", "link": "types-and-traits.html#fls_3bibysz95ktn", "checksum": "09b53e4da86723e2bd2011d45d92331dab43e0172cfef5543bb7c74a77d1fc62"}, {"id": "fls_fxq19dqtmifj", "number": "4.3.1:9", "link": "types-and-traits.html#fls_fxq19dqtmifj", "checksum": "6cb77addba9281730832f2bbc4ddd2082c3530a2c17878646b47db6c10dd80cf"}, {"id": "fls_drhpcwoblcux", "number": "4.3.1:10", "link": "types-and-traits.html#fls_drhpcwoblcux", "checksum": "98f3e91912ee93fd291d169f31739e7c2c7b38d644d27336dfff508ebb7dfb99"}, {"id": "fls_v86qrsqcs3nd", "number": "4.3.1:11", "link": "types-and-traits.html#fls_v86qrsqcs3nd", "checksum": "8a7e7470fb69b8816a48fa5e95512a5456665e561c4134f050a155f985eca72b"}, {"id": "fls_dd49lb2k3erc", "number": "4.3.1:12", "link": "types-and-traits.html#fls_dd49lb2k3erc", "checksum": "1c7470e26077ea7a073dc2a1445c678484af7588bb3235586c9091f71603cc7e"}, {"id": "fls_t6ef5x4x5poi", "number": "4.3.1:13", "link": "types-and-traits.html#fls_t6ef5x4x5poi", "checksum": "32464bf4444f9dc7d6b1679119e45d5351fa00d79dea5e7ad487d3ddf76fc881"}, {"id": "fls_kqtgjgn1hqrj", "number": "4.3.1:14", "link": "types-and-traits.html#fls_kqtgjgn1hqrj", "checksum": "bd7ead8e9ea1b7683e87bfdc7788222d47c759c66c031ef374dda05805dbd6d3"}, {"id": "fls_ws15ilzf8n6z", "number": "4.3.1:15", "link": "types-and-traits.html#fls_ws15ilzf8n6z", "checksum": "9a544d8e0daca2681dbcfedf72121255fea14ab0944581480d57fba0890b95fe"}, {"id": "fls_ni4mgq3mouek", "number": "4.3.1:16", "link": "types-and-traits.html#fls_ni4mgq3mouek", "checksum": "f3145e61ced027d25036f3200ca5bbb0618bc0477cb9b3603a1413652b3ac917"}, {"id": "fls_6c9ax4qsr1gy", "number": "4.3.1:17", "link": "types-and-traits.html#fls_6c9ax4qsr1gy", "checksum": "ac4e3a21890e3221845618cc38dbace293fd0e68d017770aa5e7e78e2f5ab08e"}, {"id": "fls_sqcgvpr4egtx", "number": "4.3.1:18", "link": "types-and-traits.html#fls_sqcgvpr4egtx", "checksum": "2385dd82b0f0349c33f8b5af00d47e3440494e1faa8b63553050feb2a8459e67"}, {"id": "fls_9ys0itbp4okd", "number": "4.3.1:19", "link": "types-and-traits.html#fls_9ys0itbp4okd", "checksum": "441b5d0aa5e6c402c6beb7fde327f5827525511f230577ba7c6fe5a18d28539c"}, {"id": "fls_b46gbyid15zx", "number": "4.3.1:20", "link": "types-and-traits.html#fls_b46gbyid15zx", "checksum": "9480e4048cd08398ae0f13cb516a29613f3e742d3d99bc779578398b92272c24"}, {"id": "fls_f8ag276ecbze", "number": "4.3.1:21", "link": "types-and-traits.html#fls_f8ag276ecbze", "checksum": "166b43ef343f45896926b2fbb09d952a0c23d942c2a113f0860ffe979b8437b3"}, {"id": "fls_twwjcrcfirdi", "number": "4.3.1:22", "link": "types-and-traits.html#fls_twwjcrcfirdi", "checksum": "ca76c9fea33319ebf91566f9a4e1cadfeadce5282e098010c5ef67471d744f45"}, {"id": "fls_wovu7330vdrq", "number": "4.3.1:23", "link": "types-and-traits.html#fls_wovu7330vdrq", "checksum": "a2d98732aced3240075311e8a7738d2601f8a1e817a29a0b1d2d0ada3525abea"}, {"id": "fls_7xopdco6iy74", "number": "4.3.1:24", "link": "types-and-traits.html#fls_7xopdco6iy74", "checksum": "d3df0e58549b33e4a804eced95611bbf74505e40e62fb919b895a104ee2cdd93"}, {"id": "fls_nb5cb6en2p5w", "number": "4.3.1:25", "link": "types-and-traits.html#fls_nb5cb6en2p5w", "checksum": "5689110f0fe899e7c5dff9675885b2c735444de21ad35f3a1ba69dc76fb327b6"}, {"id": "fls_gd28wfcfs2pv", "number": "4.3.1:26", "link": "types-and-traits.html#fls_gd28wfcfs2pv", "checksum": "699e51364da08d56388376c014ee12beee95aeae6302a1234dc8c567774a82e4"}, {"id": "fls_67a7p57nzbul", "number": "4.3.1:27", "link": "types-and-traits.html#fls_67a7p57nzbul", "checksum": "1a3ae601414d01796aaf6b322e02874830121fe0ab9b9bf076606a5329772a19"}, {"id": "fls_cq0qunw51m94", "number": "4.3.1:28", "link": "types-and-traits.html#fls_cq0qunw51m94", "checksum": "581c5941548d5821d9a034095690bb3c131fc9ba9dffcc9a2e85aee1b8d8cd88"}, {"id": "fls_o1e4tnh7v3db", "number": "4.3.1:29", "link": "types-and-traits.html#fls_o1e4tnh7v3db", "checksum": "d2b050f0a32abdd45281470a08c3d6427a82b2db396f1dc7ff325370895077b6"}, {"id": "fls_6vnv3ygisjr", "number": "4.3.1:30", "link": "types-and-traits.html#fls_6vnv3ygisjr", "checksum": "2e6d782fc4fad2d1e3f018b424d77847ffab9b7df0a4aa34218e81df37554d42"}, {"id": "fls_s6m9abmmtc9i", "number": "4.3.1:31", "link": "types-and-traits.html#fls_s6m9abmmtc9i", "checksum": "b50023ba7c3a0f6e5d60727a63cc05db279f39c522363df22b0dd73fe324e5ff"}, {"id": "fls_s19vu65z96y5", "number": "4.3.1:32", "link": "types-and-traits.html#fls_s19vu65z96y5", "checksum": "3737ba54b255bd74767127bd9ba5b403b1b0aa6d139fffa616bf524ed612b7e0"}, {"id": "fls_2d4aqspw0wlt", "number": "4.3.1:33", "link": "types-and-traits.html#fls_2d4aqspw0wlt", "checksum": "cb35c3709e468c678e9fd298ff75cab85223c9b69520bb115ece6c07f023f163"}, {"id": "fls_msjo2zd67zn1", "number": "4.3.1:34", "link": "types-and-traits.html#fls_msjo2zd67zn1", "checksum": "d296305e4aa3dbcbb0a1effad25118ecc1395dc6b1b33bb86459f96b9531fd3e"}, {"id": "fls_w1oti03tm1y6", "number": "4.3.1:35", "link": "types-and-traits.html#fls_w1oti03tm1y6", "checksum": "1b458f804645a74fb0e0cc1aa355732c67172fd9e75c6ea28177303787c8e662"}, {"id": "fls_9gqd7eevbknt", "number": "4.3.1:36", "link": "types-and-traits.html#fls_9gqd7eevbknt", "checksum": "a86bf07935fb2c1b2bb4874fe3bcea6b86ba3cf8ed709399288fd302b122b3ef"}, {"id": "fls_r4o2rmhqg4br", "number": "4.3.1:37", "link": "types-and-traits.html#fls_r4o2rmhqg4br", "checksum": "a6a7931eaf2965dfdac9021f4d8a09873dfdc6abf5f148f661c3ec557f154dcd"}, {"id": "fls_1n7p6ij1dpm", "number": "4.3.1:38", "link": "types-and-traits.html#fls_1n7p6ij1dpm", "checksum": "b64f4f41ff39543e9a12b4c7c0a292db35c6c2a3b0ae33722cf7b5ec71852ce1"}, {"id": "fls_4x27kfiodb8", "number": "4.3.1:39", "link": "types-and-traits.html#fls_4x27kfiodb8", "checksum": "ed886b0d040a0415b87015806dc7a838d193bb1e227659410f6314a41feff113"}, {"id": "fls_me6bf9m2ypt", "number": "4.3.1:40", "link": "types-and-traits.html#fls_me6bf9m2ypt", "checksum": "865ad088e423aa6b12fff0c2f48ac1e92557389ec93b6582e7643d28c1707ed5"}, {"id": "fls_2j659ns8wop4", "number": "4.3.1:41", "link": "types-and-traits.html#fls_2j659ns8wop4", "checksum": "24889b443c8a3583df4a999169a461d56a81737c8776d003ea3e7968c2670737"}, {"id": "fls_d09l2rl0161l", "number": "4.3.1:42", "link": "types-and-traits.html#fls_d09l2rl0161l", "checksum": "7b78ae0a4fa328edf20bd1ee52ca050c8a7913beeafc6215a0e8f6cbbab2a236"}, {"id": "fls_2sd39mj05mb9", "number": "4.3.1:43", "link": "types-and-traits.html#fls_2sd39mj05mb9", "checksum": "938539d9e20602a05fe699126091fadcead0ba21c69cbe4a271eb3dc3c3ed250"}], "informational": false}, {"id": "fls_wrvjizrqf3po", "number": "4.3.2", "title": "Char Type", "link": "types-and-traits.html#char-type", "paragraphs": [{"id": "fls_vnwbs0exbwcn", "number": "4.3.2:1", "link": "types-and-traits.html#fls_vnwbs0exbwcn", "checksum": "de3e486bd6bfec35ccbc18c244a07b0400fb7afad866d64ad99471d9b5fb3d51"}, {"id": "fls_juysxea25owj", "number": "4.3.2:2", "link": "types-and-traits.html#fls_juysxea25owj", "checksum": "f9760034f4a5a74b8badb11d87b6f5ef432d7e91e80802425e89bbbbe5a20476"}], "informational": false}, {"id": "fls_qwljwqr07slp", "number": "4.3.3", "title": "Numeric Types", "link": "types-and-traits.html#numeric-types", "paragraphs": [], "informational": false}, {"id": "fls_b4xporvr64s", "number": "4.3.3.1", "title": "Floating Point Types", "link": "types-and-traits.html#floating-point-types", "paragraphs": [{"id": "fls_30yny2xb9b6b", "number": "4.3.3.1:1", "link": "types-and-traits.html#fls_30yny2xb9b6b", "checksum": "9f2ef3098e38ced762fc72ca6a4bc1dec698a33084b9c778e96312d3ffe46bf1"}, {"id": "fls_yqflrq9s6p6n", "number": "4.3.3.1:2", "link": "types-and-traits.html#fls_yqflrq9s6p6n", "checksum": "cec08d9131666b39b8d3688a587aa88db5e36d49b4c55c6fa925a6d90e9338b8"}], "informational": false}, {"id": "fls_3qnpv2z7yjil", "number": "4.3.3.2", "title": "Integer Types", "link": "types-and-traits.html#integer-types", "paragraphs": [{"id": "fls_cokwseo3nnr", "number": "4.3.3.2:1", "link": "types-and-traits.html#fls_cokwseo3nnr", "checksum": "c91bb9a77a65e19d420bace1cde89e8b2bd3a6b0a5554c2e2d6c5d4b2b8a6a45"}, {"id": "fls_vk1skn6ek36u", "number": "4.3.3.2:2", "link": "types-and-traits.html#fls_vk1skn6ek36u", "checksum": "49357a257118ef34e9a0f670c27a41b0d29de7f40242b56aed6fcbd777d0759b"}, {"id": "fls_iikexw8ps6mk", "number": "4.3.3.2:3", "link": "types-and-traits.html#fls_iikexw8ps6mk", "checksum": "78b32c0312f4dd50cbc257f858487dcb75f68d6bdf006abab97290c56ce8d417"}, {"id": "fls_cavasxxlgs7g", "number": "4.3.3.2:4", "link": "types-and-traits.html#fls_cavasxxlgs7g", "checksum": "b24ffd36ee78bac00ba6eef084b0bbaf5b5915c937f0c8172e3068776977c8c1"}, {"id": "fls_7sx92xsjx3pl", "number": "4.3.3.2:5", "link": "types-and-traits.html#fls_7sx92xsjx3pl", "checksum": "9ad8b2b92eaa9597eb9af4e33da92fe59cbffaa97c890e6086435f557e43fb50"}, {"id": "fls_q9f95uet7gq4", "number": "4.3.3.2:6", "link": "types-and-traits.html#fls_q9f95uet7gq4", "checksum": "b1e3f5d5efc7e3aacb83d9a6a8f313f9e28d458979266baee253365b8454376a"}, {"id": "fls_yjb3kzijd19v", "number": "4.3.3.2:7", "link": "types-and-traits.html#fls_yjb3kzijd19v", "checksum": "a9f676afe50447b4889e6b3ba228a3314e819d297389ab57b60c289c43192d76"}, {"id": "fls_75lntwhg20l", "number": "4.3.3.2:8", "link": "types-and-traits.html#fls_75lntwhg20l", "checksum": "278b33ab9e405eba53e40103ea42d106398186c9d15ba8ee1995c7a728b563d3"}, {"id": "fls_p2shoji3xg5a", "number": "4.3.3.2:9", "link": "types-and-traits.html#fls_p2shoji3xg5a", "checksum": "9dec417eca723a851afba4b1fbf40615b81b0b680eaadd85d45cecd136fda1a3"}, {"id": "fls_fsyt05u9y4sl", "number": "4.3.3.2:10", "link": "types-and-traits.html#fls_fsyt05u9y4sl", "checksum": "b4b087216df02d090a94bd841759e6bcd8283ef3c137cfe09f138ae17ddd5071"}, {"id": "fls_p9ffvtajr832", "number": "4.3.3.2:11", "link": "types-and-traits.html#fls_p9ffvtajr832", "checksum": "f3bf5c08e43865c62017a10e1b7306084527a18b37767d4c100314a6e0c1c2f6"}, {"id": "fls_j6xan9f8udw7", "number": "4.3.3.2:12", "link": "types-and-traits.html#fls_j6xan9f8udw7", "checksum": "ec17bdab7274d1767c59acd310b20c0c01f2da8a8b7716c404d17f1cc07484ba"}, {"id": "fls_4t39p3ibkzu7", "number": "4.3.3.2:13", "link": "types-and-traits.html#fls_4t39p3ibkzu7", "checksum": "fd5107a41862e15e8bf69245f1ca0a14bd39123490c3f4b6af8e4a980f4ec4ea"}, {"id": "fls_egfoxke0lzje", "number": "4.3.3.2:14", "link": "types-and-traits.html#fls_egfoxke0lzje", "checksum": "3c6952dc4550a4388ae5861a5f0f6e10a791a23bc1f697d783dbac6b3281a6ec"}, {"id": "fls_4c4qpel1tbqs", "number": "4.3.3.2:15", "link": "types-and-traits.html#fls_4c4qpel1tbqs", "checksum": "27d4b5e93c8a23fea7497ff03639ed73f72387be79afe5bb2ef004898a152b78"}, {"id": "fls_t9oyfmgqka6u", "number": "4.3.3.2:16", "link": "types-and-traits.html#fls_t9oyfmgqka6u", "checksum": "adc4ea56adb80d9c82a72320b251471c3e69a20eb1fca729a0ba24c65f115ede"}], "informational": false}, {"id": "fls_fbchw64p6n2x", "number": "4.4", "title": "Sequence Types", "link": "types-and-traits.html#sequence-types", "paragraphs": [], "informational": false}, {"id": "fls_uj0kpjwyld60", "number": "4.4.1", "title": "Array Types", "link": "types-and-traits.html#array-types", "paragraphs": [{"id": "fls_fx7b3qv3ghca", "number": "4.4.1:1", "link": "types-and-traits.html#fls_fx7b3qv3ghca", "checksum": "a0e28c81206aaca44d668b56c00cdb06b2afcb1957637817f895be1919625591"}, {"id": "fls_pkts1p2dnxo", "number": "4.4.1:2", "link": "types-and-traits.html#fls_pkts1p2dnxo", "checksum": "3842e56226791bfaa21a704608441353c9476f08a8ad83197c785ec4b705b6f6"}, {"id": "fls_imr2jx6cbuzq", "number": "4.4.1:3", "link": "types-and-traits.html#fls_imr2jx6cbuzq", "checksum": "a35f25747728747c44c65bc742d89871b9d8fe529451364d18b141b6ef1d5512"}, {"id": "fls_r8nqxry2dlww", "number": "4.4.1:4", "link": "types-and-traits.html#fls_r8nqxry2dlww", "checksum": "101671326f28fb3bee73ae610842cfdd0b7e1f09d04855a7041d29d72688b48d"}, {"id": "fls_9vjijqi9w8wn", "number": "4.4.1:5", "link": "types-and-traits.html#fls_9vjijqi9w8wn", "checksum": "c944934ba19e6c4ebe12cd9453b9f0747ab302ecb654be487cbd6b29567cefc9"}], "informational": false}, {"id": "fls_vpbikb73dw4k", "number": "4.4.2", "title": "Slice Types", "link": "types-and-traits.html#slice-types", "paragraphs": [{"id": "fls_ftvua2hlvr08", "number": "4.4.2:1", "link": "types-and-traits.html#fls_ftvua2hlvr08", "checksum": "1dec4d96c2383bcd59d32a561f257ee89281b2f6079093fa3efe7c807374bfdc"}, {"id": "fls_acgtczhk8ci0", "number": "4.4.2:2", "link": "types-and-traits.html#fls_acgtczhk8ci0", "checksum": "c1765e314370989e27d28ca48d5189af4457e08b3395ee284192a5060a4dd3b7"}, {"id": "fls_5gl67ftc3m21", "number": "4.4.2:3", "link": "types-and-traits.html#fls_5gl67ftc3m21", "checksum": "fa8054851ecf8587aa441b48e5bc8cc1e660b60f0c0542b45df2390c5f7fcea4"}, {"id": "fls_nsny832ap4v1", "number": "4.4.2:4", "link": "types-and-traits.html#fls_nsny832ap4v1", "checksum": "12398a33d4062f70cdd542b837f7158f3015de99e28242ccb150779a45e440da"}], "informational": false}, {"id": "fls_4agmmu5al6gt", "number": "4.4.3", "title": "Str Type", "link": "types-and-traits.html#str-type", "paragraphs": [{"id": "fls_wlnoq1qoq2kr", "number": "4.4.3:1", "link": "types-and-traits.html#fls_wlnoq1qoq2kr", "checksum": "4741170fc77c3caa889d2b61c37ca8bf858103e8dfb471f5259bf3977733f2d3"}, {"id": "fls_1xa6fas6laha", "number": "4.4.3:2", "link": "types-and-traits.html#fls_1xa6fas6laha", "checksum": "b76cf1e29c346895c7a64d1ebecd1285879329d64c6a566ec2b62a40874a44bf"}, {"id": "fls_yu7r2077n9m7", "number": "4.4.3:3", "link": "types-and-traits.html#fls_yu7r2077n9m7", "checksum": "c7d00bb480fddeed611bf8a4b29accfc6ba24e9843f57af35f84b92b3d91af55"}, {"id": "fls_wacoqrtzvrwu", "number": "4.4.3:4", "link": "types-and-traits.html#fls_wacoqrtzvrwu", "checksum": "31fd188232e88dbd814ef19206f91c486077f1d7d40d1682c48152055d1131ee"}], "informational": false}, {"id": "fls_4ckl3n2ko3i4", "number": "4.4.4", "title": "Tuple Types", "link": "types-and-traits.html#tuple-types", "paragraphs": [{"id": "fls_bn7wmf681ngt", "number": "4.4.4:1", "link": "types-and-traits.html#fls_bn7wmf681ngt", "checksum": "0e048e80d2703d29c830283c91c9363981bcaef3c5713dc5917214cdc99e0a32"}, {"id": "fls_s9a36zsrfqew", "number": "4.4.4:2", "link": "types-and-traits.html#fls_s9a36zsrfqew", "checksum": "f90d6cbe2f05a1690b19b882378e0c5577f7f70fd8a6b6c0a9ec01d3c19d14b2"}], "informational": false}, {"id": "fls_wdec78luqh5b", "number": "4.5", "title": "Abstract Data Types", "link": "types-and-traits.html#abstract-data-types", "paragraphs": [], "informational": false}, {"id": "fls_szibmtfv117b", "number": "4.5.1", "title": "Enum Types", "link": "types-and-traits.html#enum-types", "paragraphs": [{"id": "fls_gbdd37seqoab", "number": "4.5.1:1", "link": "types-and-traits.html#fls_gbdd37seqoab", "checksum": "41a04bcc279a52fe4a0d644f08c7974945044713d151a621e622736caa79f834"}, {"id": "fls_il9a1olqmu38", "number": "4.5.1:2", "link": "types-and-traits.html#fls_il9a1olqmu38", "checksum": "6ec5fbcdfa7bc0e2e0fa597521d52d44f4cdb850f944944654faecd563781897"}, {"id": "fls_wqtfwl88vujq", "number": "4.5.1:3", "link": "types-and-traits.html#fls_wqtfwl88vujq", "checksum": "b933c4ceea18830211cb015864f5ffc6aa7466256320ccd3eaefe96a2ad46495"}, {"id": "fls_g5qle7xzaoif", "number": "4.5.1:4", "link": "types-and-traits.html#fls_g5qle7xzaoif", "checksum": "8fadd9f05034847f538c7ea8c1f61165df9bb4c87e711d4b4a4cfc7ea2d2aa76"}, {"id": "fls_hp5frc752dam", "number": "4.5.1:6", "link": "types-and-traits.html#fls_hp5frc752dam", "checksum": "dbf85d1dbaa9e65e9ee411a69098c8ff2c3a6b0a9372e68ed8ea0f1f7e0e87bc"}, {"id": "fls_pijczoq4k9ij", "number": "4.5.1:7", "link": "types-and-traits.html#fls_pijczoq4k9ij", "checksum": "d3209c56e335f945e3a200cfdae47cd6e4386e6a13052c36cd96cb27f665ee36"}, {"id": "fls_x7nh42on06bg", "number": "4.5.1:8", "link": "types-and-traits.html#fls_x7nh42on06bg", "checksum": "2a4978216847213cc9cc89c486697babf78f3a02b2df4a408a19dc42fcd37c62"}, {"id": "fls_duqbzvpuehvv", "number": "4.5.1:9", "link": "types-and-traits.html#fls_duqbzvpuehvv", "checksum": "f7fc7e37e48e1d9beec7400be5000d3f97bbaf12e49da3f3db7b8478895128d1"}, {"id": "fls_ly183pj4fkgh", "number": "4.5.1:10", "link": "types-and-traits.html#fls_ly183pj4fkgh", "checksum": "9276d9aa4b9d2a7a1fb0208d0f4b3b20336b00b99e8f85483048116ed6672925"}, {"id": "fls_w7sggezgq9o4", "number": "4.5.1:11", "link": "types-and-traits.html#fls_w7sggezgq9o4", "checksum": "5d6b1172331de835223d74f329d2a086a76f5d59d89900a06cb5022f9e99e1c2"}, {"id": "fls_93l5o6qar5p2", "number": "4.5.1:12", "link": "types-and-traits.html#fls_93l5o6qar5p2", "checksum": "864ba312cb813aaa2c285d358764732ca53afa7b59f44b4a26e959f8ed5d1906"}, {"id": "fls_t36rk3wikq28", "number": "4.5.1:13", "link": "types-and-traits.html#fls_t36rk3wikq28", "checksum": "c34f5ea6b85e16a716ab014d804766dbd0f681269e22f5fb113072b3aac7b40a"}, {"id": "fls_8ajw5trd23wi", "number": "4.5.1:14", "link": "types-and-traits.html#fls_8ajw5trd23wi", "checksum": "788a386db9bca5ece0658ad379be6e9720a7502dacc604b6b7199c62d0600a86"}, {"id": "fls_w9xj26ej869w", "number": "4.5.1:15", "link": "types-and-traits.html#fls_w9xj26ej869w", "checksum": "0e045bf46b8ce2319bc906617e1284401c1431e818f333adc0a52da4a692a36f"}, {"id": "fls_wqbuof7kxsrg", "number": "4.5.1:16", "link": "types-and-traits.html#fls_wqbuof7kxsrg", "checksum": "b34358c9f5a38221a3128afbba7bcac38af1eb7ef2bfea390d1ddf04c523b76e"}, {"id": "fls_f046du2fkgr6", "number": "4.5.1:17", "link": "types-and-traits.html#fls_f046du2fkgr6", "checksum": "36a62c297e5ac360801a96f184401b9074a30dbdd36cc171b0c48cbb24144c7d"}], "informational": false}, {"id": "fls_9ucqbbd0s2yo", "number": "4.5.2", "title": "Struct Types", "link": "types-and-traits.html#struct-types", "paragraphs": [{"id": "fls_g1azfj548136", "number": "4.5.2:1", "link": "types-and-traits.html#fls_g1azfj548136", "checksum": "a39b4fadca9c6209a8eb00ee7b0ba2b4d03af79dbb8378379345c8836b5bc7a5"}, {"id": "fls_r885av95eivp", "number": "4.5.2:2", "link": "types-and-traits.html#fls_r885av95eivp", "checksum": "99627103e41c406457ad5ca125407339483d91f6d8d598e7da9524f857d3c7c1"}, {"id": "fls_auurdv1zvzb", "number": "4.5.2:3", "link": "types-and-traits.html#fls_auurdv1zvzb", "checksum": "ddd7e64188789d0613207e30279466396e9387d4c837a9a700715c38aae1c3cb"}, {"id": "fls_vce7w0904du5", "number": "4.5.2:4", "link": "types-and-traits.html#fls_vce7w0904du5", "checksum": "943e0f1a6572313a255e14bc95a0134edbbb021f031683bfb43b344ea0342979"}], "informational": false}, {"id": "fls_fmdn7n7s413d", "number": "4.5.3", "title": "Union Types", "link": "types-and-traits.html#union-types", "paragraphs": [{"id": "fls_nskmnzq95yqm", "number": "4.5.3:1", "link": "types-and-traits.html#fls_nskmnzq95yqm", "checksum": "5367bfc0baaa05cd86579ae2623abf07a4ae259cb95582431afbf551136ca939"}, {"id": "fls_1caus8ybmfli", "number": "4.5.3:2", "link": "types-and-traits.html#fls_1caus8ybmfli", "checksum": "92febc08b74e580a8eccc9d1233d135ee4e59041e9ad926ad857fd36d22ce44e"}, {"id": "fls_zjg2q6ljyxhy", "number": "4.5.3:3", "link": "types-and-traits.html#fls_zjg2q6ljyxhy", "checksum": "ab71eea2a3c33b3222811c295c4dc83aba111daba6b56f8fe94c3669bbf808b7"}, {"id": "fls_hltnhnzuahve", "number": "4.5.3:4", "link": "types-and-traits.html#fls_hltnhnzuahve", "checksum": "0ce4ccb5dd76241dbc1faba186867478c49bd6a850f7c9a71d95a3a7a4e406ad"}, {"id": "fls_jwgsckdtn13c", "number": "4.5.3:5", "link": "types-and-traits.html#fls_jwgsckdtn13c", "checksum": "8837c04fd5dbb01d08026d2cafaaafd8ab2287f60e984d4fb1792425c0089812"}, {"id": "fls_sxzknxozjxtc", "number": "4.5.3:6", "link": "types-and-traits.html#fls_sxzknxozjxtc", "checksum": "5959734aa5fddd303916db4c88648c4a0f7e216586b20e2ccc01f56a202afa58"}, {"id": "fls_vgnk01sxacnx", "number": "4.5.3:7", "link": "types-and-traits.html#fls_vgnk01sxacnx", "checksum": "f66f5248019636eefd0a3849d4710a419847eb4da4ffab3af715a08c5c7f4c02"}, {"id": "fls_bqhh3zhakjsu", "number": "4.5.3:8", "link": "types-and-traits.html#fls_bqhh3zhakjsu", "checksum": "686f435b04adf578310fab3434b24706f77b75b4b7c9a189b81799cd033a4244"}], "informational": false}, {"id": "fls_hbbek3z4wtcs", "number": "4.6", "title": "Function Types", "link": "types-and-traits.html#function-types", "paragraphs": [], "informational": false}, {"id": "fls_xd2oxlebhs14", "number": "4.6.1", "title": "Closure Types", "link": "types-and-traits.html#closure-types", "paragraphs": [{"id": "fls_bsykgnbatpmi", "number": "4.6.1:1", "link": "types-and-traits.html#fls_bsykgnbatpmi", "checksum": "a13570cc647e2fe3f7daa098e9b82168dd6556c25ddc1bfb7dc12f25e9eae54e"}, {"id": "fls_zfj4l8bigdg0", "number": "4.6.1:2", "link": "types-and-traits.html#fls_zfj4l8bigdg0", "checksum": "94c7fbe22c296aee3cf9ce06a1da0aac2dca927a95d394cc715b6fe61265f90e"}, {"id": "fls_bn0ueivujnqk", "number": "4.6.1:3", "link": "types-and-traits.html#fls_bn0ueivujnqk", "checksum": "6509cd4ac82ace29c2f9a29046a8fc164311d5de6ffc2956bb878dbbe701c889"}, {"id": "fls_u01kt5glbuz8", "number": "4.6.1:4", "link": "types-and-traits.html#fls_u01kt5glbuz8", "checksum": "494dee99ed22dbebd0d0ac76a1fa787b15f999f68855fefcdb9cd603d22489da"}, {"id": "fls_3jeootwe6ucu", "number": "4.6.1:5", "link": "types-and-traits.html#fls_3jeootwe6ucu", "checksum": "2a45235137530e81bb8f2281cf9deca9542bed2f95dd65858edb54f18e243164"}, {"id": "fls_63jqtyw0rz8c", "number": "4.6.1:6", "link": "types-and-traits.html#fls_63jqtyw0rz8c", "checksum": "3bd0fbff2aa919bc05fdb9a7a301baf9be62bfb0c6ebf65df45c88713582d37f"}, {"id": "fls_3c4g9njja5s5", "number": "4.6.1:7", "link": "types-and-traits.html#fls_3c4g9njja5s5", "checksum": "b0e41c86f561de826ef136c25682433aef7f5636c0352e3d8756137e1446ab27"}, {"id": "fls_2nuhy0ujgq18", "number": "4.6.1:8", "link": "types-and-traits.html#fls_2nuhy0ujgq18", "checksum": "db27fe1b97d6577e59cc0f00cdd1fab1ddfa6645da18b3a83e52010a01ff8caa"}, {"id": "fls_5jh07heok8sy", "number": "4.6.1:9", "link": "types-and-traits.html#fls_5jh07heok8sy", "checksum": "929a4c4a21afe2d35b50abb7d7250277785667e33d2692b7c52fa2b6eecd4608"}], "informational": false}, {"id": "fls_airvr79xkcag", "number": "4.6.2", "title": "Function Item Types", "link": "types-and-traits.html#function-item-types", "paragraphs": [{"id": "fls_t24iojx7yc23", "number": "4.6.2:1", "link": "types-and-traits.html#fls_t24iojx7yc23", "checksum": "ba8be95a7ac75beeb55990710d7b232e90aaefa46fbc965fc5ee97ff250687b1"}, {"id": "fls_sas3ahcshnrh", "number": "4.6.2:2", "link": "types-and-traits.html#fls_sas3ahcshnrh", "checksum": "6e4e49c145170caf512a89a36aab453064036bab3e47a5b7551d769810a454a8"}, {"id": "fls_liwnzwu1el1i", "number": "4.6.2:3", "link": "types-and-traits.html#fls_liwnzwu1el1i", "checksum": "1d99ab5849365bb230cbc4a782bb93bc919bb2f07c62b63a7f63b380e66ac908"}, {"id": "fls_e9x4f7qxvvjv", "number": "4.6.2:4", "link": "types-and-traits.html#fls_e9x4f7qxvvjv", "checksum": "d667ede8ab6893069841a33b2cf0e47b19b05d5fa2872b3bebec06b8852063d1"}, {"id": "fls_1941wid94hlg", "number": "4.6.2:5", "link": "types-and-traits.html#fls_1941wid94hlg", "checksum": "8acd4d89f0c821d4aa22815001aca5bc9e977dc1e2712743e735bcf6aed3c248"}], "informational": false}, {"id": "fls_3i4ou0dq64ny", "number": "4.7", "title": "Indirection Types", "link": "types-and-traits.html#indirection-types", "paragraphs": [], "informational": false}, {"id": "fls_xztr1kebz8bo", "number": "4.7.1", "title": "Function Pointer Types", "link": "types-and-traits.html#function-pointer-types", "paragraphs": [{"id": "fls_v2wrytr3t04h", "number": "4.7.1:1", "link": "types-and-traits.html#fls_v2wrytr3t04h", "checksum": "276ef1476e7ceccaf33821c0dfadd47de95e12defa884eb6eb9da1bcd89311d4"}, {"id": "fls_5dd7icjcl3nt", "number": "4.7.1:2", "link": "types-and-traits.html#fls_5dd7icjcl3nt", "checksum": "d51b172a0b8675c28c409e4d5ea5bce285ae17d936f4f4af0f5a80373b22ada7"}, {"id": "fls_b0smxrqqms1e", "number": "4.7.1:3", "link": "types-and-traits.html#fls_b0smxrqqms1e", "checksum": "2d95eda82b646831bce5a240ff70e298c0a039e3ac40cb6198cb334c8e980d60"}, {"id": "fls_hbn1l42xmr3h", "number": "4.7.1:4", "link": "types-and-traits.html#fls_hbn1l42xmr3h", "checksum": "4c515636546df76626dc2ce272596af3a6ef395d6dc61f52cf315cd82732ef87"}, {"id": "fls_g1iyvw7upbnh", "number": "4.7.1:5", "link": "types-and-traits.html#fls_g1iyvw7upbnh", "checksum": "4107a933398a84d0b8af66fd006db6a72808511b4af3e4c47b71b0dc795fc8f8"}, {"id": "fls_8gpvnjfvlyad", "number": "4.7.1:6", "link": "types-and-traits.html#fls_8gpvnjfvlyad", "checksum": "5860cccedbc0ac25984e9603b83f1259c4af97cecc8084f5c140164f6865c5e1"}, {"id": "fls_kci6yk0p8onn", "number": "4.7.1:7", "link": "types-and-traits.html#fls_kci6yk0p8onn", "checksum": "d2541a3280f1d894821db0f1648bbadb29e2c211db75fba997f3d2832ee527c4"}, {"id": "fls_52thmi9hnoks", "number": "4.7.1:8", "link": "types-and-traits.html#fls_52thmi9hnoks", "checksum": "3a43cc40eddf138b65ff58d01174bf0f377be62e4998881c0e34b316af1831fb"}], "informational": false}, {"id": "fls_ppd1xwve3tr7", "number": "4.7.2", "title": "Raw Pointer Types", "link": "types-and-traits.html#raw-pointer-types", "paragraphs": [{"id": "fls_rpbhr0xukbx9", "number": "4.7.2:1", "link": "types-and-traits.html#fls_rpbhr0xukbx9", "checksum": "1854f3b6844b0c2671dfc60d36c4b998358f29c120b234bec672c72aaed507cc"}, {"id": "fls_bywfgdaqcwfa", "number": "4.7.2:2", "link": "types-and-traits.html#fls_bywfgdaqcwfa", "checksum": "f69e8334863b9e2b7f3bf48725d48a8adf59c48c3dd802341bfd611dcc03d690"}, {"id": "fls_8uwffaszercs", "number": "4.7.2:3", "link": "types-and-traits.html#fls_8uwffaszercs", "checksum": "82bd1634fa77a9d6d3b725fb993892cad15fbe87ece6afe59b2f171f2a7721bf"}, {"id": "fls_hrum767l6dte", "number": "4.7.2:4", "link": "types-and-traits.html#fls_hrum767l6dte", "checksum": "6bfba3dbe307a3b99ae68a7d7ad6ee97648893f1aaa0a786262bff92bea33aa5"}, {"id": "fls_k6ues2936pjq", "number": "4.7.2:5", "link": "types-and-traits.html#fls_k6ues2936pjq", "checksum": "9a80943af437a0fd5e67c5bd656fadb3ce16e6d7b59218c8685ae1e0a2c4d9a4"}], "informational": false}, {"id": "fls_142vncdktbin", "number": "4.7.3", "title": "Reference Types", "link": "types-and-traits.html#reference-types", "paragraphs": [{"id": "fls_twhq24s8kchh", "number": "4.7.3:1", "link": "types-and-traits.html#fls_twhq24s8kchh", "checksum": "e9a8f32c3bfd274934e7c471016afe023d42728464a9c6ad6934f0738cf79a22"}, {"id": "fls_w4nba7whzfr2", "number": "4.7.3:2", "link": "types-and-traits.html#fls_w4nba7whzfr2", "checksum": "15503795396e6eb08752e159af664fcaf59c4c7eb0d754480fbef0251d74b28d"}, {"id": "fls_ie0avzljmxfm", "number": "4.7.3:3", "link": "types-and-traits.html#fls_ie0avzljmxfm", "checksum": "989727897539b6eef42387c5f240b13d4ab9aa9f269a111e510879ada1ae0960"}, {"id": "fls_15zdiqsm1q3p", "number": "4.7.3:4", "link": "types-and-traits.html#fls_15zdiqsm1q3p", "checksum": "fef244abbffea76d85673c8b768c80e3998096122c5887ffacd05a346939ff67"}, {"id": "fls_csdjfwczlzfd", "number": "4.7.3:5", "link": "types-and-traits.html#fls_csdjfwczlzfd", "checksum": "823004ffa0528651765ee5a2a23b26f7a33b4255a564f742c3923781a6b70102"}, {"id": "fls_guzuist7ucib", "number": "4.7.3:6", "link": "types-and-traits.html#fls_guzuist7ucib", "checksum": "19c8db7f4aaa3f7224c336d60e3c57d17ef21d93e5ececa9fbb1d09175936b0f"}, {"id": "fls_vaas9kns4zo6", "number": "4.7.3:7", "link": "types-and-traits.html#fls_vaas9kns4zo6", "checksum": "2784f42b85409ac61fe875e01d21162c086f0411280475dac703bf1a2ae98fc8"}, {"id": "fls_n6ffcms5pr0r", "number": "4.7.3:8", "link": "types-and-traits.html#fls_n6ffcms5pr0r", "checksum": "585dd4699fdeac3e280d38797a9c9f9565c4194543b3c1c048a0ef33913a5e66"}, {"id": "fls_ezh8aq6fmdvz", "number": "4.7.3:9", "link": "types-and-traits.html#fls_ezh8aq6fmdvz", "checksum": "fef35c5ee01a70578d0ee80139418ab1d555636b9d7a83d7cf5bcf38dc454153"}], "informational": false}, {"id": "fls_1ompd93w7c9f", "number": "4.8", "title": "Trait Types", "link": "types-and-traits.html#trait-types", "paragraphs": [], "informational": false}, {"id": "fls_3xqobbu7wfsf", "number": "4.8.1", "title": "Impl Trait Types", "link": "types-and-traits.html#impl-trait-types", "paragraphs": [{"id": "fls_a6zlvyxpgsew", "number": "4.8.1:1", "link": "types-and-traits.html#fls_a6zlvyxpgsew", "checksum": "9013893b3cd5acfa5451f4ad18860a989a9ad70cd891c50e846503ea7f274dcf"}, {"id": "fls_ieyqx5vzas2m", "number": "4.8.1:2", "link": "types-and-traits.html#fls_ieyqx5vzas2m", "checksum": "16cb713fd246c7e18f528a4ffd5338a0fbce00bff8b4aa68d64f137a4d38b4c1"}, {"id": "fls_ecjhei7ecwaj", "number": "4.8.1:3", "link": "types-and-traits.html#fls_ecjhei7ecwaj", "checksum": "0dc7132c60e97eae3fe8c4763fb5b0ee4e27b69d33014e5a64c902c25e992bba"}], "informational": false}, {"id": "fls_qa98qdi42orq", "number": "4.8.2", "title": "Trait Object Types", "link": "types-and-traits.html#trait-object-types", "paragraphs": [{"id": "fls_sgrvona1nb6h", "number": "4.8.2:1", "link": "types-and-traits.html#fls_sgrvona1nb6h", "checksum": "7e198679726fb24effe560d32f6ed44994be67d60bad4c175f3da2c84b40b0d9"}, {"id": "fls_9z8oleh0wdel", "number": "4.8.2:2", "link": "types-and-traits.html#fls_9z8oleh0wdel", "checksum": "3124f0bbb81e269149020178aaf1e90f668b07b973c22882933da2f505d2ecc5"}, {"id": "fls_s0oy2c8t4yz9", "number": "4.8.2:3", "link": "types-and-traits.html#fls_s0oy2c8t4yz9", "checksum": "6257637cc04d7a1e7f32788a155b69595ebd5872f7e7366b15a24bc0cb01c3ec"}, {"id": "fls_ccouug6b9ohu", "number": "4.8.2:4", "link": "types-and-traits.html#fls_ccouug6b9ohu", "checksum": "8afd9b150960eee9cad7ad77a00f4d78e50ae87ac73c9a1198b12f79aa8ff09e"}, {"id": "fls_88b9bmhra55f", "number": "4.8.2:5", "link": "types-and-traits.html#fls_88b9bmhra55f", "checksum": "80503a5bbbf247afc4589e84831bd9388ca01a63f6f99729d27e31db000127ad"}], "informational": false}, {"id": "fls_3pbipk8ki18d", "number": "4.9", "title": "Other Types", "link": "types-and-traits.html#other-types", "paragraphs": [], "informational": false}, {"id": "fls_s45k21yn4qur", "number": "4.9.1", "title": "Inferred Types", "link": "types-and-traits.html#inferred-types", "paragraphs": [{"id": "fls_xdtgr5toulpb", "number": "4.9.1:1", "link": "types-and-traits.html#fls_xdtgr5toulpb", "checksum": "45bfb5537d2e07e5037870981039b3817a257151920d49f5a8939e10ff7a0815"}, {"id": "fls_3abhsuaa8nas", "number": "4.9.1:2", "link": "types-and-traits.html#fls_3abhsuaa8nas", "checksum": "1d559796531e476dc3d85e19f7dc9e8b9e85dc14e75d7e22f7fd0d9cd3e0753c"}, {"id": "fls_hbxljhbhuohy", "number": "4.9.1:3", "link": "types-and-traits.html#fls_hbxljhbhuohy", "checksum": "a61fcb03ca3303b870d5a7bf9412d89fa8c8a999d7275efa89ada3e204974f57"}, {"id": "fls_vxlr9zcqiovy", "number": "4.9.1:4", "link": "types-and-traits.html#fls_vxlr9zcqiovy", "checksum": "f472521e59830a8a2807dd85f1821de685a14eda76e2e46a580818dcb6e86b8d"}, {"id": "fls_ge9vc8jxrl1n", "number": "4.9.1:5", "link": "types-and-traits.html#fls_ge9vc8jxrl1n", "checksum": "ea3bbe8655934a40bc687f54cf38d663ed640a043e0a93e57b63097ed7b378ec"}, {"id": "fls_ybyqjfami1q5", "number": "4.9.1:6", "link": "types-and-traits.html#fls_ybyqjfami1q5", "checksum": "1dd464889720d923a6efc632871acb0d7f1fa780fec361617485a85c8eaef334"}, {"id": "fls_9d8wbugmar1m", "number": "4.9.1:7", "link": "types-and-traits.html#fls_9d8wbugmar1m", "checksum": "8d410f326c8e233e5773842346d9f3d9783f75fad42585cb76ed490065470f5f"}], "informational": false}, {"id": "fls_xjcxbajhzp3d", "number": "4.9.2", "title": "Type Parameters", "link": "types-and-traits.html#type-parameters", "paragraphs": [{"id": "fls_dciivxghxdlo", "number": "4.9.2:1", "link": "types-and-traits.html#fls_dciivxghxdlo", "checksum": "e42bea781e368e51e6a841e48a716968a41dbbc44fbbebc2447280a69d1d25fb"}], "informational": false}, {"id": "fls_98lnexk53ru4", "number": "4.9.3", "title": "Never Type", "link": "types-and-traits.html#never-type", "paragraphs": [{"id": "fls_4u0v5uy95pyf", "number": "4.9.3:1", "link": "types-and-traits.html#fls_4u0v5uy95pyf", "checksum": "c2d4459a9d3124b6eb26bd54c1d0a2741f70e371c43c323dca07a05f424933ba"}, {"id": "fls_xmtc10qzw0ui", "number": "4.9.3:2", "link": "types-and-traits.html#fls_xmtc10qzw0ui", "checksum": "77b18aa146d69730f692da58a1c8e9a4953cad14ad3289ca106e7a071fc98a83"}, {"id": "fls_22e8quna7ed5", "number": "4.9.3:3", "link": "types-and-traits.html#fls_22e8quna7ed5", "checksum": "a31ec075c01c1bf5fe6b674ca2fa9dd54e2f8402cde5540b9faa80e0cb2b6d9a"}], "informational": false}, {"id": "fls_olbj67eyxz2k", "number": "4.9.4", "title": "Parenthesized Types", "link": "types-and-traits.html#parenthesized-types", "paragraphs": [{"id": "fls_1dvo1epstrdv", "number": "4.9.4:1", "link": "types-and-traits.html#fls_1dvo1epstrdv", "checksum": "676be38dcb5032a5b66c95c6e0c85e8d4f049bf01933b118a0967607b5fbbf6c"}], "informational": false}, {"id": "fls_kgvleup5mdhq", "number": "4.10", "title": "Type Aliases", "link": "types-and-traits.html#type-aliases", "paragraphs": [{"id": "fls_bibigic4jjad", "number": "4.10:1", "link": "types-and-traits.html#fls_bibigic4jjad", "checksum": "25fd89d90847d3d474a7da20e5aba2d29f31f8f7e17c2aeb98d2a62683b49efc"}, {"id": "fls_rosdkeck5ax2", "number": "4.10:2", "link": "types-and-traits.html#fls_rosdkeck5ax2", "checksum": "8ad56706cf3948a37e7738f416f5065e7f1335a2443524ff1c3ebea736ac75fa"}, {"id": "fls_drxl7u3etfp9", "number": "4.10:3", "link": "types-and-traits.html#fls_drxl7u3etfp9", "checksum": "9db2e47ca9bc68f63d03dab529165f2062950ff28398da808d41f83989833ac9"}], "informational": false}, {"id": "fls_7pby13muw48o", "number": "4.11", "title": "Representation", "link": "types-and-traits.html#representation", "paragraphs": [], "informational": false}, {"id": "fls_g1z6bpyjqxkz", "number": "4.11.1", "title": "Type Layout", "link": "types-and-traits.html#type-layout", "paragraphs": [{"id": "fls_kdbq02iguzgl", "number": "4.11.1:1", "link": "types-and-traits.html#fls_kdbq02iguzgl", "checksum": "ec574263a104f5220dbeec30e0118b25ac35e37d6a614ad3bc5cd6e58681532d"}, {"id": "fls_muxfn9soi47l", "number": "4.11.1:2", "link": "types-and-traits.html#fls_muxfn9soi47l", "checksum": "9fce4f034a0c87f5dc66db7b3e507d3b8d4ccadac4c182b83669e0c361da3f13"}, {"id": "fls_1pbwigq6f3ha", "number": "4.11.1:3", "link": "types-and-traits.html#fls_1pbwigq6f3ha", "checksum": "07e54228ecadbf143bd9829ea2af5cd942e05ae28f70c0bf04ece785266561b3"}, {"id": "fls_bk3nm2n47afu", "number": "4.11.1:4", "link": "types-and-traits.html#fls_bk3nm2n47afu", "checksum": "3d989ed20cee6bc9220874459a4ea548220f9e445447a73f0477590d4aaa0908"}, {"id": "fls_z3i758jshvhx", "number": "4.11.1:5", "link": "types-and-traits.html#fls_z3i758jshvhx", "checksum": "509cfea09ca67250d7134d86496da2f7ddccb10a30cc84e8fe0614e40a946388"}, {"id": "fls_uixe1ruv52be", "number": "4.11.1:6", "link": "types-and-traits.html#fls_uixe1ruv52be", "checksum": "955ca7ce99e58bbbb5f65e867911434aaa20ce3d4b5859af83963a91b4528556"}, {"id": "fls_7at60xlxm9u4", "number": "4.11.1:7", "link": "types-and-traits.html#fls_7at60xlxm9u4", "checksum": "596b59e14342649bfc88ebf54917a1503fc3ecb4de2d025b3df3a6048d0516ba"}, {"id": "fls_395247pkxv48", "number": "4.11.1:8", "link": "types-and-traits.html#fls_395247pkxv48", "checksum": "65566a896e699d4581061cbfa9881b61ebbce21a79ba3ae60cfebc267d506a43"}, {"id": "fls_tbe9sc75timc", "number": "4.11.1:9", "link": "types-and-traits.html#fls_tbe9sc75timc", "checksum": "ea4301cd4ad66803e16f0b4f0d2b5c2a336a7cf59a8a11148379d67b5d3371e0"}, {"id": "fls_7jaqx33re3hg", "number": "4.11.1:10", "link": "types-and-traits.html#fls_7jaqx33re3hg", "checksum": "16ddd66245cad2e311b9193a332f01ac5e3875c354baf1b3bebb93bc4dd430af"}, {"id": "fls_asys0iz6m0md", "number": "4.11.1:11", "link": "types-and-traits.html#fls_asys0iz6m0md", "checksum": "56149efe39f3ec896b5d41b41f82964eebe02b0be71a3cda53763e854c3559ed"}, {"id": "fls_wfv5vcxl2lc7", "number": "4.11.1:12", "link": "types-and-traits.html#fls_wfv5vcxl2lc7", "checksum": "711825cc745b9af39e7e4048a16c47f77125cf76d5cbe980e5ff38079d76320f"}, {"id": "fls_x8dfw50z9c", "number": "4.11.1:13", "link": "types-and-traits.html#fls_x8dfw50z9c", "checksum": "e999468acaca0c1905fc4050b53eecbc0ba5d19207fe6a97efd97bad0ba0f84e"}, {"id": "fls_nyxnnlwmt5gu", "number": "4.11.1:14", "link": "types-and-traits.html#fls_nyxnnlwmt5gu", "checksum": "4d8795302b12790cc45fa4ebd52923e953f775313a4540fe398a33d90911f943"}, {"id": "fls_lwmrljw9m0pb", "number": "4.11.1:15", "link": "types-and-traits.html#fls_lwmrljw9m0pb", "checksum": "0824d734bae0a452fabd30f7eebe1ce756436f484b63cb76f82a47710b2b2613"}, {"id": "fls_pzi6izljfv0f", "number": "4.11.1:16", "link": "types-and-traits.html#fls_pzi6izljfv0f", "checksum": "f3191b0a3434aec33dea3707cfa15d73aa4eed96e7edc9ef18c8d26970af27f2"}, {"id": "fls_7cjbxleo998q", "number": "4.11.1:17", "link": "types-and-traits.html#fls_7cjbxleo998q", "checksum": "b8f0794e107a5077c3c243a841267feca917797abb0af99397715c0652488ec7"}, {"id": "fls_veotnstzigw2", "number": "4.11.1:18", "link": "types-and-traits.html#fls_veotnstzigw2", "checksum": "93a93b729d2fc10096d6f3e153b0d420ed95d0a2c40e7b3766a6775b99f2d23b"}, {"id": "fls_nmoqk7jo1kzf", "number": "4.11.1:19", "link": "types-and-traits.html#fls_nmoqk7jo1kzf", "checksum": "b65cf13de25acfcffa5571a788c21ffc81a25f4caf34236efd82d429143e4f38"}, {"id": "fls_gd7wozpn2ecp", "number": "4.11.1:20", "link": "types-and-traits.html#fls_gd7wozpn2ecp", "checksum": "5c51e84731e68ffbfb71d7770138e0e073c19250eef8f79cfe653382420ed1eb"}, {"id": "fls_18ke90udyp67", "number": "4.11.1:21", "link": "types-and-traits.html#fls_18ke90udyp67", "checksum": "a50cf2c5f56fb453ff79b573e1b12129846b5614280b059f31282bdbad00120a"}, {"id": "fls_nrqg8i3fmpm4", "number": "4.11.1:22", "link": "types-and-traits.html#fls_nrqg8i3fmpm4", "checksum": "16f17b053148dcb88c3d4eac54d2fa3ab5c26241239c5f849b5e78a7c1987c27"}, {"id": "fls_e5hivr6m5s3h", "number": "4.11.1:23", "link": "types-and-traits.html#fls_e5hivr6m5s3h", "checksum": "2875aa4e4c755754de18f56c5cc62a1f1dc459dbabf0d399d69338748e6c76a7"}, {"id": "fls_hlbsjggfxnt2", "number": "4.11.1:24", "link": "types-and-traits.html#fls_hlbsjggfxnt2", "checksum": "10f4ec2a3b2055e8ac3f6ac122c55a3d72a69b32bc92531cb8cd3174405fc276"}, {"id": "fls_sdrb0k2r18my", "number": "4.11.1:25", "link": "types-and-traits.html#fls_sdrb0k2r18my", "checksum": "e182b27b475774c568aecdb1bb2f1070177f14e235e96672e4884e9085b0e263"}, {"id": "fls_gt3tkbn4bsa6", "number": "4.11.1:26", "link": "types-and-traits.html#fls_gt3tkbn4bsa6", "checksum": "69bc4664319d5665fede7b3cce71149d020a6355095a53a2e4628588ed83b8a2"}, {"id": "fls_njvdevz0xqc0", "number": "4.11.1:27", "link": "types-and-traits.html#fls_njvdevz0xqc0", "checksum": "bda0b012a16d3a292ca3bd3cd3bf7397fc037ec2df84e2d98d42f8caad457108"}], "informational": false}, {"id": "fls_ohhsmifo0urd", "number": "4.11.2", "title": "Type Representation", "link": "types-and-traits.html#type-representation", "paragraphs": [{"id": "fls_mpqlyi3lgrfv", "number": "4.11.2:1", "link": "types-and-traits.html#fls_mpqlyi3lgrfv", "checksum": "5f5949a619afc73e47aec91fbc3a9a63a26a1c89ac23fff54dedd659fa5ce152"}, {"id": "fls_9dhnanv21y9z", "number": "4.11.2:2", "link": "types-and-traits.html#fls_9dhnanv21y9z", "checksum": "b57e3b6dad3a8e0cb95ec2f29b9c0c03d35a3d2274ce1372f790c18e6d8fe08a"}, {"id": "fls_3dwtkr7vzha0", "number": "4.11.2:3", "link": "types-and-traits.html#fls_3dwtkr7vzha0", "checksum": "9af98560b964faa10575d6b41e63eab6392b21e562bd53d52334986e8d562170"}, {"id": "fls_q465p1xuzxi", "number": "4.11.2:4", "link": "types-and-traits.html#fls_q465p1xuzxi", "checksum": "4e17b1a0b34e4bf31d8a8074de82b29eab2771c248d198c7505d85d025d02401"}, {"id": "fls_hrsdn21jmgx2", "number": "4.11.2:5", "link": "types-and-traits.html#fls_hrsdn21jmgx2", "checksum": "5f34cbfe6622d2c818a60366091bc5da0bc271de40adb90bbb62a83edca10e7e"}, {"id": "fls_ergdb18tpx25", "number": "4.11.2:6", "link": "types-and-traits.html#fls_ergdb18tpx25", "checksum": "6d966d386110f51effa3166dbdfd2297301ac38191e2cf2c2fb7bd2786dfaec6"}, {"id": "fls_8s1vddh8vdhy", "number": "4.11.2:7", "link": "types-and-traits.html#fls_8s1vddh8vdhy", "checksum": "e149df36aa01e86286388dbbe81e921138ff3db34c7e3b70fe56471e82478501"}, {"id": "fls_b005bktrkrxy", "number": "4.11.2:8", "link": "types-and-traits.html#fls_b005bktrkrxy", "checksum": "eccb8cf4151d93a2f40c470c83debcdb0664c35fb9b1a56d77688b9bbc34fa14"}, {"id": "fls_7plbkqlmed0r", "number": "4.11.2:9", "link": "types-and-traits.html#fls_7plbkqlmed0r", "checksum": "2df37a1590825b869d3fe88027b64189cf4a81a9bf29a7fbcb2ba1790f600026"}, {"id": "fls_ml4khttq3w5k", "number": "4.11.2:10", "link": "types-and-traits.html#fls_ml4khttq3w5k", "checksum": "ab1548f30cb5de39a5164639b856c80192fe4565c992ebc857d91f330cfd95b1"}, {"id": "fls_9q2iqzbup8oy", "number": "4.11.2:11", "link": "types-and-traits.html#fls_9q2iqzbup8oy", "checksum": "7705e77c0b72bbab2b260c177130bc9c9b2b0cd780adfef1c71bef4a3fa35b1c"}, {"id": "fls_fsbf6ist38ix", "number": "4.11.2:12", "link": "types-and-traits.html#fls_fsbf6ist38ix", "checksum": "bcb966f534ed9405fc751a9c095cd83a0ebf9e78d42f0fa542522fc9ba0ec64f"}, {"id": "fls_qkkc8x2oghst", "number": "4.11.2:13", "link": "types-and-traits.html#fls_qkkc8x2oghst", "checksum": "6ea20905fb18b0e4a39823e4d29c64d3000f65f803a757758399867d375784b8"}], "informational": false}, {"id": "fls_xc1hof4qbf6p", "number": "4.11.2.1", "title": "Enum Type Representation", "link": "types-and-traits.html#enum-type-representation", "paragraphs": [{"id": "fls_p0c62ejo1u1t", "number": "4.11.2.1:1", "link": "types-and-traits.html#fls_p0c62ejo1u1t", "checksum": "3eb2acc0e91b94225e6e44043b9ed3ef348d1fbdfb8db38506d619d240c6f6e5"}, {"id": "fls_efp1kfgkpba8", "number": "4.11.2.1:2", "link": "types-and-traits.html#fls_efp1kfgkpba8", "checksum": "9223cf2e73ff1760ca4c9edcf7ea6c2b6a71a16c836006c862557a4a50880a0b"}, {"id": "fls_s9c0a0lg6c0p", "number": "4.11.2.1:3", "link": "types-and-traits.html#fls_s9c0a0lg6c0p", "checksum": "596c70e3ed03568cc8842491654b253cff2dd3c53ecff886f8790626e79cdf54"}, {"id": "fls_slhvf3gmqz4h", "number": "4.11.2.1:4", "link": "types-and-traits.html#fls_slhvf3gmqz4h", "checksum": "a91c1cca73e27a37a40cfe16ebf7b3dd4618e680e133ba6257ba1c08b26b66a6"}, {"id": "fls_u1zy06510m56", "number": "4.11.2.1:5", "link": "types-and-traits.html#fls_u1zy06510m56", "checksum": "fea4e03795d124973a8ffab094f6ee265a8f520b32a2c7d748015882a86761cc"}, {"id": "fls_ryvqkcx48u74", "number": "4.11.2.1:6", "link": "types-and-traits.html#fls_ryvqkcx48u74", "checksum": "8a55fc830de2323e466a47edb68b3963f8dbb9972e1194ecb80a9c6b4a9252fd"}, {"id": "fls_zhle0rb0vhpc", "number": "4.11.2.1:7", "link": "types-and-traits.html#fls_zhle0rb0vhpc", "checksum": "9511193dd174fc3bafe80e8350dddde4679a8741fb947fe3f5e1e891a33d51ae"}, {"id": "fls_45f57s1gmmh5", "number": "4.11.2.1:8", "link": "types-and-traits.html#fls_45f57s1gmmh5", "checksum": "f51fdfab79671ea2955e16f13e207e87820a37d5f55b1d4c22064de5c137211a"}, {"id": "fls_hz012yus6b4g", "number": "4.11.2.1:9", "link": "types-and-traits.html#fls_hz012yus6b4g", "checksum": "b8004c9524d9dcc6e7c1fad6f95241fbb7388c13ce2a105eea1f0fe9fc97517a"}, {"id": "fls_q5akku2idrwh", "number": "4.11.2.1:10", "link": "types-and-traits.html#fls_q5akku2idrwh", "checksum": "b6f79b18180060bbc48e3b28c798cfabb1fbe4261d4f29db7e66461a870e1b05"}, {"id": "fls_r6o1wv76yw6m", "number": "4.11.2.1:11", "link": "types-and-traits.html#fls_r6o1wv76yw6m", "checksum": "7f5298c7fcf4553ee2096af2930625f9d951363c4f6529b7d5d99c07b1fc520f"}, {"id": "fls_3k1tcfxp0g63", "number": "4.11.2.1:12", "link": "types-and-traits.html#fls_3k1tcfxp0g63", "checksum": "939150187e841861875019dc485b2aa948610bdabcf75995a8afad5299edfc9c"}, {"id": "fls_ebs77rxvk9st", "number": "4.11.2.1:13", "link": "types-and-traits.html#fls_ebs77rxvk9st", "checksum": "89652dc80a444cd6f5989de7e2a59fcbee6155ba69450db9b25c7c463673bdf4"}, {"id": "fls_k907i6w83s2", "number": "4.11.2.1:14", "link": "types-and-traits.html#fls_k907i6w83s2", "checksum": "8bea878c1256e24db0fc455c3c525bca9c6c94300cfac8d7f432673f4a43fafd"}], "informational": false}, {"id": "fls_rjxpof29a3nl", "number": "4.11.2.2", "title": "Struct Type Representation", "link": "types-and-traits.html#struct-type-representation", "paragraphs": [{"id": "fls_jr9dykj6rydn", "number": "4.11.2.2:1", "link": "types-and-traits.html#fls_jr9dykj6rydn", "checksum": "5f76aa9810ba03c28ebf2942db3a8fb181ab22d0b664086601393227aa7bc9eb"}, {"id": "fls_6ck71twmnbg5", "number": "4.11.2.2:2", "link": "types-and-traits.html#fls_6ck71twmnbg5", "checksum": "5fc0a7214a5fa354bcf5cb9aca684565b666321cce8849cf8e89065c73dca2bc"}, {"id": "fls_hydq3pvm00bn", "number": "4.11.2.2:3", "link": "types-and-traits.html#fls_hydq3pvm00bn", "checksum": "cc7a74a98eb6db165a74e65d78a53928cd6ceb8d9b8f47c5549d190d9c561b5d"}, {"id": "fls_yzcdffahxcz", "number": "4.11.2.2:4", "link": "types-and-traits.html#fls_yzcdffahxcz", "checksum": "f0a3247f449084aa9aae9debf4ffa6a6913bb680bf0b458cb343993f72476848"}, {"id": "fls_t2yqmphfd6he", "number": "4.11.2.2:5", "link": "types-and-traits.html#fls_t2yqmphfd6he", "checksum": "f655a5cbd5d73a7e395bd286c59614f96f179cfba822ade23467a58dd59c9416"}, {"id": "fls_fa5nkvu07jlp", "number": "4.11.2.2:6", "link": "types-and-traits.html#fls_fa5nkvu07jlp", "checksum": "8f137c8f4826a9313a42e8c5bec10771adb0f8414465461fd20d604736c77eea"}, {"id": "fls_x2pkmgbp63xx", "number": "4.11.2.2:7", "link": "types-and-traits.html#fls_x2pkmgbp63xx", "checksum": "1d2016f00c240d05addd5fab89f965d3641505505bfb01110d95a59a9d0abfda"}, {"id": "fls_y6dwc1ndm395", "number": "4.11.2.2:8", "link": "types-and-traits.html#fls_y6dwc1ndm395", "checksum": "a43584acfcb4f9504ce4581592588e3c52f9f07bc3fac6200626820608fe115a"}, {"id": "fls_2npku94ookdn", "number": "4.11.2.2:9", "link": "types-and-traits.html#fls_2npku94ookdn", "checksum": "03a369fe556766892948f430b4527499cd07a737e8ebb566d9f4935b1ed0bd81"}, {"id": "fls_h7nvs25rsi0y", "number": "4.11.2.2:10", "link": "types-and-traits.html#fls_h7nvs25rsi0y", "checksum": "53b32f8e3a420b85e3831feb7488281662c227e49e7585de6de3f2147d00ec6d"}, {"id": "fls_iu93vpyihrpj", "number": "4.11.2.2:11", "link": "types-and-traits.html#fls_iu93vpyihrpj", "checksum": "81829e6f383a4c65151f020b3440763a7261c3898230a6504f0d83bbb62f8f40"}, {"id": "fls_7sjkej5otxo", "number": "4.11.2.2:12", "link": "types-and-traits.html#fls_7sjkej5otxo", "checksum": "779b7205751c55010c330675d65578fe47e6bdaefe5a76eef9dc878a6ad61921"}, {"id": "fls_gwhceoy0m3or", "number": "4.11.2.2:13", "link": "types-and-traits.html#fls_gwhceoy0m3or", "checksum": "83a4d8e45980a24abbd901d57911b4c082699c53464ebbe23837f6862ff654c0"}, {"id": "fls_hvkalvr4e2v0", "number": "4.11.2.2:14", "link": "types-and-traits.html#fls_hvkalvr4e2v0", "checksum": "cc35a963cac35f4ca35b83a2c99092463e9f24c42b164f201487fd81193c4138"}], "informational": false}, {"id": "fls_cmq8ogs84ivh", "number": "4.11.2.3", "title": "Union Type Representation", "link": "types-and-traits.html#union-type-representation", "paragraphs": [{"id": "fls_opz1p1neldsg", "number": "4.11.2.3:1", "link": "types-and-traits.html#fls_opz1p1neldsg", "checksum": "7acef59265b9dc0eb9021e3c4144a4243c0f3bcc0119c1cd151745c380b1bd69"}, {"id": "fls_y5qtvbx5m90g", "number": "4.11.2.3:2", "link": "types-and-traits.html#fls_y5qtvbx5m90g", "checksum": "151cb09b57de0325104c84d42d1aac2b8865f4dc1fdbf7fc0da0db0967ba3270"}], "informational": false}, {"id": "fls_j02707n615z0", "number": "4.12", "title": "Type Model", "link": "types-and-traits.html#type-model", "paragraphs": [], "informational": false}, {"id": "fls_3gapgqys3ceb", "number": "4.12.1", "title": "Recursive Types", "link": "types-and-traits.html#recursive-types", "paragraphs": [{"id": "fls_z22std1crl49", "number": "4.12.1:1", "link": "types-and-traits.html#fls_z22std1crl49", "checksum": "740cfb5bd47f58876ee5586174ee7d3acae1e4bdfac31a402c4461aafee6966f"}, {"id": "fls_eddnwlr0rz59", "number": "4.12.1:2", "link": "types-and-traits.html#fls_eddnwlr0rz59", "checksum": "3f12892eabfac9dd07124c6ca395e4ab531b1edab32e93dbf13a9236a105def9"}], "informational": false}, {"id": "fls_exe4zodlwfez", "number": "4.12.2", "title": "Type Unification", "link": "types-and-traits.html#type-unification", "paragraphs": [{"id": "fls_ryvdhkgm7vzj", "number": "4.12.2:1", "link": "types-and-traits.html#fls_ryvdhkgm7vzj", "checksum": "5df68e7a28d0bf034a911d0f1ebabc63d83df1f144975513612741de324e087a"}, {"id": "fls_67vzrx6dw68h", "number": "4.12.2:2", "link": "types-and-traits.html#fls_67vzrx6dw68h", "checksum": "8efb96431fa13308cf8430377b0cc06be4e7e65b313828a429bfd56b64fbb69b"}, {"id": "fls_aie0tr62vhw5", "number": "4.12.2:3", "link": "types-and-traits.html#fls_aie0tr62vhw5", "checksum": "2cefde97b95cdce903b2bb16f1b7f2bb843cd1947a51d99f03b6edc576e8a815"}, {"id": "fls_3u7ue6xzuv9m", "number": "4.12.2:4", "link": "types-and-traits.html#fls_3u7ue6xzuv9m", "checksum": "a1074c8cfb8f682fa21dc2aa4c3d2b500a67a107b90901fd69a32bd3ea7f487d"}, {"id": "fls_tiiw5wktrnf7", "number": "4.12.2:5", "link": "types-and-traits.html#fls_tiiw5wktrnf7", "checksum": "930299ef90063f38b5762819de8b999c9d6d47c338fb35b2fea53ba6308b392c"}, {"id": "fls_eoebldkkbqw0", "number": "4.12.2:6", "link": "types-and-traits.html#fls_eoebldkkbqw0", "checksum": "f1514e494d536e424cc53a6d932b2f0efeae9c0c1c9d38cdff61bcb32368c8be"}, {"id": "fls_16zdp8paki5p", "number": "4.12.2:7", "link": "types-and-traits.html#fls_16zdp8paki5p", "checksum": "9ce44d0db04150b232d3c66c01e88cb2a18d590a22685dfff432835fbeb60264"}, {"id": "fls_pgrltacdvzv2", "number": "4.12.2:8", "link": "types-and-traits.html#fls_pgrltacdvzv2", "checksum": "ca8ea0205df206f0258c062e6a5214044e0cea21feb89cea071059c7e56920ea"}, {"id": "fls_fty3fvt0fk9g", "number": "4.12.2:9", "link": "types-and-traits.html#fls_fty3fvt0fk9g", "checksum": "5856553d7c3dc3037b3f61286c79224e0a36daaa9f1fc4dbb8cfa32293193d99"}, {"id": "fls_7isrfuopxszu", "number": "4.12.2:10", "link": "types-and-traits.html#fls_7isrfuopxszu", "checksum": "35b4e67328db231c512e327ce5efb8ce05016ea1da017f138f262e2e2a227d6d"}, {"id": "fls_hb95cpyupcmc", "number": "4.12.2:11", "link": "types-and-traits.html#fls_hb95cpyupcmc", "checksum": "6c778d5632db97d3301836bfcb54ed7f9a4bf9ae7f59492ea0edb726e9760040"}, {"id": "fls_jezvwlfvpevb", "number": "4.12.2:12", "link": "types-and-traits.html#fls_jezvwlfvpevb", "checksum": "c4cce1e4f4599cca9433e4c7caa01c2370d35e7468cd75c25d05a45d4830868e"}, {"id": "fls_nkcqfo7yidbe", "number": "4.12.2:13", "link": "types-and-traits.html#fls_nkcqfo7yidbe", "checksum": "e1774f66d7ec71606db10f7d2ea8bb346f4838230ccab723b87cc20531f9c9e8"}, {"id": "fls_jkaibnapjatt", "number": "4.12.2:14", "link": "types-and-traits.html#fls_jkaibnapjatt", "checksum": "fca446cea9b227ba6edbbd60b3d07b861687b7e6735b5d9430aad156d0c00cac"}, {"id": "fls_dhksyjrvx9a", "number": "4.12.2:15", "link": "types-and-traits.html#fls_dhksyjrvx9a", "checksum": "5c234eaaaf625cadcba23e792b9c70b2a5d5a4bf733d3d1b874363f6cb4b4c23"}, {"id": "fls_hf0cfkrmt655", "number": "4.12.2:16", "link": "types-and-traits.html#fls_hf0cfkrmt655", "checksum": "71c2ef4eca01d8d2398c416f696fa413d2aa384ac63d110cf9c02fee44394c17"}, {"id": "fls_k9dag68qpe93", "number": "4.12.2:17", "link": "types-and-traits.html#fls_k9dag68qpe93", "checksum": "688edd3c20f0031139a4a191d039bbc1cb4b3cf4e71953f32e59ca93e9e1eb50"}, {"id": "fls_m6d9qj9q9u1i", "number": "4.12.2:18", "link": "types-and-traits.html#fls_m6d9qj9q9u1i", "checksum": "000140bda99fc03cb461ae82fc44f00553e759bdefc4024a743226869bb556d9"}, {"id": "fls_gg3x25qvymmq", "number": "4.12.2:19", "link": "types-and-traits.html#fls_gg3x25qvymmq", "checksum": "e80dd4b7ce61eb512368a598539097c63700b957a79797c7632b07f1140b827a"}, {"id": "fls_ni296ev8x9v9", "number": "4.12.2:20", "link": "types-and-traits.html#fls_ni296ev8x9v9", "checksum": "f24aed54e03e3a739813f0003dfe5ba61269ea0b335234f058a75c2258a3a969"}, {"id": "fls_i1m41c4wkfc0", "number": "4.12.2:21", "link": "types-and-traits.html#fls_i1m41c4wkfc0", "checksum": "ae9c6921bc2c5d6daea20516afa9d8caa4b58b39286ba4971eebcfd1ab4c0cd8"}, {"id": "fls_mpq64eal9jo3", "number": "4.12.2:22", "link": "types-and-traits.html#fls_mpq64eal9jo3", "checksum": "e6f42ea036f99fbe3b1fb90f2cd2e17a9acf5ca1116043eca60f80c79867be2c"}, {"id": "fls_kcr8npsmy0e5", "number": "4.12.2:23", "link": "types-and-traits.html#fls_kcr8npsmy0e5", "checksum": "00d3c7f7b35c66e24e4a10adce31978ab8ad1bd234a231761dcb86dd442da7b3"}, {"id": "fls_kq3lv1zbangz", "number": "4.12.2:24", "link": "types-and-traits.html#fls_kq3lv1zbangz", "checksum": "195eb65f16abf0575d17f2b1be1087b9e206a49ffe16d3ffdef28cd89e788366"}, {"id": "fls_so2cgqmawlm7", "number": "4.12.2:25", "link": "types-and-traits.html#fls_so2cgqmawlm7", "checksum": "1d9c72ecb4ac5ea7fc4fc3d2d75b5180c4f4a47db55dce93873e90df42e46743"}, {"id": "fls_vsax8w6y794m", "number": "4.12.2:26", "link": "types-and-traits.html#fls_vsax8w6y794m", "checksum": "408947791758b2ad8dcbc3ecdcf9c5f4c8644d67bdbff00b110458292dce4e83"}, {"id": "fls_1j1wc3uxs7h6", "number": "4.12.2:27", "link": "types-and-traits.html#fls_1j1wc3uxs7h6", "checksum": "0c359ddaaaf4bb7ecdeda5b1ed77c19699bd50b53c7c9c180ab91fec01d5755a"}, {"id": "fls_9dpea9ty0c2l", "number": "4.12.2:28", "link": "types-and-traits.html#fls_9dpea9ty0c2l", "checksum": "6fed9a60e8fbe91b884ebe5950327802bbd098730e114fffad4de5c82403ecfe"}, {"id": "fls_42oj1ekjihq1", "number": "4.12.2:29", "link": "types-and-traits.html#fls_42oj1ekjihq1", "checksum": "8c89ff60eff543cbe33d8f313577bcc491d151988e3e14ec4a7c5f681d0fa8e2"}, {"id": "fls_gebpqqqvvklf", "number": "4.12.2:30", "link": "types-and-traits.html#fls_gebpqqqvvklf", "checksum": "c50b057136169daf940732bafe752d5fe2c443eb42159455d87b433a0de3e55a"}, {"id": "fls_i221hm7rssik", "number": "4.12.2:31", "link": "types-and-traits.html#fls_i221hm7rssik", "checksum": "66ba5454612352fff011f2c5f16752b6851b3f672fadb2f8c15fb1c70eddb384"}, {"id": "fls_74cug5zfv2wv", "number": "4.12.2:32", "link": "types-and-traits.html#fls_74cug5zfv2wv", "checksum": "d54f897d06ae679945464622ed0a82379a5c0b60452ea600983b97b69902bbe5"}, {"id": "fls_keezxl8v4snf", "number": "4.12.2:33", "link": "types-and-traits.html#fls_keezxl8v4snf", "checksum": "c9cabad366daa8e46a924d711447aac73dc93e60621905f3877aa65fc1a0724b"}, {"id": "fls_wz2etmkpvxed", "number": "4.12.2:34", "link": "types-and-traits.html#fls_wz2etmkpvxed", "checksum": "104f0c1ee57173d019b23e0728dc5b6fb9bc04ec70b7666e5348f7dd366b45ed"}, {"id": "fls_rmqcbb5ja4va", "number": "4.12.2:35", "link": "types-and-traits.html#fls_rmqcbb5ja4va", "checksum": "43358ae1fdf6051cf8ba48651a94f4d6b6e62ab05031e0b0e384a83724822952"}, {"id": "fls_uu8je75y5pss", "number": "4.12.2:36", "link": "types-and-traits.html#fls_uu8je75y5pss", "checksum": "db5b765c1b3a6fcb40b42cccb46ae92a512f298b4eca532573060af03314af81"}, {"id": "fls_oksjiq3nmq2k", "number": "4.12.2:37", "link": "types-and-traits.html#fls_oksjiq3nmq2k", "checksum": "f397d8cf8b8c7c3fbcc901785345c36b908996d3a6bd6464e4e20cc108523a56"}, {"id": "fls_52ymp79ert2", "number": "4.12.2:38", "link": "types-and-traits.html#fls_52ymp79ert2", "checksum": "81ebbf38df3455de1ee80a6f1a2f412c8878762eb6b05285f16ed47c4a857592"}, {"id": "fls_g2u1dfhphrrg", "number": "4.12.2:39", "link": "types-and-traits.html#fls_g2u1dfhphrrg", "checksum": "3318b943515a14fe6dbf55e7ec47613c778490dee645221932ecbb4716e25074"}, {"id": "fls_2xgq66qp3h95", "number": "4.12.2:40", "link": "types-and-traits.html#fls_2xgq66qp3h95", "checksum": "7726d6710a5611f30a40c98174045b829d3f80a6b8d962dae4f64b76e83045a4"}, {"id": "fls_5dh8c5gg0hmk", "number": "4.12.2:41", "link": "types-and-traits.html#fls_5dh8c5gg0hmk", "checksum": "fd91364bed19d0afa9d73fb3c1658c025a696b873269013f813ec189d9214416"}, {"id": "fls_ismr7wwvek4q", "number": "4.12.2:42", "link": "types-and-traits.html#fls_ismr7wwvek4q", "checksum": "6a5c53a38ac6502579f67680736ebeff29b1a0a8a697f84d17e10c795d1d4b7d"}, {"id": "fls_x9933rjecrna", "number": "4.12.2:43", "link": "types-and-traits.html#fls_x9933rjecrna", "checksum": "b27ba69adda5e65b3928999f9748285a16bee769d0115e2a1aeb237b6e4dbc3a"}, {"id": "fls_mizmcykgdisb", "number": "4.12.2:44", "link": "types-and-traits.html#fls_mizmcykgdisb", "checksum": "e08654b77f30bda8b01a6f943f5f80454a4b1b139153afc6307396967f705b66"}, {"id": "fls_paoh0wttde2z", "number": "4.12.2:45", "link": "types-and-traits.html#fls_paoh0wttde2z", "checksum": "72049284c54176fc4fb1c1c255561eb7d7942a71235fa68202ca2bb3d8b79613"}, {"id": "fls_akko4dmp4nkw", "number": "4.12.2:46", "link": "types-and-traits.html#fls_akko4dmp4nkw", "checksum": "5d19ac9384672776d1ee638f44540b560d0f10f40289e94044bc9fa144c252a9"}, {"id": "fls_8gldjjxbyyb4", "number": "4.12.2:47", "link": "types-and-traits.html#fls_8gldjjxbyyb4", "checksum": "138bb93829e388cb6e4f30afcc6d8172dbc34098c101c23ea3024f033ed853c7"}, {"id": "fls_8jad1ztcuxha", "number": "4.12.2:48", "link": "types-and-traits.html#fls_8jad1ztcuxha", "checksum": "35b9f5170166cb82091a22696f9f5551aeeb153b146a6a8cc6fd0ec0f69ba070"}, {"id": "fls_j3w9ap9zaqud", "number": "4.12.2:49", "link": "types-and-traits.html#fls_j3w9ap9zaqud", "checksum": "474c0b6fc42aad94745322806f94d0baac7f6f82466ba9b20bb757aeaf8f0245"}, {"id": "fls_yvllot5qnc4s", "number": "4.12.2:50", "link": "types-and-traits.html#fls_yvllot5qnc4s", "checksum": "f77f51ab20e49154362e7e30356fa9048d737311587b745a4c109b6adfbd0774"}, {"id": "fls_hza5n5eb18ta", "number": "4.12.2:51", "link": "types-and-traits.html#fls_hza5n5eb18ta", "checksum": "eab384e3f2e76b1ac0fe9ec7ac7cf230e58b0f6069105b253a18e5a57cf0f62c"}, {"id": "fls_ww16urcjrj6i", "number": "4.12.2:52", "link": "types-and-traits.html#fls_ww16urcjrj6i", "checksum": "a08b517ccebf64dfb28aba3e871021511369da1be5e56cff2589a3924b3b9d1b"}, {"id": "fls_bnp6or49voxp", "number": "4.12.2:53", "link": "types-and-traits.html#fls_bnp6or49voxp", "checksum": "89b48d93f4666e6e771a2628649e81f8d1f2de995e07defb06fff0282cffe991"}, {"id": "fls_hdo4c849q3lo", "number": "4.12.2:54", "link": "types-and-traits.html#fls_hdo4c849q3lo", "checksum": "203ad82032af14af279f43593fcd8fccfc929c8078778a6de310ca6d1f78e9f8"}, {"id": "fls_w9dx5h7m31sj", "number": "4.12.2:55", "link": "types-and-traits.html#fls_w9dx5h7m31sj", "checksum": "94dbd24c5170da391b4fd6bf809cc9f11e71dac5c7534862f9d4dcbae162ccb1"}], "informational": false}, {"id": "fls_dw33yt5g6m0k", "number": "4.12.3", "title": "Type Coercion", "link": "types-and-traits.html#type-coercion", "paragraphs": [{"id": "fls_w5pjcj9qmgbv", "number": "4.12.3:1", "link": "types-and-traits.html#fls_w5pjcj9qmgbv", "checksum": "1c125d2f970819ac01d209699beabb24a85dcf91316e31ca2e951e98dc4a5f2e"}, {"id": "fls_5v0n2a32bk95", "number": "4.12.3:2", "link": "types-and-traits.html#fls_5v0n2a32bk95", "checksum": "b3d69f435190dd57fd86cebc434e29483825d6b25b8f60120e3477fef36b44cd"}, {"id": "fls_j3kbaf43sgpj", "number": "4.12.3:3", "link": "types-and-traits.html#fls_j3kbaf43sgpj", "checksum": "b18d8bddfde5ee8721d48f3d414b5a55dfb48c98bf03d2412a1ab54ae0f93c30"}, {"id": "fls_wxrugvlazy6v", "number": "4.12.3:4", "link": "types-and-traits.html#fls_wxrugvlazy6v", "checksum": "4e13d35d1de469cd6adacba64653a8dc3a8a58eb96060d9dc2fa3c06a4248a7f"}, {"id": "fls_bhzmble1itog", "number": "4.12.3:5", "link": "types-and-traits.html#fls_bhzmble1itog", "checksum": "dcd00eff58f1f029b5a359bbdfebe7a52a9dda64e77847b71c38aa9ee577082b"}, {"id": "fls_eu4bt3dw1b8c", "number": "4.12.3:6", "link": "types-and-traits.html#fls_eu4bt3dw1b8c", "checksum": "2849e3f04859c16c3f699d20cb59e697e2d5ea761ef414a8e9f6a4bfebdad8a2"}, {"id": "fls_apstt4elv2k7", "number": "4.12.3:7", "link": "types-and-traits.html#fls_apstt4elv2k7", "checksum": "14a2ebfc0dc84e45abcd936047fdf03858f8cfa416f4c711cdb673c3029f2a1d"}, {"id": "fls_sp794uzfiofr", "number": "4.12.3:8", "link": "types-and-traits.html#fls_sp794uzfiofr", "checksum": "853017badc80ef7625757aa8b68a0cbf76baed161093698d90b35416d3ff25a5"}, {"id": "fls_xfqny6bwzsu9", "number": "4.12.3:9", "link": "types-and-traits.html#fls_xfqny6bwzsu9", "checksum": "1a7266235db01fc19f566dc6970836b039c783ca94c394b07d6f46f45a327bae"}, {"id": "fls_u0e42y7nvn7e", "number": "4.12.3:10", "link": "types-and-traits.html#fls_u0e42y7nvn7e", "checksum": "b49cdf0f2fb74d20d8bf9bd22739caf559f092b37874cc469a1fc11796b0f3d7"}, {"id": "fls_p8hp5y506nam", "number": "4.12.3:11", "link": "types-and-traits.html#fls_p8hp5y506nam", "checksum": "e94e4fd5d3c8124476595c77485d16348c94894082857326c18e6414d7e2ead0"}, {"id": "fls_fjc9xev8rcu6", "number": "4.12.3:12", "link": "types-and-traits.html#fls_fjc9xev8rcu6", "checksum": "973dbaecfc13fb4ab65e325a94d44a45fc9c953dda41203951b7614d02670864"}, {"id": "fls_n1kh3z8d4q8y", "number": "4.12.3:13", "link": "types-and-traits.html#fls_n1kh3z8d4q8y", "checksum": "8c78c768eeb8f1a02a7d182fed23128f8bc7bbf0ddc102ba2da4c71a08098ee9"}, {"id": "fls_dgoypa3hcxc0", "number": "4.12.3:14", "link": "types-and-traits.html#fls_dgoypa3hcxc0", "checksum": "f631f3eaa473d36dc8b906892fb02d2afdfcc6ac8b36a88720bb9cbe268707cf"}, {"id": "fls_h8dkehit8rza", "number": "4.12.3:15", "link": "types-and-traits.html#fls_h8dkehit8rza", "checksum": "af9ac95087820df12145d4b1bcdc5c2aefdfe7e0661d4ee8ebce4897d946cc54"}, {"id": "fls_z00wtlna6grk", "number": "4.12.3:16", "link": "types-and-traits.html#fls_z00wtlna6grk", "checksum": "71e522755dbc28be6cd7a324a6a6454114e8e0244de6bbff1a5f0cb0ccb88cd2"}, {"id": "fls_rfjdh79k0wou", "number": "4.12.3:17", "link": "types-and-traits.html#fls_rfjdh79k0wou", "checksum": "3e2e8a463e825e0de103643132d6ac576478740d745d5bfada48884bf6a73f0f"}, {"id": "fls_e3lgrtqb7jwe", "number": "4.12.3:18", "link": "types-and-traits.html#fls_e3lgrtqb7jwe", "checksum": "760728def307e32ecd93826afc55eb5b39477adab8e2fdd6b8d2c3445e9c6c6b"}, {"id": "fls_fwy2z11c1sji", "number": "4.12.3:19", "link": "types-and-traits.html#fls_fwy2z11c1sji", "checksum": "b9ab7cd8a6ff174f7370bef719769860ab9bb78d73a887a2d266b10b9f0e356d"}, {"id": "fls_aujb44849tq1", "number": "4.12.3:20", "link": "types-and-traits.html#fls_aujb44849tq1", "checksum": "34586dbc5392132b773e0f3aa90c23b3f4079ca79bedb9d108b354e0c15a9584"}, {"id": "fls_p3ym3ycrnd5m", "number": "4.12.3:21", "link": "types-and-traits.html#fls_p3ym3ycrnd5m", "checksum": "b048851b08b58ee5809efccef3bf5a7a5207344b662eba5162de24e194352b83"}, {"id": "fls_jmo42qgix5uw", "number": "4.12.3:22", "link": "types-and-traits.html#fls_jmo42qgix5uw", "checksum": "1b30164bd90c0dbbcb47c87803c0841dfe9d3d772e1a34c7a9ccc4a4933b2c10"}, {"id": "fls_tbt4236igdzb", "number": "4.12.3:23", "link": "types-and-traits.html#fls_tbt4236igdzb", "checksum": "c1dda665688283c6458e52d3c3a8e7387bab58a818e1c1b871485a8e7d6c068c"}, {"id": "fls_7ri4jk2dydfn", "number": "4.12.3:24", "link": "types-and-traits.html#fls_7ri4jk2dydfn", "checksum": "e789228b8563894bad59c2a9870a4324c5fde44cc790f00e4a45a0b465c8316a"}, {"id": "fls_6r3kn0nk5b8o", "number": "4.12.3:25", "link": "types-and-traits.html#fls_6r3kn0nk5b8o", "checksum": "fc7f331b6089c5bd8e347504d88e62078d5c4c846a9ccf65eaeedd8ffc094c48"}, {"id": "fls_ulcdetwp6x96", "number": "4.12.3:26", "link": "types-and-traits.html#fls_ulcdetwp6x96", "checksum": "61b8468e184c14f1902fbd43e6492e9b4640ddad4ae0a33a731901b147214f58"}, {"id": "fls_2uv1r0gni1fk", "number": "4.12.3:27", "link": "types-and-traits.html#fls_2uv1r0gni1fk", "checksum": "e233c03b13e1a8e36e57cca5a910344a93904dc508dbe3d5823adb57c58fdaea"}, {"id": "fls_sf0c3fbx8z57", "number": "4.12.3:28", "link": "types-and-traits.html#fls_sf0c3fbx8z57", "checksum": "fde902a0dcf7245891be85fe02b53a36f549f906b5621552b11c7c0e83e5b3ad"}, {"id": "fls_iiiu2q7pym4p", "number": "4.12.3:29", "link": "types-and-traits.html#fls_iiiu2q7pym4p", "checksum": "dd7bc2c44f433ffd630cffd6c4386dd7fbd5fa2ce7379e469299b9dc5c179d09"}, {"id": "fls_jte6n2js32af", "number": "4.12.3:30", "link": "types-and-traits.html#fls_jte6n2js32af", "checksum": "8e785eaf45c0dfef77ee6ff7b317a82aaf46b49c84f4c2ecdc296ee62568c727"}, {"id": "fls_20pvqqayzqra", "number": "4.12.3:31", "link": "types-and-traits.html#fls_20pvqqayzqra", "checksum": "a9d2363147bd3d1382fb2792473844fa7abd6d6fb6aa67371d82a7ede1452d39"}, {"id": "fls_j8rcy0xvd155", "number": "4.12.3:32", "link": "types-and-traits.html#fls_j8rcy0xvd155", "checksum": "65c7ca810e8b17133d894175777f2b3b7bc290fcd174dc128bc978c1bbf10464"}, {"id": "fls_wuka4uyo3oj7", "number": "4.12.3:33", "link": "types-and-traits.html#fls_wuka4uyo3oj7", "checksum": "1af2a2bba8399300cc1e205f0f7fee9618593ec4a2537211d6ba2bac7ca92379"}, {"id": "fls_w15yo8yvuxq3", "number": "4.12.3:34", "link": "types-and-traits.html#fls_w15yo8yvuxq3", "checksum": "8322e0c9269a64e591836ee24ecb8d377ce3093892b78053bacd698ed55a8962"}, {"id": "fls_7aw3ifbvfgbd", "number": "4.12.3:35", "link": "types-and-traits.html#fls_7aw3ifbvfgbd", "checksum": "dcbd46a0126cc58845c6cb40ab6afc0aea44dac093a6f13bfa4fcf14b4b395fe"}, {"id": "fls_cnkth59djwgl", "number": "4.12.3:36", "link": "types-and-traits.html#fls_cnkth59djwgl", "checksum": "89cc90acc65cd37645feae640026726577f4f4f0349a887ff00a451479f45b0a"}, {"id": "fls_4wbk7pqj010i", "number": "4.12.3:37", "link": "types-and-traits.html#fls_4wbk7pqj010i", "checksum": "afc1ce7f88cf8abf3164653eb9fd348bd326ebc15ebf3037c655e1c0494c89ad"}, {"id": "fls_47u0039t0l8f", "number": "4.12.3:38", "link": "types-and-traits.html#fls_47u0039t0l8f", "checksum": "cdd6b9592887af36d0772fde53ca3091c4a6bf70805ffbb04a1dbb16ef4d92ff"}, {"id": "fls_bmh6g3jju7eq", "number": "4.12.3:39", "link": "types-and-traits.html#fls_bmh6g3jju7eq", "checksum": "cefece0d02fa276fe12b8d7fa02401d8fa6a73dd827f6c8960ef8097b6ff375f"}, {"id": "fls_da4w32rsrwxc", "number": "4.12.3:40", "link": "types-and-traits.html#fls_da4w32rsrwxc", "checksum": "698fb05a30487c47e16c1814bf5989a6201253e9f222c440fd59e3d8cfabbede"}, {"id": "fls_zi5311z1w7re", "number": "4.12.3:41", "link": "types-and-traits.html#fls_zi5311z1w7re", "checksum": "8333e75b01db4b4778f0b23b7e145da87834bc47ac828831f781b14f6b7830c1"}, {"id": "fls_zst5pa29rpt", "number": "4.12.3:42", "link": "types-and-traits.html#fls_zst5pa29rpt", "checksum": "3ef2c70df3fbc39e3d8fe5bbe8c0e1adbf015005169243e1455458fed8ded361"}, {"id": "fls_agw1aej616vf", "number": "4.12.3:43", "link": "types-and-traits.html#fls_agw1aej616vf", "checksum": "f4b1e50283ac71505aad22e917efae5d7d1d0798dbdf1fbe9d80f65bb04514a7"}, {"id": "fls_tnbga5dl4gz8", "number": "4.12.3:44", "link": "types-and-traits.html#fls_tnbga5dl4gz8", "checksum": "bb81f4f7bb91b154fff3ff42309dea91e61e5a2ced8910f2543d14f89bf79a19"}, {"id": "fls_yoreux8tn65x", "number": "4.12.3:45", "link": "types-and-traits.html#fls_yoreux8tn65x", "checksum": "b95cf2362fe2b684e6e861bef2924e960fcd813879dc2455367f8f620a534ff5"}, {"id": "fls_r11shke69uu6", "number": "4.12.3:46", "link": "types-and-traits.html#fls_r11shke69uu6", "checksum": "5fca7b2b2864b7504bace27cb6390c5d3d01591a0d2cffda65c64fab8cd2c085"}, {"id": "fls_ky7ykpufb95t", "number": "4.12.3:47", "link": "types-and-traits.html#fls_ky7ykpufb95t", "checksum": "39bf09cd84e3badf0caafcecd1fc51f3d0e38645e4d70876f6313e478f238928"}, {"id": "fls_8kvme0u4u8r6", "number": "4.12.3:48", "link": "types-and-traits.html#fls_8kvme0u4u8r6", "checksum": "215a6f01fd8ef7a0ce0ca1e6aa8dbb82270d88d2f159c6bfe8c8aefe79a45c21"}, {"id": "fls_rl9yrdfwnu03", "number": "4.12.3:49", "link": "types-and-traits.html#fls_rl9yrdfwnu03", "checksum": "096c4e463b9f21a7f6f450c919b54b1d2c68b8b6e4496fe0dae2feda9e403c36"}, {"id": "fls_iqtmhn8flws7", "number": "4.12.3:50", "link": "types-and-traits.html#fls_iqtmhn8flws7", "checksum": "32a6c25c6e1124e082617948626bcbb07992d4275f54df0c25e6744748e4d53c"}, {"id": "fls_sr8d5har4s03", "number": "4.12.3:51", "link": "types-and-traits.html#fls_sr8d5har4s03", "checksum": "275c8b1744879cf91aaf7305f7ba2d9a59d6efce2a635c736da0131f3f9880ed"}, {"id": "fls_92pwnd1xbp5r", "number": "4.12.3:52", "link": "types-and-traits.html#fls_92pwnd1xbp5r", "checksum": "e07e12484817e4c6487e1204a1f9510e836727735508f4ef691226c46e64bf6a"}, {"id": "fls_bwhqil4dsn4s", "number": "4.12.3:53", "link": "types-and-traits.html#fls_bwhqil4dsn4s", "checksum": "335cbd4c223a88ecd2be44961d7a6ce553d0352af438c9f034095d6c8978c103"}, {"id": "fls_ju4ypa5ysga0", "number": "4.12.3:54", "link": "types-and-traits.html#fls_ju4ypa5ysga0", "checksum": "8fed0bd1fa0bfbbe3fd11a53d62ef209fd7e09e5b74a6ad1f1b86277f57d1d86"}], "informational": false}, {"id": "fls_wsfw8xf3vnil", "number": "4.12.4", "title": "Structural Equality", "link": "types-and-traits.html#structural-equality", "paragraphs": [{"id": "fls_uvtpa7gblcyx", "number": "4.12.4:1", "link": "types-and-traits.html#fls_uvtpa7gblcyx", "checksum": "4f72ed3d4dc04653669e57b2d2f00cb3b728c967aca05c3d7e142f41c86239fa"}, {"id": "fls_2dzap6jjjj9h", "number": "4.12.4:2", "link": "types-and-traits.html#fls_2dzap6jjjj9h", "checksum": "644c0bc93e9153b1614ccf90b7c10dc639fb525098e57bb2ef0188049521cf07"}, {"id": "fls_emcnjzl2thsa", "number": "4.12.4:3", "link": "types-and-traits.html#fls_emcnjzl2thsa", "checksum": "ebe3f4bdb59589737e2a8f2587d31e540b885474c990132b77755e7fe3118e79"}, {"id": "fls_hpwsafata1dz", "number": "4.12.4:4", "link": "types-and-traits.html#fls_hpwsafata1dz", "checksum": "9adcd87a7fd208d21fe66dfbd16bfc8617403dbc76b33595031feae169ce3659"}, {"id": "fls_5rcnetrw6f9m", "number": "4.12.4:5", "link": "types-and-traits.html#fls_5rcnetrw6f9m", "checksum": "2996c6bd3a3dcde83041a19b7e0ff0b4645e49e8373faa312d7d231d80add18e"}, {"id": "fls_jmewhn4sntpf", "number": "4.12.4:6", "link": "types-and-traits.html#fls_jmewhn4sntpf", "checksum": "b32c20afa5097b044cad383b2ddafd39d592f035043bc0e89d5c5fc9036d89a5"}, {"id": "fls_hbflaurrhqz6", "number": "4.12.4:7", "link": "types-and-traits.html#fls_hbflaurrhqz6", "checksum": "70b221698272f53f393baae8c1c140264a658dcc9849120449671981eb75f27c"}], "informational": false}, {"id": "fls_omaq7psg83n3", "number": "4.12.5", "title": "Interior Mutability", "link": "types-and-traits.html#interior-mutability", "paragraphs": [{"id": "fls_khy2e23i9o7z", "number": "4.12.5:1", "link": "types-and-traits.html#fls_khy2e23i9o7z", "checksum": "9aa56a43b546255945ab60a08d9ae4aa90b591af22e8b4c1b7dc0c4f9af83598"}, {"id": "fls_swiu26n2xs3r", "number": "4.12.5:2", "link": "types-and-traits.html#fls_swiu26n2xs3r", "checksum": "d05a898c3b49c36accca96ad2625158f39bce97c30d6fb95823df4e3533194bd"}], "informational": false}, {"id": "fls_lv7w7aalpwm5", "number": "4.12.6", "title": "Type Inference", "link": "types-and-traits.html#type-inference", "paragraphs": [{"id": "fls_h8sedxew0d4u", "number": "4.12.6:1", "link": "types-and-traits.html#fls_h8sedxew0d4u", "checksum": "0733340fbfcaed4e1531c4bbd915b1e25c8a7f93c5258f26dc010a4fe224801a"}, {"id": "fls_ybvrhh96fc7y", "number": "4.12.6:2", "link": "types-and-traits.html#fls_ybvrhh96fc7y", "checksum": "26ecf6194c3f105ef5dfdc03e0b71e4a1c8160edb540c06c1056e324e136e1e1"}, {"id": "fls_ewbilpepadcx", "number": "4.12.6:3", "link": "types-and-traits.html#fls_ewbilpepadcx", "checksum": "a923067c037b043e99981b0ca0ebdb47199c07b67e084d5a7bc220e594b133e1"}, {"id": "fls_nyszcvf5nqpi", "number": "4.12.6:4", "link": "types-and-traits.html#fls_nyszcvf5nqpi", "checksum": "f0ad52d5ba7639c36c518c3720cb06c3552839e842057b6d3ee4ba143ab4be1d"}, {"id": "fls_htlp5j5obgnh", "number": "4.12.6:5", "link": "types-and-traits.html#fls_htlp5j5obgnh", "checksum": "f9c9598c2dd792f8150bbc7db9744da31f5c54d1398f56477bc718402556dab3"}, {"id": "fls_cplclgccl7ek", "number": "4.12.6:6", "link": "types-and-traits.html#fls_cplclgccl7ek", "checksum": "20eabdd38eacdb13f67b19026f6ad726531238743b530c057d28a339a5e5db77"}, {"id": "fls_kphy5qhev0dc", "number": "4.12.6:7", "link": "types-and-traits.html#fls_kphy5qhev0dc", "checksum": "ddd1c8f0bf52f83dc4686954218b0f4cd13dfd720d985efc7e5e7cd1fb987375"}, {"id": "fls_67bf5kr5otyw", "number": "4.12.6:8", "link": "types-and-traits.html#fls_67bf5kr5otyw", "checksum": "50c6910a7fc8c1b07b987b8c629d5666817afcdfd7a77af3e544b2df055354eb"}, {"id": "fls_sas3vqpkjksr", "number": "4.12.6:9", "link": "types-and-traits.html#fls_sas3vqpkjksr", "checksum": "cd59d75b8786aa2152a00a74d15960f972ee7b9efd9ed6ea6be282ff7bb0393f"}, {"id": "fls_sowatt1v988j", "number": "4.12.6:10", "link": "types-and-traits.html#fls_sowatt1v988j", "checksum": "6f383a50f25c7293a36c28b2eb734e84299ba6ad3b35e8d967d2b84845ccebc4"}, {"id": "fls_a1nvykepoamk", "number": "4.12.6:11", "link": "types-and-traits.html#fls_a1nvykepoamk", "checksum": "30466e79ab50a4ce686cad40eea4346e303925d4a01f36024720a13e48a89b4f"}, {"id": "fls_j77veald8rsv", "number": "4.12.6:12", "link": "types-and-traits.html#fls_j77veald8rsv", "checksum": "6051ca9ecfe04a062d5a946c136ee02de33353f5ed963a07c287899720961af0"}, {"id": "fls_p9uiamxa4he3", "number": "4.12.6:13", "link": "types-and-traits.html#fls_p9uiamxa4he3", "checksum": "aa67d478f734851497c9592cfcce1e63452ca21e44b8f258ca57c2fd00174c93"}, {"id": "fls_5d4hw3gj4w4n", "number": "4.12.6:14", "link": "types-and-traits.html#fls_5d4hw3gj4w4n", "checksum": "6dd1a00950a9e651a699734e82b1208e81181f5202936ac1f1028fa651d02a27"}, {"id": "fls_qlovdtcj1v1b", "number": "4.12.6:15", "link": "types-and-traits.html#fls_qlovdtcj1v1b", "checksum": "b6a171c627874b9918c71b9cf66fa1fae6c874bb3359b2d6cba89379886281a9"}, {"id": "fls_z5gkfjzw5rra", "number": "4.12.6:16", "link": "types-and-traits.html#fls_z5gkfjzw5rra", "checksum": "38de11a4893adbf77df8542f9ecbe28d5ee3b2986a809383ce4e0bf694d0a106"}, {"id": "fls_vyvumjtqh9xg", "number": "4.12.6:17", "link": "types-and-traits.html#fls_vyvumjtqh9xg", "checksum": "7dd786d9014c1823ba3515b3ea9f68d750d2db96ee522b6f4546aa39d4f678cf"}, {"id": "fls_qagkt99cmvf6", "number": "4.12.6:18", "link": "types-and-traits.html#fls_qagkt99cmvf6", "checksum": "d8578c25c7dd2694e72bf1900ec0de0b6ea38280d2f75db22a3f5249f98fb764"}, {"id": "fls_rjiew597xrvs", "number": "4.12.6:19", "link": "types-and-traits.html#fls_rjiew597xrvs", "checksum": "53bb50d4c95b2e725abb10288ad64df42968237c86530bd3bee7f867075fab87"}, {"id": "fls_veg2d64fixvo", "number": "4.12.6:20", "link": "types-and-traits.html#fls_veg2d64fixvo", "checksum": "229d0d5b05eb5ff42588ebd5ac4c95a095a29d82ff3f26152bebfe73e02bbc3e"}, {"id": "fls_uvvn4usfsbhr", "number": "4.12.6:21", "link": "types-and-traits.html#fls_uvvn4usfsbhr", "checksum": "f5d2a97e84c341b7cc97283f2c6fff644af2eaa3f18136ae71b93c5ee9b56241"}, {"id": "fls_gdaljm1xs0mi", "number": "4.12.6:22", "link": "types-and-traits.html#fls_gdaljm1xs0mi", "checksum": "dec24d875b5094ddba99326af168b3189c2c89ffe2f65919c91d6df57ae7013a"}, {"id": "fls_7ov36fpd9mwe", "number": "4.12.6:23", "link": "types-and-traits.html#fls_7ov36fpd9mwe", "checksum": "2fba60344712b36c7e3d85a11370baa6cf316b8b2a345d1b4b3f0dd61383b631"}, {"id": "fls_3hv3wxkhjjp1", "number": "4.12.6:24", "link": "types-and-traits.html#fls_3hv3wxkhjjp1", "checksum": "6f3816132ffe28efaf427fe33b1433ad594067052bda3f57277c1451893dbbc3"}, {"id": "fls_bxq63gyydump", "number": "4.12.6:25", "link": "types-and-traits.html#fls_bxq63gyydump", "checksum": "605267afb8b9036c0eee2345a972043cff7c21380f985f12caaba2f7d30aee0a"}, {"id": "fls_jryxikbifvf3", "number": "4.12.6:26", "link": "types-and-traits.html#fls_jryxikbifvf3", "checksum": "fbdb2b0ff1c5aa038413a78be7e9a6ff41c0612db0648417cc31a20a682f98a0"}, {"id": "fls_rvj3xspfz1u3", "number": "4.12.6:27", "link": "types-and-traits.html#fls_rvj3xspfz1u3", "checksum": "59854f2b212e191c9c0c639c1bb9caad6bdf38f48c95024fb3a49ae93818cd30"}, {"id": "fls_6grnr2izovrn", "number": "4.12.6:28", "link": "types-and-traits.html#fls_6grnr2izovrn", "checksum": "8ccd07581891d7328efac206e6e8a5952ef3b60a40fbf3b2b43182fc636b4fb8"}, {"id": "fls_9dsltj6u98fo", "number": "4.12.6:29", "link": "types-and-traits.html#fls_9dsltj6u98fo", "checksum": "0557c8604fc016c9a1c036a9f02b61c95d2b7d1d6a0043aea89868044534e8f4"}, {"id": "fls_v5dwgubkvqsj", "number": "4.12.6:30", "link": "types-and-traits.html#fls_v5dwgubkvqsj", "checksum": "04477f3988629a5f4ccf3df3153224a68eaecf8351936f7725a41cea78ead3b9"}, {"id": "fls_szgixdcax6pq", "number": "4.12.6:31", "link": "types-and-traits.html#fls_szgixdcax6pq", "checksum": "849706ce4bb64a8cb1a45280565a1bd62f3e35ac9862270ec8aabd354c93aa06"}, {"id": "fls_xyy1u9h9hlaa", "number": "4.12.6:32", "link": "types-and-traits.html#fls_xyy1u9h9hlaa", "checksum": "dbbbf92cb2589a9aaaf11ef14b6aeb380d37d5f6b741d4cb2c5b1fa2e5a1aecb"}, {"id": "fls_1rnssw39arwn", "number": "4.12.6:33", "link": "types-and-traits.html#fls_1rnssw39arwn", "checksum": "4b63ff86116c425fe2cddd007442d0c03073678cf0cdc42b62c7224845aaa0e3"}, {"id": "fls_ayjazxcovvyk", "number": "4.12.6:34", "link": "types-and-traits.html#fls_ayjazxcovvyk", "checksum": "8e96bbc341a6b1de1d507f569d8d34e94e53b067964a454afed96b6b4bdb7d05"}, {"id": "fls_x8klc7jwif0a", "number": "4.12.6:35", "link": "types-and-traits.html#fls_x8klc7jwif0a", "checksum": "24c8209ffc45df2596e294640bba2aa7b42f5686d8a0e98b7f5df152a82815d5"}, {"id": "fls_zfqhoxo3jpby", "number": "4.12.6:36", "link": "types-and-traits.html#fls_zfqhoxo3jpby", "checksum": "e434416bfa8e8dffc8e6c1164cd594db7a1eb893254a271421442b4a889a0d70"}, {"id": "fls_l1g52a0qqees", "number": "4.12.6:37", "link": "types-and-traits.html#fls_l1g52a0qqees", "checksum": "49ca000ce5a71f5ae340a653f432992078bb8394c14aaba4e946158942b0ea9e"}, {"id": "fls_tx4sx4qy8y2d", "number": "4.12.6:38", "link": "types-and-traits.html#fls_tx4sx4qy8y2d", "checksum": "6c39d9fa3aff34c355cc05dcaefa243378bdafc12a5968b7239c801d4ad37d50"}, {"id": "fls_nbdth8n0psrq", "number": "4.12.6:39", "link": "types-and-traits.html#fls_nbdth8n0psrq", "checksum": "1819eb47223394c7033f3abd693ab921b11aff33067751eb8cd6863b755d3f61"}, {"id": "fls_hisrwzuuqe4q", "number": "4.12.6:40", "link": "types-and-traits.html#fls_hisrwzuuqe4q", "checksum": "74689e53776dd9f93adcf731cfd28c8cf305612f2ba7174d640713d10f582686"}, {"id": "fls_ygi1acj0rkfs", "number": "4.12.6:41", "link": "types-and-traits.html#fls_ygi1acj0rkfs", "checksum": "27a406335ebbb1fd6b5a75a0757865b493c7c597c042bfc555c7188be7f10991"}, {"id": "fls_97fxlv2kn6qf", "number": "4.12.6:42", "link": "types-and-traits.html#fls_97fxlv2kn6qf", "checksum": "588b531763a50551cc01572cee3f92331ffeca722aee95bdcef6579dc6a1df49"}, {"id": "fls_hzxqj6yt1mfr", "number": "4.12.6:43", "link": "types-and-traits.html#fls_hzxqj6yt1mfr", "checksum": "13a1275180d2c104a792fff30db7a7ca08c5753e22d660c88f6f8fd5714a2ce6"}, {"id": "fls_kv0dzomodtdy", "number": "4.12.6:44", "link": "types-and-traits.html#fls_kv0dzomodtdy", "checksum": "f1e4f473dd23e3b9cf44076d9391ecb3e1b4acd8b5e43e81c022030fc8ee42e9"}, {"id": "fls_5v6tr7oqowfm", "number": "4.12.6:45", "link": "types-and-traits.html#fls_5v6tr7oqowfm", "checksum": "5d1d8604e42079634aa8e88ee40d69c6321bb9e01bccd24ed821e193b76cb937"}, {"id": "fls_gwx0kfx68dxl", "number": "4.12.6:46", "link": "types-and-traits.html#fls_gwx0kfx68dxl", "checksum": "676707c30188643f9aee026a919dfa809da219d59e53f2bdc47e3e89d5e5c973"}, {"id": "fls_j6yduccjp1sn", "number": "4.12.6:47", "link": "types-and-traits.html#fls_j6yduccjp1sn", "checksum": "f8723a3646aa5ab3733bf3c732510697a8de3a235b3982cf3dd70d352f129ede"}, {"id": "fls_fsqqhs8t4bux", "number": "4.12.6:48", "link": "types-and-traits.html#fls_fsqqhs8t4bux", "checksum": "6488fc5972643c8005b9ff665490a63292c4f336c2a0a5236c0539a65816b2d6"}, {"id": "fls_0hhc1iok5dwz", "number": "4.12.6:49", "link": "types-and-traits.html#fls_0hhc1iok5dwz", "checksum": "fc18f70656fef1ef9b09d7ca8f249620b596fb1b8c70efba58e3a5a678b21213"}, {"id": "fls_qzwts0giy3i3", "number": "4.12.6:50", "link": "types-and-traits.html#fls_qzwts0giy3i3", "checksum": "27509db5c82720088c62ec3e141b026c1e322a7186cb994b8a0d5e924203e03e"}, {"id": "fls_kjsiu1lgvzxp", "number": "4.12.6:51", "link": "types-and-traits.html#fls_kjsiu1lgvzxp", "checksum": "b5d0949443935576123b18cca27070bb53af6c5002605c2aec5715f19a860365"}, {"id": "fls_krqxdsav1kba", "number": "4.12.6:52", "link": "types-and-traits.html#fls_krqxdsav1kba", "checksum": "e676b83659cdf96c2848aaad17275d4f1455977a2a1ec7bd5732238283eb9382"}, {"id": "fls_mcpwyvz47sog", "number": "4.12.6:53", "link": "types-and-traits.html#fls_mcpwyvz47sog", "checksum": "0bf1dd0f944f4720a843ee0ff984ac3d257f69cc6ba1b5214da858e40de1d6c3"}, {"id": "fls_34aq9g7xhduj", "number": "4.12.6:54", "link": "types-and-traits.html#fls_34aq9g7xhduj", "checksum": "18ee894162cc21546a88f2a251a9f6bfe341f49b0bdb784abc72aba91b0d6ae6"}, {"id": "fls_4zt35povcl04", "number": "4.12.6:55", "link": "types-and-traits.html#fls_4zt35povcl04", "checksum": "8842ea78c118edaa940f0f0073d6e7c3290bc1f164964dd50de8eb727650dc48"}, {"id": "fls_62ocwzavn9hh", "number": "4.12.6:56", "link": "types-and-traits.html#fls_62ocwzavn9hh", "checksum": "8b10910fa086c26e1e94705d9398a51c68e7a3c6a9a4578d4fc204abc3be6d40"}, {"id": "fls_st9onpgdrc8y", "number": "4.12.6:57", "link": "types-and-traits.html#fls_st9onpgdrc8y", "checksum": "7412650a46a74061d81ffa512d2179f23b1edf74b3872464cc7f6b596caaaadd"}, {"id": "fls_f999gqcbfff9", "number": "4.12.6:58", "link": "types-and-traits.html#fls_f999gqcbfff9", "checksum": "82e588ccaea063d84f7b82b1242d7802cd1df6d675a27ce6e2bd69459a9c21ab"}, {"id": "fls_esa4st7llp8t", "number": "4.12.6:59", "link": "types-and-traits.html#fls_esa4st7llp8t", "checksum": "ebc67189c8cb991506019fe72864d2436c9245d633826ceebaf4b8277518858e"}, {"id": "fls_9gdelckl1ubh", "number": "4.12.6:60", "link": "types-and-traits.html#fls_9gdelckl1ubh", "checksum": "5052100ae827ec33641989b63bb47e384a21c161e2fb0240e543ae9120df54ab"}, {"id": "fls_0eata6rtdnta", "number": "4.12.6:61", "link": "types-and-traits.html#fls_0eata6rtdnta", "checksum": "806a8a9c4c2a0fa926f161ee08b989bacce0c50dc99d9f154417a5c2d8731adb"}, {"id": "fls_q1jzzmxqwxck", "number": "4.12.6:62", "link": "types-and-traits.html#fls_q1jzzmxqwxck", "checksum": "bb3507010c18cd505e9adb4b8c8a562d3ee002bee23c005dfbd3e702c9f232f8"}, {"id": "fls_hh58ftcxbyzm", "number": "4.12.6:63", "link": "types-and-traits.html#fls_hh58ftcxbyzm", "checksum": "526646cd5391985fdbc176a363fbee22aff06d3523b542342418b6e8503f0e22"}, {"id": "fls_aisi99pbayqt", "number": "4.12.6:64", "link": "types-and-traits.html#fls_aisi99pbayqt", "checksum": "c22d990803ea4ee571303d09a964df44019da966c6d9a8cba436ae48cc9437c9"}, {"id": "fls_zrdxowo4edmn", "number": "4.12.6:65", "link": "types-and-traits.html#fls_zrdxowo4edmn", "checksum": "57584da05d3dc1e8f0c830d364af56f2bb21b7f6a8a932fd90cc629d6f3de8c6"}, {"id": "fls_iocemi7hfqsk", "number": "4.12.6:66", "link": "types-and-traits.html#fls_iocemi7hfqsk", "checksum": "67e11b06e517777ca3b49bb1108497bbf9f41dd3f7a6c03b9d584e8cd270105d"}, {"id": "fls_ldkpmb5ui58b", "number": "4.12.6:67", "link": "types-and-traits.html#fls_ldkpmb5ui58b", "checksum": "6a0bf506b4c1329bf0fd129c93e06a2ee1d0d06fcc05379daa9446f90b84030e"}, {"id": "fls_jkzhf3zdhshw", "number": "4.12.6:68", "link": "types-and-traits.html#fls_jkzhf3zdhshw", "checksum": "37e26fff3428ba52d2fe60fe551dfdbf498213a5d36c669cda5b1014a30cad85"}, {"id": "fls_rt6zpg3cyhaf", "number": "4.12.6:69", "link": "types-and-traits.html#fls_rt6zpg3cyhaf", "checksum": "f672813590c7e0fa2c72a85763bf792b275fbea9cd74a4607794cb8f9ac171f2"}, {"id": "fls_ufmyhzk6ucst", "number": "4.12.6:70", "link": "types-and-traits.html#fls_ufmyhzk6ucst", "checksum": "8fece354838a30ef4ea331708e12dc54c63518c2e2b4a4e072f377569a53b15f"}, {"id": "fls_hpzmcfqinast", "number": "4.12.6:71", "link": "types-and-traits.html#fls_hpzmcfqinast", "checksum": "bde009024b27bfe5ac2165324303983849b296af03f1d09a999b6ea05b2e33f1"}, {"id": "fls_rgc3iea5p9kr", "number": "4.12.6:72", "link": "types-and-traits.html#fls_rgc3iea5p9kr", "checksum": "18a9afceee9c153ebb83180b204571112295c6c883a85c1be27d367890c63aa6"}, {"id": "fls_5jdbpymvkzdv", "number": "4.12.6:73", "link": "types-and-traits.html#fls_5jdbpymvkzdv", "checksum": "81163aef39eafdb0708b75f24ba80cb5182c0ef48bed2d3cf8feba5b9bef6f95"}, {"id": "fls_f21gnntboxaz", "number": "4.12.6:74", "link": "types-and-traits.html#fls_f21gnntboxaz", "checksum": "546efd775e9d74760187551b78d221ef19b4646f33a34b4867f7a7f270798d70"}, {"id": "fls_npwlzjjh9cgw", "number": "4.12.6:75", "link": "types-and-traits.html#fls_npwlzjjh9cgw", "checksum": "a5590b6dee25c97033f7305a0e6f936e9da7265aea3829f4c2e7c58e4d7884a5"}, {"id": "fls_56j8bllouvr4", "number": "4.12.6:76", "link": "types-and-traits.html#fls_56j8bllouvr4", "checksum": "a041f706bb15d0161c35bfcae72a7de2e0b4e11a3e262fb649508ed8ada51bd7"}, {"id": "fls_jk2pivxomtj8", "number": "4.12.6:77", "link": "types-and-traits.html#fls_jk2pivxomtj8", "checksum": "69715763744f3c7fed67ba5ddc98229c812a0800cf36b28ee12f43fb82bf9a42"}, {"id": "fls_fjv22wcosnnt", "number": "4.12.6:78", "link": "types-and-traits.html#fls_fjv22wcosnnt", "checksum": "aac5b083447e8a2e273adb8cb2fcc744493827cedc47c65b0b3baedbd7b9743b"}, {"id": "fls_h3ovucdskphv", "number": "4.12.6:79", "link": "types-and-traits.html#fls_h3ovucdskphv", "checksum": "330e26cc6685cb1dfa82a84d2178bf60165a81473d6eed85a81862c931f9a731"}, {"id": "fls_be2djzikjw3i", "number": "4.12.6:80", "link": "types-and-traits.html#fls_be2djzikjw3i", "checksum": "1a0181d42cf641e33221d4f38b0852492555c4ac8e15be51f143586d6b985c1b"}, {"id": "fls_nht0lvsiwtb3", "number": "4.12.6:81", "link": "types-and-traits.html#fls_nht0lvsiwtb3", "checksum": "ec677f1076b9878644693b68b12fa4f88ab646f06cf6b311b260e4da1befb4b5"}, {"id": "fls_slcbz3vg1aws", "number": "4.12.6:82", "link": "types-and-traits.html#fls_slcbz3vg1aws", "checksum": "2a6207f713e77bf4b36f34f67ee44602ec627d4216450a3fd15002b80806184f"}, {"id": "fls_mcisadm7sjrs", "number": "4.12.6:83", "link": "types-and-traits.html#fls_mcisadm7sjrs", "checksum": "7bfe1b4191cc568f4965ea2ae5ca690ed51993b7fc4ec6bee03da8ea64653fb7"}, {"id": "fls_fv8fj9r8pruv", "number": "4.12.6:84", "link": "types-and-traits.html#fls_fv8fj9r8pruv", "checksum": "6b0b0bc2f95b49ae5e152da970bce05f896dbf296e9728753d1d673ae72cb4c7"}, {"id": "fls_qdwvv2ntufx7", "number": "4.12.6:85", "link": "types-and-traits.html#fls_qdwvv2ntufx7", "checksum": "84a7593ed63e9466545fae000a156e8e448806170dea5f772cb868f68f526def"}, {"id": "fls_o2r51xrmmj38", "number": "4.12.6:86", "link": "types-and-traits.html#fls_o2r51xrmmj38", "checksum": "4e795302ddd133846579329661e9e97b490f86e981444546b66b4dd9022abb89"}, {"id": "fls_b96zca6ofn82", "number": "4.12.6:87", "link": "types-and-traits.html#fls_b96zca6ofn82", "checksum": "4d4e567b4ab8ca5f4a1fb1c8c3d8df91c67fb770bd4a4cace6b5edb67fac789c"}, {"id": "fls_07aic06bgnzt", "number": "4.12.6:88", "link": "types-and-traits.html#fls_07aic06bgnzt", "checksum": "c4b02ef7e1b298b5a276082e81cd8daa172fdc32e30770b173dd4a6e774155ba"}, {"id": "fls_a36nbol1ftcb", "number": "4.12.6:89", "link": "types-and-traits.html#fls_a36nbol1ftcb", "checksum": "402fa34cae898d54c45a23952960408a04d5d8d41b0f81ab618f87b26930cb88"}, {"id": "fls_h3mmmibr72kv", "number": "4.12.6:90", "link": "types-and-traits.html#fls_h3mmmibr72kv", "checksum": "a7a2ae8190de32bf5aee8dd116623acd4efd8254bbc6c440a4722d6acb532232"}, {"id": "fls_8edzbbio7jf7", "number": "4.12.6:91", "link": "types-and-traits.html#fls_8edzbbio7jf7", "checksum": "2937ec9b056891de7aab2b57810eba0528ecc27fc3e8075a1f852903bb9b994a"}, {"id": "fls_lug26vfusepp", "number": "4.12.6:92", "link": "types-and-traits.html#fls_lug26vfusepp", "checksum": "4db1070a4a0b985d421c7c4686bb275d07c92be932852e255c6f80818a9a9a35"}, {"id": "fls_21ay7euuumhx", "number": "4.12.6:93", "link": "types-and-traits.html#fls_21ay7euuumhx", "checksum": "397cf84d1d20fefbdb6416f126bc1fedb49f880fa10fa4a885aad6fa92e26167"}, {"id": "fls_8vgahogdok0y", "number": "4.12.6:94", "link": "types-and-traits.html#fls_8vgahogdok0y", "checksum": "93b5392211c91ee8d504d9868a7d68ac136546dcdbbad5d24d3f577f2c88e489"}, {"id": "fls_ovvy9ce0pgtj", "number": "4.12.6:95", "link": "types-and-traits.html#fls_ovvy9ce0pgtj", "checksum": "7f686eb11bcf39ea892c2d0e96ad372bdc601edb69025cd3e0629e638394539d"}, {"id": "fls_fojovb6l3lah", "number": "4.12.6:96", "link": "types-and-traits.html#fls_fojovb6l3lah", "checksum": "569bfa594da4cd446bcaad60663a04566c36afc4f5ad3d236f098f50b66fb41d"}, {"id": "fls_cvfhkjq1pixr", "number": "4.12.6:97", "link": "types-and-traits.html#fls_cvfhkjq1pixr", "checksum": "f42fbda3021b2099c9a16bf8df1231e066450bcc017fefa22f943451c146644b"}, {"id": "fls_0rz7w0yqmze3", "number": "4.12.6:98", "link": "types-and-traits.html#fls_0rz7w0yqmze3", "checksum": "f38861e12ba15b26d22b39bced0e85caf806900ac14d4b691b9bfdc04c56006c"}, {"id": "fls_yppncepmyqwj", "number": "4.12.6:99", "link": "types-and-traits.html#fls_yppncepmyqwj", "checksum": "030b457cddbacd3c66ddde1079b1b179afde8cd0c3147430bfce82fddff4d95e"}, {"id": "fls_szmijji43fql", "number": "4.12.6:100", "link": "types-and-traits.html#fls_szmijji43fql", "checksum": "4eb0f7cb1d0475f4762ea3ac14eea3f50eec51fce9d2cd082fa76a05b372905d"}, {"id": "fls_ipwtrhf4xakc", "number": "4.12.6:101", "link": "types-and-traits.html#fls_ipwtrhf4xakc", "checksum": "7b85215a3effc40177a6c31907cde3fa3a7d61b57ff6c0c02e88d5e9ba01bd8e"}, {"id": "fls_zgrfkbfdi6ro", "number": "4.12.6:102", "link": "types-and-traits.html#fls_zgrfkbfdi6ro", "checksum": "ba56f2bf9c4b4756691a32ecda47282715bc88ff46cf80ae2f7484635b80aa2c"}, {"id": "fls_z2ukzx5qdmws", "number": "4.12.6:103", "link": "types-and-traits.html#fls_z2ukzx5qdmws", "checksum": "0cb1d7de2f135ef45509098cda1f169336b740fa28b6108348f05ec0f32936ce"}, {"id": "fls_u46ixitekmcb", "number": "4.12.6:104", "link": "types-and-traits.html#fls_u46ixitekmcb", "checksum": "35723ad98d3805267108e83cb916ccc229ff4ccba59f3dc700de834c2734089b"}, {"id": "fls_taj3jjwiedbq", "number": "4.12.6:105", "link": "types-and-traits.html#fls_taj3jjwiedbq", "checksum": "2b0d9332d54179fcf153daa53495e5dcc69f8f1fc6183007301ea8d263db458f"}, {"id": "fls_vrpatruobwtf", "number": "4.12.6:106", "link": "types-and-traits.html#fls_vrpatruobwtf", "checksum": "233f2aa19661d54999f5b48a7b7ceb27a0590d0f09de50a48967716f0de48064"}], "informational": false}, {"id": "fls_85vx1qfa061i", "number": "4.13", "title": "Traits", "link": "types-and-traits.html#traits", "paragraphs": [{"id": "fls_tani6lesan9u", "number": "4.13:1", "link": "types-and-traits.html#fls_tani6lesan9u", "checksum": "d7212257397d1d14621b886a1829ea8f8c8386cdaccfbfbe7f70c9321f85dff2"}, {"id": "fls_piar1b26sozv", "number": "4.13:2", "link": "types-and-traits.html#fls_piar1b26sozv", "checksum": "4dc696ed6dbb85f0cd265718a2213f335ef1caf861c1e2858c1e895b91bd05d8"}, {"id": "fls_y28596cvbzdg", "number": "4.13:3", "link": "types-and-traits.html#fls_y28596cvbzdg", "checksum": "853f1c4b6645e1f5b164185c45a96a2de4e6ddc84851ab72105e660ab292f120"}, {"id": "fls_adbbuzzgmesq", "number": "4.13:4", "link": "types-and-traits.html#fls_adbbuzzgmesq", "checksum": "9e95c1f9c8e8b1d57a5759c5453c5cb606c711e191df6d096a42e1f8e45b154c"}, {"id": "fls_cytxpjk3zq2t", "number": "4.13:6", "link": "types-and-traits.html#fls_cytxpjk3zq2t", "checksum": "b94347bbd83933a75718cc03b215a9d769aa3d6f969c54d90c57fb5f932c1fc9"}, {"id": "fls_ytn5cdonytyn", "number": "4.13:7", "link": "types-and-traits.html#fls_ytn5cdonytyn", "checksum": "3f9a02739cb12bc30e822ddfcc0c32cfa2a7ba100fca18cf4393b8a82f73ba75"}, {"id": "fls_vucd1u38sq7i", "number": "4.13:8", "link": "types-and-traits.html#fls_vucd1u38sq7i", "checksum": "850630ec9e0b341a370fae1c5d0089a6199d8a2d37d472dcd8ff712543d65358"}, {"id": "fls_kyr81mi01me2", "number": "4.13:9", "link": "types-and-traits.html#fls_kyr81mi01me2", "checksum": "61a7ac2c1a5f76feec6326da351d7821d5d885c3ddf66d460a3cf531b46961da"}, {"id": "fls_yynbricekmsj", "number": "4.13:10", "link": "types-and-traits.html#fls_yynbricekmsj", "checksum": "e23a38fedc7034747afe6208416e064bfa435ac281aad0629ac7f4ea812f2435"}, {"id": "fls_bd4hwdrruxmm", "number": "4.13:11", "link": "types-and-traits.html#fls_bd4hwdrruxmm", "checksum": "a35062dc24915937215d9047a1f414ade029557a2c46169a0c9a79cc96db0d02"}, {"id": "fls_uzfg5ic8puih", "number": "4.13:12", "link": "types-and-traits.html#fls_uzfg5ic8puih", "checksum": "df1a3afdefc49c32fcd12cc2c3c586b0e8bf3ba1b02491b649c096e25e4a3c1d"}, {"id": "fls_02d6ku4sd6yl", "number": "4.13:13", "link": "types-and-traits.html#fls_02d6ku4sd6yl", "checksum": "a585409a841ee7361e6fb14891ca557214c6bde16ccd359302549b407e7a771c"}, {"id": "fls_rlfizqeaphg6", "number": "4.13:14", "link": "types-and-traits.html#fls_rlfizqeaphg6", "checksum": "b612eb84031e77cb9d34f88c555e0396ba5722ba4729a356e68d8b3fb33b3058"}, {"id": "fls_avsxo0leka2x", "number": "4.13:15", "link": "types-and-traits.html#fls_avsxo0leka2x", "checksum": "8b15c2b4a5b8923f6ec42c9dab38eed453f1bbfdbea8094465a5124ff0ec2e5f"}, {"id": "fls_ft8axggoe3al", "number": "4.13:16", "link": "types-and-traits.html#fls_ft8axggoe3al", "checksum": "b23001be74c2e310999ac798d2f614d308ee8e1e9b8b7c463397a615dcb3e025"}, {"id": "fls_m4eot1nmyxjs", "number": "4.13:17", "link": "types-and-traits.html#fls_m4eot1nmyxjs", "checksum": "2d9fed8708df09f431fc7d1136ad692f13e72f458245e3a972715016cf03cfb6"}, {"id": "fls_tir2kpknp1kc", "number": "4.13:18", "link": "types-and-traits.html#fls_tir2kpknp1kc", "checksum": "ee3443dc44a15bfc89d333261e8beae2340b01881208cafec32e48b372342900"}, {"id": "fls_wxhikr8bggvz", "number": "4.13:19", "link": "types-and-traits.html#fls_wxhikr8bggvz", "checksum": "9c94dc64607d1d1d3d47085d136d875d1b22bd42a1da63f644567c9afb1941da"}, {"id": "fls_mjg7yrq66hh0", "number": "4.13:20", "link": "types-and-traits.html#fls_mjg7yrq66hh0", "checksum": "cf5ca60e94e50f04ef2036f964845c07eebcc1218b99dc55e644c63fc7e21699"}, {"id": "fls_ydowwijzirmm", "number": "4.13:21", "link": "types-and-traits.html#fls_ydowwijzirmm", "checksum": "5791023029771fef296097ed718e040eeb95b76d6aee5549bf5621b22838e5e0"}], "informational": false}, {"id": "fls_4ikc07mfrez5", "number": "4.13.1", "title": "Object Safety", "link": "types-and-traits.html#object-safety", "paragraphs": [{"id": "fls_lrdki56hpc3k", "number": "4.13.1:1", "link": "types-and-traits.html#fls_lrdki56hpc3k", "checksum": "a7dbfe3171723b462343aa8888eb93779e47e2cb6564c4d0b5409518c3d3d3f9"}, {"id": "fls_5wlltclogfkw", "number": "4.13.1:2", "link": "types-and-traits.html#fls_5wlltclogfkw", "checksum": "663e533be7fe2c58643b5cb29f1fafabecaebe9a67814b0c45b7339f9d6bce98"}, {"id": "fls_droy0w5gtqaw", "number": "4.13.1:3", "link": "types-and-traits.html#fls_droy0w5gtqaw", "checksum": "4f932d4a55167c3225e7142ff450c023aa8ab9c2ffd3b2a47def283f52f5f94e"}, {"id": "fls_46gd1q80c6bn", "number": "4.13.1:4", "link": "types-and-traits.html#fls_46gd1q80c6bn", "checksum": "7f14d5ddfe3e2040c798b3f2d8f25e11b0f81f91269a2671aba43d70a8af5063"}, {"id": "fls_kwo4cknx0yat", "number": "4.13.1:5", "link": "types-and-traits.html#fls_kwo4cknx0yat", "checksum": "9d15230a9c2fcfdf8a4f47962a5d4e7dcb5bb898443fee71fc2974ce3fa2df1b"}, {"id": "fls_vmlll82eqasi", "number": "4.13.1:6", "link": "types-and-traits.html#fls_vmlll82eqasi", "checksum": "5e74c4465ead60c8c56f509d76b21f8c91f43c939d7054478a87b61c9e02bd7e"}, {"id": "fls_uixekv82g2e5", "number": "4.13.1:7", "link": "types-and-traits.html#fls_uixekv82g2e5", "checksum": "5711109d6669d3b8bf4917e6183c03969ae5401cf0c18e9b48a3ed6232f13fd1"}, {"id": "fls_72tvfoemwpyy", "number": "4.13.1:8", "link": "types-and-traits.html#fls_72tvfoemwpyy", "checksum": "e083235f159e108c388da479f4936b36dd2295363c8b91b7e278346774955c83"}, {"id": "fls_j7nb34o87l1z", "number": "4.13.1:9", "link": "types-and-traits.html#fls_j7nb34o87l1z", "checksum": "2617716de591dde4480a295b243e0b0c274432a579cc5786fce8def72047c033"}, {"id": "fls_k1vc9vd8at92", "number": "4.13.1:10", "link": "types-and-traits.html#fls_k1vc9vd8at92", "checksum": "45afe066d5ef3c3b31decbde94b80e2c45c5c03be74022b5c37133f162b2544b"}, {"id": "fls_kqylg31sm5wv", "number": "4.13.1:11", "link": "types-and-traits.html#fls_kqylg31sm5wv", "checksum": "d1ce3e872cb3cdd9970e74966c197ed43066d9c21e6b962361276044a54ee9fa"}, {"id": "fls_aer3gaur7avp", "number": "4.13.1:12", "link": "types-and-traits.html#fls_aer3gaur7avp", "checksum": "b43aecbed94e34ebbf059fd7dd52fc451df0deec59c26167f70142669b8ca293"}], "informational": false}, {"id": "fls_jeoas4n6su4", "number": "4.14", "title": "Trait and Lifetime Bounds", "link": "types-and-traits.html#trait-and-lifetime-bounds", "paragraphs": [{"id": "fls_5g508z6c7q5f", "number": "4.14:1", "link": "types-and-traits.html#fls_5g508z6c7q5f", "checksum": "5d702214fefa6f0a53043997a796eb9c5880872b5e01081e4b326f34b335437b"}, {"id": "fls_bqlpvasyyxrg", "number": "4.14:2", "link": "types-and-traits.html#fls_bqlpvasyyxrg", "checksum": "9d3437b59c9ab4d5061e5c413b3f9748921ef9527b71e24efda1f586edca9e1d"}, {"id": "fls_grby8tmmd8sb", "number": "4.14:3", "link": "types-and-traits.html#fls_grby8tmmd8sb", "checksum": "0f8fed9095b2593b2ce110d5083b1d4174edfd4d58da66a283c60dabbfa46666"}, {"id": "fls_knut10hoz6wc", "number": "4.14:4", "link": "types-and-traits.html#fls_knut10hoz6wc", "checksum": "f4c5aa350fe7996e2be77424186b6514c7bdc0bed572827e1783a11b5551e07a"}, {"id": "fls_sf6zg0ez9hbb", "number": "4.14:5", "link": "types-and-traits.html#fls_sf6zg0ez9hbb", "checksum": "4faa1836d2f6f8eecc49eaa8a8b5a46d717231f2dd398d4590d48ee4e14c5986"}, {"id": "fls_vujl3fblz6x2", "number": "4.14:6", "link": "types-and-traits.html#fls_vujl3fblz6x2", "checksum": "838585a97e19cda475b2d3a30b265a5e45814e4e6fed4a7f4273c944223c6e97"}, {"id": "fls_azuzmr9dxsqh", "number": "4.14:7", "link": "types-and-traits.html#fls_azuzmr9dxsqh", "checksum": "c2729c9c6fa8817169c4c6b3ee4585e3518a521decde9f3a96bfa7d4313c831a"}, {"id": "fls_1sm2yq1ow76f", "number": "4.14:8", "link": "types-and-traits.html#fls_1sm2yq1ow76f", "checksum": "05bc50eddffd3a18ed8f3377b123bb37c1b5e94af198ccfd7de28fe31d741de9"}, {"id": "fls_tx4uspewnk7w", "number": "4.14:9", "link": "types-and-traits.html#fls_tx4uspewnk7w", "checksum": "2329dd8b3848ee98473bcfcb998f59926c182d917d53d0b5c562e486ce7905d9"}, {"id": "fls_5kj8bmvb8xfc", "number": "4.14:10", "link": "types-and-traits.html#fls_5kj8bmvb8xfc", "checksum": "88ab9938b63b54586e5a194cda9b4fd9238fdc4204039efa73640037b90e8336"}, {"id": "fls_j9desd06ttu9", "number": "4.14:11", "link": "types-and-traits.html#fls_j9desd06ttu9", "checksum": "ea8cafd5ce15c0c1f15675f652353abf992d1d606ef8a4a1543796515a9f5575"}, {"id": "fls_ifhrxsasgaih", "number": "4.14:12", "link": "types-and-traits.html#fls_ifhrxsasgaih", "checksum": "f2c5ee9dc74cb81bb9b1010d4971b395c10d7ae0b69878d350cb1456826c8e37"}, {"id": "fls_k8npgp5xblb7", "number": "4.14:13", "link": "types-and-traits.html#fls_k8npgp5xblb7", "checksum": "4b84d24f6f4b7c87cfc09aa1f59294dadaa53c24876e0fd68f67fc28b88830ad"}, {"id": "fls_uw6y5zlak6ry", "number": "4.14:14", "link": "types-and-traits.html#fls_uw6y5zlak6ry", "checksum": "504b10589747b39626c8009a403ca0deba66fe396ad2de9be37b123b48dc0c99"}], "informational": false}, {"id": "fls_yqcygq3y6m5j", "number": "4.14.1", "title": "Lifetimes", "link": "types-and-traits.html#lifetimes", "paragraphs": [{"id": "fls_nne91at3143t", "number": "4.14.1:1", "link": "types-and-traits.html#fls_nne91at3143t", "checksum": "89e96b4228d15b001e337309f76928a584c677698e9d8f56c3fd0bf4ef702172"}, {"id": "fls_vbclxg9dq4yo", "number": "4.14.1:2", "link": "types-and-traits.html#fls_vbclxg9dq4yo", "checksum": "b2051972bf09f0bc6966717b054dfab460bc29d92a31477488c0f18205bac5d0"}, {"id": "fls_gcszhqg6hnva", "number": "4.14.1:3", "link": "types-and-traits.html#fls_gcszhqg6hnva", "checksum": "93c72453a949d0ff6dedc23875b1b7d9dbf23442a6be174a4e932b1facdb5265"}], "informational": false}, {"id": "fls_ikfvbeewame7", "number": "4.14.2", "title": "Subtyping and Variance", "link": "types-and-traits.html#subtyping-and-variance", "paragraphs": [{"id": "fls_atq2cltx487m", "number": "4.14.2:1", "link": "types-and-traits.html#fls_atq2cltx487m", "checksum": "71b5298b738eb859f8cc6f0ef4b99931284871ae39f1bdc321d865a23684d1cd"}, {"id": "fls_df87d44kgwcv", "number": "4.14.2:2", "link": "types-and-traits.html#fls_df87d44kgwcv", "checksum": "737d3ffccd43df4591537722f4458fda52a59fc66125c7bfefb7f5640a36a8bc"}, {"id": "fls_7ex941yysuhq", "number": "4.14.2:3", "link": "types-and-traits.html#fls_7ex941yysuhq", "checksum": "9ad41a73cca1f1351639e50cba9344d86cdc286da8a2b7f88955ec691b73c9b7"}, {"id": "fls_7qud6i05ze2", "number": "4.14.2:4", "link": "types-and-traits.html#fls_7qud6i05ze2", "checksum": "ddfa75fd9e0142c3c367eb0ba02a65e7221d9e86a4ddef947ebbcfa2bf8a4f60"}, {"id": "fls_wpm0p0gtctvi", "number": "4.14.2:5", "link": "types-and-traits.html#fls_wpm0p0gtctvi", "checksum": "23cf56704ab7dff0f1809d6e8435b4c569536305b94f1a7f05e5b58529ee4a7d"}, {"id": "fls_3rfs58i2kg6l", "number": "4.14.2:6", "link": "types-and-traits.html#fls_3rfs58i2kg6l", "checksum": "74f5a55b32bebc82b21a7e2a9db5f21b1c14e6be7e935138309af650bb1b5ee1"}, {"id": "fls_kbo3e3bosr0m", "number": "4.14.2:7", "link": "types-and-traits.html#fls_kbo3e3bosr0m", "checksum": "1f5b98767e075851c7d070ea2843150c47227558e39872de71e84085c4a044b6"}, {"id": "fls_n36p6w2a75sm", "number": "4.14.2:8", "link": "types-and-traits.html#fls_n36p6w2a75sm", "checksum": "920a8bda29bfda122db8cdb94e70a6c5a4fd76dc0dcc4e6a47f71c256eed960a"}, {"id": "fls_xw7eo3us0ow4", "number": "4.14.2:9", "link": "types-and-traits.html#fls_xw7eo3us0ow4", "checksum": "6b1036112f36ab96e0fba76056076e5a4b5cebf3a68ee27c25399aec62dc6107"}, {"id": "fls_qc6jma5g9vpn", "number": "4.14.2:10", "link": "types-and-traits.html#fls_qc6jma5g9vpn", "checksum": "cf9cf2053b0da4ee4b6530a47cadc73a560b803d10402cde9767cf463797e626"}, {"id": "fls_hpiiwxzg16rj", "number": "4.14.2:11", "link": "types-and-traits.html#fls_hpiiwxzg16rj", "checksum": "c31d4d2d2e461e81ba0e0d047ad24e21fe792abb8e791776c1087a6004460b67"}, {"id": "fls_aspdlqluwh9w", "number": "4.14.2:12", "link": "types-and-traits.html#fls_aspdlqluwh9w", "checksum": "8b26cdf579eba2baed79aeec149c7a4d4277036b4004f66485b0ecade29cd5ad"}, {"id": "fls_8ohuze7hqtc1", "number": "4.14.2:13", "link": "types-and-traits.html#fls_8ohuze7hqtc1", "checksum": "cfe83442e8b9e2c97e23204f4e49cab1e49d103de5746c223fe4e5a2f4d47494"}, {"id": "fls_7pkqgxabojkn", "number": "4.14.2:14", "link": "types-and-traits.html#fls_7pkqgxabojkn", "checksum": "5ef125fa78302d1bd0ab1c9c6ce402e84343ce65094c6dbcaa49f0bd9aad81f8"}, {"id": "fls_ln9pqd4xu5e", "number": "4.14.2:15", "link": "types-and-traits.html#fls_ln9pqd4xu5e", "checksum": "d8c93934a67920a9c041b06a6f58c10bca90f62627301c61c512c531cf54b8cb"}, {"id": "fls_z4jo3ojkcu9v", "number": "4.14.2:16", "link": "types-and-traits.html#fls_z4jo3ojkcu9v", "checksum": "9cb44289a5c32876d21e093980654ac08ef05f7b857ee5acd5f952af4fe5882d"}, {"id": "fls_67w6yslr3e25", "number": "4.14.2:17", "link": "types-and-traits.html#fls_67w6yslr3e25", "checksum": "cf5c8e900ca37acad0bc171bfa0c6b714f1d23d6b8cb493c3038690fdb8ae839"}, {"id": "fls_ojal3qytkqql", "number": "4.14.2:18", "link": "types-and-traits.html#fls_ojal3qytkqql", "checksum": "288d8383e4a918a8df537e25a4154df2c81df5a683c07e73b4544c524b308ed0"}, {"id": "fls_owp42z12l4lc", "number": "4.14.2:19", "link": "types-and-traits.html#fls_owp42z12l4lc", "checksum": "cfc97b21efeb749f2447127d8a51da98dc6e41cb501744689a98e040ea67ea73"}, {"id": "fls_i1vuix3gj9ej", "number": "4.14.2:20", "link": "types-and-traits.html#fls_i1vuix3gj9ej", "checksum": "a734eb2b309a56c538d9dd9dfb1c4826d69b2288840fcb2d3cd674d2e60ef9c2"}, {"id": "fls_mlf39pl0b931", "number": "4.14.2:21", "link": "types-and-traits.html#fls_mlf39pl0b931", "checksum": "cad8abc0d81bf2f72b8ee690d6d77d6170b0848acffa5edbfe5137073f871803"}, {"id": "fls_yknymnlsasyw", "number": "4.14.2:22", "link": "types-and-traits.html#fls_yknymnlsasyw", "checksum": "2215e0ca6e0b0930e0b97655a732b0131268013502b68c2a789b71977bb44466"}, {"id": "fls_xkzo7nj40rbn", "number": "4.14.2:23", "link": "types-and-traits.html#fls_xkzo7nj40rbn", "checksum": "9b7e9c4d5c82583cf8a4c06355a662c0499656e0c927ae7d7b2567c8177d654a"}, {"id": "fls_abn5ycx11zpm", "number": "4.14.2:24", "link": "types-and-traits.html#fls_abn5ycx11zpm", "checksum": "e5f06b8eeaab8e4cd33caf943dbf9fe82b844d719bf0985302a75167735ee7fd"}, {"id": "fls_hvfyog9ygn6q", "number": "4.14.2:25", "link": "types-and-traits.html#fls_hvfyog9ygn6q", "checksum": "42ce008b0a6cfe49436f4f3897238024485cda9f72a13fbfab9b3d7814f4111f"}, {"id": "fls_mduolmcawb30", "number": "4.14.2:26", "link": "types-and-traits.html#fls_mduolmcawb30", "checksum": "90d2a2db73cec5e5c1430778f7c4c4e671046095294db8fca4b4f056f598ef18"}, {"id": "fls_y81gmqweqc9w", "number": "4.14.2:27", "link": "types-and-traits.html#fls_y81gmqweqc9w", "checksum": "f5d848b029abc9525e976478047895ce24e4ac85a7af51e1f425f22ab5340b9b"}, {"id": "fls_etgfvgvymn8o", "number": "4.14.2:28", "link": "types-and-traits.html#fls_etgfvgvymn8o", "checksum": "a7da2fd26ad1dfa3533285dad37d02fed2b4908be213a6a3a98775b0c2ebdb51"}, {"id": "fls_4kjxxrsk1igf", "number": "4.14.2:29", "link": "types-and-traits.html#fls_4kjxxrsk1igf", "checksum": "92ec09eb8c13eb5501dd2aa83335c6b18b661577435da0da11d655d174667b7d"}, {"id": "fls_y4zmb3vrym7p", "number": "4.14.2:30", "link": "types-and-traits.html#fls_y4zmb3vrym7p", "checksum": "d15a6c43afbdab395dde7bf007ffaa85c419254890a3a269617d7567fb692360"}, {"id": "fls_9ae3idezsths", "number": "4.14.2:31", "link": "types-and-traits.html#fls_9ae3idezsths", "checksum": "5375ee031b5992cc2d81fb87c92113aa2df9714381a2516c70a907104f22544f"}, {"id": "fls_wd6uytczirac", "number": "4.14.2:32", "link": "types-and-traits.html#fls_wd6uytczirac", "checksum": "7a621c5f9277c4f46a52133620c001507d1ffde9ce5bc9b977dae5382a587119"}, {"id": "fls_xurr0owesaie", "number": "4.14.2:33", "link": "types-and-traits.html#fls_xurr0owesaie", "checksum": "198b15c57f80ef7b7004d08d14db0126c5a03181c18d4c5c5d9fb54b608cd93a"}, {"id": "fls_cvznyifnoucc", "number": "4.14.2:34", "link": "types-and-traits.html#fls_cvznyifnoucc", "checksum": "e9ab99af1e3626b5bc2ec4a97eb9b693d57cbf3941d58b50da79a3a97cd65b65"}, {"id": "fls_xrlyqx7w9onr", "number": "4.14.2:35", "link": "types-and-traits.html#fls_xrlyqx7w9onr", "checksum": "e44c013173ea636304b228c4399fefdf0e90a39d2d469805209757504b18f9d1"}, {"id": "fls_dwpn8drysgma", "number": "4.14.2:36", "link": "types-and-traits.html#fls_dwpn8drysgma", "checksum": "319beaaf1f1caf0096dba73af40779542bd6c1e51e16900e8189ad49bbf270b7"}, {"id": "fls_ton5oktp300j", "number": "4.14.2:37", "link": "types-and-traits.html#fls_ton5oktp300j", "checksum": "0a0c6af41fd048b6c722a4d47422c162b6d1d238eb34928fd9b8d573a4d1e344"}, {"id": "fls_hqxtvi7gr9wr", "number": "4.14.2:38", "link": "types-and-traits.html#fls_hqxtvi7gr9wr", "checksum": "b40dd94eaa2e2861c1ac9a47ac10ee9e80b71b3fce42aa4c362c82feaafaf088"}, {"id": "fls_lxfpvk7ndnlj", "number": "4.14.2:39", "link": "types-and-traits.html#fls_lxfpvk7ndnlj", "checksum": "4b83f6d8b60d4cc3f44054e47b3add3b07386dbadb45a3e11809ac73890747d5"}, {"id": "fls_awjeqcahn5o3", "number": "4.14.2:40", "link": "types-and-traits.html#fls_awjeqcahn5o3", "checksum": "a38f8ae59566df6812eb2e4a65493f7869a7ee5d1490a9ea14cca661e002257a"}, {"id": "fls_ad1ixzsnlwyg", "number": "4.14.2:41", "link": "types-and-traits.html#fls_ad1ixzsnlwyg", "checksum": "55f986a2532a84d35f03d42bf891d3f758900a1764931afb6e6748f104d30de0"}, {"id": "fls_p2ii8e6cc9zt", "number": "4.14.2:42", "link": "types-and-traits.html#fls_p2ii8e6cc9zt", "checksum": "ac51179a778b0f9f9797899d9ef592d947ee84fdc5a06197c3326fcf1bcebda8"}, {"id": "fls_pn5c4fhwewdk", "number": "4.14.2:43", "link": "types-and-traits.html#fls_pn5c4fhwewdk", "checksum": "d108ec536a18cd310c0309f9f0992815ce2c842ccd88899e8bc3b86859afbb92"}, {"id": "fls_rdqv0hi8h8bi", "number": "4.14.2:44", "link": "types-and-traits.html#fls_rdqv0hi8h8bi", "checksum": "01dcce0fab7d9e766e601132b4336c4324d2cb983b16cbc83cd69c7fa6031d79"}, {"id": "fls_uv5ccmhpx79j", "number": "4.14.2:45", "link": "types-and-traits.html#fls_uv5ccmhpx79j", "checksum": "46f39fc8f0d7ac26fb707ada2c7d2bb2adf405a080f461715483c86974008ef6"}, {"id": "fls_lyvv4pog7e4l", "number": "4.14.2:46", "link": "types-and-traits.html#fls_lyvv4pog7e4l", "checksum": "8b74cbe1bf4dbd256643c98b2f8a49a0f64cb55a7774638a968c045d642880d1"}], "informational": false}, {"id": "fls_l9ebxrlxyawd", "number": "4.14.3", "title": "Lifetime Elision", "link": "types-and-traits.html#lifetime-elision", "paragraphs": [{"id": "fls_9wtuclhm7yz5", "number": "4.14.3:1", "link": "types-and-traits.html#fls_9wtuclhm7yz5", "checksum": "d79a7a7c2d74efad1b16985dc59f37eab43dacda82826ca7822557c72a0932ec"}, {"id": "fls_jmp6o9zj8fkv", "number": "4.14.3:2", "link": "types-and-traits.html#fls_jmp6o9zj8fkv", "checksum": "32d1b793cd39bce611678730276e1b4319fbec6614cd48c07f2d26a1e76e5679"}, {"id": "fls_5zaq9p7jquc2", "number": "4.14.3:3", "link": "types-and-traits.html#fls_5zaq9p7jquc2", "checksum": "6bfff075569653189958ff85ac5cf2713c6e2e10a61755e557a5a274114a10f4"}, {"id": "fls_ymuq8ziquycp", "number": "4.14.3:4", "link": "types-and-traits.html#fls_ymuq8ziquycp", "checksum": "01b2cb5f3106d4540ec427082a3baee106878240cfbf49a243c14625f8e7f690"}, {"id": "fls_simn6sd8xuzz", "number": "4.14.3:5", "link": "types-and-traits.html#fls_simn6sd8xuzz", "checksum": "ed43d8d7ebdf76d78bd1611b62a5a14e51cc7b74a08399dbbe6a89ca09432165"}, {"id": "fls_diyisjnix9dc", "number": "4.14.3:6", "link": "types-and-traits.html#fls_diyisjnix9dc", "checksum": "e2eeb47e603a2757ced1b1b048a74e8c70eff013d072dae88111c56d15f1a50a"}, {"id": "fls_cd0zyi23vqwg", "number": "4.14.3:7", "link": "types-and-traits.html#fls_cd0zyi23vqwg", "checksum": "c4bf3768ceb2465a2a096c8aef590aee129db81593c92b2b8d8529e5a0e7fdfa"}, {"id": "fls_sa4lqc5o6cx3", "number": "4.14.3:8", "link": "types-and-traits.html#fls_sa4lqc5o6cx3", "checksum": "4eabb3c647de45efeb944bafbeabae6a318a9325155ef389199603ed1e19acc1"}], "informational": false}, {"id": "fls_hethxxbcg7ja", "number": "4.14.3.1", "title": "Function Lifetime Elision", "link": "types-and-traits.html#function-lifetime-elision", "paragraphs": [{"id": "fls_ladircfflydd", "number": "4.14.3.1:1", "link": "types-and-traits.html#fls_ladircfflydd", "checksum": "8fc35e5cf136f57bafd43ae857a0540f3e6377d540a98f10bf9575e151baba5c"}, {"id": "fls_dpudys82dhdc", "number": "4.14.3.1:2", "link": "types-and-traits.html#fls_dpudys82dhdc", "checksum": "4e446345859b9323669a875dd49ec52cce3e71e7f65700097e1ec21cf6f60506"}, {"id": "fls_pjil71kk0r25", "number": "4.14.3.1:3", "link": "types-and-traits.html#fls_pjil71kk0r25", "checksum": "a52ef65ad59c6a03acd104f52921c0bd1ab194c0d933c3d187455e8266facccb"}, {"id": "fls_1jnn9bsb71k7", "number": "4.14.3.1:4", "link": "types-and-traits.html#fls_1jnn9bsb71k7", "checksum": "560234cb87c2e6ff7cdbb0d27ca2bc465b9ad0c33b073139a622fc945d297d65"}, {"id": "fls_2p29p1fvi182", "number": "4.14.3.1:5", "link": "types-and-traits.html#fls_2p29p1fvi182", "checksum": "b16b3fc503b0ef9b2bb8a6286c781f2bff6bdc26cebcef598491234908bf0fe3"}, {"id": "fls_ks8wlufmhz6d", "number": "4.14.3.1:6", "link": "types-and-traits.html#fls_ks8wlufmhz6d", "checksum": "2733e9f6847d7d23dfbaf715feec476d91d9caef20c3b3b354287dd0c3eebfe1"}, {"id": "fls_hsg9kfyvh35m", "number": "4.14.3.1:7", "link": "types-and-traits.html#fls_hsg9kfyvh35m", "checksum": "3bcbd78a434bf0ba38571a7dd6ed85585dd4e92b865edc90332ecf4b4daaa3bf"}, {"id": "fls_ofqy10q4a9jk", "number": "4.14.3.1:8", "link": "types-and-traits.html#fls_ofqy10q4a9jk", "checksum": "16c08c00ce2a3df58129efe63027ec80880b95b07f01d9fd2c0c7f505d079150"}, {"id": "fls_yofbo96tjppf", "number": "4.14.3.1:9", "link": "types-and-traits.html#fls_yofbo96tjppf", "checksum": "90c63f8b0b6e4ccfd99d0308b04e2980a4b53f0de2e3a67cbec4ff8019bc7e2d"}, {"id": "fls_vf7cxiir91ps", "number": "4.14.3.1:10", "link": "types-and-traits.html#fls_vf7cxiir91ps", "checksum": "d8fc6c8065816c13c111ca417994ff7168f457d619f2299e9be1d36a9eb4e6dd"}, {"id": "fls_g56br27hq2zj", "number": "4.14.3.1:11", "link": "types-and-traits.html#fls_g56br27hq2zj", "checksum": "012616fbf6f9d9c37bc76e01c82464fb6d65c6787d308e10f7e7f8d4eb477716"}, {"id": "fls_1j204m1wy333", "number": "4.14.3.1:12", "link": "types-and-traits.html#fls_1j204m1wy333", "checksum": "c20fd04609ae44c467a3be462def3caaead0ee6b0c11a572851ac3bda8e9e7db"}, {"id": "fls_6km3cbchuxr2", "number": "4.14.3.1:13", "link": "types-and-traits.html#fls_6km3cbchuxr2", "checksum": "cbcb79548a5d9ac2995323208dcd3a9ccb79c785569231727fae4a32af08e791"}, {"id": "fls_crb6m6b3cdwh", "number": "4.14.3.1:14", "link": "types-and-traits.html#fls_crb6m6b3cdwh", "checksum": "3c29c57912c09c10856a76d6d990de41d91e40bfd828547a00735e0b544f7252"}, {"id": "fls_ac9tdlfwp5et", "number": "4.14.3.1:15", "link": "types-and-traits.html#fls_ac9tdlfwp5et", "checksum": "0a93ba5afb72ab5a83c7159ad67dc0478704a55a3d3ef9325b44d0aee4a5a11b"}, {"id": "fls_qtjc7334wzhj", "number": "4.14.3.1:16", "link": "types-and-traits.html#fls_qtjc7334wzhj", "checksum": "b0b24169a682ebd4af464f022caa0e0bc52dc45c2ab5969c01b1b6a2a313b7f4"}, {"id": "fls_vcmmkp9uruhr", "number": "4.14.3.1:17", "link": "types-and-traits.html#fls_vcmmkp9uruhr", "checksum": "98fed21cebc3cecb0b210e636cc45a37121a883718d0ba5e64b36abb86d70f58"}], "informational": false}, {"id": "fls_u5lqku2rs6uv", "number": "4.14.3.2", "title": "Static Lifetime Elision", "link": "types-and-traits.html#static-lifetime-elision", "paragraphs": [{"id": "fls_l4rdxafwnqz6", "number": "4.14.3.2:1", "link": "types-and-traits.html#fls_l4rdxafwnqz6", "checksum": "362c1e5e7ef9d1bb007461a6e77c25fd2bdd4146d43523089f709b4eecdb11f2"}, {"id": "fls_8irr97rzwfsc", "number": "4.14.3.2:2", "link": "types-and-traits.html#fls_8irr97rzwfsc", "checksum": "a4e8a63dc12eaffaf473b18138e9e501b7fedc18b8b3cb4105a41724426cd35a"}, {"id": "fls_37udexenqv3p", "number": "4.14.3.2:3", "link": "types-and-traits.html#fls_37udexenqv3p", "checksum": "e2a84e07dc44c60162e59d18213737a3fbdbe13962c4e3f32178970f3d2927ea"}, {"id": "fls_xi86he5vvill", "number": "4.14.3.2:4", "link": "types-and-traits.html#fls_xi86he5vvill", "checksum": "1eae2df72c51ffcad42ba90f5618089142bb9116967a5bcd8c0f9f34b11bfcc2"}, {"id": "fls_2gkcei9mwmn9", "number": "4.14.3.2:5", "link": "types-and-traits.html#fls_2gkcei9mwmn9", "checksum": "686ca62c3062007fe2a2c7112962d70308c2004c4e6eed04508f5a30e22ed81d"}, {"id": "fls_f3yz31drutpg", "number": "4.14.3.2:6", "link": "types-and-traits.html#fls_f3yz31drutpg", "checksum": "87777c1e9a852ae61349dd7554488c91f20c43dc493ec06547aa740dcba8ac22"}], "informational": false}, {"id": "fls_xtbohk2yk4la", "number": "4.14.3.3", "title": "Trait Object Lifetime Elision", "link": "types-and-traits.html#trait-object-lifetime-elision", "paragraphs": [{"id": "fls_fubywrrgxlbq", "number": "4.14.3.3:1", "link": "types-and-traits.html#fls_fubywrrgxlbq", "checksum": "9792cf5e24351dd23a21b5298dab4d7c7f182536a15cd1082d892ea56f6fed7e"}, {"id": "fls_url9ceivsiws", "number": "4.14.3.3:2", "link": "types-and-traits.html#fls_url9ceivsiws", "checksum": "735f380f9e5867b7964548adbbe1ef171e6362a7165d946fa2f88f1c49835e00"}, {"id": "fls_shhw6lyheyyq", "number": "4.14.3.3:3", "link": "types-and-traits.html#fls_shhw6lyheyyq", "checksum": "b8dc302081286801fab56e83adfb0c6641a4aabc8e37c977089243aa1c6eb354"}, {"id": "fls_lc2rwdplrwaf", "number": "4.14.3.3:4", "link": "types-and-traits.html#fls_lc2rwdplrwaf", "checksum": "d14fa2465cadaa9f9404de8d4f1dc2c83ea23291fb5a15f281ccbc77646725a3"}, {"id": "fls_e36hh4ojvfhv", "number": "4.14.3.3:5", "link": "types-and-traits.html#fls_e36hh4ojvfhv", "checksum": "5ce3569a487aec0ffe76efa0ebd2f980162b7540452d2800b92474ac6b7fe730"}, {"id": "fls_ptejalcniqtm", "number": "4.14.3.3:6", "link": "types-and-traits.html#fls_ptejalcniqtm", "checksum": "416a9c7f994a10348666cc1428fe679ecfbb5cc34c3fd991214116fd5405123c"}, {"id": "fls_rgbdkttijby4", "number": "4.14.3.3:7", "link": "types-and-traits.html#fls_rgbdkttijby4", "checksum": "9a1ce8dbae4264be182622bdedc1cd24fb5bc4c9c3d2a9805d7e83d22bebdac8"}, {"id": "fls_jhmqpuoexinz", "number": "4.14.3.3:8", "link": "types-and-traits.html#fls_jhmqpuoexinz", "checksum": "3ded6c067304c60cab3a670cb056d96704403c4fd5c6719d0ccfba410623ced1"}, {"id": "fls_cglzigwanasl", "number": "4.14.3.3:9", "link": "types-and-traits.html#fls_cglzigwanasl", "checksum": "b9f5585c56ad53d5720ebad44d77024dd47add4769f1886a76551f07ddaeb2ca"}, {"id": "fls_mipy2emzff6d", "number": "4.14.3.3:10", "link": "types-and-traits.html#fls_mipy2emzff6d", "checksum": "d6269aed267968a9a469c7003f9ac3e0b12044648f1246e40ef2eea39d5610b4"}, {"id": "fls_ypesuzqyhvux", "number": "4.14.3.3:11", "link": "types-and-traits.html#fls_ypesuzqyhvux", "checksum": "8160bcf42506146875a69bae6334ab1868c2957f6f1b085629deedafa0ad1914"}], "informational": false}, {"id": "fls_zqpv1ybddse1", "number": "4.14.3.4", "title": "Impl Header Lifetime Elision", "link": "types-and-traits.html#impl-header-lifetime-elision", "paragraphs": [{"id": "fls_fudsmzn0t8xp", "number": "4.14.3.4:1", "link": "types-and-traits.html#fls_fudsmzn0t8xp", "checksum": "f6a449af6e0ee8f776a596f24acb1ee832b6830604a4f17b42249cef950b08b8"}, {"id": "fls_3p5bdln3jbkz", "number": "4.14.3.4:2", "link": "types-and-traits.html#fls_3p5bdln3jbkz", "checksum": "a0ad068ff94137edb05b75c066208d34c26cad7e567ccbea22214e4480f035f5"}, {"id": "fls_pfs5alkn6anl", "number": "4.14.3.4:3", "link": "types-and-traits.html#fls_pfs5alkn6anl", "checksum": "ddc3e2f6339da6c1ddd05ef0d487698b078e2c06a7456b12337e4b04720ec88d"}, {"id": "fls_qv6ze5mdor5e", "number": "4.14.3.4:4", "link": "types-and-traits.html#fls_qv6ze5mdor5e", "checksum": "23b6ef8e94104fd9bfc08bddfadbc0e6b45e3af1816b852b6542fa4ef26a99b4"}, {"id": "fls_p2v1dqrdcjci", "number": "4.14.3.4:5", "link": "types-and-traits.html#fls_p2v1dqrdcjci", "checksum": "7e879940c036b1acde707493ab1511307ccc68d03e5e0c62cfd4d9d230a8bc69"}, {"id": "fls_mba35hfs8j9l", "number": "4.14.3.4:6", "link": "types-and-traits.html#fls_mba35hfs8j9l", "checksum": "c01105160b098b089c2c01853293cccd8231a07686ae97a7d7aba145d987c330"}, {"id": "fls_w0vwdmo8qv9j", "number": "4.14.3.4:7", "link": "types-and-traits.html#fls_w0vwdmo8qv9j", "checksum": "3b91fe9b60e23bf9452baf8b3ca1624e42e4109b50e88a340e7c1998b9a6772c"}, {"id": "fls_vimy3brpnvny", "number": "4.14.3.4:8", "link": "types-and-traits.html#fls_vimy3brpnvny", "checksum": "68c7b26da67383cc4c0a68039f093046d35f47ac193122f01475bcb83de41546"}], "informational": false}], "informational": false}, {"title": "List of undefined behavior", "link": "undefined-behavior.html", "sections": [{"id": "fls_ebwqh60suhin", "number": "C", "title": "List of undefined behavior", "link": "undefined-behavior.html", "paragraphs": [{"id": "fls_f9mki99mzpxy", "number": "C:1", "link": "undefined-behavior.html#fls_f9mki99mzpxy", "checksum": "d13620e441f116ffc694c67b5990b5e9e0bf77e8f8352c60bf9bf92617ff9b77"}], "informational": false}], "informational": true}, {"title": "Generics", "link": "generics.html", "sections": [{"id": "fls_y2k5paj8m8ug", "number": "12", "title": "Generics", "link": "generics.html", "paragraphs": [], "informational": false}, {"id": "fls_vhpwge5123cm", "number": "12.1", "title": "Generic Parameters", "link": "generics.html#generic-parameters", "paragraphs": [{"id": "fls_sye3d17l9bf5", "number": "12.1:1", "link": "generics.html#fls_sye3d17l9bf5", "checksum": "94863fbf1d8fdb0023847e7bb69f0c04a488fd3b0541bc6a43dfa580ab0d16ae"}, {"id": "fls_dalqke3rznrb", "number": "12.1:2", "link": "generics.html#fls_dalqke3rznrb", "checksum": "a9b102aea4ead34bd9a1dfb0ee5d0b12b91ec2b099a59d0a4320521f772835eb"}, {"id": "fls_pi6eukz7kc99", "number": "12.1:3", "link": "generics.html#fls_pi6eukz7kc99", "checksum": "090ffb52196f4e68695b1c484beb6bd8507d06d2f679ee8177decd8b6b34ca79"}, {"id": "fls_ixmgqupxvf73", "number": "12.1:4", "link": "generics.html#fls_ixmgqupxvf73", "checksum": "59bebc9aaade7a8e216d5acd0230c4a561df1b66eb30289c51eac737ae0037fa"}, {"id": "fls_z311nxou9yi3", "number": "12.1:5", "link": "generics.html#fls_z311nxou9yi3", "checksum": "ebd86684687d8a3b3d796280d1bd02eb718235e578e2e90f8b1ccf6fb6b90a97"}, {"id": "fls_wmcp0n36jlbr", "number": "12.1:6", "link": "generics.html#fls_wmcp0n36jlbr", "checksum": "09faa28093efe5bea8695465a1b6ccf9dd591a83377126e6f7ca32bffc783f0a"}, {"id": "fls_h42kg56vsefx", "number": "12.1:7", "link": "generics.html#fls_h42kg56vsefx", "checksum": "7dd9f9ccb26b4083d870e727d44fd7cb36573bf661c6ab932ad22dc96e4b6afb"}, {"id": "fls_372h3oevejih", "number": "12.1:8", "link": "generics.html#fls_372h3oevejih", "checksum": "b76e6307e1cd2582b525354a84e5bc604d7d52679124f2807619890557dd350d"}, {"id": "fls_u8mqct93yimd", "number": "12.1:9", "link": "generics.html#fls_u8mqct93yimd", "checksum": "d022534e05abd6632faed1f9a99e08afd782e729b0e5c46a046e8fec4761e6f9"}, {"id": "fls_vpcqgec83ybt", "number": "12.1:10", "link": "generics.html#fls_vpcqgec83ybt", "checksum": "4159da8372c73ecd16af81e45a142b09a10de3d7f3881a9c6c554040938dbb10"}, {"id": "fls_3sjmblc0b7qo", "number": "12.1:11", "link": "generics.html#fls_3sjmblc0b7qo", "checksum": "043b0fbba2086316df6f3152903a683a0584cc386e2b3f477ef71e328a293e4f"}, {"id": "fls_p4yb8eaxlru0", "number": "12.1:12", "link": "generics.html#fls_p4yb8eaxlru0", "checksum": "54f245efbc506709a192db34e53895d362594afb8f4ee96986ce6afca49b04d9"}, {"id": "fls_4a2qshaf5se7", "number": "12.1:13", "link": "generics.html#fls_4a2qshaf5se7", "checksum": "ca1335fd71570adbb1aed7643857b961a8bb6086fb3b9f64925800c41ef14658"}, {"id": "fls_s0nrjwqg2wox", "number": "12.1:14", "link": "generics.html#fls_s0nrjwqg2wox", "checksum": "05c11421678358c4279fc92f0982a56f16c452fb5b5d3c38d3ec77f99e14ca97"}, {"id": "fls_2grtygcj8o3", "number": "12.1:15", "link": "generics.html#fls_2grtygcj8o3", "checksum": "835447fa3ddfa7c5fd06897805b57986740381f9ecf8daf09fa6e6d1acb24377"}, {"id": "fls_95eooah0vcqx", "number": "12.1:16", "link": "generics.html#fls_95eooah0vcqx", "checksum": "65063a7df97c072c5bd36c4029e9de91a88b81719d83ee267e7c338688871249"}, {"id": "fls_ahcqtkh0m5sr", "number": "12.1:17", "link": "generics.html#fls_ahcqtkh0m5sr", "checksum": "b181eee5f3b1e0741189576664df8a3753448934eca0622dc2324ff23f54a85a"}, {"id": "fls_3qzrbp9j26w3", "number": "12.1:18", "link": "generics.html#fls_3qzrbp9j26w3", "checksum": "a39d6db0400cfba65a04cbc96b9586a37ef6f64de62ec283e56c4de6319823e9"}, {"id": "fls_x4s7p2v981r6", "number": "12.1:19", "link": "generics.html#fls_x4s7p2v981r6", "checksum": "03a4ce65a6524d90af458d25675d8237300b3ed290fccc708255707b27a42460"}, {"id": "fls_jzfk9fspzqja", "number": "12.1:20", "link": "generics.html#fls_jzfk9fspzqja", "checksum": "9d983e5bcc9005a2002c87f988931d048bb50221b71831ddf7af2d550d53e90a"}, {"id": "fls_6j616ydf2mnh", "number": "12.1:21", "link": "generics.html#fls_6j616ydf2mnh", "checksum": "b7abdeea8907fa3d7ecf4b6fab76bcf830d7e3beb440f7d181e32c35eaeed83f"}, {"id": "fls_hyi2jnp38v1n", "number": "12.1:22", "link": "generics.html#fls_hyi2jnp38v1n", "checksum": "3aa8b3cd82401a8ea45d3df4769bb90080dd5fec794696e299c905bf6ef1f6e9"}, {"id": "fls_sseo6u6pbcki", "number": "12.1:23", "link": "generics.html#fls_sseo6u6pbcki", "checksum": "81cb87c32bbae85869876f23d65d0f1dfe05101ef4b92401e5bf21fcb3be05c2"}, {"id": "fls_62b59qvom3nm", "number": "12.1:24", "link": "generics.html#fls_62b59qvom3nm", "checksum": "b515a8d6e6d86a8e289e2b7aa5bc1159cfbf1cab572c45f0cdeb32a01bbe3f39"}, {"id": "fls_oq76uff9gp0k", "number": "12.1:25", "link": "generics.html#fls_oq76uff9gp0k", "checksum": "dd989d910fcd0e9ef31de45877c6e06dccab6c17811741cfdcd8e3232a058440"}, {"id": "fls_ua3w16qo9o4", "number": "12.1:26", "link": "generics.html#fls_ua3w16qo9o4", "checksum": "7e2a62316333f93e684c2cbdd31ae2f2247a93882350929bb5794b9012585c4a"}, {"id": "fls_w9ol06mldwb", "number": "12.1:27", "link": "generics.html#fls_w9ol06mldwb", "checksum": "1e8333574e56710e3d837173743f166a40ae1198a9bbe2db35bb65a9387efbd7"}, {"id": "fls_g2pfrqhmeys8", "number": "12.1:28", "link": "generics.html#fls_g2pfrqhmeys8", "checksum": "b74efa68baa45a61d2fc231677ac14b4c52bf157f20599fd69f77c0e64bb0c52"}, {"id": "fls_56jq9k9l31rt", "number": "12.1:29", "link": "generics.html#fls_56jq9k9l31rt", "checksum": "3b21edfd98bd965b39de9b1be51cfe7cdc970789869e291378de930efadaf432"}, {"id": "fls_sh669lnc5o1b", "number": "12.1:30", "link": "generics.html#fls_sh669lnc5o1b", "checksum": "a279226de7f4deabad4cad0f5ccc01b808665fe0b792c1440cd28ea0dee6a1af"}, {"id": "fls_h6kx8dxh5u96", "number": "12.1:31", "link": "generics.html#fls_h6kx8dxh5u96", "checksum": "c3b9ce106b0b3bf0edb649f3ad7591f172990a957c1509351873ac6bc8e2ff33"}, {"id": "fls_5r7ontjlmgwj", "number": "12.1:32", "link": "generics.html#fls_5r7ontjlmgwj", "checksum": "b3ee8fb45410449e2ca276e3d66abc693b38dadb5e9e8ef1ceb39a221e3723a7"}, {"id": "fls_prbwj1pmng6k", "number": "12.1:33", "link": "generics.html#fls_prbwj1pmng6k", "checksum": "3d225966adb08cb1aa29f3b24fe23f01e25214e9792f5d98b64e003b5304cda7"}, {"id": "fls_byqjs5fvy2bj", "number": "12.1:34", "link": "generics.html#fls_byqjs5fvy2bj", "checksum": "6a6f41cc694f562b1d6e82c8572ce7bf5293074d57b9ac4fa2295fca68a9c3b4"}, {"id": "fls_hidfwkwr2r73", "number": "12.1:35", "link": "generics.html#fls_hidfwkwr2r73", "checksum": "34dda9625c7e9e6e463b2eb14643e6643f51c44406e3f2549783a1297f60000e"}, {"id": "fls_yayedrnaxhte", "number": "12.1:36", "link": "generics.html#fls_yayedrnaxhte", "checksum": "560df02838ca1936d23bf28b88e4da6c469ed343b26bfb566756052758e64639"}, {"id": "fls_axmvssu7an8p", "number": "12.1:37", "link": "generics.html#fls_axmvssu7an8p", "checksum": "d94acf91ab922f3d4fab3151db5a559875aa4416a0b81a8c40460f9a8bb91bce"}, {"id": "fls_iancoxisuxxb", "number": "12.1:38", "link": "generics.html#fls_iancoxisuxxb", "checksum": "100a96f35cd7e62ed2a2f4d2e022d3849f148e226cee8eb17737c46aed7f6e4d"}, {"id": "fls_wuwjegzjcuat", "number": "12.1:39", "link": "generics.html#fls_wuwjegzjcuat", "checksum": "3aeb3e42c07a42c3929a4700140366be5e8244d1bdc00cdc7204c4793592efd7"}, {"id": "fls_bn5nuuvq9awy", "number": "12.1:40", "link": "generics.html#fls_bn5nuuvq9awy", "checksum": "cec64b26b4879d9cbe5f17b1fa6120340dc8781525f1a5bbfefca47d239ab328"}, {"id": "fls_ouom2tqknsp3", "number": "12.1:41", "link": "generics.html#fls_ouom2tqknsp3", "checksum": "23631de104768741b7048e7d01c59e1fffcba54b9dcef1ed7c615bb826fd202d"}, {"id": "fls_m0bzw4jap6sg", "number": "12.1:42", "link": "generics.html#fls_m0bzw4jap6sg", "checksum": "a1c9458d5c17521a96ffec4d47ed6083ff2d3bff11ccd1eb479f8cf0b126b77e"}, {"id": "fls_vo7mgm34hwg2", "number": "12.1:43", "link": "generics.html#fls_vo7mgm34hwg2", "checksum": "42dcf2a32ea53ad56eb6ea1adf717442e8315af52daa703ab41a67eda8007371"}], "informational": false}, {"id": "fls_7nv8ualeaqe3", "number": "12.2", "title": "Where Clauses", "link": "generics.html#where-clauses", "paragraphs": [{"id": "fls_3nqb7p5ifvio", "number": "12.2:1", "link": "generics.html#fls_3nqb7p5ifvio", "checksum": "64e83b1f5bdc0de2f6c5804ed902cd3cc1013057056ba936ee008c9f9fc6008f"}, {"id": "fls_fhy4rsmmbvyy", "number": "12.2:2", "link": "generics.html#fls_fhy4rsmmbvyy", "checksum": "a0586577beb2f969d6d4e05e56e5fd16a92fddb05d3708fbc5f6e39bb85718a5"}, {"id": "fls_v4pkfqtcsav6", "number": "12.2:3", "link": "generics.html#fls_v4pkfqtcsav6", "checksum": "da1b8b29d9f0346fe7bd1d1c75f892569c746af9b54e1f7900d588a7e22887ac"}, {"id": "fls_cslgpmvjujhd", "number": "12.2:4", "link": "generics.html#fls_cslgpmvjujhd", "checksum": "1e4a1f1e63e1773a0421a5334c9e37808a94b3c0b255ce7c0595282179fb59fe"}, {"id": "fls_ytk74dyxuy6d", "number": "12.2:5", "link": "generics.html#fls_ytk74dyxuy6d", "checksum": "d294be65a9a865ac01935be20857d638bd76b15bd0cadf121963475263530947"}, {"id": "fls_1xgw1dq60quz", "number": "12.2:6", "link": "generics.html#fls_1xgw1dq60quz", "checksum": "533a4ad543c2a168ed772a1a1f3a17b837f984e04ed0006caca9e6af274aa8e0"}, {"id": "fls_47s8i7pzb9gg", "number": "12.2:7", "link": "generics.html#fls_47s8i7pzb9gg", "checksum": "3576fed5bb35f8d7f0dcbe136a5bc4184204ac3439c7f928a393292885b06fad"}], "informational": false}, {"id": "fls_utuu8mdbuyxm", "number": "12.3", "title": "Generic Arguments", "link": "generics.html#generic-arguments", "paragraphs": [{"id": "fls_3x6qd8vt5uus", "number": "12.3:1", "link": "generics.html#fls_3x6qd8vt5uus", "checksum": "6d430096779c94fd8eb3ddbedf7572aa28ac912896c0110048a311cdd9df5966"}, {"id": "fls_ky39fb2vcom6", "number": "12.3:2", "link": "generics.html#fls_ky39fb2vcom6", "checksum": "b62123e2e8e883a4568f6e6c0ef85ad81748d23d32d49acc747eb1cfa2e22455"}, {"id": "fls_9n1ejjili06h", "number": "12.3:3", "link": "generics.html#fls_9n1ejjili06h", "checksum": "f7ffa174a2e33bf090afe2aaf7920f3cbd827290f14b80321f47c88133659631"}, {"id": "fls_9pda3ja0ihks", "number": "12.3:4", "link": "generics.html#fls_9pda3ja0ihks", "checksum": "6233c170bc63c0936a92c1690c890775856ddd72117eac1e21fe2d129e41e462"}, {"id": "fls_i3z9ueoe99zd", "number": "12.3:5", "link": "generics.html#fls_i3z9ueoe99zd", "checksum": "ab86084835389c5804317b18cc5a85c36e5c031018783e0555e6ba607799deea"}, {"id": "fls_al4dhmqodvwc", "number": "12.3:6", "link": "generics.html#fls_al4dhmqodvwc", "checksum": "63142cba165b2178690155f575392011f1134c14184e81e36820ddb73cae4f92"}, {"id": "fls_10k9gdxlpuls", "number": "12.3:7", "link": "generics.html#fls_10k9gdxlpuls", "checksum": "a8831e92d9d0bfcb4b315dbcc507de27e5867c90165c66bf816329d11fcff100"}, {"id": "fls_d4vdvpihoeb1", "number": "12.3:8", "link": "generics.html#fls_d4vdvpihoeb1", "checksum": "971129d56022b37c66ec71073289a4dedfa09aa435ddc1c7cae97b1a9d1eaf7a"}, {"id": "fls_ukarc98ceesz", "number": "12.3:9", "link": "generics.html#fls_ukarc98ceesz", "checksum": "c8fdfaaca0e4c05cb61bbb042227c630e92a1a4a039e0f4d8a3c100941ff6a07"}, {"id": "fls_l88o2snx9qbt", "number": "12.3:10", "link": "generics.html#fls_l88o2snx9qbt", "checksum": "a874a0d306f839d2ffcec82a884d903ffe0ebbadaca947ebaaca90dbad22f79d"}, {"id": "fls_thpj9io9tyuy", "number": "12.3:11", "link": "generics.html#fls_thpj9io9tyuy", "checksum": "4b7b540224edea54abc7c76442e8f3bcd837894f2694c4da61a31aa02132aff1"}], "informational": false}, {"id": "fls_i7g2n7hfg3ch", "number": "12.4", "title": "Generic Conformance", "link": "generics.html#generic-conformance", "paragraphs": [{"id": "fls_cbwyxbjeyeb2", "number": "12.4:1", "link": "generics.html#fls_cbwyxbjeyeb2", "checksum": "d1612a32235e7d6f04d58b8aa1fd91f9a6a088559668f8ef79b51f4827cf4564"}, {"id": "fls_ltch5eivxgaa", "number": "12.4:2", "link": "generics.html#fls_ltch5eivxgaa", "checksum": "debb7f2966e0cb74a4f4216168dd052c70fd3d6a8c27fb2f3aa0c7fe47f76a98"}, {"id": "fls_gb3mpt5rxjoa", "number": "12.4:3", "link": "generics.html#fls_gb3mpt5rxjoa", "checksum": "639ff9a5038d7adda9b3bba839e6ae21c85e388acb2f212f48ea6695f318c6f2"}, {"id": "fls_kdeltu9dsd0d", "number": "12.4:4", "link": "generics.html#fls_kdeltu9dsd0d", "checksum": "af4df9b3ddac7de4a5237a0d32e24c6c2da88af6502df4979d83552fec77309d"}, {"id": "fls_ws1h57fk1mkh", "number": "12.4:5", "link": "generics.html#fls_ws1h57fk1mkh", "checksum": "d89280e4cf06cc3484d31ca3e0ae0d2e71ffb5073be76a1508c6a15273bb4b3d"}, {"id": "fls_w0ozotuwtr9", "number": "12.4:6", "link": "generics.html#fls_w0ozotuwtr9", "checksum": "91bce3d2e51c484c884932370ea99b161b0bf86288418a7b19cdaf1ab3ce5812"}, {"id": "fls_91bylteu35bi", "number": "12.4:7", "link": "generics.html#fls_91bylteu35bi", "checksum": "5e02e16f6c0da4bb4819ffb8a5e26e721a99432cf64b2e762ed419f7ad104c14"}, {"id": "fls_j6xtrxc6aik", "number": "12.4:8", "link": "generics.html#fls_j6xtrxc6aik", "checksum": "a93335cddb2ff0f239fd61961f0f4b84cf8c28eda2aab38546504a0036037239"}, {"id": "fls_us7d30cbwgpz", "number": "12.4:9", "link": "generics.html#fls_us7d30cbwgpz", "checksum": "c2a32969042fbf3a990f2fbb15ccc7cec1c1fbbec38d11829756846543bea7b7"}, {"id": "fls_dp3hpvf0fmr8", "number": "12.4:10", "link": "generics.html#fls_dp3hpvf0fmr8", "checksum": "c87ac00ad30f5b3d158b3eefc327e17f8c53e5f2a7004df7dc4efb8f5c1a2210"}, {"id": "fls_mg45zcguxxg5", "number": "12.4:11", "link": "generics.html#fls_mg45zcguxxg5", "checksum": "7a2547656618d6f84add7a3e50e946935bb92bd29224f1ee7a67bf7953e55b77"}, {"id": "fls_mdgq5xjzkal3", "number": "12.4:12", "link": "generics.html#fls_mdgq5xjzkal3", "checksum": "9b6af5832d05ba38ea6da1de3aaaf043a9e42d0142f7294124fcbf2f0d95c818"}, {"id": "fls_yufugb25ovh3", "number": "12.4:13", "link": "generics.html#fls_yufugb25ovh3", "checksum": "55339f55c4a3fa7c05dfb3379cd23dd3de7da6d00309d6c5af63eb38de6204bf"}, {"id": "fls_ohvxhj23x7w2", "number": "12.4:14", "link": "generics.html#fls_ohvxhj23x7w2", "checksum": "07a280c09abe97494fb7a02a246eb3eecf3c280c763026b64c83005f8cace2fa"}, {"id": "fls_kyar0jh9bqew", "number": "12.4:15", "link": "generics.html#fls_kyar0jh9bqew", "checksum": "139fbdc2aef75a36c1a73ea55319255892f7fac16e00d0f5da5ab0e832366b16"}], "informational": false}], "informational": false}, {"title": "Glossary", "link": "glossary.html", "sections": [{"id": "fls_bc2qwbfibrcs", "number": "B", "title": "Glossary", "link": "glossary.html", "paragraphs": [], "informational": false}, {"id": "fls_m98yg554tj9s", "number": "B.1", "title": "ABI", "link": "glossary.html#abi", "paragraphs": [{"id": "fls_4ko8qcah0f9k", "number": "B.1:1", "link": "glossary.html#fls_4ko8qcah0f9k", "checksum": "a4b8b9adc0d06d2a1d33f109da69c23d05657829cf884e7db50cbd82d36ce75d"}], "informational": false}, {"id": "fls_zoddwoobyhc0", "number": "B.2", "title": "ABI clobber", "link": "glossary.html#abi-clobber", "paragraphs": [{"id": "fls_ovx4rfcwkfp9", "number": "B.2:1", "link": "glossary.html#fls_ovx4rfcwkfp9", "checksum": "1a4c99c0680d2f8364d1e4f3c98050fac1c55af56f6adec3c02a4c03d0f0ba0b"}, {"id": "fls_pmntkjdmchia", "number": "B.2:2", "link": "glossary.html#fls_pmntkjdmchia", "checksum": "7b53a3a4aae9412baf48e0885aa364924a25cdff9462cf2f6ecad59329b8dea4"}], "informational": false}, {"id": "fls_g791aj7w5iz1", "number": "B.3", "title": "ABI kind", "link": "glossary.html#abi-kind", "paragraphs": [{"id": "fls_qo9itrt0n3h8", "number": "B.3:1", "link": "glossary.html#fls_qo9itrt0n3h8", "checksum": "0c7a14fdad22f794abe3d6c82d31e3458e73f437529de5043b115cb3b98d67bf"}, {"id": "fls_rd4kpubxygie", "number": "B.3:2", "link": "glossary.html#fls_rd4kpubxygie", "checksum": "62464e5a05d93ce71aa0049bfa2a6d7d28fb94c0ac7adacff3e43aa98d7c7c85"}], "informational": false}, {"id": "fls_ymnz0mt7i4m8", "number": "B.4", "title": "abort", "link": "glossary.html#abort", "paragraphs": [{"id": "fls_u4o7tda3ilv0", "number": "B.4:1", "link": "glossary.html#fls_u4o7tda3ilv0", "checksum": "7d8b5622cb41f4a6e44f0899a7311a7489321b6a81baf543af5a16698140a66f"}], "informational": false}, {"id": "fls_g40une2uudez", "number": "B.5", "title": "abstract data type", "link": "glossary.html#abstract-data-type", "paragraphs": [{"id": "fls_64drmro2fcfo", "number": "B.5:1", "link": "glossary.html#fls_64drmro2fcfo", "checksum": "d7a55be9b85d21513a63d47bc7c112eda652d7ddc9819ac326b8b23b6cba2125"}], "informational": false}, {"id": "fls_5fu0ncvnjyna", "number": "B.6", "title": "active attribute", "link": "glossary.html#active-attribute", "paragraphs": [{"id": "fls_r8rzj8mtxtp1", "number": "B.6:1", "link": "glossary.html#fls_r8rzj8mtxtp1", "checksum": "5d8d38118bd288415e8b133834f31a7e01007305fd1d694f920eb2d295dc23d9"}], "informational": false}, {"id": "fls_xqzapsv9tm1f", "number": "B.7", "title": "addition assignment", "link": "glossary.html#addition-assignment", "paragraphs": [{"id": "fls_fvgkecxlmupe", "number": "B.7:1", "link": "glossary.html#fls_fvgkecxlmupe", "checksum": "18a73c5ede1011466f9dc30afca85c785c4bb4887c829ff6872b1afd6c143785"}], "informational": false}, {"id": "fls_iw30dqjaeqle", "number": "B.8", "title": "addition assignment expression", "link": "glossary.html#addition-assignment-expression", "paragraphs": [{"id": "fls_w83tf9m7vu67", "number": "B.8:1", "link": "glossary.html#fls_w83tf9m7vu67", "checksum": "98791e8b448b56750c7e22e4f8aee0da4f9b06296b917dbbff908bfacdc36bed"}, {"id": "fls_hihh97p0rnt8", "number": "B.8:2", "link": "glossary.html#fls_hihh97p0rnt8", "checksum": "001adcc5cf31667dc474a6877f534f69a81f18ddcab2d86e6ed83cc8fe500082"}], "informational": false}, {"id": "fls_mcabdigrqv21", "number": "B.9", "title": "addition expression", "link": "glossary.html#addition-expression", "paragraphs": [{"id": "fls_ylfdtuajmi0t", "number": "B.9:1", "link": "glossary.html#fls_ylfdtuajmi0t", "checksum": "64f1fbee5138f70b47557615d2e94efea505f51e584cb05aece1dff319d90ee6"}, {"id": "fls_5bgx5dyi817x", "number": "B.9:2", "link": "glossary.html#fls_5bgx5dyi817x", "checksum": "68c00757a667a7d05b35a2b500a797bf290d113953e916010ccad377f4804011"}], "informational": false}, {"id": "fls_wbdlbe61de3t", "number": "B.10", "title": "adjusted call operand", "link": "glossary.html#adjusted-call-operand", "paragraphs": [{"id": "fls_mchqbc64iu0u", "number": "B.10:1", "link": "glossary.html#fls_mchqbc64iu0u", "checksum": "ade9bc5a53b24efdeb86472abcb73c57df00dbc87e4e34d1326537fae8183f57"}], "informational": false}, {"id": "fls_j775guurkgo4", "number": "B.11", "title": "alignment", "link": "glossary.html#alignment", "paragraphs": [{"id": "fls_c0hbatn5o8x3", "number": "B.11:1", "link": "glossary.html#fls_c0hbatn5o8x3", "checksum": "5c7086aeda1386efc9b74f3da54259777835abd3e74462d5599d2da7af1ef59d"}], "informational": false}, {"id": "fls_jzkpcku1t2lr", "number": "B.12", "title": "all configuration predicate", "link": "glossary.html#all-configuration-predicate", "paragraphs": [{"id": "fls_iymzwitnkypv", "number": "B.12:1", "link": "glossary.html#fls_iymzwitnkypv", "checksum": "6808f99c6d1e3528894ffc4a50f26c4ff9826a8a39f1eb8a8649656dbbf99cb9"}, {"id": "fls_0few9bx8xx8q", "number": "B.12:2", "link": "glossary.html#fls_0few9bx8xx8q", "checksum": "766c81fa44bbba49b8e11a3675587467e229b8b2bcf098eacb996629733d3aee"}], "informational": false}, {"id": "fls_du8uevac5q7j", "number": "B.13", "title": "anonymous loop expression", "link": "glossary.html#anonymous-loop-expression", "paragraphs": [{"id": "fls_csss2a8yk52k", "number": "B.13:1", "link": "glossary.html#fls_csss2a8yk52k", "checksum": "b20168e112b5a2296c07054c48e2c12ce7e489d74564757148b2aa900f6f2671"}], "informational": false}, {"id": "fls_dgxkklxcrrl0", "number": "B.14", "title": "anonymous return type", "link": "glossary.html#anonymous-return-type", "paragraphs": [{"id": "fls_z6t6lbwwztuf", "number": "B.14:1", "link": "glossary.html#fls_z6t6lbwwztuf", "checksum": "198d4349217668b52c8df13a0b9818dbf3aa38a320a4d98a4102ba04ab7d295b"}], "informational": false}, {"id": "fls_8oepaq6ang93", "number": "B.15", "title": "anonymous type parameter", "link": "glossary.html#anonymous-type-parameter", "paragraphs": [{"id": "fls_brqaq0736o09", "number": "B.15:1", "link": "glossary.html#fls_brqaq0736o09", "checksum": "e2d7b8aaac92db93d38fcd31bfae0e852168a01b4d0e86f27e9476a403a7186b"}], "informational": false}, {"id": "fls_jrzm6c5b6amt", "number": "B.16", "title": "any configuration predicate", "link": "glossary.html#any-configuration-predicate", "paragraphs": [{"id": "fls_0nwhml8eoozg", "number": "B.16:1", "link": "glossary.html#fls_0nwhml8eoozg", "checksum": "901ba35139b08ae1dedfc6cbd9d2ed55bbbb93f55c8de7151cc38a1521790add"}, {"id": "fls_xhhxondldwqy", "number": "B.16:2", "link": "glossary.html#fls_xhhxondldwqy", "checksum": "57d6d36e65b833a08834b7e541e88a01a13775a6fe67f76315339425a1a96083"}], "informational": false}, {"id": "fls_pcum2wpmgskk", "number": "B.17", "title": "Application Binary Interface", "link": "glossary.html#application-binary-interface", "paragraphs": [{"id": "fls_ew4babc9467c", "number": "B.17:1", "link": "glossary.html#fls_ew4babc9467c", "checksum": "c10718ee19f1201e9e9b7a56c6b617bec1c6a443ee347fc27692063012ef9c14"}, {"id": "fls_8dgmmsp34lgc", "number": "B.17:2", "link": "glossary.html#fls_8dgmmsp34lgc", "checksum": "153f28a8596d2298b2c427e267dcae87765bb56d5c6263d3052ebe3b5d3bd8d3"}], "informational": false}, {"id": "fls_dd008npswhij", "number": "B.18", "title": "argument operand", "link": "glossary.html#argument-operand", "paragraphs": [{"id": "fls_ljuwr88k92vp", "number": "B.18:1", "link": "glossary.html#fls_ljuwr88k92vp", "checksum": "6bfa74716faf884aa1779362249861b00e1009170c63cedf337926564d47b803"}], "informational": false}, {"id": "fls_kf81ozijral2", "number": "B.19", "title": "arithmetic expression", "link": "glossary.html#arithmetic-expression", "paragraphs": [{"id": "fls_u3z2r1fw89xo", "number": "B.19:1", "link": "glossary.html#fls_u3z2r1fw89xo", "checksum": "09f7033a48d34f5b5cc2da4e0c146ffb6c35a005e6021da914d59bc4b6e09a44"}, {"id": "fls_in59ccg4g3we", "number": "B.19:2", "link": "glossary.html#fls_in59ccg4g3we", "checksum": "ad1871a77448f12fd5e58ed8c626ded9e8e52afa05b92616d9484411af6b061a"}], "informational": false}, {"id": "fls_ksuc3gi7cdly", "number": "B.20", "title": "arithmetic operator", "link": "glossary.html#arithmetic-operator", "paragraphs": [{"id": "fls_qf7dckakqvrq", "number": "B.20:1", "link": "glossary.html#fls_qf7dckakqvrq", "checksum": "cbf72638ec53eebe2fbf63987178814dabf15f620b19d3e6eefe5a0c82081c19"}], "informational": false}, {"id": "fls_vz1h57x9ofsz", "number": "B.21", "title": "arithmetic overflow", "link": "glossary.html#arithmetic-overflow", "paragraphs": [{"id": "fls_jbytoqviddal", "number": "B.21:1", "link": "glossary.html#fls_jbytoqviddal", "checksum": "948f90dc2aa9b3c20a7077d80523afb82b57f643c37b11a2bef947380b2990d7"}], "informational": false}, {"id": "fls_9aice4qbiqxf", "number": "B.22", "title": "arity", "link": "glossary.html#arity", "paragraphs": [{"id": "fls_dl2gkip00bua", "number": "B.22:1", "link": "glossary.html#fls_dl2gkip00bua", "checksum": "32549d737df6956f86729fd3cef18291f5b579f8fb8cd87e6c65cae0d18621f7"}], "informational": false}, {"id": "fls_bn1regeucxqi", "number": "B.23", "title": "array", "link": "glossary.html#array", "paragraphs": [{"id": "fls_metry7a5prpt", "number": "B.23:1", "link": "glossary.html#fls_metry7a5prpt", "checksum": "baedd928a3ed072770b87d4693650150a7a444aa606c70d3234752066ec593ea"}], "informational": false}, {"id": "fls_2d9fee2o9", "number": "B.24", "title": "array element constructor", "link": "glossary.html#array-element-constructor", "paragraphs": [{"id": "fls_cmx9ls5zoazp", "number": "B.24:1", "link": "glossary.html#fls_cmx9ls5zoazp", "checksum": "0ea1f59b66ad56c3821faefc5c1f2fd54127fe0f57dee9851d5172a8b2321cff"}, {"id": "fls_9bwte7cmszl1", "number": "B.24:2", "link": "glossary.html#fls_9bwte7cmszl1", "checksum": "b69292e62b34d951badd6112a1bffbc713a61d7fc3b863370f9fa95fc2001980"}], "informational": false}, {"id": "fls_yvzpqb192pci", "number": "B.25", "title": "array expression", "link": "glossary.html#array-expression", "paragraphs": [{"id": "fls_pyjkjbvqarto", "number": "B.25:1", "link": "glossary.html#fls_pyjkjbvqarto", "checksum": "e4c1e035990bf252242bb5c2497017bc152f164d9822a601ab6a3c79cf752c10"}, {"id": "fls_vua1xy4y9irp", "number": "B.25:2", "link": "glossary.html#fls_vua1xy4y9irp", "checksum": "19ea2c73c4007224773c777a349409bad2f09edab12ffe626426727461ac93ce"}], "informational": false}, {"id": "fls_6jkgj61m49vg", "number": "B.26", "title": "array repetition constructor", "link": "glossary.html#array-repetition-constructor", "paragraphs": [{"id": "fls_st1kw8mor2zk", "number": "B.26:1", "link": "glossary.html#fls_st1kw8mor2zk", "checksum": "8da43ed54f5652f1659e9cd11bf0893e5f663edf982f874a4d44bb967c9fd5ce"}, {"id": "fls_1zr997qwsal2", "number": "B.26:2", "link": "glossary.html#fls_1zr997qwsal2", "checksum": "779c3367f4595f83edc738069ad628562bc861d3f6ddd498122fa6b43446606b"}], "informational": false}, {"id": "fls_15gzlmwuu4pk", "number": "B.27", "title": "array type", "link": "glossary.html#array-type", "paragraphs": [{"id": "fls_muddb5qxdc4k", "number": "B.27:1", "link": "glossary.html#fls_muddb5qxdc4k", "checksum": "a947e7964455ff2ff7db79ea1fc66d35c22a54700e41188ff3d4293a68c8d439"}, {"id": "fls_wre34hexlv6s", "number": "B.27:2", "link": "glossary.html#fls_wre34hexlv6s", "checksum": "d314b310f1bbe63e079d7bcd0886f2d942bf40293190ae30e0b5c19c54beb922"}], "informational": false}, {"id": "fls_et0nkxayydmh", "number": "B.28", "title": "assembly code block", "link": "glossary.html#assembly-code-block", "paragraphs": [{"id": "fls_d1ojwfwkpvm3", "number": "B.28:1", "link": "glossary.html#fls_d1ojwfwkpvm3", "checksum": "5f146112b79ecf0cca821b20931648fde2e4de33f3c63affbe10634883c62c6a"}, {"id": "fls_gxvuuw6iynhz", "number": "B.28:2", "link": "glossary.html#fls_gxvuuw6iynhz", "checksum": "fbd7caef299b552aba01fb8e2bb0fc2915928d2be525e52f8de2623e4a8ea622"}], "informational": false}, {"id": "fls_iunmwxxcuzif", "number": "B.29", "title": "assembly directive", "link": "glossary.html#assembly-directive", "paragraphs": [{"id": "fls_fp2kbo6c3cpq", "number": "B.29:1", "link": "glossary.html#fls_fp2kbo6c3cpq", "checksum": "d33ad565b26f01d4335d9775d46ec8e60dca8c305a7f40442f2c7814d2cfb5d9"}], "informational": false}, {"id": "fls_hlisgbszpo2r", "number": "B.30", "title": "assembly instruction", "link": "glossary.html#assembly-instruction", "paragraphs": [{"id": "fls_vlu28hovcy2o", "number": "B.30:1", "link": "glossary.html#fls_vlu28hovcy2o", "checksum": "89cc18647f78561ff8ea549eac139fa5948d2d8ec5cdbd032419d0c5734074b9"}, {"id": "fls_eyhub5ccldbm", "number": "B.30:2", "link": "glossary.html#fls_eyhub5ccldbm", "checksum": "bce9778dd90da6c0ce90dfed19e2530cd684fb27d929e19c67e067e5f7552bf8"}], "informational": false}, {"id": "fls_1iviuovdsyph", "number": "B.31", "title": "assembly option", "link": "glossary.html#assembly-option", "paragraphs": [{"id": "fls_f5i3okdkiyne", "number": "B.31:1", "link": "glossary.html#fls_f5i3okdkiyne", "checksum": "91327a66cf96bd903be1c5e14a958c45bed5796671fd255265fc4825fb89e311"}, {"id": "fls_31nqgpgb73hy", "number": "B.31:2", "link": "glossary.html#fls_31nqgpgb73hy", "checksum": "d78782159526caa5d6547852c6c2ba04781b15013de4dcfebf018dbefd9285a2"}], "informational": false}, {"id": "fls_l78iam7w8w38", "number": "B.32", "title": "assigned operand", "link": "glossary.html#assigned-operand", "paragraphs": [{"id": "fls_g714mnh7s7fx", "number": "B.32:1", "link": "glossary.html#fls_g714mnh7s7fx", "checksum": "f021eae06349b6ea9213824aa74fd00cc4ef76a6397f79d473154719fb456628"}, {"id": "fls_z0amfuj9vsqe", "number": "B.32:2", "link": "glossary.html#fls_z0amfuj9vsqe", "checksum": "af19c239b1198b6b5c9aa0f53822c17065f6b5071f9963e07372966dea0aaf45"}], "informational": false}, {"id": "fls_m1mim5qdzf2u", "number": "B.33", "title": "assignee expression", "link": "glossary.html#assignee-expression", "paragraphs": [{"id": "fls_wpmcexvbynbu", "number": "B.33:1", "link": "glossary.html#fls_wpmcexvbynbu", "checksum": "8ac99cc675c299be411b1538d3f2e1e03a710c3b8d2b7c1c0f34bf53735173d4"}], "informational": false}, {"id": "fls_3hs9hqsthil1", "number": "B.34", "title": "assignee operand", "link": "glossary.html#assignee-operand", "paragraphs": [{"id": "fls_4tgf0wu2mr3l", "number": "B.34:1", "link": "glossary.html#fls_4tgf0wu2mr3l", "checksum": "54415450f0844d84e0beaf4ec65f4f8228b3e8c99e9be690005441052ccef255"}, {"id": "fls_df0j0vnnq20a", "number": "B.34:2", "link": "glossary.html#fls_df0j0vnnq20a", "checksum": "9c86f51e02aedc14b3693c8d107031106fa848137e313bbc0947e966ea8c1ff5"}], "informational": false}, {"id": "fls_f6ztsofr6xa9", "number": "B.35", "title": "assignment", "link": "glossary.html#assignment", "paragraphs": [{"id": "fls_j9pyuucyplmi", "number": "B.35:1", "link": "glossary.html#fls_j9pyuucyplmi", "checksum": "4a34ae854eba4a45a95361791380b49e9b65392a652a33845c8ca9145a81efd0"}], "informational": false}, {"id": "fls_2d2elg5eukv4", "number": "B.36", "title": "assignment expression", "link": "glossary.html#assignment-expression", "paragraphs": [{"id": "fls_6jkc6a6me3zr", "number": "B.36:1", "link": "glossary.html#fls_6jkc6a6me3zr", "checksum": "c582f9a66293c5666b0e75fac231f2415fb02be2cb7ee04b51ac50901ad7f023"}, {"id": "fls_njw68i3bp9qq", "number": "B.36:2", "link": "glossary.html#fls_njw68i3bp9qq", "checksum": "8b8e39cf03a8e9e7cd3be103e2bd7d0876a158c6e0392b6cdf85a32caaccdcee"}], "informational": false}, {"id": "fls_pjb22ylz5swp", "number": "B.37", "title": "associated constant", "link": "glossary.html#associated-constant", "paragraphs": [{"id": "fls_hi9qa0k2nujb", "number": "B.37:1", "link": "glossary.html#fls_hi9qa0k2nujb", "checksum": "24bc88547d8c60e4d7b1d3aca5e18d2feaf33f78759285c14d57ae40db8a26a8"}], "informational": false}, {"id": "fls_vxiitesidcc2", "number": "B.38", "title": "associated function", "link": "glossary.html#associated-function", "paragraphs": [{"id": "fls_zcy5pat39bq7", "number": "B.38:1", "link": "glossary.html#fls_zcy5pat39bq7", "checksum": "3466ca701a5eb8b8bf058fabb19cfc0209948fdec7d3b218230f56cc07e7def4"}], "informational": false}, {"id": "fls_9mcx6h6irrlx", "number": "B.39", "title": "associated implementation constant", "link": "glossary.html#associated-implementation-constant", "paragraphs": [{"id": "fls_rfaxcrrrb5q9", "number": "B.39:1", "link": "glossary.html#fls_rfaxcrrrb5q9", "checksum": "7a705d6944a599804ae13d66da246684147608fee365fb58f0e9a2a3337383c8"}], "informational": false}, {"id": "fls_n85fwe75ku60", "number": "B.40", "title": "associated implementation function", "link": "glossary.html#associated-implementation-function", "paragraphs": [{"id": "fls_7xbmvl3jrc27", "number": "B.40:1", "link": "glossary.html#fls_7xbmvl3jrc27", "checksum": "af7994df35666e2d06d9b8fdf0d438a9f40e754a9fd04dbc071ed879e196ed89"}], "informational": false}, {"id": "fls_c0hekhwpznyq", "number": "B.41", "title": "associated implementation type", "link": "glossary.html#associated-implementation-type", "paragraphs": [{"id": "fls_6g5t81gx9ayx", "number": "B.41:1", "link": "glossary.html#fls_6g5t81gx9ayx", "checksum": "ae043cd27830b3d4d25fbf3c74d8930fa00fdba422466580da9a80cbf0b77934"}], "informational": false}, {"id": "fls_f3ferow5ugp", "number": "B.42", "title": "associated item", "link": "glossary.html#associated-item", "paragraphs": [{"id": "fls_o5ysjk7l91ni", "number": "B.42:1", "link": "glossary.html#fls_o5ysjk7l91ni", "checksum": "f556d4d5d4be5a144a195f8b05ec440856459d7c948ad80636ecba13520a30f1"}, {"id": "fls_44vtqu7tvhi2", "number": "B.42:2", "link": "glossary.html#fls_44vtqu7tvhi2", "checksum": "cde933865ca4b56f926024ba889c6e7bfcc3c6c0f622ee515b6db1801ce7c42d"}], "informational": false}, {"id": "fls_8p8teeamua55", "number": "B.43", "title": "associated trait constant", "link": "glossary.html#associated-trait-constant", "paragraphs": [{"id": "fls_xhhsej8db74y", "number": "B.43:1", "link": "glossary.html#fls_xhhsej8db74y", "checksum": "189012405431e6e0501a8b663a6ea6c42e50cd79a96d1e161b116460ab5fa8bf"}], "informational": false}, {"id": "fls_4h7s8u1zumnq", "number": "B.44", "title": "associated trait function", "link": "glossary.html#associated-trait-function", "paragraphs": [{"id": "fls_r927r0pdkb6h", "number": "B.44:1", "link": "glossary.html#fls_r927r0pdkb6h", "checksum": "fbf860398c6c240db67097749c221d03dbc3fb53ece13acaf39964aca10bef88"}], "informational": false}, {"id": "fls_47xtji9pk8lw", "number": "B.45", "title": "associated trait implementation item", "link": "glossary.html#associated-trait-implementation-item", "paragraphs": [{"id": "fls_paenehztvgfb", "number": "B.45:1", "link": "glossary.html#fls_paenehztvgfb", "checksum": "7bcc5dac3606f39e26a6e2f2101318e15fd128e8a726e5d05bcb6132d7d4085a"}], "informational": false}, {"id": "fls_j946yicmlayv", "number": "B.46", "title": "associated trait item", "link": "glossary.html#associated-trait-item", "paragraphs": [{"id": "fls_ilrrvlm05gtf", "number": "B.46:1", "link": "glossary.html#fls_ilrrvlm05gtf", "checksum": "93a89e40c548bb5a1e376f389cb160e3e81d28dcfe5b8852f52b8445e051df64"}], "informational": false}, {"id": "fls_azz308k3ra99", "number": "B.47", "title": "associated trait type", "link": "glossary.html#associated-trait-type", "paragraphs": [{"id": "fls_dndsgkiq9r7i", "number": "B.47:1", "link": "glossary.html#fls_dndsgkiq9r7i", "checksum": "71672fbc8744f773cb99e8e1c2281dbac1fc06503184ba6bd3c439e30defd776"}], "informational": false}, {"id": "fls_zfs68g3yk0uw", "number": "B.48", "title": "associated type", "link": "glossary.html#associated-type", "paragraphs": [{"id": "fls_rs0n72c2d8f", "number": "B.48:1", "link": "glossary.html#fls_rs0n72c2d8f", "checksum": "2dd873b22566e1e9b600b781d5bbe5f50b98110a1bbc0eb8834862063f485d5c"}], "informational": false}, {"id": "fls_zoe783mle9i9", "number": "B.49", "title": "associated type projection", "link": "glossary.html#associated-type-projection", "paragraphs": [{"id": "fls_4mofuy6epk0v", "number": "B.49:1", "link": "glossary.html#fls_4mofuy6epk0v", "checksum": "a0f6ca8e3a6e0ecac876103ad5d446d406f2fcb80e6ddde3bf589f235077c4a5"}], "informational": false}, {"id": "fls_fczijre8123c", "number": "B.50", "title": "associativity", "link": "glossary.html#associativity", "paragraphs": [{"id": "fls_7i7o23mi2i33", "number": "B.50:1", "link": "glossary.html#fls_7i7o23mi2i33", "checksum": "540296c55b80dee7dcdc0bfee11dde91a0e07efbe59376dec22a48ca8c7e5304"}], "informational": false}, {"id": "fls_9speqyus5ku3", "number": "B.51", "title": "async block", "link": "glossary.html#async-block", "paragraphs": [{"id": "fls_pf6lrmcjywoj", "number": "B.51:1", "link": "glossary.html#fls_pf6lrmcjywoj", "checksum": "612300be50d7624e3df044091fba207dee10c8c20ee72a242a4ac82aef426009"}], "informational": false}, {"id": "fls_n5m58be9jnjj", "number": "B.52", "title": "async block expression", "link": "glossary.html#async-block-expression", "paragraphs": [{"id": "fls_p6nvfs7bfoxd", "number": "B.52:1", "link": "glossary.html#fls_p6nvfs7bfoxd", "checksum": "4eb0d7164f84edf2ee6720771e61fde345943bc20d627bb59195f659862041a0"}, {"id": "fls_je689rormhd6", "number": "B.52:2", "link": "glossary.html#fls_je689rormhd6", "checksum": "add4bae4dea893c262fa7c8b75274c1b6bf0f47fd38a6f8b8932a19eefbffeb3"}], "informational": false}, {"id": "fls_lyrtacm1lcxu", "number": "B.53", "title": "async control flow boundary", "link": "glossary.html#async-control-flow-boundary", "paragraphs": [{"id": "fls_exogokcrsfkk", "number": "B.53:1", "link": "glossary.html#fls_exogokcrsfkk", "checksum": "44ac37f28296db4446adcea7becf8632f74186b581c1802f63aa910646775d05"}], "informational": false}, {"id": "fls_nlafxy2z1moc", "number": "B.54", "title": "async function", "link": "glossary.html#async-function", "paragraphs": [{"id": "fls_gv9wl1cbaw1g", "number": "B.54:1", "link": "glossary.html#fls_gv9wl1cbaw1g", "checksum": "4488811105e6db092dd26534378261299efe17701e59c3a58546b12507cfd315"}], "informational": false}, {"id": "fls_yikjq8yn3nnh", "number": "B.55", "title": "atomic", "link": "glossary.html#atomic", "paragraphs": [{"id": "fls_9xd3m2qvqzk", "number": "B.55:1", "link": "glossary.html#fls_9xd3m2qvqzk", "checksum": "92f69db90c0242687f25911efde1e68a3164d404661348a62b75ba5d40545131"}], "informational": false}, {"id": "fls_197vnaw2zbnc", "number": "B.56", "title": "atomic type", "link": "glossary.html#atomic-type", "paragraphs": [{"id": "fls_cycpv4fopgx2", "number": "B.56:1", "link": "glossary.html#fls_cycpv4fopgx2", "checksum": "5bd798c44267d7adffd1caf463e843f7dbc62801eb106b6ae7eb6dc39575ad7b"}], "informational": false}, {"id": "fls_w1plocebd7kg", "number": "B.57", "title": "attribute", "link": "glossary.html#attribute", "paragraphs": [{"id": "fls_o74rfpe6zo6a", "number": "B.57:1", "link": "glossary.html#fls_o74rfpe6zo6a", "checksum": "3b217ba958e7220052f92553ebb0583eaaa74f2730e4e3e007098455a58992f4"}], "informational": false}, {"id": "fls_ssmrqkhldagg", "number": "B.58", "title": "attribute content", "link": "glossary.html#attribute-content", "paragraphs": [{"id": "fls_sn0gvvmm3o38", "number": "B.58:1", "link": "glossary.html#fls_sn0gvvmm3o38", "checksum": "86e4b704680b4c5747c5677a0e4039c157356515d6fbcbc98d9e56a669ef4d9b"}, {"id": "fls_ywyrwc8fcmrm", "number": "B.58:2", "link": "glossary.html#fls_ywyrwc8fcmrm", "checksum": "5070a228b6ec847b80d342bc3ccdef803d20f55a9cbb901f5ed3d97e69142af5"}], "informational": false}, {"id": "fls_x1fafbpo0mlu", "number": "B.59", "title": "attribute macro", "link": "glossary.html#attribute-macro", "paragraphs": [{"id": "fls_mtqr4d817ikn", "number": "B.59:1", "link": "glossary.html#fls_mtqr4d817ikn", "checksum": "b5c6af660bec529b7de2438ec95aa067b92b22c3a7345a99c7931a09fc5cf924"}], "informational": false}, {"id": "fls_24ivilhhvnvo", "number": "B.60", "title": "auto trait", "link": "glossary.html#auto-trait", "paragraphs": [{"id": "fls_d84ntor4pzq5", "number": "B.60:1", "link": "glossary.html#fls_d84ntor4pzq5", "checksum": "331f42705a23d4036980e703f4c568126b011b0fe542b9c9468d538c9a63e0d7"}], "informational": false}, {"id": "fls_n4oo89apywk4", "number": "B.61", "title": "await expression", "link": "glossary.html#await-expression", "paragraphs": [{"id": "fls_psbc3b8pec47", "number": "B.61:1", "link": "glossary.html#fls_psbc3b8pec47", "checksum": "0f7f1f591ef8ff958c2d1d0a31b515fc693de7f164c05712025cee52d70f300b"}, {"id": "fls_29gkp9bpo1hi", "number": "B.61:2", "link": "glossary.html#fls_29gkp9bpo1hi", "checksum": "29aff3e58116ee151766d953841c4095fe883e4ca704ebe36c0e694f96016a89"}], "informational": false}, {"id": "fls_a8tavqxuvaju", "number": "B.62", "title": "base initializer", "link": "glossary.html#base-initializer", "paragraphs": [{"id": "fls_dnuwn2tnvtgy", "number": "B.62:1", "link": "glossary.html#fls_dnuwn2tnvtgy", "checksum": "a624547e4f9b00862ac20046a4026915d290509d41d7fe0c95418ad4a4fc460f"}, {"id": "fls_mprzem71zlhy", "number": "B.62:2", "link": "glossary.html#fls_mprzem71zlhy", "checksum": "7f7579f1d3e5c8ba02d2814c1d1fc456b293985a01e5f2e2ec3b3cfc55cd4430"}], "informational": false}, {"id": "fls_bii5eu1wznzk", "number": "B.63", "title": "basic assignment", "link": "glossary.html#basic-assignment", "paragraphs": [{"id": "fls_byq9e2jf8r22", "number": "B.63:1", "link": "glossary.html#fls_byq9e2jf8r22", "checksum": "b00fb469cd6302ae9a8f9cc328f30e7b176bc53e0c21a858130d21c6f4c31639"}], "informational": false}, {"id": "fls_kahj3y4rvmvb", "number": "B.64", "title": "binary crate", "link": "glossary.html#binary-crate", "paragraphs": [{"id": "fls_8gfe7hajxkd7", "number": "B.64:1", "link": "glossary.html#fls_8gfe7hajxkd7", "checksum": "2719e98929aa9ba831ed3c9e8a53f2865be31ca1dfef22f8e6a549c0489cc074"}], "informational": false}, {"id": "fls_or4o65fyt28y", "number": "B.65", "title": "binary literal", "link": "glossary.html#binary-literal", "paragraphs": [{"id": "fls_hy54uj6u3nqw", "number": "B.65:1", "link": "glossary.html#fls_hy54uj6u3nqw", "checksum": "2a6e0a0b10b38bf07fc1a1c417c76c23fec81dc802e87fbadf41f6afae85b40f"}, {"id": "fls_693r7vs2s7o7", "number": "B.65:2", "link": "glossary.html#fls_693r7vs2s7o7", "checksum": "3f1493cf83a8e792d5d2d85309ed20d423d40923a355e8f32b328f2ee0021e61"}], "informational": false}, {"id": "fls_xydujcfvvb8p", "number": "B.66", "title": "binary operator", "link": "glossary.html#binary-operator", "paragraphs": [{"id": "fls_v0he0zp9ph7a", "number": "B.66:1", "link": "glossary.html#fls_v0he0zp9ph7a", "checksum": "dfa9a4832da8dbcda1d62d4f78ec536ce8e9cd4e08740202c44d1ecf236242a4"}], "informational": false}, {"id": "fls_jrelzibadg7b", "number": "B.67", "title": "binding", "link": "glossary.html#binding", "paragraphs": [{"id": "fls_89qi3unjvwd7", "number": "B.67:1", "link": "glossary.html#fls_89qi3unjvwd7", "checksum": "9b3d2ea4510af73672effd0175aca1e7e366510c39d005aef81696a4b7056ffa"}, {"id": "fls_lujdci4bphek", "number": "B.67:2", "link": "glossary.html#fls_lujdci4bphek", "checksum": "43ebfdd1a3a5b7ded83591c051b8392c774d490fc12f8e886b48ec04777832ca"}], "informational": false}, {"id": "fls_glblhx8vzd3z", "number": "B.68", "title": "binding argument", "link": "glossary.html#binding-argument", "paragraphs": [{"id": "fls_9lzcasl4tw7k", "number": "B.68:1", "link": "glossary.html#fls_9lzcasl4tw7k", "checksum": "e328d7925174b8ad13fe58a5c2316ab5b1d4e32fabc4cf018f015f8c32d2aa52"}], "informational": false}, {"id": "fls_bv1k866tai6j", "number": "B.69", "title": "binding mode", "link": "glossary.html#binding-mode", "paragraphs": [{"id": "fls_e3uvvvvyzq8h", "number": "B.69:1", "link": "glossary.html#fls_e3uvvvvyzq8h", "checksum": "81a472c8ba42572b17a8b61e7325e2869b4aaacb298835287929a9069d8a33de"}], "informational": false}, {"id": "fls_1nw19qc14zg6", "number": "B.70", "title": "binding pattern", "link": "glossary.html#binding-pattern", "paragraphs": [{"id": "fls_ancqgz8pybbe", "number": "B.70:1", "link": "glossary.html#fls_ancqgz8pybbe", "checksum": "33d43996bd0e88b34594263661c579e5689d804a42a1bafae6e79a9d192f9e1d"}], "informational": false}, {"id": "fls_5ep4xsgzwtol", "number": "B.71", "title": "binding scope", "link": "glossary.html#binding-scope", "paragraphs": [{"id": "fls_6qpyh5nj8usi", "number": "B.71:1", "link": "glossary.html#fls_6qpyh5nj8usi", "checksum": "502b84a3d6795ea515381c6f55bb280b6ecb5247521831d647297dcd20b2fd22"}], "informational": false}, {"id": "fls_clut5dwmqin8", "number": "B.72", "title": "bit and assignment", "link": "glossary.html#bit-and-assignment", "paragraphs": [{"id": "fls_wil0k7o6ltxj", "number": "B.72:1", "link": "glossary.html#fls_wil0k7o6ltxj", "checksum": "c6211b947c74463c78301804b76006bb9d8ea263258a9a02a36a22e0b76e99e0"}], "informational": false}, {"id": "fls_y72vyr2tmdyb", "number": "B.73", "title": "bit and assignment expression", "link": "glossary.html#bit-and-assignment-expression", "paragraphs": [{"id": "fls_dvqotpte0pc2", "number": "B.73:1", "link": "glossary.html#fls_dvqotpte0pc2", "checksum": "9cdd4d1b23aed863aac7c2e7bf9f7fee8fbbdf8a16e27035197f95c8f3adf46d"}, {"id": "fls_ix9ecb5olcx", "number": "B.73:2", "link": "glossary.html#fls_ix9ecb5olcx", "checksum": "8f96f9d84aa93b46b2afda2463ab482a897f48de4b4279aeb9aad60d75682efc"}], "informational": false}, {"id": "fls_h6sh4im3gjys", "number": "B.74", "title": "bit and expression", "link": "glossary.html#bit-and-expression", "paragraphs": [{"id": "fls_c1g5gljnr9kz", "number": "B.74:1", "link": "glossary.html#fls_c1g5gljnr9kz", "checksum": "244b38693253d9cad7bda6ec81c1b56934ad443b422d8476e63b75c00b8a2981"}, {"id": "fls_vbsvu0troqci", "number": "B.74:2", "link": "glossary.html#fls_vbsvu0troqci", "checksum": "625ab366bc5f209c5e1bee34480e5d481d8455c213fc132f4ee2fa72e852ee45"}], "informational": false}, {"id": "fls_ed6yltkt0gb1", "number": "B.75", "title": "bit expression", "link": "glossary.html#bit-expression", "paragraphs": [{"id": "fls_b3p5xqsfolqo", "number": "B.75:1", "link": "glossary.html#fls_b3p5xqsfolqo", "checksum": "809145d26a9b51c4a0a61656ff3b16a6fce325a6af66025deccdb63c6cfabfdd"}, {"id": "fls_iw1k2cfwfjou", "number": "B.75:2", "link": "glossary.html#fls_iw1k2cfwfjou", "checksum": "b3707fb3a022619ae8bad6938a11a28675245d4df8e298b7f28a1422b7eaa155"}], "informational": false}, {"id": "fls_90e3eibygici", "number": "B.76", "title": "bit or assignment", "link": "glossary.html#bit-or-assignment", "paragraphs": [{"id": "fls_21ifidcu7pk4", "number": "B.76:1", "link": "glossary.html#fls_21ifidcu7pk4", "checksum": "244c375c3a3e13b0a601337834316fbcbbc56c34877090d9ebf3f24690f6f9bd"}], "informational": false}, {"id": "fls_ehorb0lul906", "number": "B.77", "title": "bit or assignment expression", "link": "glossary.html#bit-or-assignment-expression", "paragraphs": [{"id": "fls_tu1owkfk0lu0", "number": "B.77:1", "link": "glossary.html#fls_tu1owkfk0lu0", "checksum": "11967d57719ae3359330b1e50a21597d2131f06c8d2abd365bb5bddc4f4a80c6"}, {"id": "fls_utjcsfz8up88", "number": "B.77:2", "link": "glossary.html#fls_utjcsfz8up88", "checksum": "447497fb19a7fb5699ce018e98d778de4cea07f55e138d55b88d976a82c9cd2a"}], "informational": false}, {"id": "fls_m33m8nd2rnf8", "number": "B.78", "title": "bit or expression", "link": "glossary.html#bit-or-expression", "paragraphs": [{"id": "fls_183aem60of9o", "number": "B.78:1", "link": "glossary.html#fls_183aem60of9o", "checksum": "ca82b23effd8f2c8ef1852b564755ad552726c3f8bea118b31120b6809597db5"}, {"id": "fls_ctqsjp653tbt", "number": "B.78:2", "link": "glossary.html#fls_ctqsjp653tbt", "checksum": "53c5cfa98c339293befa824b9ffaff8780090e0e7f7399c451f685068f75f0fd"}], "informational": false}, {"id": "fls_jenv7rjeuzvm", "number": "B.79", "title": "bit xor assignment", "link": "glossary.html#bit-xor-assignment", "paragraphs": [{"id": "fls_vjpcpvcuszs1", "number": "B.79:1", "link": "glossary.html#fls_vjpcpvcuszs1", "checksum": "bf840c9efb7efdcff65df72ae2aaf25f560c6f126a5a119d523cd8f94e7996f5"}], "informational": false}, {"id": "fls_u3fcq7jjyxux", "number": "B.80", "title": "bit xor assignment expression", "link": "glossary.html#bit-xor-assignment-expression", "paragraphs": [{"id": "fls_ma980ujltab2", "number": "B.80:1", "link": "glossary.html#fls_ma980ujltab2", "checksum": "a9fd5b5a052ecae709955218afa50158d72219a0abdad4fceb0946455ae41905"}, {"id": "fls_lcrd0birf0un", "number": "B.80:2", "link": "glossary.html#fls_lcrd0birf0un", "checksum": "1f0ca2a30289433f1b3b0c539f49740c80d5a4b91347322854b43a22a34d9dfe"}], "informational": false}, {"id": "fls_ixw1601j8u39", "number": "B.81", "title": "bit xor expression", "link": "glossary.html#bit-xor-expression", "paragraphs": [{"id": "fls_kccsvtzfhbp1", "number": "B.81:1", "link": "glossary.html#fls_kccsvtzfhbp1", "checksum": "d3ac6ae36c1f6ead0280408385cee1b2e32019f9e1258e0125607bd48f54ae66"}, {"id": "fls_6qulwlo43w6m", "number": "B.81:2", "link": "glossary.html#fls_6qulwlo43w6m", "checksum": "57fe72c338f783adb28c56b1e3d5b590b3500dce4a8d42b378f7ddd62130f87c"}], "informational": false}, {"id": "fls_aa980vviqjue", "number": "B.82", "title": "block comment", "link": "glossary.html#block-comment", "paragraphs": [{"id": "fls_a0ejcfs7y5uy", "number": "B.82:1", "link": "glossary.html#fls_a0ejcfs7y5uy", "checksum": "c61d862f34a4363bf2bb995c57901407eb7ebcfe815a9c3b9407d70f22ed0051"}, {"id": "fls_21r4tblk8awi", "number": "B.82:2", "link": "glossary.html#fls_21r4tblk8awi", "checksum": "5172defdbf869d3f3bec7c8221fac297297395d7d1080dfd18886e0692276d94"}], "informational": false}, {"id": "fls_c5qn7wjk0mnx", "number": "B.83", "title": "block expression", "link": "glossary.html#block-expression", "paragraphs": [{"id": "fls_gvjvzxi2xps4", "number": "B.83:1", "link": "glossary.html#fls_gvjvzxi2xps4", "checksum": "bdddfb30e577fad1394130f3067d2e99cde5023a7f95afd64ebfe0b7e0c8c8b7"}, {"id": "fls_h8j9t2xq2i1u", "number": "B.83:2", "link": "glossary.html#fls_h8j9t2xq2i1u", "checksum": "f74a0df172d19ca21744867e9d95035c122a132b547df239ef8ef3ae1dd17495"}], "informational": false}, {"id": "fls_n485t6wcgx07", "number": "B.84", "title": "bool", "link": "glossary.html#bool", "paragraphs": [{"id": "fls_wtmaf5amvleh", "number": "B.84:1", "link": "glossary.html#fls_wtmaf5amvleh", "checksum": "7935a2b1a9900f8cd0e10119b717509afa4e5b225030a883e36db927a3f6b5df"}], "informational": false}, {"id": "fls_oz4tdyp3rvm4", "number": "B.85", "title": "boolean literal", "link": "glossary.html#boolean-literal", "paragraphs": [{"id": "fls_5mrxdqh474vk", "number": "B.85:1", "link": "glossary.html#fls_5mrxdqh474vk", "checksum": "d33508b56c217a40f57a38a2567af1bcac36a73b8f1429192c38660f309e5b8a"}, {"id": "fls_i13qcchm9vkk", "number": "B.85:2", "link": "glossary.html#fls_i13qcchm9vkk", "checksum": "b7f319cf6594bcce54f2cbcacbd3d3d7948cce9103329f7d2b283f08f2c2e673"}], "informational": false}, {"id": "fls_7ef4c6ss7m6i", "number": "B.86", "title": "borrow", "link": "glossary.html#borrow", "paragraphs": [{"id": "fls_2tpbdddvrl2f", "number": "B.86:1", "link": "glossary.html#fls_2tpbdddvrl2f", "checksum": "1d84a640b81dafc4d21d0e36236a4d94d1ebfd62b014b86a6b7794963f4ad7f7"}], "informational": false}, {"id": "fls_u0hymkjwyur7", "number": "B.87", "title": "borrow expression", "link": "glossary.html#borrow-expression", "paragraphs": [{"id": "fls_2f55piwg78ru", "number": "B.87:1", "link": "glossary.html#fls_2f55piwg78ru", "checksum": "abc9e73351e349d7595c47b1849763c9db6e2876fedddac5a15e316120c0a993"}, {"id": "fls_c3hydbp2exok", "number": "B.87:2", "link": "glossary.html#fls_c3hydbp2exok", "checksum": "9cd56fa137a462f758eded2792c0724f19f2df6f730ece349848218bf2cf459a"}], "informational": false}, {"id": "fls_gl84828b074a", "number": "B.88", "title": "borrowed", "link": "glossary.html#borrowed", "paragraphs": [{"id": "fls_3gnps2s95ck4", "number": "B.88:1", "link": "glossary.html#fls_3gnps2s95ck4", "checksum": "2b5b36b7d9a4880164099cdcab035d2d100719306adc0c0e1d4a33d9f29d2bc4"}], "informational": false}, {"id": "fls_95c5cbc2jvpc", "number": "B.89", "title": "borrowing", "link": "glossary.html#borrowing", "paragraphs": [{"id": "fls_2epblwd2slp8", "number": "B.89:1", "link": "glossary.html#fls_2epblwd2slp8", "checksum": "9f29b6b7e9ce5bea7065b3df184b075b67ebdfc536322453a87c1d2462e69aac"}], "informational": false}, {"id": "fls_ehfvcdpo3l4a", "number": "B.90", "title": "bound", "link": "glossary.html#bound", "paragraphs": [{"id": "fls_q6mxhn1fxjs6", "number": "B.90:1", "link": "glossary.html#fls_q6mxhn1fxjs6", "checksum": "42e76b431027d1807d6c6665c7625b3463e086e4655dfb265d24b3a824042a92"}, {"id": "fls_rxabhhigp5uy", "number": "B.90:2", "link": "glossary.html#fls_rxabhhigp5uy", "checksum": "ba6e3d26fb7d74e7c8eb6c247800ddec5e35f0e95207578067f3cf6b09e6c577"}], "informational": false}, {"id": "fls_jlfqyn3enrsi", "number": "B.91", "title": "bound pattern", "link": "glossary.html#bound-pattern", "paragraphs": [{"id": "fls_uusfbosjwyd1", "number": "B.91:1", "link": "glossary.html#fls_uusfbosjwyd1", "checksum": "c6bafc6da22a49c513d9f38b33df3b3efb2fec5e034e2fb313105eb2e2260d1e"}, {"id": "fls_oszhit2crxzc", "number": "B.91:2", "link": "glossary.html#fls_oszhit2crxzc", "checksum": "d8cf8031f26386674c6e8273c8ea271f27f1889e7c859f78134c921bfbccb00a"}], "informational": false}, {"id": "fls_xki2cerozblt", "number": "B.92", "title": "break expression", "link": "glossary.html#break-expression", "paragraphs": [{"id": "fls_8ys8hlqgizoa", "number": "B.92:1", "link": "glossary.html#fls_8ys8hlqgizoa", "checksum": "42b70f0392703c3c23f4ecffef7ea817778258bcd8666f135b5b9dcac43a1b3c"}, {"id": "fls_fd1xpst5fki2", "number": "B.92:2", "link": "glossary.html#fls_fd1xpst5fki2", "checksum": "76dcd27bc5ad3370689dfd4eb30523ee45cff5bf2abcb711fab20cdd3dc809f9"}], "informational": false}, {"id": "fls_ff2zt3ww2yw3", "number": "B.93", "title": "break type", "link": "glossary.html#break-type", "paragraphs": [{"id": "fls_jvm1vsqmslxn", "number": "B.93:1", "link": "glossary.html#fls_jvm1vsqmslxn", "checksum": "6aeadaab397013441a631c420b0f0554cb291b29f976219428549a505a3cc48c"}], "informational": false}, {"id": "fls_owtptuvleeb", "number": "B.94", "title": "break value", "link": "glossary.html#break-value", "paragraphs": [{"id": "fls_kpka4jf2qr5l", "number": "B.94:1", "link": "glossary.html#fls_kpka4jf2qr5l", "checksum": "d53ab1017611e7d73e98148e5d12bfb9f0581c976b2abd40acf4ad93fa684dab"}], "informational": false}, {"id": "fls_82ev7wknxqmk", "number": "B.95", "title": "built-in attribute", "link": "glossary.html#built-in-attribute", "paragraphs": [{"id": "fls_a40rclur4orm", "number": "B.95:1", "link": "glossary.html#fls_a40rclur4orm", "checksum": "ff7df276dfca55abbd6131102c4fbc1de97b7b3e4b004424aa0c408b72fbe5e9"}, {"id": "fls_ooq5g8zffyfb", "number": "B.95:2", "link": "glossary.html#fls_ooq5g8zffyfb", "checksum": "62bf1edd9513dceb6b09f59764b6bfe6010d27cbbdde85acb8372d671edd737b"}], "informational": false}, {"id": "fls_qzaif2nyvjbk", "number": "B.96", "title": "built-in trait", "link": "glossary.html#built-in-trait", "paragraphs": [{"id": "fls_igzd9l8o6r50", "number": "B.96:1", "link": "glossary.html#fls_igzd9l8o6r50", "checksum": "a5eca162961a093420be9f39da9f05c4aaf249a65ade8d2949ae9aed7074f6c6"}], "informational": false}, {"id": "fls_e8rokiw23i9t", "number": "B.97", "title": "byte literal", "link": "glossary.html#byte-literal", "paragraphs": [{"id": "fls_l67oo0u12zjb", "number": "B.97:1", "link": "glossary.html#fls_l67oo0u12zjb", "checksum": "a6797b02bf09baf68510b276fe856bf4230ead726730aeba02d646bddd2e50b8"}, {"id": "fls_iu9twvm648dx", "number": "B.97:2", "link": "glossary.html#fls_iu9twvm648dx", "checksum": "6bb0f77a7c09be460bc83d28e0665398c71b1c5eef14c1b6a1f5eccc095f0be8"}], "informational": false}, {"id": "fls_uwe7iomhvgtp", "number": "B.98", "title": "byte string literal", "link": "glossary.html#byte-string-literal", "paragraphs": [{"id": "fls_my4r1l3ilyt2", "number": "B.98:1", "link": "glossary.html#fls_my4r1l3ilyt2", "checksum": "caf6430eeedca37fbd3183876687afb5795a116f8b57829f9296015963b8c9cd"}, {"id": "fls_4yhag19z61bl", "number": "B.98:2", "link": "glossary.html#fls_4yhag19z61bl", "checksum": "678f63247cc5c82b754402bb384c9ffc044dce55bbd7b1cbf591c25c5dfbfc7b"}], "informational": false}, {"id": "fls_lfjgrkwra22i", "number": "B.99", "title": "C", "link": "glossary.html#c", "paragraphs": [{"id": "fls_d4q2ro4nsnop", "number": "B.99:1", "link": "glossary.html#fls_d4q2ro4nsnop", "checksum": "21920bddd05d30a71366977a2c284bbeb4bb503b795b0748401f66eb5e255159"}], "informational": false}, {"id": "fls_wenn1wdsicfz", "number": "B.100", "title": "C representation", "link": "glossary.html#c-representation", "paragraphs": [{"id": "fls_g9pdb06m5fto", "number": "B.100:1", "link": "glossary.html#fls_g9pdb06m5fto", "checksum": "c1e454072880555b23ff579d54ab1ff448ed0575ce5fce02064b8849e2794b73"}], "informational": false}, {"id": "fls_fls_j0xuy4mcxoe6", "number": "B.101", "title": "C signed int type", "link": "glossary.html#c-signed-int-type", "paragraphs": [{"id": "fls_8qicvapjehqy", "number": "B.101:1", "link": "glossary.html#fls_8qicvapjehqy", "checksum": "71e276a65e0bb1a228f167bf10d8368d3b1e4100414d8cc4c6071b98197d73f3"}], "informational": false}, {"id": "fls_egfa8tdbqlla", "number": "B.102", "title": "Call conformance", "link": "glossary.html#call-conformance", "paragraphs": [{"id": "fls_jr1gux7ju4oh", "number": "B.102:1", "link": "glossary.html#fls_jr1gux7ju4oh", "checksum": "66ffc3c5fcf1629701193aae370401f974116ba4bf0de771171962934b74c104"}], "informational": false}, {"id": "fls_xeo59ol6uh5i", "number": "B.103", "title": "call expression", "link": "glossary.html#call-expression", "paragraphs": [{"id": "fls_a9ap0tyk2eou", "number": "B.103:1", "link": "glossary.html#fls_a9ap0tyk2eou", "checksum": "648ca512997d7e2d5e5180038ed504b667046b8a16e97113eea58e73ab18a62d"}, {"id": "fls_aibti9uqrmmd", "number": "B.103:2", "link": "glossary.html#fls_aibti9uqrmmd", "checksum": "373b43756a1872d5f4876aaba9145e222c9be7bd58528b768394e3dbc85c118a"}], "informational": false}, {"id": "fls_ezk9xkst7gfj", "number": "B.104", "title": "call operand", "link": "glossary.html#call-operand", "paragraphs": [{"id": "fls_cqnko94y4xbs", "number": "B.104:1", "link": "glossary.html#fls_cqnko94y4xbs", "checksum": "695754e485bd8ba23cb133672195926840bb3ac28bfa31a96845ecf69dc65a38"}, {"id": "fls_w6wu4wi6srjj", "number": "B.104:2", "link": "glossary.html#fls_w6wu4wi6srjj", "checksum": "790649ac426b7b7d9da1376060443e9bfc656f592e46946ff47e05c5148eb817"}], "informational": false}, {"id": "fls_zsh4enfjxean", "number": "B.105", "title": "call resolution", "link": "glossary.html#call-resolution", "paragraphs": [{"id": "fls_fs1zjggypvbn", "number": "B.105:1", "link": "glossary.html#fls_fs1zjggypvbn", "checksum": "c1a639c3f4222bdf4f2db2c6e0e456a73ca7e24055ac91aebfffee77b4de4c65"}], "informational": false}, {"id": "fls_ak8ml1lefto0", "number": "B.106", "title": "call site hygiene", "link": "glossary.html#call-site-hygiene", "paragraphs": [{"id": "fls_ytqmxotfoxwu", "number": "B.106:1", "link": "glossary.html#fls_ytqmxotfoxwu", "checksum": "120ca029e71c342fc34219b5d2846249f9d1c809a2871458c91708d06da37f0e"}], "informational": false}, {"id": "fls_luuc01g4ffog", "number": "B.107", "title": "callee type", "link": "glossary.html#callee-type", "paragraphs": [{"id": "fls_o21myf6wnnn6", "number": "B.107:1", "link": "glossary.html#fls_o21myf6wnnn6", "checksum": "4ba4a90930f8d7c12d76e02403a8cb949a676cc2e12dda149a084b80def6fbc3"}], "informational": false}, {"id": "fls_s78gd8yxx2yv", "number": "B.108", "title": "capture mode", "link": "glossary.html#capture-mode", "paragraphs": [{"id": "fls_beer0d7wva1d", "number": "B.108:1", "link": "glossary.html#fls_beer0d7wva1d", "checksum": "884eb60f8031345959135331a5aaa69d2a0b2e8a45c22d02ef2f7d78b56fc82d"}], "informational": false}, {"id": "fls_c6qwfwsyizya", "number": "B.109", "title": "capture target", "link": "glossary.html#capture-target", "paragraphs": [{"id": "fls_xmhcp4x8wblz", "number": "B.109:1", "link": "glossary.html#fls_xmhcp4x8wblz", "checksum": "c6e989a0ff9e72da470d988efea9fdd19ec8fcb2e2e4c678bd960e09b765df21"}], "informational": false}, {"id": "fls_kvu447p6j61k", "number": "B.110", "title": "capturing", "link": "glossary.html#capturing", "paragraphs": [{"id": "fls_4achbk2ewyyb", "number": "B.110:1", "link": "glossary.html#fls_4achbk2ewyyb", "checksum": "dcc48ef9336f4c635127d9fb40bb282553c33273cf2faa0289abb58a864f5ee9"}], "informational": false}, {"id": "fls_yfk2xfifltxy", "number": "B.111", "title": "capturing environment", "link": "glossary.html#capturing-environment", "paragraphs": [{"id": "fls_7br4azaay3wu", "number": "B.111:1", "link": "glossary.html#fls_7br4azaay3wu", "checksum": "057f094a65cdd0113949e4be1a1cf6da4e439c9e73ad23d72cba5035a6404b6e"}], "informational": false}, {"id": "fls_cl3lpsfgt5eb", "number": "B.112", "title": "capturing expression", "link": "glossary.html#capturing-expression", "paragraphs": [{"id": "fls_awtny282gtud", "number": "B.112:1", "link": "glossary.html#fls_awtny282gtud", "checksum": "21a2212bc880cb6130b9fafbb5119664810c12f01745d8ee73715152731cebde"}], "informational": false}, {"id": "fls_pcaygpx7db24", "number": "B.113", "title": "cast", "link": "glossary.html#cast", "paragraphs": [{"id": "fls_e5hvszhcrtmj", "number": "B.113:1", "link": "glossary.html#fls_e5hvszhcrtmj", "checksum": "b46c27a5e20681e3818872ee89c973ecbc77f74af768e18deb0c0bf8f6564768"}], "informational": false}, {"id": "fls_xl2zlpw070dy", "number": "B.114", "title": "char", "link": "glossary.html#char", "paragraphs": [{"id": "fls_vx0dss1yplw1", "number": "B.114:1", "link": "glossary.html#fls_vx0dss1yplw1", "checksum": "b09da885573974912ad239d972ae33be6eb67296f39f991bfaca1180c323637c"}], "informational": false}, {"id": "fls_cfphqaml82ik", "number": "B.115", "title": "character literal", "link": "glossary.html#character-literal", "paragraphs": [{"id": "fls_8oah1cf8p0lb", "number": "B.115:1", "link": "glossary.html#fls_8oah1cf8p0lb", "checksum": "35180367affa5c49d5b0afec316a5d9a8266b5ca1ac474fa6cc5ee1d527151c7"}, {"id": "fls_sup0h5mvibzs", "number": "B.115:2", "link": "glossary.html#fls_sup0h5mvibzs", "checksum": "d5e9c3e46f5c8c9d847c63ffce83f59e8b43af18073de98af9ffc8bb6b062b73"}], "informational": false}, {"id": "fls_5vm5cijnucsr", "number": "B.116", "title": "closure body", "link": "glossary.html#closure-body", "paragraphs": [{"id": "fls_vgnycw6dykwo", "number": "B.116:1", "link": "glossary.html#fls_vgnycw6dykwo", "checksum": "f94657d8fb0ea7389e6b69384f4be5c24477b1a13a7fd0c3d2d5a2f96a9f0b8c"}, {"id": "fls_zefhg4auut8d", "number": "B.116:2", "link": "glossary.html#fls_zefhg4auut8d", "checksum": "4f9d2d6e4a5e204acb72c105fd11ce6c26fb64ea55417c5a627581b0e1231403"}], "informational": false}, {"id": "fls_mrwle2ediywb", "number": "B.117", "title": "closure expression", "link": "glossary.html#closure-expression", "paragraphs": [{"id": "fls_x87rhn9ikz00", "number": "B.117:1", "link": "glossary.html#fls_x87rhn9ikz00", "checksum": "6414d845db9a72cc676c688dd644bc96bddb01f319cfbca16b91ba3a2f305f08"}, {"id": "fls_psd18dkzplf6", "number": "B.117:2", "link": "glossary.html#fls_psd18dkzplf6", "checksum": "1234e2fd24abe2af54a4b534e37991a4220070b53d155fe2cb9edcaf10bad1af"}], "informational": false}, {"id": "fls_f5rbxj9g5iab", "number": "B.118", "title": "closure parameter", "link": "glossary.html#closure-parameter", "paragraphs": [{"id": "fls_yqbzhblhpswn", "number": "B.118:1", "link": "glossary.html#fls_yqbzhblhpswn", "checksum": "7999e81310e11f947d1ce1f08cff161fae82ac9334e35db0d7c0a6166badafce"}, {"id": "fls_dus3fbu3twr4", "number": "B.118:2", "link": "glossary.html#fls_dus3fbu3twr4", "checksum": "6b15e5c2d99dc9eb699f7025c11cb1ae02444ffd7787b1727950222b3901aca4"}], "informational": false}, {"id": "fls_xjudl8ykbisi", "number": "B.119", "title": "closure type", "link": "glossary.html#closure-type", "paragraphs": [{"id": "fls_wp4kues3nbvn", "number": "B.119:1", "link": "glossary.html#fls_wp4kues3nbvn", "checksum": "2e84daa155889bf6f73493cad46d61e36fde2cc1b78717e8a6f93b488cd289d5"}], "informational": false}, {"id": "fls_aqovhozevngd", "number": "B.120", "title": "code point", "link": "glossary.html#code-point", "paragraphs": [{"id": "fls_6xw8jtiomc2n", "number": "B.120:1", "link": "glossary.html#fls_6xw8jtiomc2n", "checksum": "ccdcffaf0aaed8fdfdbef3ef6f047bf8f190ca0480c0869613db6d2527f07513"}], "informational": false}, {"id": "fls_2moavfyeit0m", "number": "B.121", "title": "comment", "link": "glossary.html#comment", "paragraphs": [{"id": "fls_3xhoz9f7xy1t", "number": "B.121:1", "link": "glossary.html#fls_3xhoz9f7xy1t", "checksum": "a4c05ae36c5fd759a4da08d503fc1af571ba413e676d01dadb500e588dd1f83a"}, {"id": "fls_pi32rhfqghma", "number": "B.121:2", "link": "glossary.html#fls_pi32rhfqghma", "checksum": "6b2c09e50d6abdae1ee13d1cda690ef224a011f1bdae20718ff536f78b204628"}], "informational": false}, {"id": "fls_hjxuoe1hwlhm", "number": "B.122", "title": "comparison expression", "link": "glossary.html#comparison-expression", "paragraphs": [{"id": "fls_394p7gdruvk7", "number": "B.122:1", "link": "glossary.html#fls_394p7gdruvk7", "checksum": "c67acba85c414db1b42b760a5c75365e884a7ecdbe9449c2e3088f602d8acd40"}, {"id": "fls_1jk0s7389mt0", "number": "B.122:2", "link": "glossary.html#fls_1jk0s7389mt0", "checksum": "c0e3785f9a7666f115e4329031acc927ba7715b7c96156bb4b6a231b035bff35"}], "informational": false}, {"id": "fls_riwule1euzlj", "number": "B.123", "title": "compilation root", "link": "glossary.html#compilation-root", "paragraphs": [{"id": "fls_stwsfyvov2fx", "number": "B.123:1", "link": "glossary.html#fls_stwsfyvov2fx", "checksum": "3155c78aa724abae9cefe1c44d0b357fa998cc179764d0d2e38ef60c3bb241f8"}], "informational": false}, {"id": "fls_ptmrfpxetibe", "number": "B.124", "title": "compound assignment", "link": "glossary.html#compound-assignment", "paragraphs": [{"id": "fls_lgv9qvcmygch", "number": "B.124:1", "link": "glossary.html#fls_lgv9qvcmygch", "checksum": "6b1cafc5dc71738785f475115cf1f65dcc771362024656c83b870d22790d16a5"}], "informational": false}, {"id": "fls_iktiir89xbo2", "number": "B.125", "title": "compound assignment expression", "link": "glossary.html#compound-assignment-expression", "paragraphs": [{"id": "fls_mkxpk2jhe5s0", "number": "B.125:1", "link": "glossary.html#fls_mkxpk2jhe5s0", "checksum": "a44244ce87f36dbaa2fbbc2f4104dcae06a91a8b598b33cadab5c92c832adc85"}, {"id": "fls_55abuw8symub", "number": "B.125:2", "link": "glossary.html#fls_55abuw8symub", "checksum": "4d0c95fca6696e81f808680e4c4023687115b55efdc4fd46f2c021fe63f1b66d"}], "informational": false}, {"id": "fls_qyfn5u5cl5l1", "number": "B.126", "title": "concrete type", "link": "glossary.html#concrete-type", "paragraphs": [{"id": "fls_l0lr3ybgccjc", "number": "B.126:1", "link": "glossary.html#fls_l0lr3ybgccjc", "checksum": "92054d68d64f660e73b3f4decb54b4b651fd99a236d68518b3bb96f4ae582507"}], "informational": false}, {"id": "fls_lmacvq89lj2j", "number": "B.127", "title": "conditional compilation", "link": "glossary.html#conditional-compilation", "paragraphs": [{"id": "fls_xymops69eer3", "number": "B.127:1", "link": "glossary.html#fls_xymops69eer3", "checksum": "eaeff67ff6e17b1bba4cf0f8199938306cabe12c1732920c31543a06aaf5a40b"}], "informational": false}, {"id": "fls_bqq013n2cy4t", "number": "B.128", "title": "conditionally-compiled source code", "link": "glossary.html#conditionally-compiled-source-code", "paragraphs": [{"id": "fls_hs4lnrdxpj2g", "number": "B.128:1", "link": "glossary.html#fls_hs4lnrdxpj2g", "checksum": "5d9117dda45a4ef5e11a2ee9082a6b3c4e71cbc0d6ade008d3c14ea84d8bec69"}], "informational": false}, {"id": "fls_vrjpmhyevvaf", "number": "B.129", "title": "configuration predicate", "link": "glossary.html#configuration-predicate", "paragraphs": [{"id": "fls_tykiuqmxo9si", "number": "B.129:1", "link": "glossary.html#fls_tykiuqmxo9si", "checksum": "0cac94c6245e4dff6dd1a8c297bc3abff2e383199dc6c185aaeff8d5fdff13d4"}, {"id": "fls_99ioki0m64fd", "number": "B.129:2", "link": "glossary.html#fls_99ioki0m64fd", "checksum": "43e5e01d043938198f115d06c7634976532ed1ad7ae84b52a78bff9ec59c2244"}], "informational": false}, {"id": "fls_yw57di94gwpf", "number": "B.130", "title": "constant", "link": "glossary.html#constant", "paragraphs": [{"id": "fls_p8rjw2qok85b", "number": "B.130:1", "link": "glossary.html#fls_p8rjw2qok85b", "checksum": "e2c1d60946ca8b4e458c33951b8ec06592d68b989f7cc700231d8b1760619fb6"}, {"id": "fls_hlouedpdg1zd", "number": "B.130:2", "link": "glossary.html#fls_hlouedpdg1zd", "checksum": "eb0e902364def6089ac3e648000dd6b34e1f89793d962b32ff085e12782d0723"}], "informational": false}, {"id": "fls_n7z4cl1fsk6l", "number": "B.131", "title": "constant argument", "link": "glossary.html#constant-argument", "paragraphs": [{"id": "fls_sz10vgh260xo", "number": "B.131:1", "link": "glossary.html#fls_sz10vgh260xo", "checksum": "ad2c2f6362f886a3c2c2f8e11ef95198869e70137f4e7b3e5a6a1f01850b2bd5"}, {"id": "fls_dz9x6gf3yzc6", "number": "B.131:2", "link": "glossary.html#fls_dz9x6gf3yzc6", "checksum": "594cf07dd3bc7ffc842550c76f091d059f120dfbe84f028ffc88d7e09d64747c"}], "informational": false}, {"id": "fls_mtbhv6e9izzm", "number": "B.132", "title": "constant context", "link": "glossary.html#constant-context", "paragraphs": [{"id": "fls_9j6mc4i1t73z", "number": "B.132:1", "link": "glossary.html#fls_9j6mc4i1t73z", "checksum": "0d8ffb55967c6c3a59c4fcefa6ea5ffd5237d622363d040e0fdf4d62bdaa955b"}], "informational": false}, {"id": "fls_iofbib2gavnv", "number": "B.133", "title": "constant expression", "link": "glossary.html#constant-expression", "paragraphs": [{"id": "fls_rmn8w4rh3juf", "number": "B.133:1", "link": "glossary.html#fls_rmn8w4rh3juf", "checksum": "9e065928905270e01fcaaa30e3a6c88ff1241e4cea764cfd1b8934756d94bb57"}], "informational": false}, {"id": "fls_6j1wluj8sku8", "number": "B.134", "title": "constant function", "link": "glossary.html#constant-function", "paragraphs": [{"id": "fls_4glkwg11p5ml", "number": "B.134:1", "link": "glossary.html#fls_4glkwg11p5ml", "checksum": "079ceb5e3a19a43aa364310032afc2a291255d66c92dac9ba5f70da5fd3ba50e"}], "informational": false}, {"id": "fls_mf022jo05ziu", "number": "B.135", "title": "constant initializer", "link": "glossary.html#constant-initializer", "paragraphs": [{"id": "fls_2ge48v1kmw8", "number": "B.135:1", "link": "glossary.html#fls_2ge48v1kmw8", "checksum": "402982ae730789f8c535e089a21db522560ff5c2b94789570c5cc9169f518d15"}, {"id": "fls_h86eg26z19r2", "number": "B.135:2", "link": "glossary.html#fls_h86eg26z19r2", "checksum": "5e42023015b05a545df618be040b844570ff70e978cf02a236bc8eeabec27ec0"}], "informational": false}, {"id": "fls_pj0f0p4avbyw", "number": "B.136", "title": "constant parameter", "link": "glossary.html#constant-parameter", "paragraphs": [{"id": "fls_z7e491m3dx4u", "number": "B.136:1", "link": "glossary.html#fls_z7e491m3dx4u", "checksum": "1af2bef208b5873730b5a70da62a02b6097e0165d32952186f50a1fc454e62e1"}, {"id": "fls_9093wziwxk1g", "number": "B.136:2", "link": "glossary.html#fls_9093wziwxk1g", "checksum": "1cc1ba072bec8318bf1716f7eb842dfa4947e8f81bcc6b71ec78d2260b78da92"}], "informational": false}, {"id": "fls_sivxmhyazvjd", "number": "B.137", "title": "constant parameter initializer", "link": "glossary.html#constant-parameter-initializer", "paragraphs": [{"id": "fls_oxd2yaokfjci", "number": "B.137:1", "link": "glossary.html#fls_oxd2yaokfjci", "checksum": "a75de229346221acb196751f39b11f287bc57d55d01b3fdc6af25f50007a9628"}, {"id": "fls_cmsyucxgm8xs", "number": "B.137:2", "link": "glossary.html#fls_cmsyucxgm8xs", "checksum": "e470bb06658354bfadbe8d6dde50f24f7729c500ddd5ae45dc84b6efc21592f7"}], "informational": false}, {"id": "fls_f95c9hrk7t2p", "number": "B.138", "title": "constant promotion", "link": "glossary.html#constant-promotion", "paragraphs": [{"id": "fls_ku2md8lnei12", "number": "B.138:1", "link": "glossary.html#fls_ku2md8lnei12", "checksum": "5a09a243a7c3c32ff88305c901c3e1a7d0ff09116c8be54fc9ec726b97a5d270"}], "informational": false}, {"id": "fls_x4niicvxxv9k", "number": "B.139", "title": "constrain", "link": "glossary.html#constrain", "paragraphs": [{"id": "fls_fna0ch8ucyhv", "number": "B.139:1", "link": "glossary.html#fls_fna0ch8ucyhv", "checksum": "2b20e4f2abaef632b5e64246950807ad561b2bc81d347dc516413598c3ede233"}], "informational": false}, {"id": "fls_4305i29nt5d6", "number": "B.140", "title": "construct", "link": "glossary.html#construct", "paragraphs": [{"id": "fls_10tvzeo8xex0", "number": "B.140:1", "link": "glossary.html#fls_10tvzeo8xex0", "checksum": "32c0b276b9a8d538096d6a86651b80cb57558fb13ae5bf2b10d58f935ceff728"}], "informational": false}, {"id": "fls_fbgjotvhyvue", "number": "B.141", "title": "constructee", "link": "glossary.html#constructee", "paragraphs": [{"id": "fls_twbu94ugw4cb", "number": "B.141:1", "link": "glossary.html#fls_twbu94ugw4cb", "checksum": "260c4ba6dfb95a5fbab1aeee8e6959d854d78b9287cd80bebc8cda34eb491a91"}], "informational": false}, {"id": "fls_39s6od9hj4g6", "number": "B.142", "title": "container operand", "link": "glossary.html#container-operand", "paragraphs": [{"id": "fls_stjmobac6wyd", "number": "B.142:1", "link": "glossary.html#fls_stjmobac6wyd", "checksum": "ba87aafbdd29f7313abf19300674182817eefd5bbc2b13943b637bcf80c0e9df"}, {"id": "fls_hgm1ssicc8j4", "number": "B.142:2", "link": "glossary.html#fls_hgm1ssicc8j4", "checksum": "3e78d4bee22a11b42c3fc3c10c507562a7fba938d26864c7ec978ab2344c17ac"}], "informational": false}, {"id": "fls_doazu99vos8x", "number": "B.143", "title": "continue expression", "link": "glossary.html#continue-expression", "paragraphs": [{"id": "fls_waxam3m9plfj", "number": "B.143:1", "link": "glossary.html#fls_waxam3m9plfj", "checksum": "adbfb0569b2db7c2464adb86ec3149a19d932349406b9421589a9c7c23028b77"}, {"id": "fls_smwcz2xw9o1f", "number": "B.143:2", "link": "glossary.html#fls_smwcz2xw9o1f", "checksum": "eb4bb618f0016cc5b19d57844f38d56c3c5bb2bc6cd6338c2d271ff6764c3ea6"}], "informational": false}, {"id": "fls_nc4knv4tpenw", "number": "B.144", "title": "control flow boundary", "link": "glossary.html#control-flow-boundary", "paragraphs": [{"id": "fls_smipzjdp02ij", "number": "B.144:1", "link": "glossary.html#fls_smipzjdp02ij", "checksum": "b43b34e1180fc29f770212acc9767de1da68ffa61c1578ce311375d3f6489d19"}], "informational": false}, {"id": "fls_lnwxm6ffy15w", "number": "B.145", "title": "copy type", "link": "glossary.html#copy-type", "paragraphs": [{"id": "fls_j7r33ecacyh", "number": "B.145:1", "link": "glossary.html#fls_j7r33ecacyh", "checksum": "9378146dace311325f80bd7f9da97358920f87f3e846baf8ce39043401b42fd1"}], "informational": false}, {"id": "fls_kf8yukhxudw8", "number": "B.146", "title": "crate", "link": "glossary.html#crate", "paragraphs": [{"id": "fls_qplsjzb2uyim", "number": "B.146:1", "link": "glossary.html#fls_qplsjzb2uyim", "checksum": "cd65d5af7c19e83d72c624dbe007ff053c9bb3c4c6ac16ddd853ee06b55a6ec1"}], "informational": false}, {"id": "fls_xwbmmcbbowtu", "number": "B.147", "title": "crate import", "link": "glossary.html#crate-import", "paragraphs": [{"id": "fls_y91ja1a87g7a", "number": "B.147:1", "link": "glossary.html#fls_y91ja1a87g7a", "checksum": "f9dc5426a6f4b7c2d822945b0437cdb12589ee9e9b37c2fcf2a632969fda29a4"}, {"id": "fls_nmdxagg39hz6", "number": "B.147:2", "link": "glossary.html#fls_nmdxagg39hz6", "checksum": "488774d81d84bb29b04dc72dc928ca8debee7a3ea8a637d8ea58d8aa498f8723"}], "informational": false}, {"id": "fls_cxvnvso10pll", "number": "B.148", "title": "crate indication", "link": "glossary.html#crate-indication", "paragraphs": [{"id": "fls_xusfuerxqrra", "number": "B.148:1", "link": "glossary.html#fls_xusfuerxqrra", "checksum": "785227f0e21969eca81202c0e777b961ed0431b2fc3151ee9a15877f5fdef263"}, {"id": "fls_s1efklbzjlxq", "number": "B.148:2", "link": "glossary.html#fls_s1efklbzjlxq", "checksum": "2bdf07bea49bd05bd607a74bc9fcb8983e93b7daaa7e64aaf542d39bc74f792c"}], "informational": false}, {"id": "fls_yf9yjzzhw0rn", "number": "B.149", "title": "crate public modifier", "link": "glossary.html#crate-public-modifier", "paragraphs": [{"id": "fls_dj7fmrqhbhsv", "number": "B.149:1", "link": "glossary.html#fls_dj7fmrqhbhsv", "checksum": "3a384e55ab1144b0661fd6868c8b9ac514287016f83797db8c62bb61f931ec18"}, {"id": "fls_wjfupeyeczp0", "number": "B.149:2", "link": "glossary.html#fls_wjfupeyeczp0", "checksum": "923a81e40b0ae15b6294eb57af05e001228b8ef2d2be959cb64a86e05ce958d3"}], "informational": false}, {"id": "fls_hv9zyxb72soh", "number": "B.150", "title": "crate root", "link": "glossary.html#crate-root", "paragraphs": [{"id": "fls_yxcgiuybqqy8", "number": "B.150:1", "link": "glossary.html#fls_yxcgiuybqqy8", "checksum": "1525b4eef9424592678eedb97fe1d74b2c10483f93d53ceb3d8b8e7010b27688"}], "informational": false}, {"id": "fls_iucxone5ta26", "number": "B.151", "title": "crate root module", "link": "glossary.html#crate-root-module", "paragraphs": [{"id": "fls_oo4nmqv78wno", "number": "B.151:1", "link": "glossary.html#fls_oo4nmqv78wno", "checksum": "0bc4471329d6e01909401ca5df636211c8c6d69bd3ccad0b79e18b222b2fb700"}], "informational": false}, {"id": "fls_76cj65bptdpn", "number": "B.152", "title": "dangling", "link": "glossary.html#dangling", "paragraphs": [{"id": "fls_lq2urzh7bzxx", "number": "B.152:1", "link": "glossary.html#fls_lq2urzh7bzxx", "checksum": "9ef72ec2d278087799cfd15845195fda66fe207e98907f8756bd7bc966c4485c"}], "informational": false}, {"id": "fls_9meaofgcpvx6", "number": "B.153", "title": "data race", "link": "glossary.html#data-race", "paragraphs": [{"id": "fls_v2s1b57e3r7n", "number": "B.153:1", "link": "glossary.html#fls_v2s1b57e3r7n", "checksum": "2a845f99dabf8472b5ed8f35a1b43cdf5d54ccf32f81d0fbf75fe2066af2c37b"}], "informational": false}, {"id": "fls_128iunbbiuql", "number": "B.154", "title": "decimal literal", "link": "glossary.html#decimal-literal", "paragraphs": [{"id": "fls_lwv823lih69m", "number": "B.154:1", "link": "glossary.html#fls_lwv823lih69m", "checksum": "2895a430d0cda09b5bc038198372fe120335616480e06ef39c5d2f0912c3bc54"}, {"id": "fls_pxiba4se64y4", "number": "B.154:2", "link": "glossary.html#fls_pxiba4se64y4", "checksum": "0086a77e0d850ef108a2f797e78c9cda969d52801db1d04f746169fe78c7631f"}], "informational": false}, {"id": "fls_9qgy7x6w5ro5", "number": "B.155", "title": "declaration", "link": "glossary.html#declaration", "paragraphs": [{"id": "fls_kct7ducpli6k", "number": "B.155:1", "link": "glossary.html#fls_kct7ducpli6k", "checksum": "186be1d59895580871c6dc1bb41016600424e8a4e18c7b824f276f299825b31e"}], "informational": false}, {"id": "fls_5944xn0lz8e", "number": "B.156", "title": "declarative macro", "link": "glossary.html#declarative-macro", "paragraphs": [{"id": "fls_pe12lfffaoqt", "number": "B.156:1", "link": "glossary.html#fls_pe12lfffaoqt", "checksum": "c6f81f63302508941a457a3549f6715449e0e3264bd13bb8fb58f97b42332877"}, {"id": "fls_1te2kfi9lt6c", "number": "B.156:2", "link": "glossary.html#fls_1te2kfi9lt6c", "checksum": "6fe37f22bb9d618a04b7a471248554c938cd26c78c35410d22c4bac98e96534b"}], "informational": false}, {"id": "fls_galaslko8glg", "number": "B.157", "title": "deconstructee", "link": "glossary.html#deconstructee", "paragraphs": [{"id": "fls_qsvwodofwtuo", "number": "B.157:1", "link": "glossary.html#fls_qsvwodofwtuo", "checksum": "be67838f13fbac1eefc831094a6b299226ba9fd64c19f5e040e8535f199d01ff"}, {"id": "fls_tkfjmv7ar7lp", "number": "B.157:2", "link": "glossary.html#fls_tkfjmv7ar7lp", "checksum": "c02bd58eae112bc9bff6510a22c21e19c3729a15b3934f367249ad44fbb99bc8"}], "informational": false}, {"id": "fls_g9v8ubx8m1sq", "number": "B.158", "title": "default representation", "link": "glossary.html#default-representation", "paragraphs": [{"id": "fls_e85fsp10acnh", "number": "B.158:1", "link": "glossary.html#fls_e85fsp10acnh", "checksum": "f60378643e829d062e4e7148f2c4e7f2ae8d5ee23e30726de0b1e517e56d9882"}], "informational": false}, {"id": "fls_frfnicpg81sr", "number": "B.159", "title": "definition site hygiene", "link": "glossary.html#definition-site-hygiene", "paragraphs": [{"id": "fls_2y1dpw5zeqt3", "number": "B.159:1", "link": "glossary.html#fls_2y1dpw5zeqt3", "checksum": "3e74e67dd4f92d64c9dcac1bab6954b9904fdc86d5f8334201b4ce7f7fead9e6"}], "informational": false}, {"id": "fls_127n1n5ssk2b", "number": "B.160", "title": "dereference", "link": "glossary.html#dereference", "paragraphs": [{"id": "fls_hk97pb1qt04y", "number": "B.160:1", "link": "glossary.html#fls_hk97pb1qt04y", "checksum": "c6086a6971526f43461c5f5000f075c75858b7c4fcbd7a85e6d6508c512e211e"}], "informational": false}, {"id": "fls_o588wfq878rm", "number": "B.161", "title": "dereference expression", "link": "glossary.html#dereference-expression", "paragraphs": [{"id": "fls_3cuyhbh2llei", "number": "B.161:1", "link": "glossary.html#fls_3cuyhbh2llei", "checksum": "1240280d29008dfc8c0180ba22be627dd92ce546e418c6fb9572a06c31605ce0"}, {"id": "fls_hx0jwahdb1nf", "number": "B.161:2", "link": "glossary.html#fls_hx0jwahdb1nf", "checksum": "16cbe15964f11f6a2159ae6277fdfa291cb2878516c19d2b3792e41f5e0ea759"}], "informational": false}, {"id": "fls_xbn0gtch8emc", "number": "B.162", "title": "dereference type", "link": "glossary.html#dereference-type", "paragraphs": [{"id": "fls_hfuuq7iaoi5j", "number": "B.162:1", "link": "glossary.html#fls_hfuuq7iaoi5j", "checksum": "93b8f7f371f4936860247c97677a44b6a1f54ae3365939b211911d9a0927bd92"}], "informational": false}, {"id": "fls_t380ndesfxip", "number": "B.163", "title": "dereference type chain", "link": "glossary.html#dereference-type-chain", "paragraphs": [{"id": "fls_kizoaef069he", "number": "B.163:1", "link": "glossary.html#fls_kizoaef069he", "checksum": "16374bf45141d9fbb2097bdd885ea5e7091f30932db80a58f20cfeabe4ded75a"}], "informational": false}, {"id": "fls_7ipdj78o7ln", "number": "B.164", "title": "derive macro", "link": "glossary.html#derive-macro", "paragraphs": [{"id": "fls_jrrjhl9hocrm", "number": "B.164:1", "link": "glossary.html#fls_jrrjhl9hocrm", "checksum": "c1f0f6341e425323d91fe1a69bb0a559bb1b796ae5d5cec960c20d5f296e971c"}], "informational": false}, {"id": "fls_7b3fsp356e9l", "number": "B.165", "title": "destruction", "link": "glossary.html#destruction", "paragraphs": [{"id": "fls_58i2nfhxze3j", "number": "B.165:1", "link": "glossary.html#fls_58i2nfhxze3j", "checksum": "c3c69e39c76ec60efe130d5fe9cf18560b60ca13e2b9f1a89079c56ea51ffe16"}], "informational": false}, {"id": "fls_kwxpy451gtc", "number": "B.166", "title": "destructor", "link": "glossary.html#destructor", "paragraphs": [{"id": "fls_79pp7o1xooja", "number": "B.166:1", "link": "glossary.html#fls_79pp7o1xooja", "checksum": "cab9cc5970167e0b245142acc001861b45534ebfeb4fbbc2cbe70dd9af2cd12d"}], "informational": false}, {"id": "fls_2fuu3zr9rn2q", "number": "B.167", "title": "destructuring assignment", "link": "glossary.html#destructuring-assignment", "paragraphs": [{"id": "fls_7jienn9uzn5k", "number": "B.167:1", "link": "glossary.html#fls_7jienn9uzn5k", "checksum": "a73eab7803701de6bccbe631159e1fb32bb53ae053872967f51cdc17b6c6bbaa"}], "informational": false}, {"id": "fls_ugifzlazdk6h", "number": "B.168", "title": "direction modifier", "link": "glossary.html#direction-modifier", "paragraphs": [{"id": "fls_8dy7xpvx4nxx", "number": "B.168:1", "link": "glossary.html#fls_8dy7xpvx4nxx", "checksum": "3d1f7fad507a86b94d9c0829cdcfd7405c4c95a9d7c6cf14d52b73d4021b20a5"}, {"id": "fls_lrkezy3fq3b2", "number": "B.168:2", "link": "glossary.html#fls_lrkezy3fq3b2", "checksum": "7faaa350f801241526ccbf52964a3df8980b47b8b0ab3ea9f42d3619e28ee24a"}], "informational": false}, {"id": "fls_7vg56eeo0zlg", "number": "B.169", "title": "discriminant", "link": "glossary.html#discriminant", "paragraphs": [{"id": "fls_dfegy9y6awx", "number": "B.169:1", "link": "glossary.html#fls_dfegy9y6awx", "checksum": "5a5abc5ee49b4a7f3f4db78ac422d7a479d70841cbcb719ec4b8021a3fd162f3"}], "informational": false}, {"id": "fls_xayj37ocbqjn", "number": "B.170", "title": "discriminant initializer", "link": "glossary.html#discriminant-initializer", "paragraphs": [{"id": "fls_o7hihgcqmnyc", "number": "B.170:1", "link": "glossary.html#fls_o7hihgcqmnyc", "checksum": "33403a1fd9b481039341e610a91050d2e72dac7d9d9d891990ecf886d8b49253"}, {"id": "fls_g5obc23vigng", "number": "B.170:2", "link": "glossary.html#fls_g5obc23vigng", "checksum": "4ec66a8e6b1a1decf06468e753299a3530da654440caae3314ac821c08e25d7e"}], "informational": false}, {"id": "fls_a0ezupltenme", "number": "B.171", "title": "discriminant type", "link": "glossary.html#discriminant-type", "paragraphs": [{"id": "fls_t4yeovfm83wo", "number": "B.171:1", "link": "glossary.html#fls_t4yeovfm83wo", "checksum": "705ecb8bc002be23873f9f438307c194bfd9d16bcea104ee17ba8b15285dcad2"}], "informational": false}, {"id": "fls_gdfsaj1bvx7a", "number": "B.172", "title": "diverging expression", "link": "glossary.html#diverging-expression", "paragraphs": [{"id": "fls_fllnzmb34cj9", "number": "B.172:1", "link": "glossary.html#fls_fllnzmb34cj9", "checksum": "ad374347cf4cd6a6c6b98a6893a3c10cd7b2eea1690b918fb460d7f40298e461"}], "informational": false}, {"id": "fls_9duain6crbxf", "number": "B.173", "title": "diverging type variable", "link": "glossary.html#diverging-type-variable", "paragraphs": [{"id": "fls_sxyl7yop3h9s", "number": "B.173:1", "link": "glossary.html#fls_sxyl7yop3h9s", "checksum": "9beb47bf4c01551ee36f57494afd73d838a93770858eb6901252693a2659b24e"}], "informational": false}, {"id": "fls_0lpt9ncj7s9x", "number": "B.174", "title": "division assignment", "link": "glossary.html#division-assignment", "paragraphs": [{"id": "fls_kvqskrze1y97", "number": "B.174:1", "link": "glossary.html#fls_kvqskrze1y97", "checksum": "1fcefd037c849800562d836fec6ff2c3da85fd098b5fb8c46d7abd688be6e626"}], "informational": false}, {"id": "fls_ccv27fji08ou", "number": "B.175", "title": "division assignment expression", "link": "glossary.html#division-assignment-expression", "paragraphs": [{"id": "fls_lzuz5fkveikk", "number": "B.175:1", "link": "glossary.html#fls_lzuz5fkveikk", "checksum": "5fb93529292d1b9571eba0d6c393406561ebbc3e510714fae4774d114a0b8c30"}, {"id": "fls_cdxt76aqwtkq", "number": "B.175:2", "link": "glossary.html#fls_cdxt76aqwtkq", "checksum": "7ed26165464e17c3a4e91284b0f80715d5e38377531d78ae29105c2d8a9779c4"}], "informational": false}, {"id": "fls_vxd5q8nekkn0", "number": "B.176", "title": "division expression", "link": "glossary.html#division-expression", "paragraphs": [{"id": "fls_du05yp205f4y", "number": "B.176:1", "link": "glossary.html#fls_du05yp205f4y", "checksum": "fc35ce0f0ccff2997fb52a27c87b7ceb21b3a45f2aa9e4d06034ad09b5873da1"}, {"id": "fls_d3vwk4autyd", "number": "B.176:2", "link": "glossary.html#fls_d3vwk4autyd", "checksum": "f491325690119cf7c5af7534ced8eb78f097cb2bb8048e82cb70083c7c39ddba"}], "informational": false}, {"id": "fls_4nm1r57ntecm", "number": "B.177", "title": "doc comment", "link": "glossary.html#doc-comment", "paragraphs": [{"id": "fls_wkc1w2xk7ebh", "number": "B.177:1", "link": "glossary.html#fls_wkc1w2xk7ebh", "checksum": "23a01e02af0ae9df7912a43e2e3a1413dde27cd1191c80edcc213f494d6edbf9"}], "informational": false}, {"id": "fls_nw0qr4xy3zxq", "number": "B.178", "title": "drop construct", "link": "glossary.html#drop-construct", "paragraphs": [{"id": "fls_odg2asgj28m", "number": "B.178:1", "link": "glossary.html#fls_odg2asgj28m", "checksum": "7abf2651506bd0665031edef1498e14afa72ecdeb6a7b874c9a09f3c9331b1e2"}], "informational": false}, {"id": "fls_j12e358828h", "number": "B.179", "title": "drop order", "link": "glossary.html#drop-order", "paragraphs": [{"id": "fls_qddkiabu6swt", "number": "B.179:1", "link": "glossary.html#fls_qddkiabu6swt", "checksum": "e9460db73120721fb8857496d2f76aee1a9e80ef6a34e38fb92f39de28a8fd6f"}], "informational": false}, {"id": "fls_foszri7hdym0", "number": "B.180", "title": "drop scope", "link": "glossary.html#drop-scope", "paragraphs": [{"id": "fls_6bu8x0g9q0er", "number": "B.180:1", "link": "glossary.html#fls_6bu8x0g9q0er", "checksum": "cb1c7edf069900e8ae1aa4ae6e4e4db97372e11f2612c1c75556af4f8f1e1911"}], "informational": false}, {"id": "fls_qp3ksd2lxm8", "number": "B.181", "title": "drop scope extension", "link": "glossary.html#drop-scope-extension", "paragraphs": [{"id": "fls_pmdh8kkrwkd0", "number": "B.181:1", "link": "glossary.html#fls_pmdh8kkrwkd0", "checksum": "502eedcf0dab84b64b658d062626caf3ce8ca7151ac593ca3f3d7bde795a8927"}], "informational": false}, {"id": "fls_4v6vsuw4g89l", "number": "B.182", "title": "drop type", "link": "glossary.html#drop-type", "paragraphs": [{"id": "fls_ot3e31kwixil", "number": "B.182:1", "link": "glossary.html#fls_ot3e31kwixil", "checksum": "65ab24e3cd1d32e6f0df7050e8eb6474391a353230f445eceaa10659e7c0c16d"}], "informational": false}, {"id": "fls_68cl4paduzx2", "number": "B.183", "title": "dropping", "link": "glossary.html#dropping", "paragraphs": [{"id": "fls_k4mguykh8ey", "number": "B.183:1", "link": "glossary.html#fls_k4mguykh8ey", "checksum": "02153ef5dc490ca8c73e4d45ac6238b2a79c316c5d7f497dc65f0485462cad42"}], "informational": false}, {"id": "fls_6uovyjjzh6km", "number": "B.184", "title": "dynamically sized type", "link": "glossary.html#dynamically-sized-type", "paragraphs": [{"id": "fls_eeyxu730z2pw", "number": "B.184:1", "link": "glossary.html#fls_eeyxu730z2pw", "checksum": "74949c40c2992ef3a797d351b856d71f6d0b2c333152b70dc30b48e4874f8031"}], "informational": false}, {"id": "fls_2sja3okj27ne", "number": "B.185", "title": "elaboration", "link": "glossary.html#elaboration", "paragraphs": [{"id": "fls_xoahzmwu1std", "number": "B.185:1", "link": "glossary.html#fls_xoahzmwu1std", "checksum": "61683bccb6e65169a6a97549e117ed653e66baef8b539541b6704e4220171f2b"}], "informational": false}, {"id": "fls_bxm4njfo2h58", "number": "B.186", "title": "element type", "link": "glossary.html#element-type", "paragraphs": [{"id": "fls_3bndijf8g9os", "number": "B.186:1", "link": "glossary.html#fls_3bndijf8g9os", "checksum": "3bd8765395f2fac6faf751bb96055a45f85797eae151e46349ae0db30f071e70"}, {"id": "fls_pvyl887dn016", "number": "B.186:2", "link": "glossary.html#fls_pvyl887dn016", "checksum": "d62bee51822d6f6d406acba429af002d1ab08fea7725cfd70344b9d81417898b"}], "informational": false}, {"id": "fls_vygjg858yxej", "number": "B.187", "title": "elided", "link": "glossary.html#elided", "paragraphs": [{"id": "fls_lo3c3n9wy6qz", "number": "B.187:1", "link": "glossary.html#fls_lo3c3n9wy6qz", "checksum": "63e5e30e747f9a7ee44508e6c55a2cba2b873c7ed32b690019a9f392ea878fc4"}], "informational": false}, {"id": "fls_l2181y5566ck", "number": "B.188", "title": "elided lifetime", "link": "glossary.html#elided-lifetime", "paragraphs": [{"id": "fls_9q28407ev0a6", "number": "B.188:1", "link": "glossary.html#fls_9q28407ev0a6", "checksum": "fbdb6bbcfc31a6446a2909cbbfa2f1f86bc6d494840bd0c8182142874cec9846"}], "informational": false}, {"id": "fls_ff5zp7m9d5ot", "number": "B.189", "title": "else expression", "link": "glossary.html#else-expression", "paragraphs": [{"id": "fls_inp7luoqkjc5", "number": "B.189:1", "link": "glossary.html#fls_inp7luoqkjc5", "checksum": "93eed90fe1fa480bab6c0988d5fe9e37292cf9aaed59df8c10b83a82a370a1ff"}, {"id": "fls_2jniy6bkq1hn", "number": "B.189:2", "link": "glossary.html#fls_2jniy6bkq1hn", "checksum": "fe3d4b57a8de6c6fec34a4c7f0577cebcec203f85a07de1166ce59701f0814cd"}], "informational": false}, {"id": "fls_iwed9n4jz6b8", "number": "B.190", "title": "empty statement", "link": "glossary.html#empty-statement", "paragraphs": [{"id": "fls_irw5gwuvj3nn", "number": "B.190:1", "link": "glossary.html#fls_irw5gwuvj3nn", "checksum": "b21f5c532bda9b088c3df990999b60c9897d53a813c2c50f6a586d94594c17f2"}], "informational": false}, {"id": "fls_1qu1t74ga8aa", "number": "B.191", "title": "entity", "link": "glossary.html#entity", "paragraphs": [{"id": "fls_mdbck557k8sy", "number": "B.191:1", "link": "glossary.html#fls_mdbck557k8sy", "checksum": "b99ebf561fb2b712d6b0e5b6f8bbef36e59b5929b8f2a622a11f35506b0a09b4"}], "informational": false}, {"id": "fls_xnhj9fqlfs2p", "number": "B.192", "title": "enum", "link": "glossary.html#enum", "paragraphs": [{"id": "fls_9o0ig19xh2f5", "number": "B.192:1", "link": "glossary.html#fls_9o0ig19xh2f5", "checksum": "55bfd8e88f68583acdcba6d46ba7f3ab6a7f708f06f1d762e49cf30a6237fee8"}], "informational": false}, {"id": "fls_zrrydwzgm03k", "number": "B.193", "title": "enum field", "link": "glossary.html#enum-field", "paragraphs": [{"id": "fls_j8udq05qgiej", "number": "B.193:1", "link": "glossary.html#fls_j8udq05qgiej", "checksum": "10cf182ff530b108c79f8a6105f024ab194388b61ef12837cf0ab351bcba13ad"}], "informational": false}, {"id": "fls_grlluqa4ucp3", "number": "B.194", "title": "enum type", "link": "glossary.html#enum-type", "paragraphs": [{"id": "fls_idwrgo87ub3i", "number": "B.194:1", "link": "glossary.html#fls_idwrgo87ub3i", "checksum": "7bec00fcaf3ec0f8d237b6ad87cbc9a5cd8f6670685a281e0e56f0d84971ea97"}, {"id": "fls_o6ih6n1z1566", "number": "B.194:2", "link": "glossary.html#fls_o6ih6n1z1566", "checksum": "70f96046ca399c6fce19a8034df2065d80d5c8d0620bcc1efd0f86c58e7e4dcd"}], "informational": false}, {"id": "fls_h6auaujnlx6z", "number": "B.195", "title": "enum value", "link": "glossary.html#enum-value", "paragraphs": [{"id": "fls_qdbtdvlb2xhk", "number": "B.195:1", "link": "glossary.html#fls_qdbtdvlb2xhk", "checksum": "e6e316bcba9763e25bd0a189d7b5ee58922732e7f4ac872dd8a26f7f0f794b99"}], "informational": false}, {"id": "fls_klwlx5jixwud", "number": "B.196", "title": "enum variant", "link": "glossary.html#enum-variant", "paragraphs": [{"id": "fls_9jq4keg9y94u", "number": "B.196:1", "link": "glossary.html#fls_9jq4keg9y94u", "checksum": "a97d85b8319c13caf3eb97c8dcd218ba5f6a4c34818926f65673e3a9a02961e9"}, {"id": "fls_tj2s55onen6b", "number": "B.196:2", "link": "glossary.html#fls_tj2s55onen6b", "checksum": "0903984600db389923d90e27798c6da2a530c199827ddb5d154fd8f74fd68f13"}], "informational": false}, {"id": "fls_mkxbwcojhnwu", "number": "B.197", "title": "enum variant value", "link": "glossary.html#enum-variant-value", "paragraphs": [{"id": "fls_vqrqnpffwmdp", "number": "B.197:1", "link": "glossary.html#fls_vqrqnpffwmdp", "checksum": "a71ccfd8de8b723e189e9cfdc26e33287259bc252697d1af5bfabb9004bc2fbf"}], "informational": false}, {"id": "fls_alifv570nx7q", "number": "B.198", "title": "equals expression", "link": "glossary.html#equals-expression", "paragraphs": [{"id": "fls_mn1g2hijtd6f", "number": "B.198:1", "link": "glossary.html#fls_mn1g2hijtd6f", "checksum": "752a5f73dc8c26534cf6daaa8b7bcf1748a4d322c908774179f40a26734847fd"}, {"id": "fls_j32l4do0xw4d", "number": "B.198:2", "link": "glossary.html#fls_j32l4do0xw4d", "checksum": "749e923d0c51631d01835a509d15cc66aabaf35d93c976a8ae25a6bb17e353c9"}], "informational": false}, {"id": "fls_kz7tgpi8xkt4", "number": "B.199", "title": "error propagation expression", "link": "glossary.html#error-propagation-expression", "paragraphs": [{"id": "fls_5kebgodxtqqt", "number": "B.199:1", "link": "glossary.html#fls_5kebgodxtqqt", "checksum": "cda63944f6a0056104780625eff6b1411a44708802aa5f5ba1339cc60f2d6e06"}, {"id": "fls_agyqvyda3rcj", "number": "B.199:2", "link": "glossary.html#fls_agyqvyda3rcj", "checksum": "9598dac15ae7ae5953f1a98ae895611ac521b0bb5071f731bdbb4c6d021e9ee8"}], "informational": false}, {"id": "fls_9hw559b548m0", "number": "B.200", "title": "escaped character", "link": "glossary.html#escaped-character", "paragraphs": [{"id": "fls_7yvnbakmo7y5", "number": "B.200:1", "link": "glossary.html#fls_7yvnbakmo7y5", "checksum": "2f0565045c9b9b6ac98a82163a6e9b2f2ff7943c7f8efb7c470f13474fcf48fd"}], "informational": false}, {"id": "fls_pefe9ng1mm81", "number": "B.201", "title": "evaluated", "link": "glossary.html#evaluated", "paragraphs": [{"id": "fls_769tm6hn9g5e", "number": "B.201:1", "link": "glossary.html#fls_769tm6hn9g5e", "checksum": "f49d2f1aba2b337fd812e752e9330a31588aa19647bff7f1a0f982ae92d9fd84"}], "informational": false}, {"id": "fls_p3gre0895k2u", "number": "B.202", "title": "evaluation", "link": "glossary.html#evaluation", "paragraphs": [{"id": "fls_8zmtio6razl1", "number": "B.202:1", "link": "glossary.html#fls_8zmtio6razl1", "checksum": "a05f48ba73d51eb3a8a6d89d6b576154e00a8116ad42133b57faf2e7509efac5"}], "informational": false}, {"id": "fls_nw0eg7gwayrg", "number": "B.203", "title": "executed", "link": "glossary.html#executed", "paragraphs": [{"id": "fls_kelmsc68lyf7", "number": "B.203:1", "link": "glossary.html#fls_kelmsc68lyf7", "checksum": "8211f1e161aadc39a62f6cc679dc33b4399404b7f905d79b99f845eabf6d971b"}], "informational": false}, {"id": "fls_q0ur239s8uv", "number": "B.204", "title": "execution", "link": "glossary.html#execution", "paragraphs": [{"id": "fls_e5jbii84hd5g", "number": "B.204:1", "link": "glossary.html#fls_e5jbii84hd5g", "checksum": "e6e30a3137daed472eac5e6451ca742c99cd40109cb14e02abbec0c2a7a9c8f8"}], "informational": false}, {"id": "fls_b1qkksvc69j4", "number": "B.205", "title": "explicit register argument", "link": "glossary.html#explicit-register-argument", "paragraphs": [{"id": "fls_2o6s1wgdrmh3", "number": "B.205:1", "link": "glossary.html#fls_2o6s1wgdrmh3", "checksum": "246d76c492360be9b37e4456c223c1209aca1d92e47981a66ec2addcf240f86e"}], "informational": false}, {"id": "fls_uc7pnsbvvd9x", "number": "B.206", "title": "explicit register name", "link": "glossary.html#explicit-register-name", "paragraphs": [{"id": "fls_ucmk6rrlrkb5", "number": "B.206:1", "link": "glossary.html#fls_ucmk6rrlrkb5", "checksum": "294e872304d6ca6fc60216fdbecd1805e6bfde3b8462f0688248a438102857a5"}, {"id": "fls_z3wdh75vpsuu", "number": "B.206:2", "link": "glossary.html#fls_z3wdh75vpsuu", "checksum": "519e2d7a787629ff82f0ac7889a961fef2dd5c808a3d92d20577c8e4619a6c98"}], "informational": false}, {"id": "fls_lqxcnzqvwcsh", "number": "B.207", "title": "explicitly declared entity", "link": "glossary.html#explicitly-declared-entity", "paragraphs": [{"id": "fls_shpnj0jcscwa", "number": "B.207:1", "link": "glossary.html#fls_shpnj0jcscwa", "checksum": "d3e50dd09d36f4dde21049ee5930d4f5c620bf5ed6f7aa36019d589fd1874202"}], "informational": false}, {"id": "fls_5oqllrm7wjsg", "number": "B.208", "title": "exported function", "link": "glossary.html#exported-function", "paragraphs": [{"id": "fls_qotmf1iaeyod", "number": "B.208:1", "link": "glossary.html#fls_qotmf1iaeyod", "checksum": "4b26446aa4ddc724ece7673be491c07bb3f91af46494f4de107c45d09072cbf7"}], "informational": false}, {"id": "fls_zkq5zkjwsyod", "number": "B.209", "title": "exported static", "link": "glossary.html#exported-static", "paragraphs": [{"id": "fls_aolcsvb349zu", "number": "B.209:1", "link": "glossary.html#fls_aolcsvb349zu", "checksum": "6822eb037fa58a1b2cf743b2117a957fd48eab1ef2cbdb974ff4ebb8dd92bf93"}], "informational": false}, {"id": "fls_q8ofwncggngd", "number": "B.210", "title": "expression", "link": "glossary.html#expression", "paragraphs": [{"id": "fls_f7iuwgbs1lql", "number": "B.210:1", "link": "glossary.html#fls_f7iuwgbs1lql", "checksum": "eedeacbaa1d210d8b20142f0e6f43a38225774dec26c09c4a15f49ccc2049a82"}, {"id": "fls_8l9hru1x586q", "number": "B.210:2", "link": "glossary.html#fls_8l9hru1x586q", "checksum": "d5c1acc27a061ab4a00f8db188df97108fbc002afb3b8894e7111fd4e4671fb9"}], "informational": false}, {"id": "fls_a1rorkjt3vpc", "number": "B.211", "title": "expression statement", "link": "glossary.html#expression-statement", "paragraphs": [{"id": "fls_ds0pspiqk4am", "number": "B.211:1", "link": "glossary.html#fls_ds0pspiqk4am", "checksum": "a047ef3ad373b2ff4f80056a1438b8aa65b5f0d30615bfc299868e00c8c230d3"}, {"id": "fls_41jt1h3audzv", "number": "B.211:2", "link": "glossary.html#fls_41jt1h3audzv", "checksum": "5339879c39ea4615d41c32f6d48b2e53f0bf6a1f4f43569a50eb73ec059689cf"}], "informational": false}, {"id": "fls_u6huewic8650", "number": "B.212", "title": "expression-with-block", "link": "glossary.html#expression-with-block", "paragraphs": [{"id": "fls_ujlm50le5dnj", "number": "B.212:1", "link": "glossary.html#fls_ujlm50le5dnj", "checksum": "4d7e267ad0d149dd29f48c7af04eb52c0294fff217086d1d78da516872d89ac9"}, {"id": "fls_iwheys965ml3", "number": "B.212:2", "link": "glossary.html#fls_iwheys965ml3", "checksum": "f9e3f3e27f25bd67eb45f644b9fad2f82e6ce29d5b297ca444300b0a7127eb03"}], "informational": false}, {"id": "fls_378e2xhxzk26", "number": "B.213", "title": "expression-without-block", "link": "glossary.html#expression-without-block", "paragraphs": [{"id": "fls_xfh9xmsphzqb", "number": "B.213:1", "link": "glossary.html#fls_xfh9xmsphzqb", "checksum": "7cce1c14a5506009db260af1d47e8986f414d4211450ce82b0cca2dc979fcf05"}, {"id": "fls_miaphjnikd51", "number": "B.213:2", "link": "glossary.html#fls_miaphjnikd51", "checksum": "d9e8419c17a4b4649a3d0af3749b43f96720c9b317e51491a05070b63556b922"}], "informational": false}, {"id": "fls_9k6jcsljghab", "number": "B.214", "title": "external block", "link": "glossary.html#external-block", "paragraphs": [{"id": "fls_z2ebcp7kjpuy", "number": "B.214:1", "link": "glossary.html#fls_z2ebcp7kjpuy", "checksum": "a56ea5af9b72536fbec71883cd6a041726a04a714ff48bbdc3734859396f2c7a"}, {"id": "fls_dm2wz1th2haz", "number": "B.214:2", "link": "glossary.html#fls_dm2wz1th2haz", "checksum": "302b6dfa7018b3eca79b3adc9417f5045a101a947eafd0fe83021a44796cec3e"}], "informational": false}, {"id": "fls_8ffbgzkbsf9r", "number": "B.215", "title": "external function", "link": "glossary.html#external-function", "paragraphs": [{"id": "fls_ngz5fqwrf86e", "number": "B.215:1", "link": "glossary.html#fls_ngz5fqwrf86e", "checksum": "e27b76500ca5beb577c67a9a3db7c4d363f4240f6e86516e9b6cd759a3fa0104"}], "informational": false}, {"id": "fls_ug2kags0o6is", "number": "B.216", "title": "external function item type", "link": "glossary.html#external-function-item-type", "paragraphs": [{"id": "fls_dwlovqly44dj", "number": "B.216:1", "link": "glossary.html#fls_dwlovqly44dj", "checksum": "6bd8c2d66d4263112be6db40475705152153102478f83df9fde317cbc0ed4886"}], "informational": false}, {"id": "fls_c89migfc2m6e", "number": "B.217", "title": "external static", "link": "glossary.html#external-static", "paragraphs": [{"id": "fls_bqq6cncstzeg", "number": "B.217:1", "link": "glossary.html#fls_bqq6cncstzeg", "checksum": "aeb76dc9d5fedbb690dd0b97233c1ecd588913c98a8c4ec43ca2ce3c721170e4"}], "informational": false}, {"id": "fls_4w6garmjhrd9", "number": "B.218", "title": "f32", "link": "glossary.html#f32", "paragraphs": [{"id": "fls_4w5rqj7zdemu", "number": "B.218:1", "link": "glossary.html#fls_4w5rqj7zdemu", "checksum": "181cd4cfcee4b0854842216c451b38f93ae6074ef36248dc184574b7b67da1a7"}], "informational": false}, {"id": "fls_pj450h99yo28", "number": "B.219", "title": "f64", "link": "glossary.html#f64", "paragraphs": [{"id": "fls_ly6p0i6lsibh", "number": "B.219:1", "link": "glossary.html#fls_ly6p0i6lsibh", "checksum": "8ca9803fedfbd1c394698766b0fea6b8a100d5d3761f9d7081fd762569b2f10c"}], "informational": false}, {"id": "fls_nkf9z4pqg8x1", "number": "B.220", "title": "fat pointer", "link": "glossary.html#fat-pointer", "paragraphs": [{"id": "fls_knbc2jv5c5ds", "number": "B.220:1", "link": "glossary.html#fls_knbc2jv5c5ds", "checksum": "da42cd3e020a0d0b56ccf3c37074591a4652e9f193d2c8b6b95f3833a781b346"}], "informational": false}, {"id": "fls_trvkbidlsss8", "number": "B.221", "title": "fat pointer type", "link": "glossary.html#fat-pointer-type", "paragraphs": [{"id": "fls_l8ew6udd79hh", "number": "B.221:1", "link": "glossary.html#fls_l8ew6udd79hh", "checksum": "dd2ddbe7d5c0f33b2db1c0fad93ddf27f1e0609d5201db45b67dfaaba9ad315b"}], "informational": false}, {"id": "fls_qi21fdknzez6", "number": "B.222", "title": "FFI", "link": "glossary.html#ffi", "paragraphs": [{"id": "fls_z363fu89mj1c", "number": "B.222:1", "link": "glossary.html#fls_z363fu89mj1c", "checksum": "2113cb97a21d807a1ce23b1fc48691f268dc2902994fd2c9b7a68235b26f5668"}], "informational": false}, {"id": "fls_7gcabhngeil6", "number": "B.223", "title": "field", "link": "glossary.html#field", "paragraphs": [{"id": "fls_uakrgfftk2yv", "number": "B.223:1", "link": "glossary.html#fls_uakrgfftk2yv", "checksum": "c532a8cff3f354481be5493a79ea298042fd71117d52179e4777df728c892ca1"}], "informational": false}, {"id": "fls_yipl7ajrbs6y", "number": "B.224", "title": "field access expression", "link": "glossary.html#field-access-expression", "paragraphs": [{"id": "fls_gdl348a04d15", "number": "B.224:1", "link": "glossary.html#fls_gdl348a04d15", "checksum": "841ffbc800b382bd4a5dd9b730e0c83e19d899a51798fe18d3bc02346567aa7d"}, {"id": "fls_luetyuwu54d6", "number": "B.224:2", "link": "glossary.html#fls_luetyuwu54d6", "checksum": "8d2041606274b9333d7b1f48edfb63c1872e07246fe2433127c7af80fb6013fb"}], "informational": false}, {"id": "fls_6uwwat9j4x7y", "number": "B.225", "title": "field index", "link": "glossary.html#field-index", "paragraphs": [{"id": "fls_6061r871qgbj", "number": "B.225:1", "link": "glossary.html#fls_6061r871qgbj", "checksum": "6ea581de0e89fdaadc05a0ae86ca201bfc22de10dc318b7531c9c98d9d50fa94"}, {"id": "fls_idykxuil845x", "number": "B.225:2", "link": "glossary.html#fls_idykxuil845x", "checksum": "c24eb2fc0386b3b65f293e81f359cb57b7cb3399b2399e8f7ee535883ff24067"}], "informational": false}, {"id": "fls_8qll14wfxxnn", "number": "B.226", "title": "field list", "link": "glossary.html#field-list", "paragraphs": [{"id": "fls_xmzsrxmc9cni", "number": "B.226:1", "link": "glossary.html#fls_xmzsrxmc9cni", "checksum": "21a7bf487e0cbca6939de60c7b241cfd40ac04774db6e17aa40bc28c1f614bbe"}], "informational": false}, {"id": "fls_blzwxp6h62ss", "number": "B.227", "title": "field resolution", "link": "glossary.html#field-resolution", "paragraphs": [{"id": "fls_nl8uuclgxfgl", "number": "B.227:1", "link": "glossary.html#fls_nl8uuclgxfgl", "checksum": "7f7d5a7adec0ac5efbc2e056b4b3d91501d12bd9539da3e419c9901267f17746"}], "informational": false}, {"id": "fls_kqbata8slp1y", "number": "B.228", "title": "field selector", "link": "glossary.html#field-selector", "paragraphs": [{"id": "fls_aq1yg9cp1uof", "number": "B.228:1", "link": "glossary.html#fls_aq1yg9cp1uof", "checksum": "6f5e77498cf368104bd5e6b79a788a56a83d1e0fda0d0b0db540240558568a73"}, {"id": "fls_x8swot8e1j32", "number": "B.228:2", "link": "glossary.html#fls_x8swot8e1j32", "checksum": "20fbd9422ad2ab3b9ff7214c70b3a797bf9fc1ad0a178b5e6982bf3b8e98bcc6"}], "informational": false}, {"id": "fls_mj9mmkar8c6f", "number": "B.229", "title": "final match arm", "link": "glossary.html#final-match-arm", "paragraphs": [{"id": "fls_btoz8jioisx9", "number": "B.229:1", "link": "glossary.html#fls_btoz8jioisx9", "checksum": "8dda539d2ad7cf2893d067c24601d21bdbaa2ee260f478edfcafb6ec7c8bb071"}, {"id": "fls_v7ockjwbeel1", "number": "B.229:2", "link": "glossary.html#fls_v7ockjwbeel1", "checksum": "50cc6b77eb8387eed43d394c94eca8f977f1c8f31f1511a854efa76754d6fc9b"}], "informational": false}, {"id": "fls_rljxa45tleq3", "number": "B.230", "title": "fixed sized type", "link": "glossary.html#fixed-sized-type", "paragraphs": [{"id": "fls_eadiywl20jo4", "number": "B.230:1", "link": "glossary.html#fls_eadiywl20jo4", "checksum": "bbca6811533fe8c8d6843f6857396ab3b9930dfb2a60fb52b0c690b307e624cb"}], "informational": false}, {"id": "fls_achdyw3nbme3", "number": "B.231", "title": "float literal", "link": "glossary.html#float-literal", "paragraphs": [{"id": "fls_53o8dio9vpjh", "number": "B.231:1", "link": "glossary.html#fls_53o8dio9vpjh", "checksum": "06efac29168db9a25d7fee7d6b86492749c226138f468ae353a9ac03190201af"}, {"id": "fls_hqeaakhsqxok", "number": "B.231:2", "link": "glossary.html#fls_hqeaakhsqxok", "checksum": "db1ddaa36db2cf43c9125478d43b593c7f65cfa74d559cd15e8592365b5842d3"}], "informational": false}, {"id": "fls_wgylj1n4wrqe", "number": "B.232", "title": "float suffix", "link": "glossary.html#float-suffix", "paragraphs": [{"id": "fls_vka2z7frq9j8", "number": "B.232:1", "link": "glossary.html#fls_vka2z7frq9j8", "checksum": "3e414c6c06ebf1d4bd050146606b3c7dc85672a4e5d2ac904187b5934430937b"}, {"id": "fls_2k1ddqhsgxqk", "number": "B.232:2", "link": "glossary.html#fls_2k1ddqhsgxqk", "checksum": "6d8233757d744aaf3a1bd9b1d0c8c2c913808b7d5409b6e869c29b8691106df5"}], "informational": false}, {"id": "fls_k32g8cd9friu", "number": "B.233", "title": "floating-point type", "link": "glossary.html#floating-point-type", "paragraphs": [{"id": "fls_1w5yjiffah1u", "number": "B.233:1", "link": "glossary.html#fls_1w5yjiffah1u", "checksum": "b3a191d6ffee78ef311314020e7f5651797562cc91bfe41e5137cc16ae46643f"}], "informational": false}, {"id": "fls_8ih3gh6hoy78", "number": "B.234", "title": "floating-point type variable", "link": "glossary.html#floating-point-type-variable", "paragraphs": [{"id": "fls_ls41emhkrxdi", "number": "B.234:1", "link": "glossary.html#fls_ls41emhkrxdi", "checksum": "0b0169518dc02e79a70eecaf957c5e77a6946f1bbeb52340ee1d24312217adb2"}], "informational": false}, {"id": "fls_ne6swuvh7x68", "number": "B.235", "title": "floating-point value", "link": "glossary.html#floating-point-value", "paragraphs": [{"id": "fls_rx8cvwplvel5", "number": "B.235:1", "link": "glossary.html#fls_rx8cvwplvel5", "checksum": "53ed5d1d50fa3ef7c3d572b29e8289f4bdd8d6fcd84c919bac40b59de11882b9"}], "informational": false}, {"id": "fls_dwnvkq8n94h1", "number": "B.236", "title": "for loop", "link": "glossary.html#for-loop", "paragraphs": [{"id": "fls_gmhh56arsbw8", "number": "B.236:1", "link": "glossary.html#fls_gmhh56arsbw8", "checksum": "0f0c08dd04836b63bdec523a9c3bb19ebc114e8d51c8677928bfd4ee009e9e04"}], "informational": false}, {"id": "fls_vfkqbovqbw86", "number": "B.237", "title": "for loop expression", "link": "glossary.html#for-loop-expression", "paragraphs": [{"id": "fls_f0gp7qxoc4o4", "number": "B.237:1", "link": "glossary.html#fls_f0gp7qxoc4o4", "checksum": "07c86728198c5a1ea89ef651d47a91782d9fb08d35305b48637ef644a38df6f8"}, {"id": "fls_yn4d35pvmn87", "number": "B.237:2", "link": "glossary.html#fls_yn4d35pvmn87", "checksum": "2b1d39b7d22bec5da3867d756acb182dcbbee25d3a7ed6e515fdd2f22d580798"}], "informational": false}, {"id": "fls_fo7vyxs4l3yh", "number": "B.238", "title": "Foreign Function Interface", "link": "glossary.html#foreign-function-interface", "paragraphs": [{"id": "fls_240yj1kym1kh", "number": "B.238:1", "link": "glossary.html#fls_240yj1kym1kh", "checksum": "681928198e0928564ec0969507a905e845bafd18a168bf4489d79b2819c3e04e"}], "informational": false}, {"id": "fls_pi7j0t7h1y86", "number": "B.239", "title": "fragment specifier", "link": "glossary.html#fragment-specifier", "paragraphs": [{"id": "fls_6lhwep7ulpr0", "number": "B.239:1", "link": "glossary.html#fls_6lhwep7ulpr0", "checksum": "3a6ce2a8af500a647812693f27feae2ced85a925221bd4a25648464e9a9af16e"}, {"id": "fls_drfn9yqrihgx", "number": "B.239:2", "link": "glossary.html#fls_drfn9yqrihgx", "checksum": "bf995029633a5decb43fe87b6fd87e5818d990f5e31a4a0aa5033acda9342593"}], "informational": false}, {"id": "fls_twp1ple8m83k", "number": "B.240", "title": "full range expression", "link": "glossary.html#full-range-expression", "paragraphs": [{"id": "fls_nib9uoirjmqa", "number": "B.240:1", "link": "glossary.html#fls_nib9uoirjmqa", "checksum": "94f184828cfb74ad979cefe3d5cc902b382fcc51d88514c9298ed809d020ecd5"}], "informational": false}, {"id": "fls_yllg093syzdi", "number": "B.241", "title": "function", "link": "glossary.html#function", "paragraphs": [{"id": "fls_ni14pcm4ap9l", "number": "B.241:1", "link": "glossary.html#fls_ni14pcm4ap9l", "checksum": "5c28543992747cf3016899ab4858992b7bdff460617421566312be5778641a7c"}, {"id": "fls_hn01vvw2fx9m", "number": "B.241:2", "link": "glossary.html#fls_hn01vvw2fx9m", "checksum": "53b50ddb978cccc5c65f5d3f449deba71832a75327e0b188c8c770c11e20f24c"}], "informational": false}, {"id": "fls_vjgkg8kfi93", "number": "B.242", "title": "function body", "link": "glossary.html#function-body", "paragraphs": [{"id": "fls_y5ha4123alik", "number": "B.242:1", "link": "glossary.html#fls_y5ha4123alik", "checksum": "c3b3eae235cc1c9f0a27a1d9906078833ed55916703a21a55f985b8977209229"}, {"id": "fls_r0g0i730x6x4", "number": "B.242:2", "link": "glossary.html#fls_r0g0i730x6x4", "checksum": "c566b79870e5f9c505e4fd3f3e6a197a511a54cd4ea1e637c8a2b86501c196fd"}], "informational": false}, {"id": "fls_ayuia853po0a", "number": "B.243", "title": "function item type", "link": "glossary.html#function-item-type", "paragraphs": [{"id": "fls_rfvfo8x42dh8", "number": "B.243:1", "link": "glossary.html#fls_rfvfo8x42dh8", "checksum": "6d6ae7e0c3e4854ba3379d1ae1c611d3834bea80fca0669e9d3800e7c7907b3d"}], "informational": false}, {"id": "fls_wmae58yv1jow", "number": "B.244", "title": "function lifetime elision", "link": "glossary.html#function-lifetime-elision", "paragraphs": [{"id": "fls_tzmmrhua1s8k", "number": "B.244:1", "link": "glossary.html#fls_tzmmrhua1s8k", "checksum": "fc1ac2f069e50f7e6fdfc8902bdef8cd1c57bdfcbb98d2e23c6286b99d7d1286"}], "informational": false}, {"id": "fls_xn800gcjnln1", "number": "B.245", "title": "function parameter", "link": "glossary.html#function-parameter", "paragraphs": [{"id": "fls_2feq1ky9pla1", "number": "B.245:1", "link": "glossary.html#fls_2feq1ky9pla1", "checksum": "0bd12e92ef99aa4986574399b441b60d9caca17812328174744bea656a030c78"}, {"id": "fls_4tf20svi3rjx", "number": "B.245:2", "link": "glossary.html#fls_4tf20svi3rjx", "checksum": "163d688b809a2663e24823d2a6568ef204b5339d8e74747f19ce6eb09c10d110"}], "informational": false}, {"id": "fls_fqwzlg78k503", "number": "B.246", "title": "function pointer type", "link": "glossary.html#function-pointer-type", "paragraphs": [{"id": "fls_lcawg25xhblx", "number": "B.246:1", "link": "glossary.html#fls_lcawg25xhblx", "checksum": "7d7eed569429fd517f1fce67b5b7a422962aa3ff39f90d59de73a32ffaa4234f"}, {"id": "fls_t50umpk5abjy", "number": "B.246:2", "link": "glossary.html#fls_t50umpk5abjy", "checksum": "7ccbe9f141a91aba24cedf20dd1ffc8e228367397abdb36abfcfd52e10540df9"}], "informational": false}, {"id": "fls_v3v6k4s5uhif", "number": "B.247", "title": "function pointer type parameter", "link": "glossary.html#function-pointer-type-parameter", "paragraphs": [{"id": "fls_nf1k90jjwq2k", "number": "B.247:1", "link": "glossary.html#fls_nf1k90jjwq2k", "checksum": "b9c9d84e092221ab9de5d174d25907e392c35ba623e2ab0a233c4168f9e22538"}, {"id": "fls_vvy6qogy0xnb", "number": "B.247:2", "link": "glossary.html#fls_vvy6qogy0xnb", "checksum": "41d1f34096a384ac1c0f9516ef501de61ecdfa01ed47dd0fc5c86e203f7976e3"}], "informational": false}, {"id": "fls_2uvom1x42dcs", "number": "B.248", "title": "function qualifier", "link": "glossary.html#function-qualifier", "paragraphs": [{"id": "fls_8cux22275v8r", "number": "B.248:1", "link": "glossary.html#fls_8cux22275v8r", "checksum": "2fc4c501b4e947027e4d2ed82a4a4c8caa514b2e573f8262bf5be48016afed7d"}, {"id": "fls_3td9tztnj2jq", "number": "B.248:2", "link": "glossary.html#fls_3td9tztnj2jq", "checksum": "bc5d7583e1784a90ec21f1733506c1843a5248443ca157cd50701cf49c92e25f"}], "informational": false}, {"id": "fls_hz3zunp8lrfl", "number": "B.249", "title": "function signature", "link": "glossary.html#function-signature", "paragraphs": [{"id": "fls_ndld48kg6o8d", "number": "B.249:1", "link": "glossary.html#fls_ndld48kg6o8d", "checksum": "1f4a476c4f72be9e1e093d930aa7398eb5c3fda0259dbb38265f6d175b4ed9e0"}], "informational": false}, {"id": "fls_yo2x1llt9ejy", "number": "B.250", "title": "function type", "link": "glossary.html#function-type", "paragraphs": [{"id": "fls_4e19116glgtv", "number": "B.250:1", "link": "glossary.html#fls_4e19116glgtv", "checksum": "b5903cd60c3ce2cce0dd72ca2bf7615e73a2053748d9a33135a7e0fedcedc5b1"}], "informational": false}, {"id": "fls_gzybxk1gosm6", "number": "B.251", "title": "function-like macro", "link": "glossary.html#function-like-macro", "paragraphs": [{"id": "fls_psnab9cuq4bu", "number": "B.251:1", "link": "glossary.html#fls_psnab9cuq4bu", "checksum": "02272347c92241787fa221d25fb77f64ca8e63fcc9e396e71d21b095aba543aa"}], "informational": false}, {"id": "fls_ofmoua3eftuc", "number": "B.252", "title": "fundamental", "link": "glossary.html#fundamental", "paragraphs": [{"id": "fls_e0drd4nte0up", "number": "B.252:1", "link": "glossary.html#fls_e0drd4nte0up", "checksum": "3e8a13071fd084c96974f8a5de9984263fa635ca17aeee18047cdd285979738c"}], "informational": false}, {"id": "fls_yxzpexco8ag3", "number": "B.253", "title": "future", "link": "glossary.html#future", "paragraphs": [{"id": "fls_pvigospl4n3g", "number": "B.253:1", "link": "glossary.html#fls_pvigospl4n3g", "checksum": "ce5e0aadc741fd4469dd97c72c8671fd422861937d4991d94ad6e239657ef0ba"}], "informational": false}, {"id": "fls_dvk8ccb46abk", "number": "B.254", "title": "future operand", "link": "glossary.html#future-operand", "paragraphs": [{"id": "fls_fold1inh5jev", "number": "B.254:1", "link": "glossary.html#fls_fold1inh5jev", "checksum": "0a5a17f74d7b815ad249fb6b287e38a342ed4d6f5334a69d94da1ffc0abc530b"}, {"id": "fls_tbfpowv90u5w", "number": "B.254:2", "link": "glossary.html#fls_tbfpowv90u5w", "checksum": "ec1dd5600e88fe2e8da61bbdd55de9991ca751293cb9704bc7025dfd1c8ccd0f"}], "informational": false}, {"id": "fls_j1cyhud0h65t", "number": "B.255", "title": "generic argument", "link": "glossary.html#generic-argument", "paragraphs": [{"id": "fls_meimxi20p51a", "number": "B.255:1", "link": "glossary.html#fls_meimxi20p51a", "checksum": "736d554de2f9d8fce1817e9523ce08f8065b3f8b6ac72016bbf47ac44b6c1438"}, {"id": "fls_8bvdmdgbu17l", "number": "B.255:2", "link": "glossary.html#fls_8bvdmdgbu17l", "checksum": "130dee264ac50890f47cb9e972b493ecdb9f225ae5a2b82cd0536c39dc5c5d93"}], "informational": false}, {"id": "fls_nooyixmnv8ps", "number": "B.256", "title": "generic associated type", "link": "glossary.html#generic-associated-type", "paragraphs": [{"id": "fls_o4wckpzpmree", "number": "B.256:1", "link": "glossary.html#fls_o4wckpzpmree", "checksum": "d43c09b39e1107251b36161aa1bf6fc7f8cbd51920170fe4190185c45e5ae52b"}], "informational": false}, {"id": "fls_3ufg0nk5fyq6", "number": "B.257", "title": "generic conformance", "link": "glossary.html#generic-conformance", "paragraphs": [{"id": "fls_pfvelnsnyslt", "number": "B.257:1", "link": "glossary.html#fls_pfvelnsnyslt", "checksum": "42163bde4b1383459b09aad7d92ab4b9cfdc32353f695d8536cdb59f1c5fbd95"}], "informational": false}, {"id": "fls_3tj3i83eoi36", "number": "B.258", "title": "generic enum", "link": "glossary.html#generic-enum", "paragraphs": [{"id": "fls_pnu8w26uexaq", "number": "B.258:1", "link": "glossary.html#fls_pnu8w26uexaq", "checksum": "5b6191b963653acc841076abc0a1fd34cdade133df03de39957369c3870dd8cc"}], "informational": false}, {"id": "fls_votx8gvy5utg", "number": "B.259", "title": "generic function", "link": "glossary.html#generic-function", "paragraphs": [{"id": "fls_rfkbc967d48h", "number": "B.259:1", "link": "glossary.html#fls_rfkbc967d48h", "checksum": "1d87c3d541744e3bedee83a148d3bdf7387c56a2cd0e9b9b69c5a30d1948e2f8"}], "informational": false}, {"id": "fls_1xjbrp376niw", "number": "B.260", "title": "generic implementation", "link": "glossary.html#generic-implementation", "paragraphs": [{"id": "fls_jic937ujpnar", "number": "B.260:1", "link": "glossary.html#fls_jic937ujpnar", "checksum": "99886b09b038dfb27460a4c8eb9ba652df2f78efdb272211650cd2efb1a63442"}], "informational": false}, {"id": "fls_s2syghgn74e2", "number": "B.261", "title": "generic parameter", "link": "glossary.html#generic-parameter", "paragraphs": [{"id": "fls_61e6br8jy1v2", "number": "B.261:1", "link": "glossary.html#fls_61e6br8jy1v2", "checksum": "ff1b277b0d720b2a289f5c673f4ba90904790fb8e9bcd97f274a230c874da418"}, {"id": "fls_jvxpoob39632", "number": "B.261:2", "link": "glossary.html#fls_jvxpoob39632", "checksum": "d5b0c77a7cd19a471bcd340f238b9296718a174c3a7a829f85b3e9151798656b"}], "informational": false}, {"id": "fls_czudkdaybfbf", "number": "B.262", "title": "generic parameter scope", "link": "glossary.html#generic-parameter-scope", "paragraphs": [{"id": "fls_e2ticijmlkj4", "number": "B.262:1", "link": "glossary.html#fls_e2ticijmlkj4", "checksum": "eab53bdc0e13f7bf21a0a570dcb149af43db736ef940abd17501e11cbf1b7fd3"}], "informational": false}, {"id": "fls_cgtu4v2vxvh", "number": "B.263", "title": "generic struct", "link": "glossary.html#generic-struct", "paragraphs": [{"id": "fls_mcb2mlklith8", "number": "B.263:1", "link": "glossary.html#fls_mcb2mlklith8", "checksum": "4304735790a85f815648c0d0d8cd5d133e2cc11591d0ffe637cd6652cba4cfdc"}], "informational": false}, {"id": "fls_vbebshuraoke", "number": "B.264", "title": "generic substitution", "link": "glossary.html#generic-substitution", "paragraphs": [{"id": "fls_led1nxfcd70k", "number": "B.264:1", "link": "glossary.html#fls_led1nxfcd70k", "checksum": "6b45899debb368b7d488dd6bb30d6d358d8f253903a603b63796e2365e461081"}], "informational": false}, {"id": "fls_hppo1v3ia4wu", "number": "B.265", "title": "generic trait", "link": "glossary.html#generic-trait", "paragraphs": [{"id": "fls_h515f11akr91", "number": "B.265:1", "link": "glossary.html#fls_h515f11akr91", "checksum": "c8dc27a3167f8ee447979f40d659a339ca0a96ff1d4b98483ebbdb18ecccb4f5"}], "informational": false}, {"id": "fls_3ss6jdgtf1of", "number": "B.266", "title": "generic type", "link": "glossary.html#generic-type", "paragraphs": [{"id": "fls_zn2pismzotry", "number": "B.266:1", "link": "glossary.html#fls_zn2pismzotry", "checksum": "613de2ab41662f6927a0f6152c783918516dc107f7c016e0d7aaf41a1c93e61d"}], "informational": false}, {"id": "fls_18ow0q8at1pi", "number": "B.267", "title": "generic type alias", "link": "glossary.html#generic-type-alias", "paragraphs": [{"id": "fls_zgxsqq4vu7e3", "number": "B.267:1", "link": "glossary.html#fls_zgxsqq4vu7e3", "checksum": "90984bbf1a3d3042a55769638cf73e49289240f1be75eb0a7f16e42cf03d58e6"}], "informational": false}, {"id": "fls_xn9mla1vm6iv", "number": "B.268", "title": "generic union", "link": "glossary.html#generic-union", "paragraphs": [{"id": "fls_93rxr0yjx1e7", "number": "B.268:1", "link": "glossary.html#fls_93rxr0yjx1e7", "checksum": "3fa122b35c9fb793d5538906271b19213fae752dd74422b25292c38de9c8ae36"}], "informational": false}, {"id": "fls_euukteybsbi", "number": "B.269", "title": "glob import", "link": "glossary.html#glob-import", "paragraphs": [{"id": "fls_90qsib7g8e9j", "number": "B.269:1", "link": "glossary.html#fls_90qsib7g8e9j", "checksum": "a075626ce61b92791f915ef3452f132cb80962ba2dfa44b31fbfaaa346261da1"}, {"id": "fls_n4plc55cij0j", "number": "B.269:2", "link": "glossary.html#fls_n4plc55cij0j", "checksum": "4fb7af6ee092be121251a4dd89a945241ed4accd51b3de371d37f67f2305ce11"}], "informational": false}, {"id": "fls_g6g8c58bilen", "number": "B.270", "title": "global path", "link": "glossary.html#global-path", "paragraphs": [{"id": "fls_msg8jw9momfw", "number": "B.270:1", "link": "glossary.html#fls_msg8jw9momfw", "checksum": "f9a2cc5b725c1e023ea5fd9f3626921d41bbd0a58077d2f800c1be6cd7248afb"}], "informational": false}, {"id": "fls_hy1clqvaewnp", "number": "B.271", "title": "global type variable", "link": "glossary.html#global-type-variable", "paragraphs": [{"id": "fls_pvt4nayq006s", "number": "B.271:1", "link": "glossary.html#fls_pvt4nayq006s", "checksum": "165fb35c44653ba49d2f2e4415721ff5f0d8d9f1776cf1ae51129072236dd04d"}], "informational": false}, {"id": "fls_g4n20dy3utzy", "number": "B.272", "title": "greater-than expression", "link": "glossary.html#greater-than-expression", "paragraphs": [{"id": "fls_j7x5qii6rhwj", "number": "B.272:1", "link": "glossary.html#fls_j7x5qii6rhwj", "checksum": "2323d6f17ffd54bf48e1075fbb8abc17d6d016713e50bf8ecd55376beb00c8eb"}, {"id": "fls_yni50ba3ufvs", "number": "B.272:2", "link": "glossary.html#fls_yni50ba3ufvs", "checksum": "a26e78c6b359a455c1b1367ce85ade173168db2f195190556f9b984b2c7c19cc"}], "informational": false}, {"id": "fls_mxz589rq4hiy", "number": "B.273", "title": "greater-than-or-equals expression", "link": "glossary.html#greater-than-or-equals-expression", "paragraphs": [{"id": "fls_wvspqc2otn6v", "number": "B.273:1", "link": "glossary.html#fls_wvspqc2otn6v", "checksum": "bbb4333e37c2bd9dc9424199392d6034d9e646bed0408b589c850e7a71e57e17"}, {"id": "fls_9azbvj9xux6y", "number": "B.273:2", "link": "glossary.html#fls_9azbvj9xux6y", "checksum": "569a1bb8527da83c0475270047ca9e1216b99851534ff3e4fbfd7f4ebcf60962"}], "informational": false}, {"id": "fls_fquvoglio1jz", "number": "B.274", "title": "half-open range pattern", "link": "glossary.html#half-open-range-pattern", "paragraphs": [{"id": "fls_tymjispfgp7u", "number": "B.274:1", "link": "glossary.html#fls_tymjispfgp7u", "checksum": "c6ad5b5bccc30ef2ad2f4c5406ba7447c10b1909de1ec7cd91cd60348c1f22a0"}, {"id": "fls_evm3nxwswk00", "number": "B.274:2", "link": "glossary.html#fls_evm3nxwswk00", "checksum": "c2eadb77b73a1e2b0fb621cac3a7fe04f131b23aafc0d9104b43002d44a62860"}], "informational": false}, {"id": "fls_5uiij8eqln5g", "number": "B.275", "title": "hexadecimal literal", "link": "glossary.html#hexadecimal-literal", "paragraphs": [{"id": "fls_8b6njsi8g68i", "number": "B.275:1", "link": "glossary.html#fls_8b6njsi8g68i", "checksum": "3861fe603625e26ae227e088c785b902e544670dd7f4b1c4b5e84044d6824513"}, {"id": "fls_vssa4z5wcgaa", "number": "B.275:2", "link": "glossary.html#fls_vssa4z5wcgaa", "checksum": "0f612fb6695af3e2a2e586f3cec6ce341243c67a1e60bf6c38b7c22cf663cf8d"}], "informational": false}, {"id": "fls_h87i5nbeuxky", "number": "B.276", "title": "higher-ranked trait bound", "link": "glossary.html#higher-ranked-trait-bound", "paragraphs": [{"id": "fls_lpyc4omcthv", "number": "B.276:1", "link": "glossary.html#fls_lpyc4omcthv", "checksum": "c07802b539d4a11ab3c780e6d69949fdea05f21d55993a058e58a09db21a0e8e"}, {"id": "fls_m3nrsdvxxg6j", "number": "B.276:2", "link": "glossary.html#fls_m3nrsdvxxg6j", "checksum": "1b0ef38cc98efb4a5cdbd2386ad64931d6c6620c8bce7d92d8e637b7c4f207f7"}], "informational": false}, {"id": "fls_gummjhemmlvf", "number": "B.277", "title": "hygiene", "link": "glossary.html#hygiene", "paragraphs": [{"id": "fls_aqg0mqaqzqkz", "number": "B.277:1", "link": "glossary.html#fls_aqg0mqaqzqkz", "checksum": "1adecc92d574319793d4e3c6a00da4b72aeb0ad6aef28988097e7cc55325d5cc"}], "informational": false}, {"id": "fls_95h0awz7xx6u", "number": "B.278", "title": "hygienic", "link": "glossary.html#hygienic", "paragraphs": [{"id": "fls_hidddaknh5ms", "number": "B.278:1", "link": "glossary.html#fls_hidddaknh5ms", "checksum": "d688a125364a2ac22431ae8cfdf110d5c8cd751b3cc4df7d678a6b994434cf18"}], "informational": false}, {"id": "fls_obiv2a6ywfhh", "number": "B.279", "title": "i8", "link": "glossary.html#i8", "paragraphs": [{"id": "fls_1y9ulxnz8qba", "number": "B.279:1", "link": "glossary.html#fls_1y9ulxnz8qba", "checksum": "9d1fdd645cfc05a9af6785d9a5c076c89a63c5fd84abc2e722d00b9bab65cd06"}], "informational": false}, {"id": "fls_rvcjp656gzlm", "number": "B.280", "title": "i16", "link": "glossary.html#i16", "paragraphs": [{"id": "fls_ci9jl55wxwdg", "number": "B.280:1", "link": "glossary.html#fls_ci9jl55wxwdg", "checksum": "6d4d94fea32df589eaacfa86d0bf559cdd03aff3bbacafc52ca2b2982d53c292"}], "informational": false}, {"id": "fls_l1h9g4ntf3c", "number": "B.281", "title": "i32", "link": "glossary.html#i32", "paragraphs": [{"id": "fls_yh8wzhhso4xc", "number": "B.281:1", "link": "glossary.html#fls_yh8wzhhso4xc", "checksum": "4530c9b71b1cb42c167ea51cf676481834cfe9d38a19e08dbf4a7b7127fd06a9"}], "informational": false}, {"id": "fls_tid10guzn9sq", "number": "B.282", "title": "i64", "link": "glossary.html#i64", "paragraphs": [{"id": "fls_4bpatxp8yelv", "number": "B.282:1", "link": "glossary.html#fls_4bpatxp8yelv", "checksum": "e03f0863b544f98fa018ab3a49a6c73e51eb94090ce03365e26b70897b68966b"}], "informational": false}, {"id": "fls_py2whbcrndmz", "number": "B.283", "title": "i128", "link": "glossary.html#i128", "paragraphs": [{"id": "fls_p75kpbtonb8z", "number": "B.283:1", "link": "glossary.html#fls_p75kpbtonb8z", "checksum": "09e703a738c07f027618ed4019b3f7d984f99988680a17ebe8393314b3e649a2"}], "informational": false}, {"id": "fls_kpsyz8yopova", "number": "B.284", "title": "identifier", "link": "glossary.html#fls-kpsyz8yopova", "paragraphs": [{"id": "fls_14zc5bcm9d8o", "number": "B.284:1", "link": "glossary.html#fls_14zc5bcm9d8o", "checksum": "4c58f5e630a135ce5d00aa99677ca1f3c1c1d1d507b70c61da586534cd4274ad"}, {"id": "fls_oddu2wzhczvq", "number": "B.284:2", "link": "glossary.html#fls_oddu2wzhczvq", "checksum": "d9bbd2bcbc1b29d6990db2751d2c8ec5554679823d90a104009527caab464c60"}], "informational": false}, {"id": "fls_1g9xxx8s498u", "number": "B.285", "title": "identifier pattern", "link": "glossary.html#fls-1g9xxx8s498u", "paragraphs": [{"id": "fls_f2va67gvpqe0", "number": "B.285:1", "link": "glossary.html#fls_f2va67gvpqe0", "checksum": "f9193acb1cc76526a453f0c55fd742d17ed18c557e69b46b6929f3b96d678e08"}, {"id": "fls_nxa1gvqgitgk", "number": "B.285:2", "link": "glossary.html#fls_nxa1gvqgitgk", "checksum": "7d8882b3c5873c79814d36415d2ca65a42e0a4a0fc909e1b36254f9f42b5972d"}], "informational": false}, {"id": "fls_al9gtcy5b5og", "number": "B.286", "title": "if expression", "link": "glossary.html#if-expression", "paragraphs": [{"id": "fls_rk0661mtdvsi", "number": "B.286:1", "link": "glossary.html#fls_rk0661mtdvsi", "checksum": "2ab916551e93157504f23ce892fb54b04f2190e8453446577de8eff8c82c4e4e"}, {"id": "fls_gdsufx2ns8bl", "number": "B.286:2", "link": "glossary.html#fls_gdsufx2ns8bl", "checksum": "3afcb60e8d6ff17aabfa4ede8a56759035e07896860b66e94c83834c9d1559a5"}], "informational": false}, {"id": "fls_j9wb2wtqp5u8", "number": "B.287", "title": "if let expression", "link": "glossary.html#if-let-expression", "paragraphs": [{"id": "fls_ky6ng7jy1g6z", "number": "B.287:1", "link": "glossary.html#fls_ky6ng7jy1g6z", "checksum": "f38d300b5190af9d2bf987bf58a9ff4acb9e1b5e7557b481dd1661734cc633ef"}, {"id": "fls_kczg3c6n3psu", "number": "B.287:2", "link": "glossary.html#fls_kczg3c6n3psu", "checksum": "3fe47784fcdb9463f3257d31bc2aaf57366cb2ee3ce006feb2bf74de65794d34"}], "informational": false}, {"id": "fls_xiocbknerufq", "number": "B.288", "title": "immutable", "link": "glossary.html#immutable", "paragraphs": [{"id": "fls_sttdfynyqr5h", "number": "B.288:1", "link": "glossary.html#fls_sttdfynyqr5h", "checksum": "632ab475d4dae7cb9da62ac903b67ec38a3878fc8424a8be5deba55d3113fc88"}], "informational": false}, {"id": "fls_utucrvtzjhoc", "number": "B.289", "title": "immutable borrow", "link": "glossary.html#immutable-borrow", "paragraphs": [{"id": "fls_p0abqkiuk7y9", "number": "B.289:1", "link": "glossary.html#fls_p0abqkiuk7y9", "checksum": "d4e4d9f65baa42240dca1ac122c722615e701eb37a7ba059f97285657653814b"}], "informational": false}, {"id": "fls_pqunxp6io1n9", "number": "B.290", "title": "immutable borrow expression", "link": "glossary.html#immutable-borrow-expression", "paragraphs": [{"id": "fls_dojod5pg4r7l", "number": "B.290:1", "link": "glossary.html#fls_dojod5pg4r7l", "checksum": "5b7663754e6177578a2251558913f6dd5775aade2fc7ee2f91917af36d70f77a"}], "informational": false}, {"id": "fls_txqzfm77s4uj", "number": "B.291", "title": "immutable place expression", "link": "glossary.html#immutable-place-expression", "paragraphs": [{"id": "fls_mxbezjzbxw5z", "number": "B.291:1", "link": "glossary.html#fls_mxbezjzbxw5z", "checksum": "eabb95836b2650657826aa7377696f57bcab2d1bb7ea1e7384ad9158e7acc72c"}], "informational": false}, {"id": "fls_o0924m8msfia", "number": "B.292", "title": "immutable place expression context", "link": "glossary.html#immutable-place-expression-context", "paragraphs": [{"id": "fls_uvrq49dsoqgc", "number": "B.292:1", "link": "glossary.html#fls_uvrq49dsoqgc", "checksum": "36f5a2a7cb7c8f028e1e1bf034b09a8e7613d5a3b8ea49e2ae61843eccabd85c"}], "informational": false}, {"id": "fls_rghqkp3lsxeb", "number": "B.293", "title": "immutable raw pointer type", "link": "glossary.html#immutable-raw-pointer-type", "paragraphs": [{"id": "fls_2gzyitdxvmhb", "number": "B.293:1", "link": "glossary.html#fls_2gzyitdxvmhb", "checksum": "83f5a2b672e53fe08eee031615c3f89ecffe89afc3416f601a18f36a90731367"}], "informational": false}, {"id": "fls_bhx0l676dmgc", "number": "B.294", "title": "immutable reference", "link": "glossary.html#immutable-reference", "paragraphs": [{"id": "fls_u9kne5zfmhoe", "number": "B.294:1", "link": "glossary.html#fls_u9kne5zfmhoe", "checksum": "b35e434e8ad237e41c3d28687aa83b4f6d4999def9625eeaaf8e2e3df29fb85f"}], "informational": false}, {"id": "fls_my7jjwi0ncen", "number": "B.295", "title": "immutable static", "link": "glossary.html#immutable-static", "paragraphs": [{"id": "fls_eonlhz79ur3d", "number": "B.295:1", "link": "glossary.html#fls_eonlhz79ur3d", "checksum": "e2831db7b856046453f4995db74b051de22440de1c403e26a9a5e55ba934509f"}], "informational": false}, {"id": "fls_8xrhfwgep3nk", "number": "B.296", "title": "immutable variable", "link": "glossary.html#immutable-variable", "paragraphs": [{"id": "fls_sdg35i92taip", "number": "B.296:1", "link": "glossary.html#fls_sdg35i92taip", "checksum": "6d9af47108fcc60a5eb729ad404869e136420f19457d688764b06a4d08452fe3"}], "informational": false}, {"id": "fls_l9xtxpsujx4v", "number": "B.297", "title": "impl header lifetime elision", "link": "glossary.html#impl-header-lifetime-elision", "paragraphs": [{"id": "fls_pvygu85uayfb", "number": "B.297:1", "link": "glossary.html#fls_pvygu85uayfb", "checksum": "55e650e07e084e428755cc808409cde0621c2f13b1b9b6244598fc530f98469c"}], "informational": false}, {"id": "fls_l20o3hutbfpf", "number": "B.298", "title": "impl trait type", "link": "glossary.html#impl-trait-type", "paragraphs": [{"id": "fls_rdctgmnfncnd", "number": "B.298:1", "link": "glossary.html#fls_rdctgmnfncnd", "checksum": "7931b6e7d5c377792ef15fb79300f3388497e3e8c7810dec637e9dc255e9f6f8"}, {"id": "fls_704soar15v8v", "number": "B.298:2", "link": "glossary.html#fls_704soar15v8v", "checksum": "b912477106fbf6e67237a7afc70180f22d6949cac793f7269d3dc588f85b1285"}], "informational": false}, {"id": "fls_bj1u4k3akecp", "number": "B.299", "title": "implementation", "link": "glossary.html#implementation", "paragraphs": [{"id": "fls_pjulppit1r6", "number": "B.299:1", "link": "glossary.html#fls_pjulppit1r6", "checksum": "d5f1edf241d4ca54d5fa53cf9364cd88c384d455d007bae17959ec840068fae1"}, {"id": "fls_z4ij5skptoay", "number": "B.299:2", "link": "glossary.html#fls_z4ij5skptoay", "checksum": "c1d843e7f042cb52d05487dda6a49f0bb9cfc10d105c6771cea3cea0f49de5f6"}], "informational": false}, {"id": "fls_vofxuhcxpt6x", "number": "B.300", "title": "implementation body", "link": "glossary.html#implementation-body", "paragraphs": [{"id": "fls_1is30nv9myed", "number": "B.300:1", "link": "glossary.html#fls_1is30nv9myed", "checksum": "9a08ba4e86a953843e31807c4334ae9623c0ead8f54547bdac357699f68d1a2e"}, {"id": "fls_u75ihi53pnnp", "number": "B.300:2", "link": "glossary.html#fls_u75ihi53pnnp", "checksum": "0a52cd080aff1f1cd7ad1ad9177f02cb8d5f36e5ce5fe32f10a3cad1404decbe"}], "informational": false}, {"id": "fls_41glrzvxcov6", "number": "B.301", "title": "implementation coherence", "link": "glossary.html#implementation-coherence", "paragraphs": [{"id": "fls_hamkcuyt9hhi", "number": "B.301:1", "link": "glossary.html#fls_hamkcuyt9hhi", "checksum": "3757ea14c31cf63634ec59e653227f073e6a40b7323cdbb54ab99dc50cd80af9"}], "informational": false}, {"id": "fls_sbktva8bzgdx", "number": "B.302", "title": "implementation conformance", "link": "glossary.html#implementation-conformance", "paragraphs": [{"id": "fls_gpq4ep1ssyjr", "number": "B.302:1", "link": "glossary.html#fls_gpq4ep1ssyjr", "checksum": "20b30d1432f65190aec266223923b9ae631f2d56697e54aa56ac8c31028db9bb"}], "informational": false}, {"id": "fls_c0xxvivt8t1u", "number": "B.303", "title": "implemented trait", "link": "glossary.html#implemented-trait", "paragraphs": [{"id": "fls_7twlizi3v8cb", "number": "B.303:1", "link": "glossary.html#fls_7twlizi3v8cb", "checksum": "d9c7bbef1fecbfbd31504b1d7eb64e36b781317609b727780da0741a28fa9f15"}, {"id": "fls_2brvfx5wmvkf", "number": "B.303:2", "link": "glossary.html#fls_2brvfx5wmvkf", "checksum": "97be6c945e9883eee71a01f48988cf883ab4a0d22323c09fc9de2729bd23da3e"}], "informational": false}, {"id": "fls_ow4b5iqas115", "number": "B.304", "title": "implementing type", "link": "glossary.html#implementing-type", "paragraphs": [{"id": "fls_vs5ia3uupdcc", "number": "B.304:1", "link": "glossary.html#fls_vs5ia3uupdcc", "checksum": "02cc0234706c31a86a47fd94cab93bb791de5b17cb2dc5f4f72e167e3b0fd64e"}, {"id": "fls_9ixcwh6to74g", "number": "B.304:2", "link": "glossary.html#fls_9ixcwh6to74g", "checksum": "08847fa94d18afef03731ce343412b1051e405301832ada5b32a88b300da53d3"}], "informational": false}, {"id": "fls_wa7t6cqgjksd", "number": "B.305", "title": "implicit borrow", "link": "glossary.html#implicit-borrow", "paragraphs": [{"id": "fls_q2v9ejpcvtwg", "number": "B.305:1", "link": "glossary.html#fls_q2v9ejpcvtwg", "checksum": "f4e275119979fb25fc84cffb4199c7ecfd723065b02a9f214b0aa7585b98d22d"}], "informational": false}, {"id": "fls_i3ib9xp8h8ci", "number": "B.306", "title": "implicitly declared entity", "link": "glossary.html#implicitly-declared-entity", "paragraphs": [{"id": "fls_vqs1jd4nx3qr", "number": "B.306:1", "link": "glossary.html#fls_vqs1jd4nx3qr", "checksum": "8fdfe2ea488f3cbab513d24b7375b9867186ec7ba9c4b388e408d73a0fc70393"}], "informational": false}, {"id": "fls_43ccrg952l5i", "number": "B.307", "title": "implied bound", "link": "glossary.html#implied-bound", "paragraphs": [{"id": "fls_t77d8xwg1l9q", "number": "B.307:1", "link": "glossary.html#fls_t77d8xwg1l9q", "checksum": "0ebcccfd65ef3792b7782b5d1741c3338ea87200f1154be26a083159e34bebe3"}], "informational": false}, {"id": "fls_3lo8ygoyxxyf", "number": "B.308", "title": "in scope", "link": "glossary.html#in-scope", "paragraphs": [{"id": "fls_sy380geqvf2l", "number": "B.308:1", "link": "glossary.html#fls_sy380geqvf2l", "checksum": "68c60a5e7a429d7604becc9f0194dc4c69e00ef8a7ca92adbb98b5b2bbb9fb40"}], "informational": false}, {"id": "fls_nscfxu6huw6q", "number": "B.309", "title": "inclusive range pattern", "link": "glossary.html#inclusive-range-pattern", "paragraphs": [{"id": "fls_olfeuvwkosse", "number": "B.309:1", "link": "glossary.html#fls_olfeuvwkosse", "checksum": "8af3169cc4ca92e09ac9483d1b2174dee02599bc6d4350661d0ae42af0ec1c53"}, {"id": "fls_9bdxsn6nasjr", "number": "B.309:2", "link": "glossary.html#fls_9bdxsn6nasjr", "checksum": "23af911d2265b6503e087d8ec2ee433a5f8c6c3705edd93f7f9580c3427f5085"}], "informational": false}, {"id": "fls_j44ow2k5va3s", "number": "B.310", "title": "incomplete associated constant", "link": "glossary.html#incomplete-associated-constant", "paragraphs": [{"id": "fls_bq48gl84bul0", "number": "B.310:1", "link": "glossary.html#fls_bq48gl84bul0", "checksum": "01d66d4377546f60e45dd0edb773d268b64c890cc89c32eee444e6cb86942908"}], "informational": false}, {"id": "fls_ga2n4nbm1pkk", "number": "B.311", "title": "incomplete associated function", "link": "glossary.html#incomplete-associated-function", "paragraphs": [{"id": "fls_iboondra204w", "number": "B.311:1", "link": "glossary.html#fls_iboondra204w", "checksum": "1a6751720b534a1fec3990c20d85a28ec41690a7b0f4b678aebd48f3e6e6a449"}], "informational": false}, {"id": "fls_n99acc2tr9qm", "number": "B.312", "title": "incomplete associated type", "link": "glossary.html#incomplete-associated-type", "paragraphs": [{"id": "fls_tka0gth8rc9x", "number": "B.312:1", "link": "glossary.html#fls_tka0gth8rc9x", "checksum": "fedd0b77215d7f09e6f862a46948e20669c8df60afc1b1688fc0181106f5a843"}], "informational": false}, {"id": "fls_6tysvlg2ifr3", "number": "B.313", "title": "index expression", "link": "glossary.html#index-expression", "paragraphs": [{"id": "fls_1f7e9q8n431n", "number": "B.313:1", "link": "glossary.html#fls_1f7e9q8n431n", "checksum": "8b88615a9cfe8af953cc245d7d590467c9d194422a45dfd1545057bf85e9d271"}, {"id": "fls_xm2er7vuo07g", "number": "B.313:2", "link": "glossary.html#fls_xm2er7vuo07g", "checksum": "7274664572e3a91e633dcefdc1ebc57bed11ebd1bafae912ee3397ad8c6fc67d"}], "informational": false}, {"id": "fls_s0pnjkpjpu0i", "number": "B.314", "title": "indexable type", "link": "glossary.html#indexable-type", "paragraphs": [{"id": "fls_advgykzfvvus", "number": "B.314:1", "link": "glossary.html#fls_advgykzfvvus", "checksum": "64fc80e9c847ca30f9ed4e90d495037aa47edc264ade011f4e87acfb61f3d2a1"}], "informational": false}, {"id": "fls_qs654p61ivpx", "number": "B.315", "title": "indexed deconstructor", "link": "glossary.html#indexed-deconstructor", "paragraphs": [{"id": "fls_q7eta38vw0ig", "number": "B.315:1", "link": "glossary.html#fls_q7eta38vw0ig", "checksum": "f721553a0969ab49b8c54cf4ef0879743c6e265719fa649537c957efde963c2b"}, {"id": "fls_gryv4audvann", "number": "B.315:2", "link": "glossary.html#fls_gryv4audvann", "checksum": "8ee82d90dc22dd71aa9e462acc2e3dea170eb333a773e9e1c5b4418cb11387c6"}], "informational": false}, {"id": "fls_bu46dg60o8us", "number": "B.316", "title": "indexed field selector", "link": "glossary.html#indexed-field-selector", "paragraphs": [{"id": "fls_u6mh5yediub", "number": "B.316:1", "link": "glossary.html#fls_u6mh5yediub", "checksum": "0d2ead638e9a356f80ccce02f5612506d193796af22e16f0b4678f91ea1ad7d5"}, {"id": "fls_wbbyf2szc8a7", "number": "B.316:2", "link": "glossary.html#fls_wbbyf2szc8a7", "checksum": "1ccb337148a46dd78d35fe6f6c7881b848efea711d24fb0001b9a2c7bd181e70"}], "informational": false}, {"id": "fls_rua2ni3p9qz2", "number": "B.317", "title": "indexed initializer", "link": "glossary.html#indexed-initializer", "paragraphs": [{"id": "fls_oonqolgqyrq1", "number": "B.317:1", "link": "glossary.html#fls_oonqolgqyrq1", "checksum": "079764e5ee5fc13fca08851efe8ac52f7f0adb182cd20854e59103c980a1d34e"}, {"id": "fls_werlw98l3ra0", "number": "B.317:2", "link": "glossary.html#fls_werlw98l3ra0", "checksum": "5d72b8433fcb7e95a3123f2c11226e6c4ec8a8cbf8f2262dd16b2b117b965a20"}], "informational": false}, {"id": "fls_irp9ive4e66r", "number": "B.318", "title": "indexed operand", "link": "glossary.html#indexed-operand", "paragraphs": [{"id": "fls_dvmm47wnl33e", "number": "B.318:1", "link": "glossary.html#fls_dvmm47wnl33e", "checksum": "ec6be8a5604774a3e5bed24541db2021edcb4c37c8adde52427628f14df9f59f"}, {"id": "fls_je8eh3a02riq", "number": "B.318:2", "link": "glossary.html#fls_je8eh3a02riq", "checksum": "3ecd68423df5567eff9272941c95598c21836dcf8039b520091f17f513497500"}], "informational": false}, {"id": "fls_a350zwl1or4g", "number": "B.319", "title": "indexing operand", "link": "glossary.html#indexing-operand", "paragraphs": [{"id": "fls_ipw4tfrserbu", "number": "B.319:1", "link": "glossary.html#fls_ipw4tfrserbu", "checksum": "948d0eadfd2265ab8a0fc5d4168997cc11faadb15b2c80b4a15e976df49e6edc"}, {"id": "fls_t2j8vzlrlvb0", "number": "B.319:2", "link": "glossary.html#fls_t2j8vzlrlvb0", "checksum": "a4633defee2e82a6b30d88c4e5b662b393be8803ac0ab49c9910e963897753cc"}], "informational": false}, {"id": "fls_k9kuxgte6vxn", "number": "B.320", "title": "indirection type", "link": "glossary.html#indirection-type", "paragraphs": [{"id": "fls_8so1phpdjyk8", "number": "B.320:1", "link": "glossary.html#fls_8so1phpdjyk8", "checksum": "691ad8ae1fae0c19179e0395225b721b3d0fae6f4ccaa8367cf8e0a5c7088702"}], "informational": false}, {"id": "fls_gccnknktzp7g", "number": "B.321", "title": "inert attribute", "link": "glossary.html#inert-attribute", "paragraphs": [{"id": "fls_o4e3tyjz7l1h", "number": "B.321:1", "link": "glossary.html#fls_o4e3tyjz7l1h", "checksum": "d397cdc0022307b5f8af5c6b786f066040a4960ca38e396552063c8b054ee2b1"}], "informational": false}, {"id": "fls_z5593p7wfab", "number": "B.322", "title": "inferred type", "link": "glossary.html#inferred-type", "paragraphs": [{"id": "fls_9xgfexeqr4ed", "number": "B.322:1", "link": "glossary.html#fls_9xgfexeqr4ed", "checksum": "3f6324a794a4f11f447669e49a7d2de50985ca75c7f41a95752e2a401716f9fd"}, {"id": "fls_z2p8378sd93z", "number": "B.322:2", "link": "glossary.html#fls_z2p8378sd93z", "checksum": "40e2a603cc68714be173cd13bde5504baff7806a1690106ed1792b9d52ac887e"}], "informational": false}, {"id": "fls_kg9aeyrw822m", "number": "B.323", "title": "infinite loop", "link": "glossary.html#infinite-loop", "paragraphs": [{"id": "fls_xpm53i3rkuu0", "number": "B.323:1", "link": "glossary.html#fls_xpm53i3rkuu0", "checksum": "f026c959276b062252cc809d9f02fe64736c47c245a6ca2cc4a22368a29be2e4"}], "informational": false}, {"id": "fls_o2eei5aqgds6", "number": "B.324", "title": "infinite loop expression", "link": "glossary.html#infinite-loop-expression", "paragraphs": [{"id": "fls_mvplpa4t1f2p", "number": "B.324:1", "link": "glossary.html#fls_mvplpa4t1f2p", "checksum": "9a1bfa79261122c06a3531b037978037761270857d040ecbe33014e2eeada22a"}, {"id": "fls_2gipk6b62hme", "number": "B.324:2", "link": "glossary.html#fls_2gipk6b62hme", "checksum": "24d3acae7cdad8f22cace7c4cae98ee055f95867917e0436b007566b2b743485"}], "informational": false}, {"id": "fls_o57p4yhjci61", "number": "B.325", "title": "inherent implementation", "link": "glossary.html#inherent-implementation", "paragraphs": [{"id": "fls_6fpicw8ss4h3", "number": "B.325:1", "link": "glossary.html#fls_6fpicw8ss4h3", "checksum": "8c4b2ca5e676610d88ff41d9ff91683d41c450d8939a0c6a952de2734dee2146"}, {"id": "fls_s8zjk7hms1o0", "number": "B.325:2", "link": "glossary.html#fls_s8zjk7hms1o0", "checksum": "e370142d7a0213e6db347cfda0d76f66147054769f71d2b5d115f94fa99bfab9"}], "informational": false}, {"id": "fls_c1wbumq0bumj", "number": "B.326", "title": "initialization", "link": "glossary.html#initialization", "paragraphs": [{"id": "fls_xi07ycze6mo0", "number": "B.326:1", "link": "glossary.html#fls_xi07ycze6mo0", "checksum": "fb553b00ed34887732fdc72ecfb14c39139ae67958595f1393839d8daf1142d6"}], "informational": false}, {"id": "fls_ctusgvpqvjue", "number": "B.327", "title": "initialization expression", "link": "glossary.html#initialization-expression", "paragraphs": [{"id": "fls_kueisbypuc4w", "number": "B.327:1", "link": "glossary.html#fls_kueisbypuc4w", "checksum": "57e2be16df1734ac4e82269f1a4437273c5522e3ee460afde5f802dd6ee39934"}], "informational": false}, {"id": "fls_pd30dl2envjn", "number": "B.328", "title": "initialization type", "link": "glossary.html#initialization-type", "paragraphs": [{"id": "fls_crn87nne7k38", "number": "B.328:1", "link": "glossary.html#fls_crn87nne7k38", "checksum": "e3de743c6b6b482fd227d8e4bc1e7589a12791d372a9d9f47374de87b53448b4"}, {"id": "fls_3r85y1lh1oxo", "number": "B.328:2", "link": "glossary.html#fls_3r85y1lh1oxo", "checksum": "a0f44dca15fd194631be91e489c1a7956fd0397f36291b78ce3373f8a2ab8527"}], "informational": false}, {"id": "fls_lbl2b9wyg6es", "number": "B.329", "title": "inline assembly", "link": "glossary.html#inline-assembly", "paragraphs": [{"id": "fls_1mtalea7yfsv", "number": "B.329:1", "link": "glossary.html#fls_1mtalea7yfsv", "checksum": "f6ba1aca347400dc96ea940e9248923b4a0b6b1bd8847916a0bbccb260c33406"}], "informational": false}, {"id": "fls_c54lmkluwbwr", "number": "B.330", "title": "inline module", "link": "glossary.html#inline-module", "paragraphs": [{"id": "fls_tbldwtisl9vc", "number": "B.330:1", "link": "glossary.html#fls_tbldwtisl9vc", "checksum": "02a40fdeafaf06436a304f06c05896ccb1c222494fe4423936366485fb3a66ee"}, {"id": "fls_8bmjz8o3xu60", "number": "B.330:2", "link": "glossary.html#fls_8bmjz8o3xu60", "checksum": "ab1f658915a6e66265b29dce4282e6745c700582380c9ebd6d1f50db44318cd7"}], "informational": false}, {"id": "fls_joxepyv84ajz", "number": "B.331", "title": "inner attribute", "link": "glossary.html#inner-attribute", "paragraphs": [{"id": "fls_l7kxkav42l5d", "number": "B.331:1", "link": "glossary.html#fls_l7kxkav42l5d", "checksum": "5a0e6886ed700d81e68bab59cf16ef8c53c8610eb1a7bda62606dece3e37da01"}, {"id": "fls_umkk8xwktat1", "number": "B.331:2", "link": "glossary.html#fls_umkk8xwktat1", "checksum": "98c982e326cde818653fa94a3865ef6a4380c84f982eecfb02380b93598a06d1"}], "informational": false}, {"id": "fls_chbp2je32okc", "number": "B.332", "title": "inner block doc", "link": "glossary.html#inner-block-doc", "paragraphs": [{"id": "fls_f4nqkybpwj1a", "number": "B.332:1", "link": "glossary.html#fls_f4nqkybpwj1a", "checksum": "18bef21654c0cb649fe8aa324c1e158dc17cc564c6d81a20ccdc7dc43a4afb43"}, {"id": "fls_lmpaznk198ga", "number": "B.332:2", "link": "glossary.html#fls_lmpaznk198ga", "checksum": "5a4d1cc0dcf4a7645526a45140c4afa6ba5569197eddf4425b0ef110f5dbc23e"}], "informational": false}, {"id": "fls_vr1ucgtbkjlh", "number": "B.333", "title": "inner doc comment", "link": "glossary.html#inner-doc-comment", "paragraphs": [{"id": "fls_6kunkwzf9qaf", "number": "B.333:1", "link": "glossary.html#fls_6kunkwzf9qaf", "checksum": "fc6565e0e22958cb1bdf76ff7c572c22d46b4960c739a1edaf91133b9d8479b6"}], "informational": false}, {"id": "fls_xgm53126q9c4", "number": "B.334", "title": "inner line doc", "link": "glossary.html#inner-line-doc", "paragraphs": [{"id": "fls_vtwavwjhgvlz", "number": "B.334:1", "link": "glossary.html#fls_vtwavwjhgvlz", "checksum": "e1d14c5e65629bcf7ef2f72b49a0f71f0a28f9804addaa1db7e58f9816ee5621"}, {"id": "fls_8cnikewkqs7", "number": "B.334:2", "link": "glossary.html#fls_8cnikewkqs7", "checksum": "bf5601e1d0036501ec5e2707130e2e010ba1d175dadcf0a04c8dd149b92f55a4"}], "informational": false}, {"id": "fls_dtb5xegdqm9s", "number": "B.335", "title": "input register", "link": "glossary.html#input-register", "paragraphs": [{"id": "fls_dtvdqafpnccj", "number": "B.335:1", "link": "glossary.html#fls_dtvdqafpnccj", "checksum": "f85f54e6db19ccdf5e3b58ee3014017a2a0965d59f572139c56081b253ad2cb2"}], "informational": false}, {"id": "fls_tmju2kxeryhj", "number": "B.336", "title": "input register expression", "link": "glossary.html#input-register-expression", "paragraphs": [{"id": "fls_rvbuhsgg2rht", "number": "B.336:1", "link": "glossary.html#fls_rvbuhsgg2rht", "checksum": "d59996c21a6b1b5112ce017fdfc9d5690f3204d3f0874354f72c68c7df9e9a2b"}, {"id": "fls_nqjrr9khzpl2", "number": "B.336:2", "link": "glossary.html#fls_nqjrr9khzpl2", "checksum": "a8db40815773a479e6556f2bbb9a39e51c652c8886e643566ef6beb86126e8d5"}], "informational": false}, {"id": "fls_y9eoksthpckb", "number": "B.337", "title": "input-output register expression", "link": "glossary.html#input-output-register-expression", "paragraphs": [{"id": "fls_llqw3efl7x5z", "number": "B.337:1", "link": "glossary.html#fls_llqw3efl7x5z", "checksum": "856b3da012d02d6f197c4129e8a4ef5c2a01d3b8ac09dbd0f255e7d53e741067"}, {"id": "fls_fnmgxi2npguh", "number": "B.337:2", "link": "glossary.html#fls_fnmgxi2npguh", "checksum": "5b0470c39bbb1d229151bfc57b017d6fab42323e2c8e3e1fafc1a887b96cdecb"}], "informational": false}, {"id": "fls_e2kizieowvuh", "number": "B.338", "title": "integer literal", "link": "glossary.html#integer-literal", "paragraphs": [{"id": "fls_23a1fjpf15qv", "number": "B.338:1", "link": "glossary.html#fls_23a1fjpf15qv", "checksum": "06f6377b85369183c52c54750e36d420a7e7b6d66a50085f8596afe79ef2e505"}, {"id": "fls_6qpj0nr0jpjr", "number": "B.338:2", "link": "glossary.html#fls_6qpj0nr0jpjr", "checksum": "26e6707c52d7829c4896f6018110bf1a074068eb294d89e589af5883651bb469"}], "informational": false}, {"id": "fls_bhvh8qwqy8ve", "number": "B.339", "title": "integer suffix", "link": "glossary.html#integer-suffix", "paragraphs": [{"id": "fls_qazh8f8rs528", "number": "B.339:1", "link": "glossary.html#fls_qazh8f8rs528", "checksum": "355d9a90f0ae62d9dc30cafd8fccdc0d2dfe9b7168f2ff7a949d9db4d6ad2f8e"}, {"id": "fls_jqagv350kw2m", "number": "B.339:2", "link": "glossary.html#fls_jqagv350kw2m", "checksum": "ed2eed878c2f0d8ca8c2a36f113bcd633eccfb516323e09d63a0ad3dc8d42dc8"}], "informational": false}, {"id": "fls_nu1cnk2b9qx5", "number": "B.340", "title": "integer type", "link": "glossary.html#integer-type", "paragraphs": [{"id": "fls_nhfqdhf26ym3", "number": "B.340:1", "link": "glossary.html#fls_nhfqdhf26ym3", "checksum": "02960af14adfa00c65955c297ca46d3e8b5c430c3db90359c94b38f96a484b01"}], "informational": false}, {"id": "fls_ctuvilpb30gq", "number": "B.341", "title": "integer type variable", "link": "glossary.html#integer-type-variable", "paragraphs": [{"id": "fls_e3ed1tyrjsy4", "number": "B.341:1", "link": "glossary.html#fls_e3ed1tyrjsy4", "checksum": "c07c5b6ea7f4c478ac920fd8645380be8ebe3a05ec99356760ef2831a6b35da2"}], "informational": false}, {"id": "fls_mb3xnplwdw9l", "number": "B.342", "title": "interior mutability", "link": "glossary.html#interior-mutability", "paragraphs": [{"id": "fls_e0173dd09znl", "number": "B.342:1", "link": "glossary.html#fls_e0173dd09znl", "checksum": "9b3502a55d38c64bd15befa7c21e4b030a57aa82e5f7d8f7ffccf3523a9e9ac6"}], "informational": false}, {"id": "fls_7rj914fhginh", "number": "B.343", "title": "intermediate match arm", "link": "glossary.html#intermediate-match-arm", "paragraphs": [{"id": "fls_l6pemxmdllvl", "number": "B.343:1", "link": "glossary.html#fls_l6pemxmdllvl", "checksum": "46bc911201fcc38ab17b1ac1acc7d45f9f8095238eab0101ab21879cd051267a"}, {"id": "fls_8713j5lrwqvs", "number": "B.343:2", "link": "glossary.html#fls_8713j5lrwqvs", "checksum": "7f96489573f69749e33f3439092f5c3c1ebcb5ed805dbe30860a9670ed864169"}], "informational": false}, {"id": "fls_fgmvmcw2kw5i", "number": "B.344", "title": "irrefutable constant", "link": "glossary.html#irrefutable-constant", "paragraphs": [{"id": "fls_hd02jah50qzl", "number": "B.344:1", "link": "glossary.html#fls_hd02jah50qzl", "checksum": "ff25ed4012fe194d101310bc844b57da5da5f321c52d2ba65482a0fc3bfee96a"}], "informational": false}, {"id": "fls_ckz7pujdnuo5", "number": "B.345", "title": "irrefutable pattern", "link": "glossary.html#irrefutable-pattern", "paragraphs": [{"id": "fls_y421hdrbs6ak", "number": "B.345:1", "link": "glossary.html#fls_y421hdrbs6ak", "checksum": "546dda31e751de38cd390fc3678fb03b520c5de5018eeb4cf2567e0bc0a8d932"}], "informational": false}, {"id": "fls_vt44bvhm4duk", "number": "B.346", "title": "isize", "link": "glossary.html#isize", "paragraphs": [{"id": "fls_6x617i9zcj7o", "number": "B.346:1", "link": "glossary.html#fls_6x617i9zcj7o", "checksum": "a4d4f9bdc27ab79b96aeb1b9da7cc17c427b3a86cea9797d7376d24370ea366d"}], "informational": false}, {"id": "fls_yh2a7e3d3894", "number": "B.347", "title": "item", "link": "glossary.html#item", "paragraphs": [{"id": "fls_2ghaujiqkhyy", "number": "B.347:1", "link": "glossary.html#fls_2ghaujiqkhyy", "checksum": "fa64d24140b6632032564a30372f4a1aed8d58d19731e3e20079781802db7dba"}, {"id": "fls_xd997kd2i73a", "number": "B.347:2", "link": "glossary.html#fls_xd997kd2i73a", "checksum": "5b1511eb218f59a70c5747e52f7843ee82c8b03c375bfe19f4b7b46f2dd7a6c9"}], "informational": false}, {"id": "fls_wojjzz4gygfl", "number": "B.348", "title": "item scope", "link": "glossary.html#item-scope", "paragraphs": [{"id": "fls_mw7iwwgsjrl2", "number": "B.348:1", "link": "glossary.html#fls_mw7iwwgsjrl2", "checksum": "715e8f904eedb87640dd89fe38e8447a7bca9b865b141b11baa1c5dfcd4f7665"}], "informational": false}, {"id": "fls_yaurxo4ogfsh", "number": "B.349", "title": "item statement", "link": "glossary.html#item-statement", "paragraphs": [{"id": "fls_r0crucpuhtj", "number": "B.349:1", "link": "glossary.html#fls_r0crucpuhtj", "checksum": "3523a7af0986053d255330594a2f29a78f9497870cecaab9a8cea16496d96e8c"}], "informational": false}, {"id": "fls_orde7iunolyx", "number": "B.350", "title": "iteration expression", "link": "glossary.html#iteration-expression", "paragraphs": [{"id": "fls_suz163n1x1xm", "number": "B.350:1", "link": "glossary.html#fls_suz163n1x1xm", "checksum": "a6b541ed2c07361b541739304039f4561021674dfff1539f058e1c63ee80e605"}, {"id": "fls_jw5lj2hgjl8v", "number": "B.350:2", "link": "glossary.html#fls_jw5lj2hgjl8v", "checksum": "d9dfff39ef919f95a19df53a63051db51a261c97c8885a84257bc4c274dad29a"}], "informational": false}, {"id": "fls_yjs58mp5fkxz", "number": "B.351", "title": "keyword", "link": "glossary.html#keyword", "paragraphs": [{"id": "fls_z3825koc9c1w", "number": "B.351:1", "link": "glossary.html#fls_z3825koc9c1w", "checksum": "661a3a1aab0b939067be99081b05c9e14a6f5a6aca9781f866eedfa9a7ac2caf"}, {"id": "fls_yvnf2mu4pr75", "number": "B.351:2", "link": "glossary.html#fls_yvnf2mu4pr75", "checksum": "caa6852a6a96eca35ac0ba609c6e927cae9b32b966db8b17f3674ffa905b4326"}], "informational": false}, {"id": "fls_uvuohmntprts", "number": "B.352", "title": "label", "link": "glossary.html#label", "paragraphs": [{"id": "fls_iaaf2rlmgmgq", "number": "B.352:1", "link": "glossary.html#fls_iaaf2rlmgmgq", "checksum": "019608866bf67a708c1b7f5534aa4306a1e58faaffa52dab52eb45c37629e7af"}, {"id": "fls_hicurdhiilx2", "number": "B.352:2", "link": "glossary.html#fls_hicurdhiilx2", "checksum": "f770112f3ec70dcd1ee759363098630db81ec34b4a7a80ed9a53f8dab692650e"}], "informational": false}, {"id": "fls_dw5s7jhk4v8s", "number": "B.353", "title": "label indication", "link": "glossary.html#label-indication", "paragraphs": [{"id": "fls_sso322p7adt0", "number": "B.353:1", "link": "glossary.html#fls_sso322p7adt0", "checksum": "e6de39fb2b449bfe1a09d03e37c1bbed4ef0e69c85cf7ee3ef6ecda8510719df"}, {"id": "fls_g6iqfqooz8th", "number": "B.353:2", "link": "glossary.html#fls_g6iqfqooz8th", "checksum": "db312552b93777e4a304972a041cebeca360aed8de3683bb1067a7019e2096e3"}], "informational": false}, {"id": "fls_p0on44eab3cn", "number": "B.354", "title": "label scope", "link": "glossary.html#label-scope", "paragraphs": [{"id": "fls_2h6hkq102hvs", "number": "B.354:1", "link": "glossary.html#fls_2h6hkq102hvs", "checksum": "67151c0ec33049c52da54517530f8584020b07cfc1feba88c00960d8ba135d72"}], "informational": false}, {"id": "fls_w5gslebevlya", "number": "B.355", "title": "layout", "link": "glossary.html#layout", "paragraphs": [{"id": "fls_qk602dmhc0d6", "number": "B.355:1", "link": "glossary.html#fls_qk602dmhc0d6", "checksum": "5c8bda1ec817bd7962602b024a091606f310ea921652978fb6463257f1ec215b"}], "informational": false}, {"id": "fls_bputdgkeezfs", "number": "B.356", "title": "lazy and expression", "link": "glossary.html#lazy-and-expression", "paragraphs": [{"id": "fls_v2e6t73uk6nt", "number": "B.356:1", "link": "glossary.html#fls_v2e6t73uk6nt", "checksum": "06d233ac60cd2a61ef4652837408ac6975b56a5c347fa619efdd1c6f2c351e1d"}, {"id": "fls_rkthjuvems6v", "number": "B.356:2", "link": "glossary.html#fls_rkthjuvems6v", "checksum": "e77b87d03aeac8d98784ce59d65a0a9efe3ca87f6c01151769ff37212bec70d2"}], "informational": false}, {"id": "fls_4a6yhxj783a1", "number": "B.357", "title": "lazy boolean expression", "link": "glossary.html#lazy-boolean-expression", "paragraphs": [{"id": "fls_jpv7l86sdh6i", "number": "B.357:1", "link": "glossary.html#fls_jpv7l86sdh6i", "checksum": "c90b93dadcdc543f0e5bcc502fea69ba1c2e22d31eb4c54e787f4f59125de84a"}, {"id": "fls_9tu5x810ztbg", "number": "B.357:2", "link": "glossary.html#fls_9tu5x810ztbg", "checksum": "e54fc08d2ba7bd50aedf5a6fd7a981f23106eacfa31f81ba5c520727048ff11e"}], "informational": false}, {"id": "fls_9mvrfhsegwp0", "number": "B.358", "title": "lazy or expression", "link": "glossary.html#lazy-or-expression", "paragraphs": [{"id": "fls_aln8bbvx9kzm", "number": "B.358:1", "link": "glossary.html#fls_aln8bbvx9kzm", "checksum": "0f0af9b9915945fbf0c8d154898955a66e8495506efd393738576ff255050fac"}, {"id": "fls_jiv7e3mr86kf", "number": "B.358:2", "link": "glossary.html#fls_jiv7e3mr86kf", "checksum": "f85e971f7ba4065c7534869bfcc94181241b33d9984d4fe15d14eb9f0fc65983"}], "informational": false}, {"id": "fls_x6vo9pysmex2", "number": "B.359", "title": "left operand", "link": "glossary.html#left-operand", "paragraphs": [{"id": "fls_m821x5195ac9", "number": "B.359:1", "link": "glossary.html#fls_m821x5195ac9", "checksum": "bac25c01b0dd837815451adedfe2b461365b8da57aefc2b2fd46ca9dac538b6f"}, {"id": "fls_ghlbsklg7wdb", "number": "B.359:2", "link": "glossary.html#fls_ghlbsklg7wdb", "checksum": "f213e8acccbc6654f72faf9e0d5345e619d1a19024862446dd435a4dcfb4074c"}], "informational": false}, {"id": "fls_ulmspewtlo57", "number": "B.360", "title": "less-than expression", "link": "glossary.html#less-than-expression", "paragraphs": [{"id": "fls_9ttxqxt9ui4t", "number": "B.360:1", "link": "glossary.html#fls_9ttxqxt9ui4t", "checksum": "4d6c770b0c36e643e9ecb0b17237e92a52923f197c20208f55ab98eceb576374"}, {"id": "fls_rhnbdyo2l4kp", "number": "B.360:2", "link": "glossary.html#fls_rhnbdyo2l4kp", "checksum": "6d7a076a55bdd8ac68be5a920eda7194f10c734494255b821299801972ca83c5"}], "informational": false}, {"id": "fls_es169x7ars9a", "number": "B.361", "title": "less-than-or-equals expression", "link": "glossary.html#less-than-or-equals-expression", "paragraphs": [{"id": "fls_8pya58ug180j", "number": "B.361:1", "link": "glossary.html#fls_8pya58ug180j", "checksum": "ab5beac07bb3a50414d761fca7c1f5c0dae433fc29c6a25fd9a45ef861260ed4"}, {"id": "fls_ft5aeo4ilgwc", "number": "B.361:2", "link": "glossary.html#fls_ft5aeo4ilgwc", "checksum": "d318b9c1603d58f8469630e1d0a878dccb71936893da31be9add5a23a0379a75"}], "informational": false}, {"id": "fls_hqj80jhcxebb", "number": "B.362", "title": "let initializer", "link": "glossary.html#let-initializer", "paragraphs": [{"id": "fls_jttpbz4ujzrc", "number": "B.362:1", "link": "glossary.html#fls_jttpbz4ujzrc", "checksum": "e417daaddf4c19c96fc2a39d850fd7a39594835ddc58d68394b8b295eb539e2c"}, {"id": "fls_gmhsjb6ficfa", "number": "B.362:2", "link": "glossary.html#fls_gmhsjb6ficfa", "checksum": "192a33fcac9c29f492628ac860f294d9e39ee0d13ee5f121858d6917f21efe0b"}], "informational": false}, {"id": "fls_39k0ebr7snb0", "number": "B.363", "title": "let statement", "link": "glossary.html#let-statement", "paragraphs": [{"id": "fls_yh7hn6jjv3ur", "number": "B.363:1", "link": "glossary.html#fls_yh7hn6jjv3ur", "checksum": "cbf8771833c7d4ac31cd6b52abd03897bd1cfb5bb71267e299ff41016afc5c15"}, {"id": "fls_tsem3c6zqmh4", "number": "B.363:2", "link": "glossary.html#fls_tsem3c6zqmh4", "checksum": "e5473d76bf043db4a3c082459c11d02c33396cca659d40de3861141ee364c4ca"}], "informational": false}, {"id": "fls_h2tqtmm5686y", "number": "B.364", "title": "lexical element", "link": "glossary.html#lexical-element", "paragraphs": [{"id": "fls_nrxnbkatn63n", "number": "B.364:1", "link": "glossary.html#fls_nrxnbkatn63n", "checksum": "868c091be2035cba8a80f341c67594edd9266efa2a777912957d9946995b41c1"}], "informational": false}, {"id": "fls_r1sk7vdgckym", "number": "B.365", "title": "library crate", "link": "glossary.html#library-crate", "paragraphs": [{"id": "fls_3m8lg4mdc2x0", "number": "B.365:1", "link": "glossary.html#fls_3m8lg4mdc2x0", "checksum": "7b8dd38c13fed841322ac8395586d2782e583dcb670d90c32245eb319572e31c"}], "informational": false}, {"id": "fls_vdhaa61g6kah", "number": "B.366", "title": "lifetime", "link": "glossary.html#lifetime", "paragraphs": [{"id": "fls_il3n0w4m084b", "number": "B.366:1", "link": "glossary.html#fls_il3n0w4m084b", "checksum": "3127db7af4f12d674c85c2c41c5b51deda11fcd1ce19ad8151c6214dc2dc4ca7"}, {"id": "fls_2nywjifee7q", "number": "B.366:2", "link": "glossary.html#fls_2nywjifee7q", "checksum": "26c9ac123efac24b082c008cabf69b8974b6b121c8cd980dd0d0c3a66ab3f9ae"}], "informational": false}, {"id": "fls_d0s6bk7ljqrb", "number": "B.367", "title": "lifetime argument", "link": "glossary.html#lifetime-argument", "paragraphs": [{"id": "fls_oaf87yjb3xjs", "number": "B.367:1", "link": "glossary.html#fls_oaf87yjb3xjs", "checksum": "dc89c8ee67f0133c573918672984a30b6e419f17cd870468facf698d942e70db"}, {"id": "fls_la8lbv14zj28", "number": "B.367:2", "link": "glossary.html#fls_la8lbv14zj28", "checksum": "959bed1499d289316aed1f8a85bd48c2afde17e6ae4bb94b6e01565665da848e"}], "informational": false}, {"id": "fls_ca9pu348r9jm", "number": "B.368", "title": "lifetime bound", "link": "glossary.html#lifetime-bound", "paragraphs": [{"id": "fls_u6xfs8fg558", "number": "B.368:1", "link": "glossary.html#fls_u6xfs8fg558", "checksum": "68ab2e5937cbcba9b21d39854f8c47f6fb5dec954ac362f6c993c017d249b3f8"}, {"id": "fls_ivcjmp54hdej", "number": "B.368:2", "link": "glossary.html#fls_ivcjmp54hdej", "checksum": "210efcb9b24d5e7117daadc1130049362f60b5b646acf22a3cdea1875f306aa5"}], "informational": false}, {"id": "fls_fv8sp0rorybn", "number": "B.369", "title": "lifetime bound predicate", "link": "glossary.html#lifetime-bound-predicate", "paragraphs": [{"id": "fls_ahftlkgsp9xk", "number": "B.369:1", "link": "glossary.html#fls_ahftlkgsp9xk", "checksum": "f99b5d3570dbb6f971515c5641120a0840b36dd45bbb0c22a3be26a540f75f00"}, {"id": "fls_8wiod9rm5ixa", "number": "B.369:2", "link": "glossary.html#fls_8wiod9rm5ixa", "checksum": "4a40b3381058195f93b4f1ca0fb8daa0b8749e5eed1a30c6b189582680d4668a"}], "informational": false}, {"id": "fls_al39r9uz2zmy", "number": "B.370", "title": "lifetime elision", "link": "glossary.html#lifetime-elision", "paragraphs": [{"id": "fls_dq5wkd61ry3l", "number": "B.370:1", "link": "glossary.html#fls_dq5wkd61ry3l", "checksum": "e14defd67bb35b75a7b00fa0ae001993fc6127bd3edd8a03453e80a7f3bf13ed"}], "informational": false}, {"id": "fls_md7ii59zobrc", "number": "B.371", "title": "lifetime parameter", "link": "glossary.html#lifetime-parameter", "paragraphs": [{"id": "fls_7g0iu68nrsd4", "number": "B.371:1", "link": "glossary.html#fls_7g0iu68nrsd4", "checksum": "954683482b9c2666b532b8b7ac23dc703bf907709fd1741b2de7946821edeb6c"}, {"id": "fls_z1wl2uiwip98", "number": "B.371:2", "link": "glossary.html#fls_z1wl2uiwip98", "checksum": "5779a509e38b69bc02358e67fce4873ae576903da68e0e756ea5f97b84e9c911"}], "informational": false}, {"id": "fls_jodjnhu1l9lp", "number": "B.372", "title": "lifetime variable", "link": "glossary.html#lifetime-variable", "paragraphs": [{"id": "fls_uczncbwxxl6n", "number": "B.372:1", "link": "glossary.html#fls_uczncbwxxl6n", "checksum": "68872db762949905628da3b62b41765588b20a8c247469ee48f5f27237212d70"}], "informational": false}, {"id": "fls_8qputmx0i7ku", "number": "B.373", "title": "line", "link": "glossary.html#line", "paragraphs": [{"id": "fls_oqf2439j3y7b", "number": "B.373:1", "link": "glossary.html#fls_oqf2439j3y7b", "checksum": "a7cb91ca6f93aae65ca2a5a647bf9f2755ba0df9ae7f08dbbce5f76eeb8d0547"}], "informational": false}, {"id": "fls_k5ycqijslkxh", "number": "B.374", "title": "line comment", "link": "glossary.html#line-comment", "paragraphs": [{"id": "fls_3e7asah7lkqj", "number": "B.374:1", "link": "glossary.html#fls_3e7asah7lkqj", "checksum": "1123a36eb80d975b9c0775e5710212312cca6d498b93b328d3436a7d9110d492"}, {"id": "fls_8j5j777dv2jm", "number": "B.374:2", "link": "glossary.html#fls_8j5j777dv2jm", "checksum": "a5ce68982e4a3d495aecd3817b7f46a66291aa818310d47d1ac783520cd344ae"}], "informational": false}, {"id": "fls_z850pyf9r1f4", "number": "B.375", "title": "literal", "link": "glossary.html#literal", "paragraphs": [{"id": "fls_ckbyt11pku9j", "number": "B.375:1", "link": "glossary.html#fls_ckbyt11pku9j", "checksum": "0b6dfe8f489ebdb653cfe256043e5b5b482befc3318c71146203216de7f19367"}, {"id": "fls_h1g46cevrqjv", "number": "B.375:2", "link": "glossary.html#fls_h1g46cevrqjv", "checksum": "c2d74ab5d24f8ff5da83452353a59d9ca7fd4127de427951e03f61b525e2ec8f"}], "informational": false}, {"id": "fls_b57clq8jhw5w", "number": "B.376", "title": "literal expression", "link": "glossary.html#literal-expression", "paragraphs": [{"id": "fls_otaauusc24v5", "number": "B.376:1", "link": "glossary.html#fls_otaauusc24v5", "checksum": "704a24c6ebae8708a1dd061e2ea7740d73f09386f706369679faf81564964823"}, {"id": "fls_7po7zobtlhzn", "number": "B.376:2", "link": "glossary.html#fls_7po7zobtlhzn", "checksum": "9ede60e7543ec5334e989d56750dd9d72d5b3e3143b2b6950cf53e41b815a65a"}], "informational": false}, {"id": "fls_bo2tv8ky1jc", "number": "B.377", "title": "literal pattern", "link": "glossary.html#literal-pattern", "paragraphs": [{"id": "fls_5s9b4bza13xf", "number": "B.377:1", "link": "glossary.html#fls_5s9b4bza13xf", "checksum": "292bed78eccb53cf72d7c5e667ddc39d2063ad35e39b46d0b606294587f7638e"}, {"id": "fls_o7q7wfjulc24", "number": "B.377:2", "link": "glossary.html#fls_o7q7wfjulc24", "checksum": "6f0d5a009b0ec0da4d2f1f9b383b8ee3fbbcf2cf3953f9964f12c4acbe1fd9ab"}], "informational": false}, {"id": "fls_bypbl5zftibf", "number": "B.378", "title": "local trait", "link": "glossary.html#local-trait", "paragraphs": [{"id": "fls_i9jakzelmiby", "number": "B.378:1", "link": "glossary.html#fls_i9jakzelmiby", "checksum": "0a8df9a91ccb65805274d985e266df502f59ec953f0c3fb80738e6c0f165d951"}], "informational": false}, {"id": "fls_cexguiguuks4", "number": "B.379", "title": "local type", "link": "glossary.html#local-type", "paragraphs": [{"id": "fls_hvgpb3csn4ah", "number": "B.379:1", "link": "glossary.html#fls_hvgpb3csn4ah", "checksum": "a67cc1616a4c334e62d84935d765c7ad69a1ca07badb8fc2d9a2ba796f96918f"}], "informational": false}, {"id": "fls_lkxiws55xhpq", "number": "B.380", "title": "local variable", "link": "glossary.html#local-variable", "paragraphs": [{"id": "fls_3inlcyi6444u", "number": "B.380:1", "link": "glossary.html#fls_3inlcyi6444u", "checksum": "1bca23bf5842288cdca8a36c009a79ab1faba3297c4e01d4d88a818f85f0b645"}], "informational": false}, {"id": "fls_kdqa8zs8tk6g", "number": "B.381", "title": "loop", "link": "glossary.html#loop", "paragraphs": [{"id": "fls_omjnvxva07z2", "number": "B.381:1", "link": "glossary.html#fls_omjnvxva07z2", "checksum": "f167af10c01112260d52505bf663f378bc267eab3462b536907699887ec4405a"}], "informational": false}, {"id": "fls_5vt0ph5bfdnu", "number": "B.382", "title": "loop body", "link": "glossary.html#loop-body", "paragraphs": [{"id": "fls_frwcwpekgx9g", "number": "B.382:1", "link": "glossary.html#fls_frwcwpekgx9g", "checksum": "f4c96ff719b6ab85d5750af147dad95ffbbfd720227288e319f846a85b40f717"}, {"id": "fls_vwur2tet712r", "number": "B.382:2", "link": "glossary.html#fls_vwur2tet712r", "checksum": "94576a2c9e28d810070b69c466b2a24849e5a415c05265c8fecc9b60cc68b465"}], "informational": false}, {"id": "fls_an1s2hnapd59", "number": "B.383", "title": "loop expression", "link": "glossary.html#loop-expression", "paragraphs": [{"id": "fls_2yypq3m1kquj", "number": "B.383:1", "link": "glossary.html#fls_2yypq3m1kquj", "checksum": "8413a81d0a02afb47e09369ab11824eb36ea94b506bc186ce0a0beb3bba0a285"}, {"id": "fls_o2dyznhq7rez", "number": "B.383:2", "link": "glossary.html#fls_o2dyznhq7rez", "checksum": "2579b2c7058a63fb346fdc569e1de4e4ca45e63464883ce0e7ca19dfbbf8fddc"}], "informational": false}, {"id": "fls_sdkcn1exc9da", "number": "B.384", "title": "macro", "link": "glossary.html#macro", "paragraphs": [{"id": "fls_bt16qi8g2js5", "number": "B.384:1", "link": "glossary.html#fls_bt16qi8g2js5", "checksum": "e54ff2b4d02cc39a0e7bb2387119b5155e4e4583a38818fb1327cafb597a951c"}], "informational": false}, {"id": "fls_td4jm76u9m03", "number": "B.385", "title": "macro expansion", "link": "glossary.html#macro-expansion", "paragraphs": [{"id": "fls_t383uo1l4h8x", "number": "B.385:1", "link": "glossary.html#fls_t383uo1l4h8x", "checksum": "4aabe5beb311cfda296103222da94d79db59491151385c674bb5ab3a2fa1dc4f"}], "informational": false}, {"id": "fls_o5jy1u64nyiy", "number": "B.386", "title": "macro implementation function", "link": "glossary.html#macro-implementation-function", "paragraphs": [{"id": "fls_xy4t1suhrn46", "number": "B.386:1", "link": "glossary.html#fls_xy4t1suhrn46", "checksum": "01c81136d5d1d40924d1c8996c97e0695953d067317cb5c023c5644575950573"}], "informational": false}, {"id": "fls_20x9eqa7xeui", "number": "B.387", "title": "macro invocation", "link": "glossary.html#macro-invocation", "paragraphs": [{"id": "fls_5qtwcp5ns5vz", "number": "B.387:1", "link": "glossary.html#fls_5qtwcp5ns5vz", "checksum": "68b1edc4db0d2e3d4ce635d19ceaec8fec5168adff8a8fe5a1a84c123eb789af"}, {"id": "fls_igzl0oj9ja7y", "number": "B.387:2", "link": "glossary.html#fls_igzl0oj9ja7y", "checksum": "259e220ac8fb44b99ea0c82eb898824d62ef46777dbc0edd50ae2b6103446746"}], "informational": false}, {"id": "fls_boanb1ipzc9", "number": "B.388", "title": "macro match", "link": "glossary.html#macro-match", "paragraphs": [{"id": "fls_q0ve6nd287ta", "number": "B.388:1", "link": "glossary.html#fls_q0ve6nd287ta", "checksum": "375ed9bbc80384727ed62542640c3a8a6499495162452b9892ce706ee78cc54b"}, {"id": "fls_dww6sqbj2vin", "number": "B.388:2", "link": "glossary.html#fls_dww6sqbj2vin", "checksum": "179f2ff2fb19802b53eed340592a99cf011a22a1137bc9b74a8f253665812b64"}], "informational": false}, {"id": "fls_4h4snjd4thsv", "number": "B.389", "title": "macro matcher", "link": "glossary.html#macro-matcher", "paragraphs": [{"id": "fls_sqncf88chnsy", "number": "B.389:1", "link": "glossary.html#fls_sqncf88chnsy", "checksum": "0fdd64f47fbe768d0c93eb3d2a86d45d529f63697f9b05cde079a9deb78dd489"}, {"id": "fls_ioyegc6ggd7o", "number": "B.389:2", "link": "glossary.html#fls_ioyegc6ggd7o", "checksum": "678832f1689006a4ed0cc51cf6bb4e0bdce65d0a1cdc4941935452093ee7a437"}], "informational": false}, {"id": "fls_ao7ghe0c8mqo", "number": "B.390", "title": "macro matching", "link": "glossary.html#macro-matching", "paragraphs": [{"id": "fls_rrdmfxuzrhft", "number": "B.390:1", "link": "glossary.html#fls_rrdmfxuzrhft", "checksum": "0b3bb3f9c48f8562e8e846e238c36cfe6348afa31e7357d946f48349d72bd333"}], "informational": false}, {"id": "fls_kddw7eirsn0g", "number": "B.391", "title": "macro repetition", "link": "glossary.html#macro-repetition", "paragraphs": [{"id": "fls_sdomcfwieuat", "number": "B.391:1", "link": "glossary.html#fls_sdomcfwieuat", "checksum": "681d740563cb210f2642178f143d49fe459b75bf5bbde9703c8a51d9a0c7818f"}], "informational": false}, {"id": "fls_a5j2hztrjfv5", "number": "B.392", "title": "macro repetition in matching", "link": "glossary.html#macro-repetition-in-matching", "paragraphs": [{"id": "fls_wio0e9qzstjh", "number": "B.392:1", "link": "glossary.html#fls_wio0e9qzstjh", "checksum": "6a5d65b431c0eac6e75b009a623007d27deda95179e83e1006ad19f2c9b0aa48"}, {"id": "fls_potk1y850zer", "number": "B.392:2", "link": "glossary.html#fls_potk1y850zer", "checksum": "1528d1e814d6bc91e61ed50948f2dd996d4c3491993fa9a3fb7ec5c346e29039"}], "informational": false}, {"id": "fls_sqv126lwdz23", "number": "B.393", "title": "macro repetition in transcription", "link": "glossary.html#macro-repetition-in-transcription", "paragraphs": [{"id": "fls_ex9vd3w0t4wo", "number": "B.393:1", "link": "glossary.html#fls_ex9vd3w0t4wo", "checksum": "3d465c29874c8616db76aeb84abdd924cd7ad1ab1f10fe4e75cdbdfda3d15d16"}, {"id": "fls_5wdiqbwgr9nt", "number": "B.393:2", "link": "glossary.html#fls_5wdiqbwgr9nt", "checksum": "13aa73789014f9acace156ad4ac8acbff9c51708466dad1f80c42a4644a3912d"}], "informational": false}, {"id": "fls_gw31cagmzx26", "number": "B.394", "title": "macro rule", "link": "glossary.html#macro-rule", "paragraphs": [{"id": "fls_7gfdqggs33id", "number": "B.394:1", "link": "glossary.html#fls_7gfdqggs33id", "checksum": "016c9fe34be63a621635c6627e98f9d342818e04d1f471124aa059ec1b44dd5a"}, {"id": "fls_qv68aj43mz5m", "number": "B.394:2", "link": "glossary.html#fls_qv68aj43mz5m", "checksum": "679e8c14ea44a25ea1390ac52aa92d476ce6721743dcffed0cc3012c0331aa2a"}], "informational": false}, {"id": "fls_i4yf4lt8qvkt", "number": "B.395", "title": "macro statement", "link": "glossary.html#macro-statement", "paragraphs": [{"id": "fls_yhh9k9epv3g6", "number": "B.395:1", "link": "glossary.html#fls_yhh9k9epv3g6", "checksum": "081c0eb81f1e5c8c6346996725d4f6709fdb652d0d6c34483a6869a4e316e3e3"}], "informational": false}, {"id": "fls_76o6rjh6lrqd", "number": "B.396", "title": "macro transcriber", "link": "glossary.html#macro-transcriber", "paragraphs": [{"id": "fls_ug79qf3p693h", "number": "B.396:1", "link": "glossary.html#fls_ug79qf3p693h", "checksum": "b68a6a518e546a1963b516db1a1fecce0b536851b28b2d2571c3b98a2beae5cd"}, {"id": "fls_myubuihvjl4s", "number": "B.396:2", "link": "glossary.html#fls_myubuihvjl4s", "checksum": "c7b336f6c4370f3b137a37762b3e34a45ffbdee9d31aba2dc1e8ae6ac7bd56d9"}], "informational": false}, {"id": "fls_vdq3cphhpxmg", "number": "B.397", "title": "macro transcription", "link": "glossary.html#macro-transcription", "paragraphs": [{"id": "fls_nouiggbpipg", "number": "B.397:1", "link": "glossary.html#fls_nouiggbpipg", "checksum": "5adf84e026b68d65082ce2b636187b84f445f4d14c4f204eb97c1efc67da7292"}], "informational": false}, {"id": "fls_dz192n9muwpg", "number": "B.398", "title": "main function", "link": "glossary.html#main-function", "paragraphs": [{"id": "fls_au3ovrkenr59", "number": "B.398:1", "link": "glossary.html#fls_au3ovrkenr59", "checksum": "786b8ad12199f175d48897e591e23559a67c00e019fd7ccc0f59e515e25e581e"}], "informational": false}, {"id": "fls_fizf1byuspv2", "number": "B.399", "title": "match arm", "link": "glossary.html#match-arm", "paragraphs": [{"id": "fls_z5qsy5z2zak3", "number": "B.399:1", "link": "glossary.html#fls_z5qsy5z2zak3", "checksum": "9482836bf585816b2fdb19a12c5da85f014b8e65602b245ae13257fd397d0e3f"}], "informational": false}, {"id": "fls_q7lcdtxuy1ac", "number": "B.400", "title": "match arm body", "link": "glossary.html#match-arm-body", "paragraphs": [{"id": "fls_33e7oefx0xqm", "number": "B.400:1", "link": "glossary.html#fls_33e7oefx0xqm", "checksum": "e1d392e3bce0aa46cec6c2e69f6d16c99e1fe9e20bef57e1170dfdca473be6e6"}], "informational": false}, {"id": "fls_aa1x6ajl4zid", "number": "B.401", "title": "match arm guard", "link": "glossary.html#match-arm-guard", "paragraphs": [{"id": "fls_uhn07jmvv9ea", "number": "B.401:1", "link": "glossary.html#fls_uhn07jmvv9ea", "checksum": "45c179df701122702d38c7dadf12bc1583f322da9efa0efa5a60b26e0eea53dc"}, {"id": "fls_ykf70vbng54n", "number": "B.401:2", "link": "glossary.html#fls_ykf70vbng54n", "checksum": "5e9073efe521f3c72da5efcabe7a2facc45281c7d3ad4f837f217af4ee40d1dc"}], "informational": false}, {"id": "fls_i3omadaygum2", "number": "B.402", "title": "match arm matcher", "link": "glossary.html#match-arm-matcher", "paragraphs": [{"id": "fls_paz9358w4cpu", "number": "B.402:1", "link": "glossary.html#fls_paz9358w4cpu", "checksum": "1c3440394d2d7311b5eb02ec970c0499c201a23ac3d04b14c5b0f8523e7d9a16"}, {"id": "fls_j7i2bjvzz1tx", "number": "B.402:2", "link": "glossary.html#fls_j7i2bjvzz1tx", "checksum": "fd6bd79198d1beeb7f0e092a6bb6fe0c1a11179fe60ce2715d55bcbdfefeb38a"}], "informational": false}, {"id": "fls_w15uouo0sjao", "number": "B.403", "title": "match expression", "link": "glossary.html#match-expression", "paragraphs": [{"id": "fls_2ohrphptjny6", "number": "B.403:1", "link": "glossary.html#fls_2ohrphptjny6", "checksum": "6557abf3a2930ad9e886b80cc340e32eebf01f2d5a45aabc11dd3fb602d655d7"}, {"id": "fls_wkalvzkmp95y", "number": "B.403:2", "link": "glossary.html#fls_wkalvzkmp95y", "checksum": "f5467f21fb4fbd5c7a3d1631d24f1bb65c14297d36e9225116ad32ef12a9f5c1"}], "informational": false}, {"id": "fls_xo9uyazcfuq3", "number": "B.404", "title": "metavariable", "link": "glossary.html#metavariable", "paragraphs": [{"id": "fls_fu1esz5i9mt", "number": "B.404:1", "link": "glossary.html#fls_fu1esz5i9mt", "checksum": "be0c3dc47d1448861b92b97d2ca6df362b9b0c92cbaef439a7c405b8d6020ff3"}, {"id": "fls_k4xaw93z8x33", "number": "B.404:2", "link": "glossary.html#fls_k4xaw93z8x33", "checksum": "379cb24f12e7d1b0cc7005800322abb89fecf29cfbb82181e83f9840c6c6ebf5"}], "informational": false}, {"id": "fls_5p2594jy7ude", "number": "B.405", "title": "metavariable indication", "link": "glossary.html#metavariable-indication", "paragraphs": [{"id": "fls_r1fxbwffc9wt", "number": "B.405:1", "link": "glossary.html#fls_r1fxbwffc9wt", "checksum": "89d9e2d880232a14ed1f317db88294b96b5a0537f7d28459f7425db365393ea3"}, {"id": "fls_bcmo2a0e0gxj", "number": "B.405:2", "link": "glossary.html#fls_bcmo2a0e0gxj", "checksum": "d227e72ebf1cd311ecad540ddeb8695ffd297714f1dcc3e4ca08784236f64fa5"}], "informational": false}, {"id": "fls_bi3g8xkk9ekf", "number": "B.406", "title": "method", "link": "glossary.html#method", "paragraphs": [{"id": "fls_n4opbiofu9q6", "number": "B.406:1", "link": "glossary.html#fls_n4opbiofu9q6", "checksum": "fdb86737b8b408d5bb953cf6a525cc9139ba25501ba50b1cb45c3c6406637dd3"}], "informational": false}, {"id": "fls_l4wel2551cw9", "number": "B.407", "title": "method call expression", "link": "glossary.html#method-call-expression", "paragraphs": [{"id": "fls_367sod24edts", "number": "B.407:1", "link": "glossary.html#fls_367sod24edts", "checksum": "743c664e87914194f65ee638557b4a2bcc2110ad6b68140945dcaae53198fc78"}, {"id": "fls_ohhcvxcaqv11", "number": "B.407:2", "link": "glossary.html#fls_ohhcvxcaqv11", "checksum": "1bf032c998565a27bff84f22aec7a6a42135b79bd6dbb7d86aa3b63d4f55875d"}], "informational": false}, {"id": "fls_l6ejxvmpllqq", "number": "B.408", "title": "method operand", "link": "glossary.html#method-operand", "paragraphs": [{"id": "fls_vllafjaxcfke", "number": "B.408:1", "link": "glossary.html#fls_vllafjaxcfke", "checksum": "fa9c74d795b4aee1abb0c510515f89026b33a0984b24bedbbfe2bc51d5790d3b"}, {"id": "fls_pkgr4fjqzpj6", "number": "B.408:2", "link": "glossary.html#fls_pkgr4fjqzpj6", "checksum": "0ac711730f51c5dccb2d3a7fe7d614350d35c590533c06ad13ad546006c88743"}], "informational": false}, {"id": "fls_05yfh5ud0ykw", "number": "B.409", "title": "method resolution", "link": "glossary.html#method-resolution", "paragraphs": [{"id": "fls_lbw4z6otud1l", "number": "B.409:1", "link": "glossary.html#fls_lbw4z6otud1l", "checksum": "a9435aa4761b186ce68b1325729655422181f6d1ff0eaafb6cb211b4b24b0354"}], "informational": false}, {"id": "fls_2ffrdj5co0ks", "number": "B.410", "title": "mixed site hygiene", "link": "glossary.html#mixed-site-hygiene", "paragraphs": [{"id": "fls_hjjpnmkizxlt", "number": "B.410:1", "link": "glossary.html#fls_hjjpnmkizxlt", "checksum": "24d03e78b15873359093b7f11170b9c9cf70a53e2872787d6d5f4ba06a2b2c1f"}], "informational": false}, {"id": "fls_5hoe1v960xfi", "number": "B.411", "title": "modifying operand", "link": "glossary.html#modifying-operand", "paragraphs": [{"id": "fls_9wt2l5gg06pb", "number": "B.411:1", "link": "glossary.html#fls_9wt2l5gg06pb", "checksum": "f06a84237b1aed4ddbd1c303a8b54800d376114f7b4740266a7935e3e70320e4"}, {"id": "fls_qnwbrwdnv7n0", "number": "B.411:2", "link": "glossary.html#fls_qnwbrwdnv7n0", "checksum": "916422661cb3cde0942b5fbf703a46b5b4a8583f77cb9536e6f57041e07f9ea8"}], "informational": false}, {"id": "fls_kbxk78vm564e", "number": "B.412", "title": "module", "link": "glossary.html#module", "paragraphs": [{"id": "fls_ujlsg58bskl5", "number": "B.412:1", "link": "glossary.html#fls_ujlsg58bskl5", "checksum": "f2d8f7f0bd7a74a1290c110cd157273e5948f198d45253dd0b77f3305cd55271"}, {"id": "fls_os60q6vvm71c", "number": "B.412:2", "link": "glossary.html#fls_os60q6vvm71c", "checksum": "450213c07476598d14fec31d50c4646cefb111066845f4f27074940461b76ee6"}], "informational": false}, {"id": "fls_gnucgrytswa4", "number": "B.413", "title": "move type", "link": "glossary.html#move-type", "paragraphs": [{"id": "fls_ri37ez31gai8", "number": "B.413:1", "link": "glossary.html#fls_ri37ez31gai8", "checksum": "03420fc54c8739e1ac8749d267fbcb79d9eda94bbb781e1d089793c71d3294d8"}], "informational": false}, {"id": "fls_iw2vygmlhlsg", "number": "B.414", "title": "multi segment path", "link": "glossary.html#multi-segment-path", "paragraphs": [{"id": "fls_t4xd6w6eqpsb", "number": "B.414:1", "link": "glossary.html#fls_t4xd6w6eqpsb", "checksum": "bb9da22604de97e5ed37317c56ab5dc8af805c12405f5c43d177be3fe395694b"}], "informational": false}, {"id": "fls_lpsclhnaxecg", "number": "B.415", "title": "multiplication assignment", "link": "glossary.html#multiplication-assignment", "paragraphs": [{"id": "fls_llub5vhkjww4", "number": "B.415:1", "link": "glossary.html#fls_llub5vhkjww4", "checksum": "9a42dfd1225c651006e14872ee23fa315d11176760e05f6b1fbd9d8d03fbb305"}], "informational": false}, {"id": "fls_yo4k6lk0tizn", "number": "B.416", "title": "multiplication assignment expression", "link": "glossary.html#multiplication-assignment-expression", "paragraphs": [{"id": "fls_eo9gx05n5ru3", "number": "B.416:1", "link": "glossary.html#fls_eo9gx05n5ru3", "checksum": "87167727330385c9802e8fef3d66daa817ab0e0afc0b1a4f4337bf7c6e691c2a"}, {"id": "fls_b0dc5lec1mdc", "number": "B.416:2", "link": "glossary.html#fls_b0dc5lec1mdc", "checksum": "a5029774cf8e94fe21723165e8f906fbcd2039fbdb0450c4cf0a389c741bfeca"}], "informational": false}, {"id": "fls_bgtznqqgtmd8", "number": "B.417", "title": "multiplication expression", "link": "glossary.html#multiplication-expression", "paragraphs": [{"id": "fls_324qh8wz474b", "number": "B.417:1", "link": "glossary.html#fls_324qh8wz474b", "checksum": "953b4baa5f434ef308e2ed7137c138c94996feb90933a70fc13b372499426426"}, {"id": "fls_34bkl5i75q5", "number": "B.417:2", "link": "glossary.html#fls_34bkl5i75q5", "checksum": "48ced6114174b83267a99089cfa219cbdd71643a4a3ee89cb3dc1d4c0387f607"}], "informational": false}, {"id": "fls_ym11bcxn4p7c", "number": "B.418", "title": "mutability", "link": "glossary.html#mutability", "paragraphs": [{"id": "fls_lbrxj9lo4s6o", "number": "B.418:1", "link": "glossary.html#fls_lbrxj9lo4s6o", "checksum": "921563a93251286be4f1640b3b57362f2a64d15693e4638b53cf087edb85614a"}], "informational": false}, {"id": "fls_wvejcadmzt5p", "number": "B.419", "title": "mutable", "link": "glossary.html#mutable", "paragraphs": [{"id": "fls_dqm58deu1orn", "number": "B.419:1", "link": "glossary.html#fls_dqm58deu1orn", "checksum": "a45de552ec27d3cf42e34f94296cdde8f5b25e75ed29b92d304cd653a55753c3"}], "informational": false}, {"id": "fls_tevphhicmbyo", "number": "B.420", "title": "mutable assignee expression", "link": "glossary.html#mutable-assignee-expression", "paragraphs": [{"id": "fls_0rslfbwrb3gp", "number": "B.420:1", "link": "glossary.html#fls_0rslfbwrb3gp", "checksum": "ae80789528355e3fd763bccf50dd6e89b7762be7f85442e7ac7a317f69e92a3b"}], "informational": false}, {"id": "fls_ntaa0ntj9z5h", "number": "B.421", "title": "mutable binding", "link": "glossary.html#mutable-binding", "paragraphs": [{"id": "fls_v2pgkvaqjtcl", "number": "B.421:1", "link": "glossary.html#fls_v2pgkvaqjtcl", "checksum": "8e5d90dce9637632da4203a8b7dca0688125de45b002932400b89c3610743005"}], "informational": false}, {"id": "fls_iku91jwdtdr1", "number": "B.422", "title": "mutable borrow", "link": "glossary.html#mutable-borrow", "paragraphs": [{"id": "fls_5knwbyz4fd9z", "number": "B.422:1", "link": "glossary.html#fls_5knwbyz4fd9z", "checksum": "6fcd4c6e36e26e8d5a43feb62409812d77e18c03cab99436ea9a5afc6c118209"}], "informational": false}, {"id": "fls_kw3oiotr98tt", "number": "B.423", "title": "mutable borrow expression", "link": "glossary.html#mutable-borrow-expression", "paragraphs": [{"id": "fls_80kcc4y21hu6", "number": "B.423:1", "link": "glossary.html#fls_80kcc4y21hu6", "checksum": "f5756acb378386fbd2d24b12c2003b186bf43fa217f74a22a6058e87ba23b122"}], "informational": false}, {"id": "fls_7eyza445ew53", "number": "B.424", "title": "mutable place expression", "link": "glossary.html#mutable-place-expression", "paragraphs": [{"id": "fls_kq877s3vij70", "number": "B.424:1", "link": "glossary.html#fls_kq877s3vij70", "checksum": "8258532fc3796ab5659874d42b0fd28c7e630105091b0e0d51e9e81b1687fb17"}], "informational": false}, {"id": "fls_x5bkvlc4kdlk", "number": "B.425", "title": "mutable place expression context", "link": "glossary.html#mutable-place-expression-context", "paragraphs": [{"id": "fls_2ixh8lwghi3k", "number": "B.425:1", "link": "glossary.html#fls_2ixh8lwghi3k", "checksum": "bc2a9b072e7ce04b5318c441aa6ae721780ee0588ece5a5c5253035f7dcfa31d"}], "informational": false}, {"id": "fls_wovlw47jkewf", "number": "B.426", "title": "mutable raw pointer type", "link": "glossary.html#mutable-raw-pointer-type", "paragraphs": [{"id": "fls_86sfxsdrcc06", "number": "B.426:1", "link": "glossary.html#fls_86sfxsdrcc06", "checksum": "9088dc4f9916aea9feb2c5fac071c64a7726e8531771a1ea0d8b6985546bde12"}], "informational": false}, {"id": "fls_jtzj092hyjkz", "number": "B.427", "title": "mutable reference", "link": "glossary.html#mutable-reference", "paragraphs": [{"id": "fls_wujjrhm1d338", "number": "B.427:1", "link": "glossary.html#fls_wujjrhm1d338", "checksum": "790b5207e54c3cc5e5266e59f67821a24906a98dbe5ee05e10d507ba3e9b4661"}], "informational": false}, {"id": "fls_8iq0wcczl465", "number": "B.428", "title": "mutable reference type", "link": "glossary.html#mutable-reference-type", "paragraphs": [{"id": "fls_q06p9tclwaaw", "number": "B.428:1", "link": "glossary.html#fls_q06p9tclwaaw", "checksum": "85809fee723d88b984def31efa7cb2e0c5c3a90be00833301b513cb2edec06f1"}], "informational": false}, {"id": "fls_omgyj7yxwgua", "number": "B.429", "title": "mutable static", "link": "glossary.html#mutable-static", "paragraphs": [{"id": "fls_3ss4bokujaby", "number": "B.429:1", "link": "glossary.html#fls_3ss4bokujaby", "checksum": "7affaac9d2a652dcf6c533a387f7d24e76569f24e04cbb44bd693c708961a464"}], "informational": false}, {"id": "fls_n7h4xr40xwgb", "number": "B.430", "title": "mutable variable", "link": "glossary.html#mutable-variable", "paragraphs": [{"id": "fls_kjjv9jvdpf2o", "number": "B.430:1", "link": "glossary.html#fls_kjjv9jvdpf2o", "checksum": "ca62498a89b2c5bf1776f928d2d026eb39cf43b5df3abdfb967406b6ae26ad9e"}], "informational": false}, {"id": "fls_kad7fzn94x4d", "number": "B.431", "title": "name", "link": "glossary.html#name", "paragraphs": [{"id": "fls_jjpzrs38vs3y", "number": "B.431:1", "link": "glossary.html#fls_jjpzrs38vs3y", "checksum": "2f143ada7318a9b3662f0de044b16d8f44b009081e6cdebaeacb250810127bb0"}, {"id": "fls_yrzevg5kd4bi", "number": "B.431:2", "link": "glossary.html#fls_yrzevg5kd4bi", "checksum": "b7c4f756bfa47508c075cc059cf7f4f4cf07915feafad80ef556657a474abf07"}], "informational": false}, {"id": "fls_cxzbzlu4pwpy", "number": "B.432", "title": "named block expression", "link": "glossary.html#named-block-expression", "paragraphs": [{"id": "fls_ivfb8uamvy3q", "number": "B.432:1", "link": "glossary.html#fls_ivfb8uamvy3q", "checksum": "3e044b65b674a3ca81a47e1f3885f0bd6ecf9dea10da9f661431aa6644b528b4"}], "informational": false}, {"id": "fls_dgs9y3nan69v", "number": "B.433", "title": "named deconstructor", "link": "glossary.html#named-deconstructor", "paragraphs": [{"id": "fls_g3k1hy3j4qn9", "number": "B.433:1", "link": "glossary.html#fls_g3k1hy3j4qn9", "checksum": "842d954f726fffa8307a5964fbe4e3363cf390f4b861cdc174ef3a544d77828a"}, {"id": "fls_ujreg07979g8", "number": "B.433:2", "link": "glossary.html#fls_ujreg07979g8", "checksum": "04ce26c3e1f3f563dd2836f16c28520abf5b16297c6e52ca191c8dd8ce1f8a06"}], "informational": false}, {"id": "fls_cvxdoycoytc5", "number": "B.434", "title": "named field selector", "link": "glossary.html#named-field-selector", "paragraphs": [{"id": "fls_cczpgxqdyh1e", "number": "B.434:1", "link": "glossary.html#fls_cczpgxqdyh1e", "checksum": "c99f54bc8403e25d40c36ab4256c395f6953411a475f5f2906352f7cd9e42776"}, {"id": "fls_hpw0n89ez5nw", "number": "B.434:2", "link": "glossary.html#fls_hpw0n89ez5nw", "checksum": "f1016103f42eef115e6ef4d177f969a429d4575ad9c39fe8ed488030aafd2427"}], "informational": false}, {"id": "fls_kp0mbopkbjer", "number": "B.435", "title": "named initializer", "link": "glossary.html#named-initializer", "paragraphs": [{"id": "fls_xwvz8i4jim7a", "number": "B.435:1", "link": "glossary.html#fls_xwvz8i4jim7a", "checksum": "2329311bb7c20c5a103c2af86d961c59d26d23a905b3bb20dcc3684ee39ede57"}, {"id": "fls_aueznbw3lohl", "number": "B.435:2", "link": "glossary.html#fls_aueznbw3lohl", "checksum": "7f9ed5515b0507e08c6fcd3b86010cf6654a304d970e56c616b1432592f17699"}], "informational": false}, {"id": "fls_biwn3hxza37n", "number": "B.436", "title": "named loop expression", "link": "glossary.html#named-loop-expression", "paragraphs": [{"id": "fls_440dr5qix3ns", "number": "B.436:1", "link": "glossary.html#fls_440dr5qix3ns", "checksum": "45b90d2044a94a97f1622b1372eef6e296fd6e7abe5ce0c5720f303b8d25d3e3"}], "informational": false}, {"id": "fls_wt1zdxtzwuue", "number": "B.437", "title": "named register argument", "link": "glossary.html#named-register-argument", "paragraphs": [{"id": "fls_qbwhppno8fpk", "number": "B.437:1", "link": "glossary.html#fls_qbwhppno8fpk", "checksum": "68304a639bfdfd591b6d81a54cd99f8de662950f4f4be443a95f6648d927c048"}], "informational": false}, {"id": "fls_gesmswsvhv3f", "number": "B.438", "title": "namespace", "link": "glossary.html#namespace", "paragraphs": [{"id": "fls_er8lcvneqxa5", "number": "B.438:1", "link": "glossary.html#fls_er8lcvneqxa5", "checksum": "79903dfaf51b0a6db870067d9c6708637db0cb9c51954700dec678bb066b93c3"}], "informational": false}, {"id": "fls_z3lxbjf4gaqv", "number": "B.439", "title": "NaN-boxing", "link": "glossary.html#nan-boxing", "paragraphs": [{"id": "fls_s956sjgwoa6z", "number": "B.439:1", "link": "glossary.html#fls_s956sjgwoa6z", "checksum": "f884e5377134b816bbcaf560a3791eabd70bfca4564ec99846697d6ae27c160e"}], "informational": false}, {"id": "fls_3sp4twvfvb32", "number": "B.440", "title": "negation expression", "link": "glossary.html#negation-expression", "paragraphs": [{"id": "fls_pmn6cjamdt0a", "number": "B.440:1", "link": "glossary.html#fls_pmn6cjamdt0a", "checksum": "eecb4e52cf7b3ab51b61495e24474910c75a36ad7c66ea286d9902066f0cc09c"}, {"id": "fls_o1f35ud4klvv", "number": "B.440:2", "link": "glossary.html#fls_o1f35ud4klvv", "checksum": "a0ac128d622e13f0a3e95e294440ef1740d39770c599f08474ab7b8225290f63"}], "informational": false}, {"id": "fls_6rlvd0u4w6h2", "number": "B.441", "title": "nesting import", "link": "glossary.html#nesting-import", "paragraphs": [{"id": "fls_nhkqkdqo32xs", "number": "B.441:1", "link": "glossary.html#fls_nhkqkdqo32xs", "checksum": "9b3b52ee8addfafa5290a18b0526b0e262c110c4dba134e24600185ea32cb7f2"}, {"id": "fls_z4d611glen13", "number": "B.441:2", "link": "glossary.html#fls_z4d611glen13", "checksum": "50e952ca39eabd1b9c84a590eeea20dc18149d354ab428b0ae53d61697a1edfc"}], "informational": false}, {"id": "fls_cwcbtnzbqmq2", "number": "B.442", "title": "never type", "link": "glossary.html#never-type", "paragraphs": [{"id": "fls_m9v5j6detob4", "number": "B.442:1", "link": "glossary.html#fls_m9v5j6detob4", "checksum": "bff24b790bd2765a0ae1d2b8cade1a40d802da6af67d3e13da1f98d467eabb4b"}, {"id": "fls_k5z1vjxepnfj", "number": "B.442:2", "link": "glossary.html#fls_k5z1vjxepnfj", "checksum": "3c8dd8cbce92e7e091520afdcecc7dabb89d306f5f446a424147e681ed3f464a"}], "informational": false}, {"id": "fls_3vhflvajgqzd", "number": "B.443", "title": "non-reference pattern", "link": "glossary.html#non-reference-pattern", "paragraphs": [{"id": "fls_tejled5izyue", "number": "B.443:1", "link": "glossary.html#fls_tejled5izyue", "checksum": "5d7a6f16e2b83cea6ed807ef284ed37bcfea409044ff12538cca881f34d4313c"}], "informational": false}, {"id": "fls_5u8ihvdp4mdb", "number": "B.444", "title": "not configuration predicate", "link": "glossary.html#not-configuration-predicate", "paragraphs": [{"id": "fls_bvmlbterkfyq", "number": "B.444:1", "link": "glossary.html#fls_bvmlbterkfyq", "checksum": "221e7357ec4062d6797d6359958208e54d75467f42ab04e41ad890e3f1a38172"}, {"id": "fls_9j9aancv0vna", "number": "B.444:2", "link": "glossary.html#fls_9j9aancv0vna", "checksum": "3b3110f44f634a0c3c4a54ab94e02145944433408e11a342496fd6d8ae11395e"}], "informational": false}, {"id": "fls_shgatqvpdqkg", "number": "B.445", "title": "not-equals expression", "link": "glossary.html#not-equals-expression", "paragraphs": [{"id": "fls_2hmynl94uusk", "number": "B.445:1", "link": "glossary.html#fls_2hmynl94uusk", "checksum": "8b5a09650bbb9136e81393b63b7d0696da00347721e07730f4298aa2ac6e5eed"}, {"id": "fls_5d6vvr9m35n2", "number": "B.445:2", "link": "glossary.html#fls_5d6vvr9m35n2", "checksum": "2fcd35d91a3b60d2418157e4d55466d2f35f6d7e6b03a634262daafa5c41a13e"}], "informational": false}, {"id": "fls_gqw1bzwexxt0", "number": "B.446", "title": "null", "link": "glossary.html#null", "paragraphs": [{"id": "fls_8sh17t37b2ml", "number": "B.446:1", "link": "glossary.html#fls_8sh17t37b2ml", "checksum": "d73443593c7d3bfba69d38de712f176516fa9eeb6e94250cbfe99ee24ffabc2d"}], "informational": false}, {"id": "fls_a0qsojiymgjy", "number": "B.447", "title": "numeric literal", "link": "glossary.html#numeric-literal", "paragraphs": [{"id": "fls_978ndaqdv4r", "number": "B.447:1", "link": "glossary.html#fls_978ndaqdv4r", "checksum": "3a9869e08f3041442b54b7ba31117a92030d76ce7f4b9fd199fe8a9fdc332038"}, {"id": "fls_swue4tma9fmf", "number": "B.447:2", "link": "glossary.html#fls_swue4tma9fmf", "checksum": "260dcf75a99a860cf36d67f61f6fd66084142ea2921dfc3dca5226a866538e90"}], "informational": false}, {"id": "fls_rayjriyofmpa", "number": "B.448", "title": "numeric type", "link": "glossary.html#numeric-type", "paragraphs": [{"id": "fls_cpdsj94l57af", "number": "B.448:1", "link": "glossary.html#fls_cpdsj94l57af", "checksum": "f6982eeb521169d18f7b3211ce4d2db1795a494ca32b4bfbd52fd978fca5732d"}], "informational": false}, {"id": "fls_a226qzrb4iq9", "number": "B.449", "title": "object safe", "link": "glossary.html#object-safe", "paragraphs": [{"id": "fls_oa2jiklr5nl2", "number": "B.449:1", "link": "glossary.html#fls_oa2jiklr5nl2", "checksum": "e488195c335e18072e4e48c855a1eed43e65910ee2a2cafd06c7217267cc9e78"}], "informational": false}, {"id": "fls_vomlqv7i1fc4", "number": "B.450", "title": "object safety", "link": "glossary.html#object-safety", "paragraphs": [{"id": "fls_vqmng1l9ab8a", "number": "B.450:1", "link": "glossary.html#fls_vqmng1l9ab8a", "checksum": "bb795012707fe09e40b9776a7484850f203a380f854cbe1d20726f55b5a59c72"}], "informational": false}, {"id": "fls_bo889w63y7oi", "number": "B.451", "title": "obsolete range pattern", "link": "glossary.html#obsolete-range-pattern", "paragraphs": [{"id": "fls_ave42vwb45zb", "number": "B.451:1", "link": "glossary.html#fls_ave42vwb45zb", "checksum": "5141dbbb4eed64b6f01219411a0883c6ec7b86ffd1cf93e8378cb77426030eb5"}, {"id": "fls_ta0wa8ta9ol4", "number": "B.451:2", "link": "glossary.html#fls_ta0wa8ta9ol4", "checksum": "5a891041ccdf5973d7e8b29a2c39bd2e4548c3e2bae4d34a74444910f0a4b1fc"}], "informational": false}, {"id": "fls_q47u2zq6clon", "number": "B.452", "title": "octal literal", "link": "glossary.html#octal-literal", "paragraphs": [{"id": "fls_pf4341vnqiin", "number": "B.452:1", "link": "glossary.html#fls_pf4341vnqiin", "checksum": "5b159023d4dab86c8289c2b619e307e02ab8241d90be7f51971a9f21cadc2c4c"}, {"id": "fls_8u0n6xu0mizm", "number": "B.452:2", "link": "glossary.html#fls_8u0n6xu0mizm", "checksum": "bd14aa7f084817a8f736bc415b84f6f4049dd8586011be7167b5b6f51c995584"}], "informational": false}, {"id": "fls_pv4lok5qcn8y", "number": "B.453", "title": "operand", "link": "glossary.html#operand", "paragraphs": [{"id": "fls_3mnn1au9ob6q", "number": "B.453:1", "link": "glossary.html#fls_3mnn1au9ob6q", "checksum": "5fe01a90aef55905159f37f242890148a65381cd487ee5fcbb22d724428cb3de"}, {"id": "fls_8299xfhdsd1", "number": "B.453:2", "link": "glossary.html#fls_8299xfhdsd1", "checksum": "a83ebaffd017390679204da67203295074496e69637faf5d3dd5c7516c9f4fc6"}], "informational": false}, {"id": "fls_smk8mi72lt57", "number": "B.454", "title": "operator expression", "link": "glossary.html#operator-expression", "paragraphs": [{"id": "fls_6ev01xwcfow1", "number": "B.454:1", "link": "glossary.html#fls_6ev01xwcfow1", "checksum": "b0ac089ce6d314e4571988cd75d462fcbe40383a38d73da01ab7ec93069b924b"}, {"id": "fls_qdszbyeuo7w1", "number": "B.454:2", "link": "glossary.html#fls_qdszbyeuo7w1", "checksum": "3294d2b103a3d6c471fbd3921fa513d8eb379d8189961373b2f2773a6818101b"}], "informational": false}, {"id": "fls_c5dicsvsabsj", "number": "B.455", "title": "opt-out trait bound", "link": "glossary.html#opt-out-trait-bound", "paragraphs": [{"id": "fls_ws4ezn0n1gdp", "number": "B.455:1", "link": "glossary.html#fls_ws4ezn0n1gdp", "checksum": "99bc9c57c220ee5ca9f3ffb6714ae7c66bf44ffccd231d8d0ef16dd01709f69f"}], "informational": false}, {"id": "fls_gllzixm9yt9w", "number": "B.456", "title": "outer attribute", "link": "glossary.html#outer-attribute", "paragraphs": [{"id": "fls_gffxnbilsqly", "number": "B.456:1", "link": "glossary.html#fls_gffxnbilsqly", "checksum": "e5970e90ac3f28f7bd55a99b22584b62fc9bf3c723cd333b1281ea364b3aeccc"}, {"id": "fls_ty6ihy6x3kf", "number": "B.456:2", "link": "glossary.html#fls_ty6ihy6x3kf", "checksum": "dafb38d0ea0502fbf8f6957a4d3573a5327aa4ce18ecf4ad2d2b1da226bce867"}], "informational": false}, {"id": "fls_toncretg92qh", "number": "B.457", "title": "outer block doc", "link": "glossary.html#outer-block-doc", "paragraphs": [{"id": "fls_531ggn1f8f6u", "number": "B.457:1", "link": "glossary.html#fls_531ggn1f8f6u", "checksum": "f376384f0f6c279aa34afc028e25d66dd871db3e4fc02342f2b8000f35c42e49"}, {"id": "fls_ddy9a66tpytp", "number": "B.457:2", "link": "glossary.html#fls_ddy9a66tpytp", "checksum": "64d90cf7adf4d5a344cf4b8c3b657bdbd5906b36ba1adcfc5f45ef21f8c87134"}], "informational": false}, {"id": "fls_putd100swo5n", "number": "B.458", "title": "outer doc comment", "link": "glossary.html#outer-doc-comment", "paragraphs": [{"id": "fls_mgseunupcpbs", "number": "B.458:1", "link": "glossary.html#fls_mgseunupcpbs", "checksum": "58b1d7c2dc6797e6bbbe447b8084f4dabf2cf2b27007f794e217774d1b6331ed"}], "informational": false}, {"id": "fls_eqjbv8sovvfl", "number": "B.459", "title": "outer line doc", "link": "glossary.html#outer-line-doc", "paragraphs": [{"id": "fls_m3u30fu8uac3", "number": "B.459:1", "link": "glossary.html#fls_m3u30fu8uac3", "checksum": "4e92b4f1208fe3471467a760f1528e373e782c37c88e1de82e1e3ba102f163c5"}, {"id": "fls_1ppwidw7szk5", "number": "B.459:2", "link": "glossary.html#fls_1ppwidw7szk5", "checksum": "8e60507625ed92420802f9708138ddedb1dd61d29f356499cbdb95ef1200576a"}], "informational": false}, {"id": "fls_de935b1pzd28", "number": "B.460", "title": "outline module", "link": "glossary.html#outline-module", "paragraphs": [{"id": "fls_xhe5gmr0r9zn", "number": "B.460:1", "link": "glossary.html#fls_xhe5gmr0r9zn", "checksum": "a433125983513d73b2788a482e86ce8ee3eae7fda70a0f49b72aaa563c8ca6d5"}, {"id": "fls_wu5wqylzx9ke", "number": "B.460:2", "link": "glossary.html#fls_wu5wqylzx9ke", "checksum": "6474723be463010152d6db48870c978a635d7aad1463a5dda3b10135d970470e"}], "informational": false}, {"id": "fls_5lhir1koieo5", "number": "B.461", "title": "outlives bound", "link": "glossary.html#outlives-bound", "paragraphs": [{"id": "fls_j5dt34ii7pm6", "number": "B.461:1", "link": "glossary.html#fls_j5dt34ii7pm6", "checksum": "664dc5c79d01a330a354ea02f51bcfe3681a68e19f181e09053ecf12b1808cd9"}], "informational": false}, {"id": "fls_xsgnaa47nen0", "number": "B.462", "title": "output register", "link": "glossary.html#output-register", "paragraphs": [{"id": "fls_4meti8qe9jiy", "number": "B.462:1", "link": "glossary.html#fls_4meti8qe9jiy", "checksum": "72a1edab48d76b04199e8bfe7825c3eab26a9914b6b707eaced222db6c12bfed"}], "informational": false}, {"id": "fls_t79akpilx8jk", "number": "B.463", "title": "output register expression", "link": "glossary.html#output-register-expression", "paragraphs": [{"id": "fls_w95yrz4jjbxl", "number": "B.463:1", "link": "glossary.html#fls_w95yrz4jjbxl", "checksum": "d01b68338f0da933e93d306807c765c36bb0b742d511d7ca14c26cf9dba55c99"}, {"id": "fls_8b3ldfzvy7pa", "number": "B.463:2", "link": "glossary.html#fls_8b3ldfzvy7pa", "checksum": "d0ddc55bbc3d95e786e480bb7babecab0f9818791e68a7c269f0ee4b6c18187b"}], "informational": false}, {"id": "fls_nhamq7xtz384", "number": "B.464", "title": "overlap", "link": "glossary.html#overlap", "paragraphs": [{"id": "fls_itkz9y19923k", "number": "B.464:1", "link": "glossary.html#fls_itkz9y19923k", "checksum": "b0af4ac1c1fc45ead27b4769e33d2b79b64039af33e54ceafa90d18f0a477756"}], "informational": false}, {"id": "fls_ke52l9lsvyu2", "number": "B.465", "title": "owner", "link": "glossary.html#owner", "paragraphs": [{"id": "fls_7vwwhberexeb", "number": "B.465:1", "link": "glossary.html#fls_7vwwhberexeb", "checksum": "6ab8a36cbef90178c432b873775b2ab984639224142be9cc9f19536cffd7a186"}], "informational": false}, {"id": "fls_1gmetz8qtr0l", "number": "B.466", "title": "ownership", "link": "glossary.html#ownership", "paragraphs": [{"id": "fls_tu4zt8twucsz", "number": "B.466:1", "link": "glossary.html#fls_tu4zt8twucsz", "checksum": "40f81f5362eaceabd4c5ece13ebbe6faddf0742fdafffab10aced035f75d8123"}], "informational": false}, {"id": "fls_wzpivxkhpln", "number": "B.467", "title": "panic", "link": "glossary.html#panic", "paragraphs": [{"id": "fls_t3kpbnmohtp6", "number": "B.467:1", "link": "glossary.html#fls_t3kpbnmohtp6", "checksum": "4a80bb4c8a45cec8ec08f6c2c73fcef85fe05514030a1fed86d97931b34a2577"}], "informational": false}, {"id": "fls_fl56jfxbj0f", "number": "B.468", "title": "parenthesized expression", "link": "glossary.html#parenthesized-expression", "paragraphs": [{"id": "fls_yu1x2rr7cewa", "number": "B.468:1", "link": "glossary.html#fls_yu1x2rr7cewa", "checksum": "2cfff0b577b6e3da95e02af9fbda912972b7b7561f3eececb3079825ecb10d8b"}, {"id": "fls_p9exa6fpplfu", "number": "B.468:2", "link": "glossary.html#fls_p9exa6fpplfu", "checksum": "6d3bdfc17d5eb10e2aaf1deca72aa28759c278e9ca6ce02a04c08a1e3f51249b"}], "informational": false}, {"id": "fls_ww6nyinsw1lr", "number": "B.469", "title": "parenthesized pattern", "link": "glossary.html#parenthesized-pattern", "paragraphs": [{"id": "fls_7j12dwsx9ghg", "number": "B.469:1", "link": "glossary.html#fls_7j12dwsx9ghg", "checksum": "3fef2b15481f75a31517ecf9b989491b058b5ecc19c035f2c26d8149fa728405"}, {"id": "fls_rwt31e8m694i", "number": "B.469:2", "link": "glossary.html#fls_rwt31e8m694i", "checksum": "01459e907ed36dc21136455589510a8834aaacd220af233184f91da6bc2b1ab6"}], "informational": false}, {"id": "fls_gilx8zikdq9k", "number": "B.470", "title": "parenthesized type", "link": "glossary.html#parenthesized-type", "paragraphs": [{"id": "fls_pamypc7t7l5n", "number": "B.470:1", "link": "glossary.html#fls_pamypc7t7l5n", "checksum": "b6cdf53116b6fe6c3b499f893a2d2cadff50728b57b75f936070a44e7f417cb9"}, {"id": "fls_lovkvqoni3xs", "number": "B.470:2", "link": "glossary.html#fls_lovkvqoni3xs", "checksum": "57d71332bc8a58df16952d89e63669accbf1249be23bde5e2cf12a9b9a3132a4"}], "informational": false}, {"id": "fls_fulm1ocksaks", "number": "B.471", "title": "partially hygienic", "link": "glossary.html#partially-hygienic", "paragraphs": [{"id": "fls_qh8v0y08dnoa", "number": "B.471:1", "link": "glossary.html#fls_qh8v0y08dnoa", "checksum": "db556c432e1317040a86149c85fc9c6920bd21bd6f1c60a939ba38ec8fb67808"}], "informational": false}, {"id": "fls_wqbd5lxki2al", "number": "B.472", "title": "passing convention", "link": "glossary.html#passing-convention", "paragraphs": [{"id": "fls_eqgsg8j9btic", "number": "B.472:1", "link": "glossary.html#fls_eqgsg8j9btic", "checksum": "1a8c88f11c890a81eec20646539274b3c90d82cb233df59ffab0326e60b82f5b"}], "informational": false}, {"id": "fls_9zl72vtkgkuo", "number": "B.473", "title": "path", "link": "glossary.html#path", "paragraphs": [{"id": "fls_u3jyud6mhy1f", "number": "B.473:1", "link": "glossary.html#fls_u3jyud6mhy1f", "checksum": "86752000cac91f0bc66b07155482b32060922da2c0ae500a80ba4ae2608a293d"}], "informational": false}, {"id": "fls_1xdj34py8zc3", "number": "B.474", "title": "path expression", "link": "glossary.html#path-expression", "paragraphs": [{"id": "fls_4ik66nmvx5hn", "number": "B.474:1", "link": "glossary.html#fls_4ik66nmvx5hn", "checksum": "4bb3009b90c406af213c8dc995cc67a0111738597ec2110564aaa7057249c9fc"}, {"id": "fls_3qjpjqm0legc", "number": "B.474:2", "link": "glossary.html#fls_3qjpjqm0legc", "checksum": "c05fac352b00a12dc595f1319451d2f0d313e898e70ffe3838d14839fb852b28"}], "informational": false}, {"id": "fls_eiftielgzny5", "number": "B.475", "title": "path expression resolution", "link": "glossary.html#path-expression-resolution", "paragraphs": [{"id": "fls_wycevyc3shuk", "number": "B.475:1", "link": "glossary.html#fls_wycevyc3shuk", "checksum": "fa1fbd125cc8278b95a39fb1ee542645f6e6405cf80e9475fcecc2dc0bcc4af0"}], "informational": false}, {"id": "fls_ptikwcw3b20l", "number": "B.476", "title": "path pattern", "link": "glossary.html#path-pattern", "paragraphs": [{"id": "fls_vacvk3t26ctg", "number": "B.476:1", "link": "glossary.html#fls_vacvk3t26ctg", "checksum": "1ddef01b5324d3e5830ddefd71a57e050d7d2c7fd523a22bcfb03250c2a6415f"}, {"id": "fls_9fudbxoyq8k4", "number": "B.476:2", "link": "glossary.html#fls_9fudbxoyq8k4", "checksum": "91b497e9fa3f33bf6884d107b2a1e0920f9711edb4936657a48701a8eab9f6c2"}], "informational": false}, {"id": "fls_j8kibhcawvnj", "number": "B.477", "title": "path resolution", "link": "glossary.html#path-resolution", "paragraphs": [{"id": "fls_uy9ai9vwtkjb", "number": "B.477:1", "link": "glossary.html#fls_uy9ai9vwtkjb", "checksum": "4c13f0f177b0c01dc9d8e8eba86e8c9bcaef9ef206732b0eb5ee534c5245881a"}], "informational": false}, {"id": "fls_xb54s9cs7h08", "number": "B.478", "title": "path segment", "link": "glossary.html#path-segment", "paragraphs": [{"id": "fls_gsumebjc2bsp", "number": "B.478:1", "link": "glossary.html#fls_gsumebjc2bsp", "checksum": "01cb3ca7cb11364fef5535a6641bf8bc2c38c87090eba0d690e2fa318a4338b3"}, {"id": "fls_m067uq7fo66i", "number": "B.478:2", "link": "glossary.html#fls_m067uq7fo66i", "checksum": "aa9d26df950e952959e95fcadb41018d9ec36b7c6cb1c49e2d51bf57fb094c74"}], "informational": false}, {"id": "fls_uj1o721im5lb", "number": "B.479", "title": "pattern", "link": "glossary.html#pattern", "paragraphs": [{"id": "fls_9wwt9k1xlm6n", "number": "B.479:1", "link": "glossary.html#fls_9wwt9k1xlm6n", "checksum": "282073b14300e91d7204be8ea956e9e8b3cfa3158d260105e7dba482180a5dc5"}, {"id": "fls_9va04w9jgdyp", "number": "B.479:2", "link": "glossary.html#fls_9va04w9jgdyp", "checksum": "cf5774737d44c0244752f89f7edba65e74214b321ce211abbefed1aae2717247"}], "informational": false}, {"id": "fls_48mv0zecb0un", "number": "B.480", "title": "pattern matching", "link": "glossary.html#pattern-matching", "paragraphs": [{"id": "fls_y3oputy9e0sz", "number": "B.480:1", "link": "glossary.html#fls_y3oputy9e0sz", "checksum": "687171fdfcb5dc54c9efde5dc880fc8d45c2a7750c34924be62eeef999299aaf"}], "informational": false}, {"id": "fls_cptagvgpgnze", "number": "B.481", "title": "pattern-without-alternation", "link": "glossary.html#pattern-without-alternation", "paragraphs": [{"id": "fls_brussjs3wo6r", "number": "B.481:1", "link": "glossary.html#fls_brussjs3wo6r", "checksum": "aa99ac28601f28f70082de462bb43f46a746ce1f9e1510290e079f4cc60b16ca"}, {"id": "fls_fmysn3eezr54", "number": "B.481:2", "link": "glossary.html#fls_fmysn3eezr54", "checksum": "bb9ae81115e84e34d4d388c6f605b9464dce63718f64bc4b2a53dd7f901a2832"}], "informational": false}, {"id": "fls_yeqozkponzw3", "number": "B.482", "title": "pattern-without-range", "link": "glossary.html#pattern-without-range", "paragraphs": [{"id": "fls_lseovawum7g6", "number": "B.482:1", "link": "glossary.html#fls_lseovawum7g6", "checksum": "8e580aa369d44cbf978bb7f303aa685f9e92502ced79c2f272f4299dcbf51429"}, {"id": "fls_rj8ir4k0k811", "number": "B.482:2", "link": "glossary.html#fls_rj8ir4k0k811", "checksum": "784a5470baa9495f0dde79075042c965584cca9cd7ca07b06691ba8bd12189ff"}], "informational": false}, {"id": "fls_5zjhbzmscqjz", "number": "B.483", "title": "place", "link": "glossary.html#place", "paragraphs": [{"id": "fls_uctiubwhmpy9", "number": "B.483:1", "link": "glossary.html#fls_uctiubwhmpy9", "checksum": "7d6bd706a1c1bf24ed3406adce2a884cee94c370b4f45a0babd5c0ac8ecf007a"}], "informational": false}, {"id": "fls_7x6jhh0sz2f", "number": "B.484", "title": "place expression", "link": "glossary.html#place-expression", "paragraphs": [{"id": "fls_z6mgu2mk142r", "number": "B.484:1", "link": "glossary.html#fls_z6mgu2mk142r", "checksum": "da83786561684ef3f1ea6b5403d5df3f17d2de925757999817aef90a955a6e91"}], "informational": false}, {"id": "fls_tshbqttxdox1", "number": "B.485", "title": "place expression context", "link": "glossary.html#place-expression-context", "paragraphs": [{"id": "fls_fqcx8suiy5k", "number": "B.485:1", "link": "glossary.html#fls_fqcx8suiy5k", "checksum": "da35a8c27fb763f7fae828f196d5fe7127c6d926ae1e195af54823d6077dc39c"}], "informational": false}, {"id": "fls_dr6wbsqjd2qm", "number": "B.486", "title": "plane", "link": "glossary.html#plane", "paragraphs": [{"id": "fls_x1wbguoqdsf9", "number": "B.486:1", "link": "glossary.html#fls_x1wbguoqdsf9", "checksum": "cbad9205a4b6ad94f2293f263834eac0a48c1a589f83481e44dae00d0947d06e"}], "informational": false}, {"id": "fls_hnjehyuitpb1", "number": "B.487", "title": "pointer", "link": "glossary.html#pointer", "paragraphs": [{"id": "fls_drjhmwo9mjof", "number": "B.487:1", "link": "glossary.html#fls_drjhmwo9mjof", "checksum": "8af426150d7b87d3399d36cde4208282a14031da42b92bcb54c3619dd5304962"}], "informational": false}, {"id": "fls_o5o1ssqqd7jg", "number": "B.488", "title": "pointer type", "link": "glossary.html#pointer-type", "paragraphs": [{"id": "fls_f2duxea4nhel", "number": "B.488:1", "link": "glossary.html#fls_f2duxea4nhel", "checksum": "a0837fb75bbafb4bee75f28944324055ef7701aa5ef37bac6239c767582688e3"}], "informational": false}, {"id": "fls_q0r8jkqap6of", "number": "B.489", "title": "positional register argument", "link": "glossary.html#positional-register-argument", "paragraphs": [{"id": "fls_gjd6i52p3km3", "number": "B.489:1", "link": "glossary.html#fls_gjd6i52p3km3", "checksum": "3ffd7cdaaa1084cb6d67d0fd21067e93bcc5984cb0179a655e76f3b3d7178b1c"}], "informational": false}, {"id": "fls_ukvdoqo68y5b", "number": "B.490", "title": "precedence", "link": "glossary.html#precedence", "paragraphs": [{"id": "fls_sz93844rqc4r", "number": "B.490:1", "link": "glossary.html#fls_sz93844rqc4r", "checksum": "96c20de400ea70bdb3228b14ef5ec41d889f849a69602c4a1021d8830d57bf78"}], "informational": false}, {"id": "fls_8gn72fjbarfb", "number": "B.491", "title": "prelude", "link": "glossary.html#prelude", "paragraphs": [{"id": "fls_d0pjioozjknn", "number": "B.491:1", "link": "glossary.html#fls_d0pjioozjknn", "checksum": "1b93f782dd3dcfe565ad4a4c82b0cded61ae1bab29bacd0be29aeb7958b787e8"}], "informational": false}, {"id": "fls_awysdxpgypiw", "number": "B.492", "title": "prelude entity", "link": "glossary.html#prelude-entity", "paragraphs": [{"id": "fls_2lu7rujzflsz", "number": "B.492:1", "link": "glossary.html#fls_2lu7rujzflsz", "checksum": "df2143eaa654123ac252f80f303dad763ddd719296781254975176ca4e5aac2f"}], "informational": false}, {"id": "fls_fyn5jqpohiis", "number": "B.493", "title": "prelude name", "link": "glossary.html#prelude-name", "paragraphs": [{"id": "fls_6jk7fuak122a", "number": "B.493:1", "link": "glossary.html#fls_6jk7fuak122a", "checksum": "7c5342ccc6c27341c3a10ed0a4bb92e351c44fe2172ac672c061a1a6b25a4811"}], "informational": false}, {"id": "fls_fikexts17v7a", "number": "B.494", "title": "primitive representation", "link": "glossary.html#primitive-representation", "paragraphs": [{"id": "fls_bydly1rt63pf", "number": "B.494:1", "link": "glossary.html#fls_bydly1rt63pf", "checksum": "47e2a49e8c4bb9a1da304195e3eb1dc6848ecf6d0755309781c40a73f843bc4f"}], "informational": false}, {"id": "fls_v1u1mevpj0kj", "number": "B.495", "title": "private visibility", "link": "glossary.html#private-visibility", "paragraphs": [{"id": "fls_duop22hyaweq", "number": "B.495:1", "link": "glossary.html#fls_duop22hyaweq", "checksum": "47428b53e2a5f713c09f529e70eac042045c822b245616e01571c803c69a67d4"}], "informational": false}, {"id": "fls_kca6sw8buq5x", "number": "B.496", "title": "proc-macro crate", "link": "glossary.html#proc-macro-crate", "paragraphs": [{"id": "fls_dftszt1pjv7o", "number": "B.496:1", "link": "glossary.html#fls_dftszt1pjv7o", "checksum": "da9efc0609995ab5e22ff4948727e3f7ddcf89c93a3a76c7320452b1d093d45f"}], "informational": false}, {"id": "fls_sp5wdsxwmxf", "number": "B.497", "title": "procedural macro", "link": "glossary.html#procedural-macro", "paragraphs": [{"id": "fls_u4utpx4zgund", "number": "B.497:1", "link": "glossary.html#fls_u4utpx4zgund", "checksum": "5f7ef6ceefe0a2bc9cc1418aa641b3485795be777e2a19ff89b861fae1ec7dec"}], "informational": false}, {"id": "fls_v2rjlovqsdyr", "number": "B.498", "title": "public visibility", "link": "glossary.html#public-visibility", "paragraphs": [{"id": "fls_6cfxqtl921ko", "number": "B.498:1", "link": "glossary.html#fls_6cfxqtl921ko", "checksum": "df273ba462a9e4407e9718b359a0b3af6c4ced0d4aa8aea268ac7f1b6a7e2ab0"}], "informational": false}, {"id": "fls_hdwmw3jbwefi", "number": "B.499", "title": "punctuator", "link": "glossary.html#punctuator", "paragraphs": [{"id": "fls_gwqgi0b7jxmu", "number": "B.499:1", "link": "glossary.html#fls_gwqgi0b7jxmu", "checksum": "762ffab2c53668dc751866e4ef08d61bd406a9f3a0151174c7130adedce7773e"}], "informational": false}, {"id": "fls_sgwvmnoio1ql", "number": "B.500", "title": "pure identifier", "link": "glossary.html#pure-identifier", "paragraphs": [{"id": "fls_6pez8fyiew0k", "number": "B.500:1", "link": "glossary.html#fls_6pez8fyiew0k", "checksum": "98a1e0e586178dd832d3937b1e01ff4acf5ca80629eea845aee2b1eeea59d6d9"}], "informational": false}, {"id": "fls_o6cftnpn3uee", "number": "B.501", "title": "qualified path expression", "link": "glossary.html#qualified-path-expression", "paragraphs": [{"id": "fls_wkas6fxqgmtf", "number": "B.501:1", "link": "glossary.html#fls_wkas6fxqgmtf", "checksum": "a2bbd139c3c525d4aa3da93a22eee0d0326e1865701304f2b48b403c2a284fa6"}, {"id": "fls_mxxjn64ejpc5", "number": "B.501:2", "link": "glossary.html#fls_mxxjn64ejpc5", "checksum": "80a89173f9185fb97c777a95395a6b7855c9027d1d577768efd998eae5c31e12"}], "informational": false}, {"id": "fls_qv0uvhsfwbum", "number": "B.502", "title": "qualified type", "link": "glossary.html#qualified-type", "paragraphs": [{"id": "fls_e7yyzxofo6ei", "number": "B.502:1", "link": "glossary.html#fls_e7yyzxofo6ei", "checksum": "f9d67b747f4924be16ee41163956c3edd830b80768a149da8fd8fe40d21493c9"}, {"id": "fls_a4hexjzo3jem", "number": "B.502:2", "link": "glossary.html#fls_a4hexjzo3jem", "checksum": "1ea3558c6285e7ad5b30aee619511abc42157a7b436cc188060278d493c59e04"}], "informational": false}, {"id": "fls_kovlqq8apdpv", "number": "B.503", "title": "qualified type path", "link": "glossary.html#qualified-type-path", "paragraphs": [{"id": "fls_s0qt9ib38i8e", "number": "B.503:1", "link": "glossary.html#fls_s0qt9ib38i8e", "checksum": "20de034c8eab811505357b0dc243ec4615b17f69608335a6fa8380b6508c46fa"}, {"id": "fls_rr8ffld7rxlt", "number": "B.503:2", "link": "glossary.html#fls_rr8ffld7rxlt", "checksum": "92f4eb79244b35e40cddee777f6124671d6eb4bca1a68ed7da572b4d8e40097c"}], "informational": false}, {"id": "fls_b0m82a8jierq", "number": "B.504", "title": "qualifying trait", "link": "glossary.html#qualifying-trait", "paragraphs": [{"id": "fls_zky1dwbmrqxz", "number": "B.504:1", "link": "glossary.html#fls_zky1dwbmrqxz", "checksum": "8c0b7cb1eb0a5c0da1b30d6bc96b750032e97a59ddda9bd751e641a151f64534"}, {"id": "fls_z6oeuwbnec90", "number": "B.504:2", "link": "glossary.html#fls_z6oeuwbnec90", "checksum": "5a50518b8730e37a490fd94e34bd9d8bb8886d41f8879411bb2d4efc6b35ecde"}], "informational": false}, {"id": "fls_tbvugpuvcluj", "number": "B.505", "title": "range expression", "link": "glossary.html#range-expression", "paragraphs": [{"id": "fls_bffrbucfwu7", "number": "B.505:1", "link": "glossary.html#fls_bffrbucfwu7", "checksum": "25ec8135a5545033a04f63b0f4d5e5e2353ace628c7fd050920bb2cde421dbcf"}, {"id": "fls_1jk43yvxa8ks", "number": "B.505:2", "link": "glossary.html#fls_1jk43yvxa8ks", "checksum": "a29d359f8fe758d5128007ffc3321dd79c642be03b80e068fa040e6f80d69aa7"}], "informational": false}, {"id": "fls_mdvdxr6u13fw", "number": "B.506", "title": "range expression high bound", "link": "glossary.html#range-expression-high-bound", "paragraphs": [{"id": "fls_c70pj8w15nmc", "number": "B.506:1", "link": "glossary.html#fls_c70pj8w15nmc", "checksum": "b56fb4a000ea7a7965a1183fb5cf0be9a407706295181e12fa6957114329fabc"}, {"id": "fls_yxem0ckicxav", "number": "B.506:2", "link": "glossary.html#fls_yxem0ckicxav", "checksum": "b98208d1e2f1279fbfd6f8c0a4482173cedfe0df82d121b32177f211ceed6c45"}], "informational": false}, {"id": "fls_smvgd160eynr", "number": "B.507", "title": "range expression low bound", "link": "glossary.html#range-expression-low-bound", "paragraphs": [{"id": "fls_t10o1p950u00", "number": "B.507:1", "link": "glossary.html#fls_t10o1p950u00", "checksum": "15f27da45a82ebba9574e7cd6903eb4472e29bcc47448d968cebd248b967b296"}, {"id": "fls_vmb2z7oh6gzm", "number": "B.507:2", "link": "glossary.html#fls_vmb2z7oh6gzm", "checksum": "16910901afd4a8aa52f37c706f985fe1ae70f8a7d7b6debb98faa683cf4b2d82"}], "informational": false}, {"id": "fls_6pxg401r6juc", "number": "B.508", "title": "range pattern", "link": "glossary.html#range-pattern", "paragraphs": [{"id": "fls_vf42zdyq23lc", "number": "B.508:1", "link": "glossary.html#fls_vf42zdyq23lc", "checksum": "4178b860a181c00a30681b5b6f159149eac2f59bc136f18a413952e4fbddcf9e"}, {"id": "fls_r36uf3y2denr", "number": "B.508:2", "link": "glossary.html#fls_r36uf3y2denr", "checksum": "164dd2b4005aa309d79414f7014d667000179fdb7bc452b1d8158b0e70a71257"}], "informational": false}, {"id": "fls_3ls9xlgt8ei1", "number": "B.509", "title": "range pattern bound", "link": "glossary.html#range-pattern-bound", "paragraphs": [{"id": "fls_l9xq96bjs4o2", "number": "B.509:1", "link": "glossary.html#fls_l9xq96bjs4o2", "checksum": "b1cd9de2d285020f5591c62a9c34e8572a7adb31a489abfb87f692f69aea89df"}, {"id": "fls_80736cs3axo4", "number": "B.509:2", "link": "glossary.html#fls_80736cs3axo4", "checksum": "0579f993ff22774a401e72b931ca3b048a9401d6caafc4c582e2797f24074867"}], "informational": false}, {"id": "fls_y4rv5cbowvwg", "number": "B.510", "title": "range pattern high bound", "link": "glossary.html#range-pattern-high-bound", "paragraphs": [{"id": "fls_arp7y7yme7yp", "number": "B.510:1", "link": "glossary.html#fls_arp7y7yme7yp", "checksum": "51de55b450d6eeca32140828d287d0178deb4bfec1ae880c51b5d61949bd8de1"}, {"id": "fls_dnwqcswftw71", "number": "B.510:2", "link": "glossary.html#fls_dnwqcswftw71", "checksum": "f27680d0e79080f5fc3a9175674912f8b1113a86b806c226022bc94aba6bf691"}], "informational": false}, {"id": "fls_laev4lmmv0cw", "number": "B.511", "title": "range pattern low bound", "link": "glossary.html#range-pattern-low-bound", "paragraphs": [{"id": "fls_rt7q0msh3op4", "number": "B.511:1", "link": "glossary.html#fls_rt7q0msh3op4", "checksum": "95ef402aee1af3ef126119eb65cb1602d2c58fab6a92773acdbf1db4f1114a91"}, {"id": "fls_j695o93wsu3i", "number": "B.511:2", "link": "glossary.html#fls_j695o93wsu3i", "checksum": "1ccb12b52e379076fb8c0e8221338eff10b94f7c18a4f1bdf11bb25888aa5344"}], "informational": false}, {"id": "fls_iqpxlg7w3cvf", "number": "B.512", "title": "range-from expression", "link": "glossary.html#range-from-expression", "paragraphs": [{"id": "fls_6enyv2oa4abq", "number": "B.512:1", "link": "glossary.html#fls_6enyv2oa4abq", "checksum": "5474073f896c48137618f47655320de5299e20085fa083fc31208745dcbfa9ad"}, {"id": "fls_e1smn0b478ik", "number": "B.512:2", "link": "glossary.html#fls_e1smn0b478ik", "checksum": "51be0d021a2c6e6de9c677e26c40952ccd74a03f106c01b23422e36979841fc1"}], "informational": false}, {"id": "fls_125h4p4zt86q", "number": "B.513", "title": "range-from-to expression", "link": "glossary.html#range-from-to-expression", "paragraphs": [{"id": "fls_nzf6y64jz83f", "number": "B.513:1", "link": "glossary.html#fls_nzf6y64jz83f", "checksum": "219a4e50865322eff0dd151631744f39b71f645d94673379a844b2b275f73656"}, {"id": "fls_mjbxfjulryt", "number": "B.513:2", "link": "glossary.html#fls_mjbxfjulryt", "checksum": "2e781e505fb781e792fa875bdc9b585fbcae08af847fb9b07a60f1d4bae29067"}], "informational": false}, {"id": "fls_8z8nrblarxrv", "number": "B.514", "title": "range-full expression", "link": "glossary.html#range-full-expression", "paragraphs": [{"id": "fls_6mchm7kb7i41", "number": "B.514:1", "link": "glossary.html#fls_6mchm7kb7i41", "checksum": "0fa315b92eb6b4569105b3991791bff35671955a1b50a86421e4e2fab8768710"}, {"id": "fls_u7kd8w5g2icd", "number": "B.514:2", "link": "glossary.html#fls_u7kd8w5g2icd", "checksum": "83268d286f3d6acc84da091dc883acf03f39618fd85783166f330582ff4c3d97"}], "informational": false}, {"id": "fls_tie80ejz8s19", "number": "B.515", "title": "range-inclusive expression", "link": "glossary.html#range-inclusive-expression", "paragraphs": [{"id": "fls_9vja0wev84a7", "number": "B.515:1", "link": "glossary.html#fls_9vja0wev84a7", "checksum": "c419855bc5b56ecc7a8dc69411babe0aed54f62a687c5de8352c86dfbaa2ca13"}, {"id": "fls_lpcsb8dtldk3", "number": "B.515:2", "link": "glossary.html#fls_lpcsb8dtldk3", "checksum": "35db6df8f6c7e38dc4def42c08ef8235619d1b9b3d2959bbf93006eec59009c0"}], "informational": false}, {"id": "fls_etvgkb8zcfpd", "number": "B.516", "title": "range-to expression", "link": "glossary.html#range-to-expression", "paragraphs": [{"id": "fls_urnfp1j9d5v4", "number": "B.516:1", "link": "glossary.html#fls_urnfp1j9d5v4", "checksum": "3861615e76a6cf8e957846bed849dc0dc834b7b93c7d0fc784cecc1e4edf1c24"}, {"id": "fls_lft9cd7h8cfv", "number": "B.516:2", "link": "glossary.html#fls_lft9cd7h8cfv", "checksum": "480ec4dd84e1056808f5f52463cda70e308cba46d99949f428045c3c8cd0a218"}], "informational": false}, {"id": "fls_ap5754dfltt5", "number": "B.517", "title": "range-to-inclusive expression", "link": "glossary.html#range-to-inclusive-expression", "paragraphs": [{"id": "fls_t4fjanjvkd69", "number": "B.517:1", "link": "glossary.html#fls_t4fjanjvkd69", "checksum": "8d9f9daa117d57cfc454b52c7645b1932187974fa5105876b1bcfc45233a7a04"}, {"id": "fls_krei7lc6lo8q", "number": "B.517:2", "link": "glossary.html#fls_krei7lc6lo8q", "checksum": "766e107a69011593d434341484ceb725c70e248fa535f9426fdb2bcc4980fe2e"}], "informational": false}, {"id": "fls_ipeh92kh17ze", "number": "B.518", "title": "raw byte string literal", "link": "glossary.html#raw-byte-string-literal", "paragraphs": [{"id": "fls_8v5k3wemy4tl", "number": "B.518:1", "link": "glossary.html#fls_8v5k3wemy4tl", "checksum": "95d9ef2d49138b2a9fb0173f99d5db0a8a114a95ebd140fd1daf20d94e8da46e"}, {"id": "fls_5x71i3ay3na2", "number": "B.518:2", "link": "glossary.html#fls_5x71i3ay3na2", "checksum": "1222d9cb35a5e949bbd837dc84397530b43462810f5f1c0c44c51d6fc78d9d55"}], "informational": false}, {"id": "fls_uv4dyt4gi32x", "number": "B.519", "title": "raw pointer", "link": "glossary.html#raw-pointer", "paragraphs": [{"id": "fls_rbdilcmt2cns", "number": "B.519:1", "link": "glossary.html#fls_rbdilcmt2cns", "checksum": "2d1584aa9f4b58f2bbf727cf53a2f81da74885f3c6e6309608330b803492e1ac"}], "informational": false}, {"id": "fls_9los8hwh60z0", "number": "B.520", "title": "raw pointer type", "link": "glossary.html#raw-pointer-type", "paragraphs": [{"id": "fls_wspawcoqxfbh", "number": "B.520:1", "link": "glossary.html#fls_wspawcoqxfbh", "checksum": "a485156d19237af245bd23bf2b453438690b4d0984b3baad3baf825c56b5cd14"}, {"id": "fls_ctksliaxhzo9", "number": "B.520:2", "link": "glossary.html#fls_ctksliaxhzo9", "checksum": "d88e1974ad411ce2cf9dd9035ef35a501514d9e4b8bc8bb8f748dec30b6d871a"}], "informational": false}, {"id": "fls_echjohx6fjc", "number": "B.521", "title": "raw string literal", "link": "glossary.html#raw-string-literal", "paragraphs": [{"id": "fls_48t4v316951j", "number": "B.521:1", "link": "glossary.html#fls_48t4v316951j", "checksum": "c9ebb5dde93887446f9ffb7c6479338c29861febc756605dd9c27d689adb1cdb"}, {"id": "fls_26ol7lrnux94", "number": "B.521:2", "link": "glossary.html#fls_26ol7lrnux94", "checksum": "0811723671ee722a9cd5cbfc0d41ca93f15e3302d14e510db6c7d1c7a647472b"}], "informational": false}, {"id": "fls_sae1haavspvp", "number": "B.522", "title": "reachable control flow path", "link": "glossary.html#reachable-control-flow-path", "paragraphs": [{"id": "fls_ixrvzubg8j3e", "number": "B.522:1", "link": "glossary.html#fls_ixrvzubg8j3e", "checksum": "5739a12aef006ce4cda2a2e1b494a76ed4903009098ede2b5f64a6bba55c2b85"}], "informational": false}, {"id": "fls_nfb3ciarl50w", "number": "B.523", "title": "receiver operand", "link": "glossary.html#receiver-operand", "paragraphs": [{"id": "fls_odbg4bizvqxq", "number": "B.523:1", "link": "glossary.html#fls_odbg4bizvqxq", "checksum": "96f5ef7d68e99dbcdaa9d2750ebef1f16c2c53171efd2587347e60e12e9c75de"}, {"id": "fls_4rme1x6romeg", "number": "B.523:2", "link": "glossary.html#fls_4rme1x6romeg", "checksum": "59822d397a3a69e2ec31a26ab4c80a8d277b159ad97c2ceb016e353899a81112"}], "informational": false}, {"id": "fls_kpkm0j40xq5j", "number": "B.524", "title": "receiver type", "link": "glossary.html#receiver-type", "paragraphs": [{"id": "fls_vgqmmlpfas5t", "number": "B.524:1", "link": "glossary.html#fls_vgqmmlpfas5t", "checksum": "16107d984d3916e05e23cd5294194dc6414ecfcb591e4d5c77f71df576313d5b"}], "informational": false}, {"id": "fls_ng6ikjlscw7m", "number": "B.525", "title": "record enum variant", "link": "glossary.html#record-enum-variant", "paragraphs": [{"id": "fls_nwyvpqmoijo2", "number": "B.525:1", "link": "glossary.html#fls_nwyvpqmoijo2", "checksum": "6a6b792ef993655774a38b538d5fc34f98983eae1feef2ede4b558ab58dbe311"}], "informational": false}, {"id": "fls_jdd6h8pdp30x", "number": "B.526", "title": "record struct", "link": "glossary.html#record-struct", "paragraphs": [{"id": "fls_qyd7kqnpjs2", "number": "B.526:1", "link": "glossary.html#fls_qyd7kqnpjs2", "checksum": "898a3d49045e565e6964e04785f03b13d8e6f8c9457ea99c15e9d27695599924"}, {"id": "fls_rqs5rdnhkwnx", "number": "B.526:2", "link": "glossary.html#fls_rqs5rdnhkwnx", "checksum": "9bb187eb53901cfc7937e93f424a8c50f7118a2937f97fced3f15eae9ccf023c"}], "informational": false}, {"id": "fls_hzkwzbk5wp54", "number": "B.527", "title": "record struct field", "link": "glossary.html#record-struct-field", "paragraphs": [{"id": "fls_lb0t10evec6z", "number": "B.527:1", "link": "glossary.html#fls_lb0t10evec6z", "checksum": "8462be667fdcb4156499cb7cda35dbabd082a2bdbb9a6eb113c29d9eaf63058a"}, {"id": "fls_bjwmhxf3ae14", "number": "B.527:2", "link": "glossary.html#fls_bjwmhxf3ae14", "checksum": "2e31dd1ae2b36f17d7b79b844d29e68d1478a7242aff87211f32b47c6d63bb32"}], "informational": false}, {"id": "fls_at2caaqlpva1", "number": "B.528", "title": "record struct pattern", "link": "glossary.html#record-struct-pattern", "paragraphs": [{"id": "fls_q7njznxhmmw", "number": "B.528:1", "link": "glossary.html#fls_q7njznxhmmw", "checksum": "c1a06d552969025bc8b900d0a656b86d782d3f7ae86dca4f52cf24e217e7bd0b"}, {"id": "fls_viwieu1p3hds", "number": "B.528:2", "link": "glossary.html#fls_viwieu1p3hds", "checksum": "d24fdc09784f96ce368236563ba4289179ffff8ad78085abc9eea282b7fcb48b"}], "informational": false}, {"id": "fls_uthd12hz3h4v", "number": "B.529", "title": "record struct type", "link": "glossary.html#record-struct-type", "paragraphs": [{"id": "fls_mgrz3o51gbis", "number": "B.529:1", "link": "glossary.html#fls_mgrz3o51gbis", "checksum": "485ef41309d2b7ee99f92112f16db795305331b0d8fc0abc7ed6582e65ac84fa"}], "informational": false}, {"id": "fls_cps5c1chwmce", "number": "B.530", "title": "record struct value", "link": "glossary.html#record-struct-value", "paragraphs": [{"id": "fls_smbic0jmck1h", "number": "B.530:1", "link": "glossary.html#fls_smbic0jmck1h", "checksum": "dbff69e7368ac026c9a894281f0286a34e1bbfe7054992f92336e6e7110b0f47"}], "informational": false}, {"id": "fls_94fkxohlnq9i", "number": "B.531", "title": "recursive type", "link": "glossary.html#recursive-type", "paragraphs": [{"id": "fls_2t8qom6dhcjb", "number": "B.531:1", "link": "glossary.html#fls_2t8qom6dhcjb", "checksum": "a8a8919d753d67a5e853e8f9243b635b62f24429032dc9b096ce110f00ecd4da"}], "informational": false}, {"id": "fls_onv3cs5tckgo", "number": "B.532", "title": "reference", "link": "glossary.html#reference", "paragraphs": [{"id": "fls_s82y4hsuytiq", "number": "B.532:1", "link": "glossary.html#fls_s82y4hsuytiq", "checksum": "63ef0536d990e6e988c965c82abb6c2c6fca7dc35dddfca134a420c077a7c641"}], "informational": false}, {"id": "fls_1xgsxrzifnql", "number": "B.533", "title": "reference identifier pattern", "link": "glossary.html#reference-identifier-pattern", "paragraphs": [{"id": "fls_jqs6oj4rfbpn", "number": "B.533:1", "link": "glossary.html#fls_jqs6oj4rfbpn", "checksum": "6477c1ccfeb986ace644b6b3db6c2ae8534b4a3d6fdaeab0cc075e20c780db7d"}], "informational": false}, {"id": "fls_kiy6b1wbn0a3", "number": "B.534", "title": "reference pattern", "link": "glossary.html#reference-pattern", "paragraphs": [{"id": "fls_ebshqnhmwgow", "number": "B.534:1", "link": "glossary.html#fls_ebshqnhmwgow", "checksum": "84bca57f762a49753ed216be2fe143c33de2fefa9b1eafc5b0439e95c7948ffc"}, {"id": "fls_rghv5drrqxs1", "number": "B.534:2", "link": "glossary.html#fls_rghv5drrqxs1", "checksum": "5efa93ce6fa26af80a51874f947567d0c94e1a9b3b795bcdd8bd8cdf81ae3b89"}], "informational": false}, {"id": "fls_uw32xmrfgzcd", "number": "B.535", "title": "reference type", "link": "glossary.html#reference-type", "paragraphs": [{"id": "fls_l3knopsdlyf2", "number": "B.535:1", "link": "glossary.html#fls_l3knopsdlyf2", "checksum": "f38ab06c89f104d3e18ef3fd4d3cff621ab49a274f35660b4bc7d77712b39721"}, {"id": "fls_jzjatdpxqt9u", "number": "B.535:2", "link": "glossary.html#fls_jzjatdpxqt9u", "checksum": "4f074824c61c9cdcdfc162ddd7058c0581bd1e622adf827935738bdc66ff343a"}], "informational": false}, {"id": "fls_h8x0u32wfz8v", "number": "B.536", "title": "referent", "link": "glossary.html#referent", "paragraphs": [{"id": "fls_78ipj8avpwzl", "number": "B.536:1", "link": "glossary.html#fls_78ipj8avpwzl", "checksum": "ae001364b117d85ca8352514a1027e91f5d918006cd7b2f368c7306b6015c0b9"}], "informational": false}, {"id": "fls_bkwy183h9ygt", "number": "B.537", "title": "refutability", "link": "glossary.html#refutability", "paragraphs": [{"id": "fls_gzjrfx19fg40", "number": "B.537:1", "link": "glossary.html#fls_gzjrfx19fg40", "checksum": "1bcda5a5391dd6835db7f8f68d176b8314c4d0aa46215fea02b61d0dbb7fdbc9"}], "informational": false}, {"id": "fls_v99joc4m6cup", "number": "B.538", "title": "refutable constant", "link": "glossary.html#refutable-constant", "paragraphs": [{"id": "fls_mc6hsomq08uu", "number": "B.538:1", "link": "glossary.html#fls_mc6hsomq08uu", "checksum": "638efa8ac95ee61a4e7819779c00f8752e3292765447404c141af6db8331c6fb"}], "informational": false}, {"id": "fls_srdcx5oi4dcp", "number": "B.539", "title": "refutable pattern", "link": "glossary.html#refutable-pattern", "paragraphs": [{"id": "fls_re7qz78koman", "number": "B.539:1", "link": "glossary.html#fls_re7qz78koman", "checksum": "3c637f1b6f7ece643d7ec221e0f5cdd251d4223ce8a9ac7c814ad6667f224a4f"}], "informational": false}, {"id": "fls_dkq1h6p9yaar", "number": "B.540", "title": "refutable type", "link": "glossary.html#refutable-type", "paragraphs": [{"id": "fls_l2yz6jeehm52", "number": "B.540:1", "link": "glossary.html#fls_l2yz6jeehm52", "checksum": "b89cf8d0e1e227cb599ddfe6ea05472a0daeb7e5a95929946f50ce7a1e5fe513"}], "informational": false}, {"id": "fls_t84qajmzzmbb", "number": "B.541", "title": "register", "link": "glossary.html#register", "paragraphs": [{"id": "fls_fvdsybu8dw8w", "number": "B.541:1", "link": "glossary.html#fls_fvdsybu8dw8w", "checksum": "7faca2ed636bb3e5aa2526d9da899922af17ba01f25d079d68fb51db549657a9"}], "informational": false}, {"id": "fls_iswwmgkjfywt", "number": "B.542", "title": "register argument", "link": "glossary.html#register-argument", "paragraphs": [{"id": "fls_rnofdckbvmrc", "number": "B.542:1", "link": "glossary.html#fls_rnofdckbvmrc", "checksum": "6e0b017053092fcc9c857471fbd863071395338216ef63c571bf908fa882f7dc"}, {"id": "fls_aof7o9xreo2s", "number": "B.542:2", "link": "glossary.html#fls_aof7o9xreo2s", "checksum": "8d856bf27f0fde9c22a9df8467fb26a0360905e0ebed9a2a93a76f3d276968a9"}], "informational": false}, {"id": "fls_2qkuihcfmzq6", "number": "B.543", "title": "register class", "link": "glossary.html#register-class", "paragraphs": [{"id": "fls_2h0oys733vjl", "number": "B.543:1", "link": "glossary.html#fls_2h0oys733vjl", "checksum": "8b376bd574aef40095ec0b238e2bdb07e92f1d0bf017715d535add5a514048a2"}], "informational": false}, {"id": "fls_8gc17cgcs9n1", "number": "B.544", "title": "register class argument", "link": "glossary.html#register-class-argument", "paragraphs": [{"id": "fls_kslxayplx9il", "number": "B.544:1", "link": "glossary.html#fls_kslxayplx9il", "checksum": "2c84dd8f18191eee2a6a8d33211ea59f50d82057eea605ea0978a7d4edfac0a8"}], "informational": false}, {"id": "fls_xztkanlrskrt", "number": "B.545", "title": "register class name", "link": "glossary.html#register-class-name", "paragraphs": [{"id": "fls_qssfol0uyrrb", "number": "B.545:1", "link": "glossary.html#fls_qssfol0uyrrb", "checksum": "19a19b549736a26c09bba9e2ea08ec8151747b579d265815a83a7ff58665e069"}, {"id": "fls_y1zpifav2c1a", "number": "B.545:2", "link": "glossary.html#fls_y1zpifav2c1a", "checksum": "1877dee9700e4ed62371845a415448fcce9d210cdfd66e8b969b415a3bc9ad4d"}], "informational": false}, {"id": "fls_7kirejzlkdek", "number": "B.546", "title": "register expression", "link": "glossary.html#register-expression", "paragraphs": [{"id": "fls_2cvy6xfoq4qg", "number": "B.546:1", "link": "glossary.html#fls_2cvy6xfoq4qg", "checksum": "645b6eb9a167d07c82bc9500a8b9863c903eb0c0d87ecced53fbd7d4170d32db"}, {"id": "fls_yezo09cqwuuy", "number": "B.546:2", "link": "glossary.html#fls_yezo09cqwuuy", "checksum": "bc7655da0c0b2493619323e4e76a6d2a6ddb6236944509650b0e7fcf6506a21f"}], "informational": false}, {"id": "fls_kbbk666ibs2x", "number": "B.547", "title": "register name", "link": "glossary.html#register-name", "paragraphs": [{"id": "fls_u5r8ypnjah5e", "number": "B.547:1", "link": "glossary.html#fls_u5r8ypnjah5e", "checksum": "ec04e36ab9824fb53b64b8edefbd7fb405382282c56f9a59a77309231e7deed6"}, {"id": "fls_weyifrnggwpn", "number": "B.547:2", "link": "glossary.html#fls_weyifrnggwpn", "checksum": "36595f45672c50aaf13a16508da79116a9658a80f87b1609a1864611697d725e"}], "informational": false}, {"id": "fls_foh6xelwbsy9", "number": "B.548", "title": "register parameter", "link": "glossary.html#register-parameter", "paragraphs": [{"id": "fls_jichmij5dlxj", "number": "B.548:1", "link": "glossary.html#fls_jichmij5dlxj", "checksum": "6d060bc7e74c626d5e9ef880109c402c07be27a6b98aedbc2cf8bcd1512be5b6"}], "informational": false}, {"id": "fls_ndpkxnlmnn7m", "number": "B.549", "title": "register parameter modifier", "link": "glossary.html#register-parameter-modifier", "paragraphs": [{"id": "fls_8bdonxhzs0qi", "number": "B.549:1", "link": "glossary.html#fls_8bdonxhzs0qi", "checksum": "1a86eb14800527d49e09acbab5e37b415b2c1784080072bc0fdd2043ae6b6663"}], "informational": false}, {"id": "fls_jnhuwipah0no", "number": "B.550", "title": "remainder assignment", "link": "glossary.html#remainder-assignment", "paragraphs": [{"id": "fls_58edc2xtqcar", "number": "B.550:1", "link": "glossary.html#fls_58edc2xtqcar", "checksum": "d727fb7a354746a21a4e4fc4f11e8b9c2db5ef084c60db369114e4b63fe510ff"}], "informational": false}, {"id": "fls_mio7pagghcks", "number": "B.551", "title": "remainder assignment expression", "link": "glossary.html#remainder-assignment-expression", "paragraphs": [{"id": "fls_en7ytqvefw7j", "number": "B.551:1", "link": "glossary.html#fls_en7ytqvefw7j", "checksum": "cbdb71aa37ce634750e0799d9dc5b86eca6b8974b0be2fe6669773d769756dd3"}, {"id": "fls_rkk80quk8uzc", "number": "B.551:2", "link": "glossary.html#fls_rkk80quk8uzc", "checksum": "9e18bbf61220b891a2ce72f5d65c260cac55c58d7298ef16136dc545968bf4ff"}], "informational": false}, {"id": "fls_f15h4919ln3k", "number": "B.552", "title": "remainder expression", "link": "glossary.html#remainder-expression", "paragraphs": [{"id": "fls_l6muwnclm1do", "number": "B.552:1", "link": "glossary.html#fls_l6muwnclm1do", "checksum": "51bd8ecd32b9a1aff3aea5aad31fb5378fb80bc29756499f75a8ba2fca92171f"}, {"id": "fls_h98qlby2uiru", "number": "B.552:2", "link": "glossary.html#fls_h98qlby2uiru", "checksum": "5f7009c05621e878183621ab8f4a282652631c2e2d50bacb7e69762705ae39e5"}], "informational": false}, {"id": "fls_8ibsdx4dx6s7", "number": "B.553", "title": "renaming", "link": "glossary.html#renaming", "paragraphs": [{"id": "fls_cp8u9kq44o8a", "number": "B.553:1", "link": "glossary.html#fls_cp8u9kq44o8a", "checksum": "2593e8774b45cd7ca11eb6281ce21fc065706b013e11558b033257509e2ccd38"}, {"id": "fls_8inznqig2ibr", "number": "B.553:2", "link": "glossary.html#fls_8inznqig2ibr", "checksum": "85b6b742d2d0697e2fe95f1418cde3b1692849488b515cf6621535b9fe59b631"}], "informational": false}, {"id": "fls_b35oy3nnzixm", "number": "B.554", "title": "repeat operand", "link": "glossary.html#repeat-operand", "paragraphs": [{"id": "fls_ol2y1og2jwss", "number": "B.554:1", "link": "glossary.html#fls_ol2y1og2jwss", "checksum": "58647c3a13d6e823b666c14587d23bbe61fdf882fe125f19e944a9ba5e3c0921"}, {"id": "fls_r4acyux78txu", "number": "B.554:2", "link": "glossary.html#fls_r4acyux78txu", "checksum": "c9108185fcea141156210b6a9b36948c33cb965852ca382bb29ac5a16dc1aaaa"}], "informational": false}, {"id": "fls_r2yjjhrvr9qi", "number": "B.555", "title": "repetition operator", "link": "glossary.html#repetition-operator", "paragraphs": [{"id": "fls_67907pk7uogl", "number": "B.555:1", "link": "glossary.html#fls_67907pk7uogl", "checksum": "43a3e84b5d19866a6b09c6cd2ea7838a7d65fa6f1fd49b2f0ddbaca5a81fb1f0"}, {"id": "fls_hiasmmpr2jks", "number": "B.555:2", "link": "glossary.html#fls_hiasmmpr2jks", "checksum": "66014b23ff01256559e0ae6d92972ea6cdf24d08a51d8eca882fc60509b5dcbc"}], "informational": false}, {"id": "fls_o34kkn5pi0sh", "number": "B.556", "title": "representation", "link": "glossary.html#representation", "paragraphs": [{"id": "fls_69j7pq2o1iu", "number": "B.556:1", "link": "glossary.html#fls_69j7pq2o1iu", "checksum": "4a662cea85148083b5a0179032f600b305245ba09178fd3a04d08f592be24a88"}], "informational": false}, {"id": "fls_tsbbt6wzropn", "number": "B.557", "title": "representation modifier", "link": "glossary.html#representation-modifier", "paragraphs": [{"id": "fls_bcvxl7hkxqdz", "number": "B.557:1", "link": "glossary.html#fls_bcvxl7hkxqdz", "checksum": "e9bfd0ee98494b56dd202e318c640249b13ae5d86870e455002d02d048177540"}, {"id": "fls_tavyjj66ubuo", "number": "B.557:2", "link": "glossary.html#fls_tavyjj66ubuo", "checksum": "be25a92306a95fb645151169bd085704fcb7b17e852e53e4007b41069266f593"}], "informational": false}, {"id": "fls_x7yd6o4akrrg", "number": "B.558", "title": "reserved keyword", "link": "glossary.html#reserved-keyword", "paragraphs": [{"id": "fls_b67hj7fdbq4s", "number": "B.558:1", "link": "glossary.html#fls_b67hj7fdbq4s", "checksum": "80da9d74f91e0b7374d2d43f8525151ded229c97303782a5579e4e10cbccbf0a"}, {"id": "fls_hp9iqdrkt0cg", "number": "B.558:2", "link": "glossary.html#fls_hp9iqdrkt0cg", "checksum": "6aa6c77af95fba53f06c4d1915a60c8d2a2d903acf2273c4d09b0455acaf352a"}], "informational": false}, {"id": "fls_o5iugatzgybu", "number": "B.559", "title": "resolution", "link": "glossary.html#resolution", "paragraphs": [{"id": "fls_pqjevls5ce4y", "number": "B.559:1", "link": "glossary.html#fls_pqjevls5ce4y", "checksum": "baf40f26f57e39f146a5a265c0e0698c69e1a4dfb5a690eb111cadeca9182193"}], "informational": false}, {"id": "fls_uuo1qvrz1i0k", "number": "B.560", "title": "rest pattern", "link": "glossary.html#rest-pattern", "paragraphs": [{"id": "fls_xngp3h1znw9o", "number": "B.560:1", "link": "glossary.html#fls_xngp3h1znw9o", "checksum": "33ffd10b2c15ccd3a8cf50d15690bd22ad8479acab34f6927383fb6cbf0d17c6"}, {"id": "fls_rnmhg04u0oga", "number": "B.560:2", "link": "glossary.html#fls_rnmhg04u0oga", "checksum": "75bcf7113bcf87575386bd9c1c9697f83ffac54cba4c3988635eff773dca4b23"}], "informational": false}, {"id": "fls_7tl9qo8yj8xh", "number": "B.561", "title": "return expression", "link": "glossary.html#return-expression", "paragraphs": [{"id": "fls_vnupfc6s0s7b", "number": "B.561:1", "link": "glossary.html#fls_vnupfc6s0s7b", "checksum": "8e5697dfef174570e859144dc047d2c731b3979328522bd218fcc947258ae3d7"}, {"id": "fls_phd8zrsyuzu7", "number": "B.561:2", "link": "glossary.html#fls_phd8zrsyuzu7", "checksum": "4302896518e1234a4d83fc5af30e01946c70fe4bdadb33c0cbf0a1782495c402"}], "informational": false}, {"id": "fls_b8dbm1bs65kw", "number": "B.562", "title": "return type", "link": "glossary.html#return-type", "paragraphs": [{"id": "fls_cwucgbmmhnnm", "number": "B.562:1", "link": "glossary.html#fls_cwucgbmmhnnm", "checksum": "70879cb0ab39a64ebe3b442093d6a2fc2ff966f0e8549fb1c631d12636969550"}, {"id": "fls_utuprsem6n58", "number": "B.562:2", "link": "glossary.html#fls_utuprsem6n58", "checksum": "23039eb519551746748ccee9a37c161f4bc24f50c44c29205b9dd542e9e9d0b2"}], "informational": false}, {"id": "fls_76o7m8vny72n", "number": "B.563", "title": "right operand", "link": "glossary.html#right-operand", "paragraphs": [{"id": "fls_e1j9s4odze9b", "number": "B.563:1", "link": "glossary.html#fls_e1j9s4odze9b", "checksum": "86cda4a9822fadeb8447b3f1af44c4f51ebbb97ab13ededb204dac6e6e965b60"}, {"id": "fls_hq7x1t5dmdlp", "number": "B.563:2", "link": "glossary.html#fls_hq7x1t5dmdlp", "checksum": "06e634353c4e82d4468308ea5d723453faf370ccb23f1145542b72295fcc7d85"}], "informational": false}, {"id": "fls_9u67noriaxfe", "number": "B.564", "title": "rule matching", "link": "glossary.html#rule-matching", "paragraphs": [{"id": "fls_dux9js5oixjd", "number": "B.564:1", "link": "glossary.html#fls_dux9js5oixjd", "checksum": "cd5102a8cfd0c59ef4daced4388f485d63908b87f53b1df4647415da2ae37aa5"}], "informational": false}, {"id": "fls_fki32ns69q4j", "number": "B.565", "title": "rustc", "link": "glossary.html#rustc", "paragraphs": [{"id": "fls_zdgbeixirjfm", "number": "B.565:1", "link": "glossary.html#fls_zdgbeixirjfm", "checksum": "4c72541805d9bbb653e8229bee9d003402439bfde83635c713d382f784081ab0"}], "informational": false}, {"id": "fls_q4mrio7cwv5k", "number": "B.566", "title": "safety invariant", "link": "glossary.html#safety-invariant", "paragraphs": [{"id": "fls_wrzfamtmmgtx", "number": "B.566:1", "link": "glossary.html#fls_wrzfamtmmgtx", "checksum": "44ed3ec7e8a13d09d1197cee99842a411cd1f9e9a3765034ff0d9964ca82b79e"}], "informational": false}, {"id": "fls_xemnghzzobql", "number": "B.567", "title": "scalar type", "link": "glossary.html#scalar-type", "paragraphs": [{"id": "fls_ggbqfw2nywoa", "number": "B.567:1", "link": "glossary.html#fls_ggbqfw2nywoa", "checksum": "5bbbfb9f2266ab992cb6514bff6559967d1e60663b5aef621facb0efcf1d3215"}], "informational": false}, {"id": "fls_fj8mdxi967px", "number": "B.568", "title": "scope", "link": "glossary.html#scope", "paragraphs": [{"id": "fls_fachaj550cq1", "number": "B.568:1", "link": "glossary.html#fls_fachaj550cq1", "checksum": "f839a240a597ec67f92e0f0866d3eee01bfaae17db27509a4a39cf9c2aca7897"}], "informational": false}, {"id": "fls_xzuinkbn5e00", "number": "B.569", "title": "scope hierarchy", "link": "glossary.html#scope-hierarchy", "paragraphs": [{"id": "fls_spcc3l9x939d", "number": "B.569:1", "link": "glossary.html#fls_spcc3l9x939d", "checksum": "1e4c8312d7803299a919834a8a36b4fd7b380ef2d293b9e47095dc6a56d579cc"}], "informational": false}, {"id": "fls_rfk06mm3pdxg", "number": "B.570", "title": "selected field", "link": "glossary.html#selected-field", "paragraphs": [{"id": "fls_8otlvwlqrd4e", "number": "B.570:1", "link": "glossary.html#fls_8otlvwlqrd4e", "checksum": "f217c898ac88c6ff78f0f45c97cc69a939aab171fe5db230f08699d88496975f"}], "informational": false}, {"id": "fls_9o2hcy6t7dac", "number": "B.571", "title": "Self", "link": "glossary.html#self", "paragraphs": [{"id": "fls_q6whqbfusswf", "number": "B.571:1", "link": "glossary.html#fls_q6whqbfusswf", "checksum": "ae949c626ca1c4fd182bff3bb2c6ae602b1f889bb8abd2bb65ac94a93fbd0ca3"}], "informational": false}, {"id": "fls_6wjlbzmlx9n4", "number": "B.572", "title": "self parameter", "link": "glossary.html#self-parameter", "paragraphs": [{"id": "fls_ksne48eip15", "number": "B.572:1", "link": "glossary.html#fls_ksne48eip15", "checksum": "43c0eb1d09bf4b44fd390dd1402c3a5e5121edfb8a674df2e6e198a59314ec34"}], "informational": false}, {"id": "fls_jq213cesxhyp", "number": "B.573", "title": "self public modifier", "link": "glossary.html#self-public-modifier", "paragraphs": [{"id": "fls_ln3bzqgctfym", "number": "B.573:1", "link": "glossary.html#fls_ln3bzqgctfym", "checksum": "b064a306128dd1ad0ab8982a34e8f6f561c8fa287572db62090d49a1f79a5c10"}, {"id": "fls_21cvbfjpckkt", "number": "B.573:2", "link": "glossary.html#fls_21cvbfjpckkt", "checksum": "21a87900d3877a249502b56ad13c8b8975fdf3dfbb4708cb4322219fc6a2d7a4"}], "informational": false}, {"id": "fls_exmzlnmxqvp7", "number": "B.574", "title": "Self scope", "link": "glossary.html#self-scope", "paragraphs": [{"id": "fls_psvqwgrmfmh0", "number": "B.574:1", "link": "glossary.html#fls_psvqwgrmfmh0", "checksum": "97f1da09fe3c06af19fe739ee76620d5c899e250ac1819b46caef48d4b5886dc"}], "informational": false}, {"id": "fls_8spw41g0dbqw", "number": "B.575", "title": "send type", "link": "glossary.html#send-type", "paragraphs": [{"id": "fls_qfkng98dw6yy", "number": "B.575:1", "link": "glossary.html#fls_qfkng98dw6yy", "checksum": "e4628e0ecb8154611e063fbf77429b26c4b76b452ef3dfae6b82bf14284efeaf"}], "informational": false}, {"id": "fls_at8q1svh3isg", "number": "B.576", "title": "separator", "link": "glossary.html#separator", "paragraphs": [{"id": "fls_128xny4qfcj5", "number": "B.576:1", "link": "glossary.html#fls_128xny4qfcj5", "checksum": "903a99b97d49da2def61a6ad297e6e7cacc921a870b547a2e4fb4d1c24ef769b"}], "informational": false}, {"id": "fls_rtgis2k7by2r", "number": "B.577", "title": "sequence type", "link": "glossary.html#sequence-type", "paragraphs": [{"id": "fls_lk1oslxh8h9p", "number": "B.577:1", "link": "glossary.html#fls_lk1oslxh8h9p", "checksum": "655a756015de86a2930f125390ef8928b2552753f5d02b06b7a17c3f2eb04f97"}], "informational": false}, {"id": "fls_huklmswzx8mg", "number": "B.578", "title": "shadowing", "link": "glossary.html#shadowing", "paragraphs": [{"id": "fls_li3nxopeh9cl", "number": "B.578:1", "link": "glossary.html#fls_li3nxopeh9cl", "checksum": "62980a85f7903df5b0e14a811b9522fe6e121c2fd45bf15b22e287f1a52435a8"}], "informational": false}, {"id": "fls_c9xwhhg639u5", "number": "B.579", "title": "shared borrow", "link": "glossary.html#shared-borrow", "paragraphs": [{"id": "fls_gmbskxin90zi", "number": "B.579:1", "link": "glossary.html#fls_gmbskxin90zi", "checksum": "2193c6dcec0b5edf5722d4f94d8ecb73661810ced851124fb778ade3dd5bb758"}], "informational": false}, {"id": "fls_18xazs7sp4", "number": "B.580", "title": "shared reference", "link": "glossary.html#shared-reference", "paragraphs": [{"id": "fls_cspa4c5mscnw", "number": "B.580:1", "link": "glossary.html#fls_cspa4c5mscnw", "checksum": "2dbd2d9375f3d39970d976141b7018b911bc54b2ec02a5aea07f2c6622870744"}], "informational": false}, {"id": "fls_antrblstppyf", "number": "B.581", "title": "shared reference type", "link": "glossary.html#shared-reference-type", "paragraphs": [{"id": "fls_8z9wb3eu5yp1", "number": "B.581:1", "link": "glossary.html#fls_8z9wb3eu5yp1", "checksum": "6a1fef902a0c781f04b8476f20982b8beb543702ccb5a62918c3bf9d2d8917de"}], "informational": false}, {"id": "fls_o8evukgr0y98", "number": "B.582", "title": "shift left assignment", "link": "glossary.html#shift-left-assignment", "paragraphs": [{"id": "fls_6adwrtvab6tw", "number": "B.582:1", "link": "glossary.html#fls_6adwrtvab6tw", "checksum": "64222126b2056e9b6d454a80a4515f9e7eb4710b27be383ce8cebc89dd173fa6"}], "informational": false}, {"id": "fls_29n0oe4d7lwa", "number": "B.583", "title": "shift left assignment expression", "link": "glossary.html#shift-left-assignment-expression", "paragraphs": [{"id": "fls_j15ke2p8cjfp", "number": "B.583:1", "link": "glossary.html#fls_j15ke2p8cjfp", "checksum": "94063dcde3de2a93780051ef91049b87fe9a40d3f4284cfb4b1f5fe3a3466f97"}, {"id": "fls_ozu74fsakomn", "number": "B.583:2", "link": "glossary.html#fls_ozu74fsakomn", "checksum": "d0afb05c1db5d98d77429c56828d4ae519fd86b93587699fe3b7c6ee83a19fc9"}], "informational": false}, {"id": "fls_sru4wi5jomoe", "number": "B.584", "title": "shift left expression", "link": "glossary.html#shift-left-expression", "paragraphs": [{"id": "fls_phiv6k4emauc", "number": "B.584:1", "link": "glossary.html#fls_phiv6k4emauc", "checksum": "d93daef004fcb997f097936352dc3432de5d77d9c342ac541f4ad2e997583c00"}, {"id": "fls_56lu9kenzig9", "number": "B.584:2", "link": "glossary.html#fls_56lu9kenzig9", "checksum": "1cc2492433debb414f0eb4fcf241bef3a32b6d3053e2909902cf511ad574d4a8"}], "informational": false}, {"id": "fls_v5lmae8ijimq", "number": "B.585", "title": "shift right assignment", "link": "glossary.html#shift-right-assignment", "paragraphs": [{"id": "fls_xuwchjwhdya8", "number": "B.585:1", "link": "glossary.html#fls_xuwchjwhdya8", "checksum": "f091144751bd01b8092c1b44d2132b27a8011b60e3acf525b3b432641f5dd4cd"}], "informational": false}, {"id": "fls_cqfzbsasnd1t", "number": "B.586", "title": "shift right assignment expression", "link": "glossary.html#shift-right-assignment-expression", "paragraphs": [{"id": "fls_1jpnp7hatlmu", "number": "B.586:1", "link": "glossary.html#fls_1jpnp7hatlmu", "checksum": "fe6f5bbd825f7060b3539b3ddccda6664da3131532c0613b357f0cf3ca289102"}, {"id": "fls_naqzlebew1uf", "number": "B.586:2", "link": "glossary.html#fls_naqzlebew1uf", "checksum": "c74aed7ba0e30c17069b8d407e81466b6ae0ca370ed263a025cf967bcb34060b"}], "informational": false}, {"id": "fls_dj6epbraptqn", "number": "B.587", "title": "shift right expression", "link": "glossary.html#shift-right-expression", "paragraphs": [{"id": "fls_j6itily0u0k9", "number": "B.587:1", "link": "glossary.html#fls_j6itily0u0k9", "checksum": "cc25aa4d57911509c879b4abb007058413889d0882ac946def3aaa8bab9ff7aa"}, {"id": "fls_ex1mopil8w1p", "number": "B.587:2", "link": "glossary.html#fls_ex1mopil8w1p", "checksum": "e9235711e81476c0017f4de4b96410aac4a18b20712e65998fdff599c4ebe9fb"}], "informational": false}, {"id": "fls_5sxhx0w3d63z", "number": "B.588", "title": "shorthand deconstructor", "link": "glossary.html#shorthand-deconstructor", "paragraphs": [{"id": "fls_22yxrde244w8", "number": "B.588:1", "link": "glossary.html#fls_22yxrde244w8", "checksum": "47718e6645a8f9725dfac70f2975316555887d2128b55f8c9cff6d22933bbb53"}, {"id": "fls_rlo4237bgbwt", "number": "B.588:2", "link": "glossary.html#fls_rlo4237bgbwt", "checksum": "d651e6b4bb0714f78c0e76aea91063256ba3c136f075402fdf7f2d7789b5a9f7"}], "informational": false}, {"id": "fls_oa4p10yles30", "number": "B.589", "title": "shorthand initializer", "link": "glossary.html#shorthand-initializer", "paragraphs": [{"id": "fls_bgxxg48snck1", "number": "B.589:1", "link": "glossary.html#fls_bgxxg48snck1", "checksum": "219682f2ca70af89bb15456b2b480b5abfdd707ede0338d0cc148917370f33b6"}, {"id": "fls_qc08ydgmqudi", "number": "B.589:2", "link": "glossary.html#fls_qc08ydgmqudi", "checksum": "bb15646d2549f90d49c9e314257914d48648266de0cd37b86c780956b6b9a5a8"}], "informational": false}, {"id": "fls_nmw95nc951iu", "number": "B.590", "title": "signed integer type", "link": "glossary.html#signed-integer-type", "paragraphs": [{"id": "fls_vcronf7l2bhy", "number": "B.590:1", "link": "glossary.html#fls_vcronf7l2bhy", "checksum": "b484a6cf97b587756eaf17f0b00c2bff3580bcbbc871e9da7c57f800377018f3"}], "informational": false}, {"id": "fls_4gvxidfcplrd", "number": "B.591", "title": "simple byte string literal", "link": "glossary.html#simple-byte-string-literal", "paragraphs": [{"id": "fls_xpbu4up0aza8", "number": "B.591:1", "link": "glossary.html#fls_xpbu4up0aza8", "checksum": "240de0589c2f0a1216afb565ab85833ee58c0021c9acb1356f1d99b170bff9f6"}, {"id": "fls_ofi70zk68tnq", "number": "B.591:2", "link": "glossary.html#fls_ofi70zk68tnq", "checksum": "53b6521e56978d409f69defaad339b0bb285fe027fc46ae2a064c95770360894"}], "informational": false}, {"id": "fls_6mcm7xdcyn40", "number": "B.592", "title": "simple import", "link": "glossary.html#simple-import", "paragraphs": [{"id": "fls_jrlzpoauui9g", "number": "B.592:1", "link": "glossary.html#fls_jrlzpoauui9g", "checksum": "8cbb27f21ddb2b64287b47fc413a7545d60cdbec73f33babcfcfe63e7b8d4f1a"}, {"id": "fls_ta5t4h25unsw", "number": "B.592:2", "link": "glossary.html#fls_ta5t4h25unsw", "checksum": "522cd3367900250f16a09046a753e7597cefb524d678b096a89b68284f8632fc"}], "informational": false}, {"id": "fls_o5kv9lrtz4fq", "number": "B.593", "title": "simple path", "link": "glossary.html#simple-path", "paragraphs": [{"id": "fls_db91duoug4eb", "number": "B.593:1", "link": "glossary.html#fls_db91duoug4eb", "checksum": "302bf7e743ea458a7ed5b2bed446ee0e66d522d0cef48ced5f82c7ebc7e87d73"}, {"id": "fls_cm7ysyfrdwom", "number": "B.593:2", "link": "glossary.html#fls_cm7ysyfrdwom", "checksum": "a6d7b9fb4316a7224d9d5bbd09dbd87992f1bbcef3c413566fd4cbdeecc3a89b"}], "informational": false}, {"id": "fls_23g6tantjxqa", "number": "B.594", "title": "simple path prefix", "link": "glossary.html#simple-path-prefix", "paragraphs": [{"id": "fls_ijc2yhquilty", "number": "B.594:1", "link": "glossary.html#fls_ijc2yhquilty", "checksum": "8203df0c3becbdb918514069b8e3047f79db11d26dccc493c7752d00fb882b87"}, {"id": "fls_imhceyhhk6oz", "number": "B.594:2", "link": "glossary.html#fls_imhceyhhk6oz", "checksum": "5838d1d27013f8bca68d94a9127af38ac3f7dbb9a59a6a9c822b155eb95c3c01"}], "informational": false}, {"id": "fls_sgy9q06yt6cl", "number": "B.595", "title": "simple path public modifier", "link": "glossary.html#simple-path-public-modifier", "paragraphs": [{"id": "fls_mby9r0jm6uyv", "number": "B.595:1", "link": "glossary.html#fls_mby9r0jm6uyv", "checksum": "6a0328c33efacf2e1e5c51402ecdf576f016193e10c71fd2e21248add2cfc1b1"}, {"id": "fls_mud4hw74kuh6", "number": "B.595:2", "link": "glossary.html#fls_mud4hw74kuh6", "checksum": "0e6bbb09fd173ec2bfbe6c665dbd7c8fd770e98eefd0e85f8ec09c7304ae017b"}], "informational": false}, {"id": "fls_gt5rz4qc3pho", "number": "B.596", "title": "simple path resolution", "link": "glossary.html#simple-path-resolution", "paragraphs": [{"id": "fls_cqlepon6pmkq", "number": "B.596:1", "link": "glossary.html#fls_cqlepon6pmkq", "checksum": "93df9dbfb389fb8889169391265e6c89da8bbd394a5e61862b389648c247dbdc"}], "informational": false}, {"id": "fls_k5uqt5oj7wvl", "number": "B.597", "title": "simple public modifier", "link": "glossary.html#simple-public-modifier", "paragraphs": [{"id": "fls_ce1ounn1g68", "number": "B.597:1", "link": "glossary.html#fls_ce1ounn1g68", "checksum": "d3c28e6cba7c7ee3bb95dda04bb2e0dd1946ffec0b004ef23f5cb5f976644a4f"}, {"id": "fls_rd68vm2f2qy5", "number": "B.597:2", "link": "glossary.html#fls_rd68vm2f2qy5", "checksum": "5b502c001262606fa8ac93e1c3392515c078da867283a167bbc15c62e95772d3"}], "informational": false}, {"id": "fls_jdb3ebo0dy4o", "number": "B.598", "title": "simple register expression", "link": "glossary.html#simple-register-expression", "paragraphs": [{"id": "fls_4yp4r7gxucl2", "number": "B.598:1", "link": "glossary.html#fls_4yp4r7gxucl2", "checksum": "7e0c43d99329cee53612742b4664c420c545bef701facbc4e9a2840ed513c87c"}, {"id": "fls_kkaqhdxpttuc", "number": "B.598:2", "link": "glossary.html#fls_kkaqhdxpttuc", "checksum": "663bc7aa3d5f4bdbcf29c776b56afcff6fa10a0d1c42bf9fc577b637a74b797f"}], "informational": false}, {"id": "fls_dpod2gc7a0u", "number": "B.599", "title": "simple string literal", "link": "glossary.html#simple-string-literal", "paragraphs": [{"id": "fls_p6qyyptz8w8w", "number": "B.599:1", "link": "glossary.html#fls_p6qyyptz8w8w", "checksum": "3a3cdd962ac9019c3d9290553f854ee7a721954dc2c9f0b7c2445f5835f9d7b6"}, {"id": "fls_osj0c4dmr6e0", "number": "B.599:2", "link": "glossary.html#fls_osj0c4dmr6e0", "checksum": "41eb9351de7f3900935c86f7a49c2daee9b8803c662daa2cd9be171d0bc8d389"}], "informational": false}, {"id": "fls_js91bdzd03qj", "number": "B.600", "title": "single segment path", "link": "glossary.html#single-segment-path", "paragraphs": [{"id": "fls_hun5bczsqd6k", "number": "B.600:1", "link": "glossary.html#fls_hun5bczsqd6k", "checksum": "ed559515daaf26c73e18ad51cdf6d614e9c7ad24058260bc123b501442fe3b71"}], "informational": false}, {"id": "fls_oy5xy5pm1enx", "number": "B.601", "title": "size", "link": "glossary.html#size", "paragraphs": [{"id": "fls_3obnilqhkjux", "number": "B.601:1", "link": "glossary.html#fls_3obnilqhkjux", "checksum": "b302998907689fbf13c4f8078e47db42660130fd2d89e0909ee91b8f22cc3ee3"}], "informational": false}, {"id": "fls_2y5oyon3y1za", "number": "B.602", "title": "size operand", "link": "glossary.html#size-operand", "paragraphs": [{"id": "fls_srajsqi5i3py", "number": "B.602:1", "link": "glossary.html#fls_srajsqi5i3py", "checksum": "74345bd3146c994153f6b1cb926cb714626d393b5581ff4b33d3ce7b9ff17f14"}, {"id": "fls_228ioayvdguv", "number": "B.602:2", "link": "glossary.html#fls_228ioayvdguv", "checksum": "dbb5bab03e4e32af76a8d3acb475ed85a84d35b6cb8121a9145b90f888d7c328"}], "informational": false}, {"id": "fls_oiaoweqqde7i", "number": "B.603", "title": "sized type", "link": "glossary.html#sized-type", "paragraphs": [{"id": "fls_pwcgsrcnswkn", "number": "B.603:1", "link": "glossary.html#fls_pwcgsrcnswkn", "checksum": "81316bc3aa0e961ab93639afa23e97601ac170e7a35d11925a3b31d77befe702"}], "informational": false}, {"id": "fls_srkftses9sxn", "number": "B.604", "title": "slice", "link": "glossary.html#slice", "paragraphs": [{"id": "fls_p1sv01ml2ark", "number": "B.604:1", "link": "glossary.html#fls_p1sv01ml2ark", "checksum": "cee506307ae87c6c97d197d79ee149cf7939c0ce62ec674e1b827c7fba7ef5f7"}], "informational": false}, {"id": "fls_1s3a31o9zx1a", "number": "B.605", "title": "slice pattern", "link": "glossary.html#slice-pattern", "paragraphs": [{"id": "fls_7613qu4igwiw", "number": "B.605:1", "link": "glossary.html#fls_7613qu4igwiw", "checksum": "20d7f9a0871be783ae343c24d208962a58ab36fc49b88753b505da7f08fa73f6"}, {"id": "fls_3qey00280x27", "number": "B.605:2", "link": "glossary.html#fls_3qey00280x27", "checksum": "8e5e796d029a12ad7750baed68f980b263c914dbd89a309bbf3beae2eda0a534"}], "informational": false}, {"id": "fls_x3kr88m5gvwv", "number": "B.606", "title": "slice type", "link": "glossary.html#slice-type", "paragraphs": [{"id": "fls_bvpszep1w90g", "number": "B.606:1", "link": "glossary.html#fls_bvpszep1w90g", "checksum": "a593130cb4697d347855e3ab4be6e11ff678532bab5bac2229866f787c40f94b"}, {"id": "fls_y7gscwf29htg", "number": "B.606:2", "link": "glossary.html#fls_y7gscwf29htg", "checksum": "ca34f279744bd0af703f03126fcdb84a99d9d28b91bbb12081dcf248b0e1d106"}], "informational": false}, {"id": "fls_wlwwxzpnhk6i", "number": "B.607", "title": "source file", "link": "glossary.html#source-file", "paragraphs": [{"id": "fls_nh737q4mn27u", "number": "B.607:1", "link": "glossary.html#fls_nh737q4mn27u", "checksum": "e40fa914d13983c5ee5ca0905192bfe550ab8532579d6afaa878ed3a50d3d641"}, {"id": "fls_zgh1m5357ex1", "number": "B.607:2", "link": "glossary.html#fls_zgh1m5357ex1", "checksum": "6b1b66b82e4ab9634469f78c85bf26ceae300647533a07f9a62e77ac7e9ca765"}], "informational": false}, {"id": "fls_e7cvo0usw86i", "number": "B.608", "title": "statement", "link": "glossary.html#statement", "paragraphs": [{"id": "fls_faijgwg4lhp9", "number": "B.608:1", "link": "glossary.html#fls_faijgwg4lhp9", "checksum": "bf5f691ab0a43fd02aa87c661feec0730cfcfc91b5f24685efa59dfee5c0cf52"}, {"id": "fls_th7edvxml3mn", "number": "B.608:2", "link": "glossary.html#fls_th7edvxml3mn", "checksum": "30c54e18001cdbbee17cb43a2fc96bffb21bbc3e3116c2db33a6725722b7718c"}], "informational": false}, {"id": "fls_tpazbmuq9hag", "number": "B.609", "title": "static", "link": "glossary.html#static", "paragraphs": [{"id": "fls_srx4v1e20yxa", "number": "B.609:1", "link": "glossary.html#fls_srx4v1e20yxa", "checksum": "4f9cb27c73df439ebc13f181db03ab1ef49b92543fd366e9b4527c8444c796ff"}, {"id": "fls_1b7gpk8e98pw", "number": "B.609:2", "link": "glossary.html#fls_1b7gpk8e98pw", "checksum": "d258187f5db39b35fb4ffbec50fec919243b0d2071af0b861b7e05eafeef899b"}], "informational": false}, {"id": "fls_x331kxllyzim", "number": "B.610", "title": "static initializer", "link": "glossary.html#static-initializer", "paragraphs": [{"id": "fls_6jjbfni87tax", "number": "B.610:1", "link": "glossary.html#fls_6jjbfni87tax", "checksum": "5355753d17b9a1e7061974c57e99a31889eb0b46d01364d4c6d9b74811f7d0bf"}, {"id": "fls_igbl5uv0dlhl", "number": "B.610:2", "link": "glossary.html#fls_igbl5uv0dlhl", "checksum": "72fc972cdd541fb8ca2663c3b7dd0fc0a798be06d06177e90a728ac2cf8355bf"}], "informational": false}, {"id": "fls_jcqikgw9g8n5", "number": "B.611", "title": "static lifetime elision", "link": "glossary.html#static-lifetime-elision", "paragraphs": [{"id": "fls_nbvewjyrnqpf", "number": "B.611:1", "link": "glossary.html#fls_nbvewjyrnqpf", "checksum": "4da591ce0c09acde63777755ad8fe0b8287c1d3267838ff368addf6254513b5d"}], "informational": false}, {"id": "fls_1ricdj86o457", "number": "B.612", "title": "str", "link": "glossary.html#str", "paragraphs": [{"id": "fls_6977zxb0resa", "number": "B.612:1", "link": "glossary.html#fls_6977zxb0resa", "checksum": "c780396b07b8f0521e767ef92a329d5f625360d5f1afb720ea854c4953bd8419"}], "informational": false}, {"id": "fls_bzhaq3q378ay", "number": "B.613", "title": "strict keyword", "link": "glossary.html#strict-keyword", "paragraphs": [{"id": "fls_hza9spr6behn", "number": "B.613:1", "link": "glossary.html#fls_hza9spr6behn", "checksum": "2b1dfb1c0e61d8912d1dd673de69374a8fd7d638159307aa8c29bb282171450b"}, {"id": "fls_67pzayd9qzzs", "number": "B.613:2", "link": "glossary.html#fls_67pzayd9qzzs", "checksum": "024955ef4fd2cb181a71d8785ed496d36e26688e5e1d0a8ecf0234bf90e79adb"}], "informational": false}, {"id": "fls_cck2tmyzmpja", "number": "B.614", "title": "string literal", "link": "glossary.html#string-literal", "paragraphs": [{"id": "fls_dphk5br0ag35", "number": "B.614:1", "link": "glossary.html#fls_dphk5br0ag35", "checksum": "14e09d8b97a66fdbada8ce9e55d45408b7a46c69a843b69cdfb609e4a84a0205"}, {"id": "fls_z0t3ae24h5h5", "number": "B.614:2", "link": "glossary.html#fls_z0t3ae24h5h5", "checksum": "dabe57cf78f3f40fa6255d8172c08616047fa0b930adc9d29640296e927753ba"}], "informational": false}, {"id": "fls_yphnf56fa58r", "number": "B.615", "title": "struct", "link": "glossary.html#struct", "paragraphs": [{"id": "fls_rufylj7qxs1w", "number": "B.615:1", "link": "glossary.html#fls_rufylj7qxs1w", "checksum": "f5fbe6a9bb603d31026edef3b582db98a582bbc4d02a95bde3c75f506873dbae"}], "informational": false}, {"id": "fls_dxfyejkbiz3p", "number": "B.616", "title": "struct expression", "link": "glossary.html#struct-expression", "paragraphs": [{"id": "fls_m8n9e0sxyb95", "number": "B.616:1", "link": "glossary.html#fls_m8n9e0sxyb95", "checksum": "499bbb6609c83dd969e5c1c2d735637ba43d35f5af7277f5e1ec70d1bb188a08"}, {"id": "fls_odm68rhu2j1", "number": "B.616:2", "link": "glossary.html#fls_odm68rhu2j1", "checksum": "ef9f4e2d55f8fbc3c3e3b7aca8bc4fd3e1878411609ed3d7e247cbe4118bd0dd"}], "informational": false}, {"id": "fls_ot6dj7cwkstg", "number": "B.617", "title": "struct field", "link": "glossary.html#struct-field", "paragraphs": [{"id": "fls_8z9ywmnrhxjs", "number": "B.617:1", "link": "glossary.html#fls_8z9ywmnrhxjs", "checksum": "e9f4a702e5f7e0b0ae422c36194acb862214f0536da4b586e5dda02b75f83718"}], "informational": false}, {"id": "fls_ook43xes5t34", "number": "B.618", "title": "struct pattern", "link": "glossary.html#struct-pattern", "paragraphs": [{"id": "fls_xbtoiwegp8gu", "number": "B.618:1", "link": "glossary.html#fls_xbtoiwegp8gu", "checksum": "31ab557d6fa73330faca7a26d2a780c91f94caa7a05d631063501fcef71661e1"}, {"id": "fls_pn8e50ep2fln", "number": "B.618:2", "link": "glossary.html#fls_pn8e50ep2fln", "checksum": "894983d0de7b7b5f61df2bb3e077ff4e8053de20a9196b0127ff8a5d8525947d"}], "informational": false}, {"id": "fls_pzj88ust6qrq", "number": "B.619", "title": "struct type", "link": "glossary.html#struct-type", "paragraphs": [{"id": "fls_7v4dhh3nl8h9", "number": "B.619:1", "link": "glossary.html#fls_7v4dhh3nl8h9", "checksum": "d81c9587a4a4253e465180e7e762ce144ae9971c94a10717066a9026e7d70b51"}, {"id": "fls_dhlww4yrnb2v", "number": "B.619:2", "link": "glossary.html#fls_dhlww4yrnb2v", "checksum": "aaa87a42fea5c81ee77c9afd026837473da6e30ed5010a8162226119622ee1c1"}], "informational": false}, {"id": "fls_gonqhasyw1oi", "number": "B.620", "title": "struct value", "link": "glossary.html#struct-value", "paragraphs": [{"id": "fls_ymzfw9kwlbix", "number": "B.620:1", "link": "glossary.html#fls_ymzfw9kwlbix", "checksum": "6bd274761a79f65af71ef75d12be7b089a531c77567d26c881e5aff396428d49"}], "informational": false}, {"id": "fls_p7920aljisrh", "number": "B.621", "title": "structurally equal", "link": "glossary.html#structurally-equal", "paragraphs": [{"id": "fls_glrzukhmawmp", "number": "B.621:1", "link": "glossary.html#fls_glrzukhmawmp", "checksum": "7dd15c086ecdcec30cc008a581b76d6c709caf5a53e6a46c566a7c2842b1cd7c"}], "informational": false}, {"id": "fls_fez3idff05cb", "number": "B.622", "title": "subexpression", "link": "glossary.html#subexpression", "paragraphs": [{"id": "fls_bnshwd4kpfm0", "number": "B.622:1", "link": "glossary.html#fls_bnshwd4kpfm0", "checksum": "67c1c160f65cc04a9d89cc4bfa73ccbe3120963278571298e35c08aabaea7bfa"}], "informational": false}, {"id": "fls_wee9stfk0abp", "number": "B.623", "title": "subject expression", "link": "glossary.html#subject-expression", "paragraphs": [{"id": "fls_xisqke87ert", "number": "B.623:1", "link": "glossary.html#fls_xisqke87ert", "checksum": "7c843ae41331237817b624138270a4b00bab829daa73d2ee0014acc51797472e"}, {"id": "fls_gph5doham4js", "number": "B.623:2", "link": "glossary.html#fls_gph5doham4js", "checksum": "c7ec2e06c4b0b3c8c5d2d9a768d5d0a8a748531f0005e82e5cded086c8e28768"}], "informational": false}, {"id": "fls_dc5ibvnnhs7e", "number": "B.624", "title": "subject let expression", "link": "glossary.html#subject-let-expression", "paragraphs": [{"id": "fls_b3ckv6zgnaeb", "number": "B.624:1", "link": "glossary.html#fls_b3ckv6zgnaeb", "checksum": "8b88e2d4b838d078a9c47bdaa6b417f3b777edb655683284c0442ec129ef777e"}, {"id": "fls_vnzaargh5yok", "number": "B.624:2", "link": "glossary.html#fls_vnzaargh5yok", "checksum": "e4b5703d1d025b16cfa295c33b74a32dd8ec0e1f27ca33b22f154950f026adb5"}], "informational": false}, {"id": "fls_k7ro8n23wtdc", "number": "B.625", "title": "subpattern", "link": "glossary.html#subpattern", "paragraphs": [{"id": "fls_942ulj9qsdes", "number": "B.625:1", "link": "glossary.html#fls_942ulj9qsdes", "checksum": "e70efe05c2fad045cee1a1131482f278b93f794787c1df91d300c860a1ad9704"}], "informational": false}, {"id": "fls_0hf1gnf90qkr", "number": "B.626", "title": "subtraction assignment", "link": "glossary.html#subtraction-assignment", "paragraphs": [{"id": "fls_75eyk2yxo2j4", "number": "B.626:1", "link": "glossary.html#fls_75eyk2yxo2j4", "checksum": "16fca30812eb235c8b557a93a13756bc39c0845207c5c2c40386bf224ba3f036"}], "informational": false}, {"id": "fls_a4iu72zn4h0", "number": "B.627", "title": "subtraction assignment expression", "link": "glossary.html#subtraction-assignment-expression", "paragraphs": [{"id": "fls_4pb85nl4r7vs", "number": "B.627:1", "link": "glossary.html#fls_4pb85nl4r7vs", "checksum": "94b7335b72716a696d96f92fc481f703af70ece1aaac62b59428b634927782f7"}, {"id": "fls_mye9yj5tc8hr", "number": "B.627:2", "link": "glossary.html#fls_mye9yj5tc8hr", "checksum": "99e9e1c05adf9d2d4fa06e5250575dab07273dd327eaf9be139829d9c8875b68"}], "informational": false}, {"id": "fls_25ru96mfdcsn", "number": "B.628", "title": "subtraction expression", "link": "glossary.html#subtraction-expression", "paragraphs": [{"id": "fls_caamjgpw59id", "number": "B.628:1", "link": "glossary.html#fls_caamjgpw59id", "checksum": "7bdbffe316631038216d56ad9d23a08326903428a975242329934a7640d45ef1"}, {"id": "fls_mx3olnbntpye", "number": "B.628:2", "link": "glossary.html#fls_mx3olnbntpye", "checksum": "9d7dd055877382e5b2ed574d87fb5839e2119866b2d09ffc5ef7643a202a3fa3"}], "informational": false}, {"id": "fls_qw3fn1116se9", "number": "B.629", "title": "subtrait", "link": "glossary.html#subtrait", "paragraphs": [{"id": "fls_wnj95vozis6n", "number": "B.629:1", "link": "glossary.html#fls_wnj95vozis6n", "checksum": "dfb91d945c0406e088388895f2e4eb5320b9a2f0c9da9c7201d69c279e1be946"}], "informational": false}, {"id": "fls_pu4zqj1tgrfh", "number": "B.630", "title": "subtype", "link": "glossary.html#subtype", "paragraphs": [{"id": "fls_pmkjowsieqog", "number": "B.630:1", "link": "glossary.html#fls_pmkjowsieqog", "checksum": "70a03b9f20247a6880d94fa4005147b36b8c517499d097dead1837f3565e98bb"}], "informational": false}, {"id": "fls_f5dxz8pvs1kz", "number": "B.631", "title": "subtyping", "link": "glossary.html#subtyping", "paragraphs": [{"id": "fls_bo5xzjsdd3lj", "number": "B.631:1", "link": "glossary.html#fls_bo5xzjsdd3lj", "checksum": "8a3b01274b8523c1b8f95f68ad12369141240ae80d3eeed8db09de48cc69c2df"}], "informational": false}, {"id": "fls_qar9v52smi9j", "number": "B.632", "title": "suffixed float", "link": "glossary.html#suffixed-float", "paragraphs": [{"id": "fls_7reb4jp0x1wf", "number": "B.632:1", "link": "glossary.html#fls_7reb4jp0x1wf", "checksum": "2097bd5c72c447994db952b6e08d6092720ef5355be92616486a8db756a2331d"}], "informational": false}, {"id": "fls_bmbu11ycjpor", "number": "B.633", "title": "suffixed integer", "link": "glossary.html#suffixed-integer", "paragraphs": [{"id": "fls_ltzetxu3sq7k", "number": "B.633:1", "link": "glossary.html#fls_ltzetxu3sq7k", "checksum": "685b7e8e3b380db2523911991f3f586f96f845a195fdc5d73d394864dc8a40b5"}], "informational": false}, {"id": "fls_12bluakt0jnj", "number": "B.634", "title": "super public modifier", "link": "glossary.html#super-public-modifier", "paragraphs": [{"id": "fls_vry5mhs3a5wv", "number": "B.634:1", "link": "glossary.html#fls_vry5mhs3a5wv", "checksum": "b5870c029074717d1b151adc15bf8667ab41b158131e55fbffd1ae0a690fc391"}, {"id": "fls_4a1s9bcrk5oy", "number": "B.634:2", "link": "glossary.html#fls_4a1s9bcrk5oy", "checksum": "0e03fd06e3f48059a98f5c7000d34f910c38730b70cd097b709a8759ce8d9ddf"}], "informational": false}, {"id": "fls_1axcyv628aov", "number": "B.635", "title": "supertrait", "link": "glossary.html#supertrait", "paragraphs": [{"id": "fls_s4chur1wutwh", "number": "B.635:1", "link": "glossary.html#fls_s4chur1wutwh", "checksum": "c047603bf44cc875913881293d83e517c2a1e49d6a85801443f91559915be20e"}], "informational": false}, {"id": "fls_r4eoz3ohvpdi", "number": "B.636", "title": "sync type", "link": "glossary.html#sync-type", "paragraphs": [{"id": "fls_rpc0c8qx3nbo", "number": "B.636:1", "link": "glossary.html#fls_rpc0c8qx3nbo", "checksum": "bc8f8423550c9b123c66e2616f181f7081064c9b0b9bf66723ba1c2f86a4dadc"}], "informational": false}, {"id": "fls_44djv0wocacs", "number": "B.637", "title": "syntactic category", "link": "glossary.html#syntactic-category", "paragraphs": [{"id": "fls_f981e3m7kq50", "number": "B.637:1", "link": "glossary.html#fls_f981e3m7kq50", "checksum": "a8b23520c501f81c345e6e33431b67986a2850dc3de4a72e1fdf2d5720700bca"}], "informational": false}, {"id": "fls_psd2ll10ixs", "number": "B.638", "title": "tail expression", "link": "glossary.html#tail-expression", "paragraphs": [{"id": "fls_6k873f1knasi", "number": "B.638:1", "link": "glossary.html#fls_6k873f1knasi", "checksum": "3692c3fe609b905b0734904435de28f55003026dd2504681ae3e03a050119c73"}], "informational": false}, {"id": "fls_4omay4i65dwz", "number": "B.639", "title": "temporary", "link": "glossary.html#temporary", "paragraphs": [{"id": "fls_fathkxu9kxvw", "number": "B.639:1", "link": "glossary.html#fls_fathkxu9kxvw", "checksum": "12bc59acb7d38876c64b0653786c9f08057881a81fff343bdea6ee49f7c15cba"}], "informational": false}, {"id": "fls_ihv02usuziw8", "number": "B.640", "title": "terminated", "link": "glossary.html#terminated", "paragraphs": [{"id": "fls_med1l8vheb83", "number": "B.640:1", "link": "glossary.html#fls_med1l8vheb83", "checksum": "3b456b60006efdb599c098450930107e76e6f7de7732cae0e96dd51a6c4f3156"}], "informational": false}, {"id": "fls_ef03n3ehz372", "number": "B.641", "title": "terminated macro invocation", "link": "glossary.html#terminated-macro-invocation", "paragraphs": [{"id": "fls_542es82wfzco", "number": "B.641:1", "link": "glossary.html#fls_542es82wfzco", "checksum": "9cbf5912d6d17d7ac0ed3b3c24ab980c7ed2e4fb5b00af87a0b7865553130294"}, {"id": "fls_tcvfi2zgdm58", "number": "B.641:2", "link": "glossary.html#fls_tcvfi2zgdm58", "checksum": "e3b89b8eb10906f6c083c59009b877a69d78ed35f41df00699d64ff89e58575e"}], "informational": false}, {"id": "fls_avzgzpd6wxxo", "number": "B.642", "title": "textual macro scope", "link": "glossary.html#textual-macro-scope", "paragraphs": [{"id": "fls_xyeyk6vrmlwp", "number": "B.642:1", "link": "glossary.html#fls_xyeyk6vrmlwp", "checksum": "b43c006d70a287d794f7febf43b53d6d42fe70004535a89617c39356ee558deb"}], "informational": false}, {"id": "fls_mdcbhy96hrau", "number": "B.643", "title": "textual type", "link": "glossary.html#textual-type", "paragraphs": [{"id": "fls_lv1pdtzf6f58", "number": "B.643:1", "link": "glossary.html#fls_lv1pdtzf6f58", "checksum": "2fc66eb388b114ec37b6e442a13f0de907102366b96000febf92572ab97b53d0"}], "informational": false}, {"id": "fls_lfsgf6u142yb", "number": "B.644", "title": "thin pointer", "link": "glossary.html#thin-pointer", "paragraphs": [{"id": "fls_i2j0u4v5o1bs", "number": "B.644:1", "link": "glossary.html#fls_i2j0u4v5o1bs", "checksum": "98d0ef426eb51ce57244742f7fab1ff43421302eac3bacf3a6aae66d4fac0f89"}], "informational": false}, {"id": "fls_7ksqpi9j8ba9", "number": "B.645", "title": "thin pointer type", "link": "glossary.html#thin-pointer-type", "paragraphs": [{"id": "fls_33rka3kyxgrk", "number": "B.645:1", "link": "glossary.html#fls_33rka3kyxgrk", "checksum": "681e18d70f0544e542ba3910ae049790c537eed7fef99a72b866923d9b122189"}], "informational": false}, {"id": "fls_tzoko74t5t6n", "number": "B.646", "title": "token matching", "link": "glossary.html#token-matching", "paragraphs": [{"id": "fls_a19q6lhvakcm", "number": "B.646:1", "link": "glossary.html#fls_a19q6lhvakcm", "checksum": "5f351473bc8fa908a3ee2b417457794e4feefba257826dec5b40df10c6121c00"}], "informational": false}, {"id": "fls_ma3vs7yoj285", "number": "B.647", "title": "tokens", "link": "glossary.html#tokens", "paragraphs": [{"id": "fls_v23kqvyvscd7", "number": "B.647:1", "link": "glossary.html#fls_v23kqvyvscd7", "checksum": "a2cc0e70e5f53eb45a8001d5b35586e4e8be6bb6381338d296d1dca3622651c1"}], "informational": false}, {"id": "fls_cad25qns4164", "number": "B.648", "title": "trait", "link": "glossary.html#trait", "paragraphs": [{"id": "fls_mf4x9g70o5z6", "number": "B.648:1", "link": "glossary.html#fls_mf4x9g70o5z6", "checksum": "784c3ee0f36516eafac0b2ceff3671873158cb09a282fb61b14c87e50c82ee6d"}, {"id": "fls_ypjhwvuyrns", "number": "B.648:2", "link": "glossary.html#fls_ypjhwvuyrns", "checksum": "4a032811b672f3b87705a845ec088166373babfba61ce19f49f6aa446bcd4abc"}], "informational": false}, {"id": "fls_5hnydsqdricq", "number": "B.649", "title": "trait body", "link": "glossary.html#trait-body", "paragraphs": [{"id": "fls_u221me58azmy", "number": "B.649:1", "link": "glossary.html#fls_u221me58azmy", "checksum": "79825c17c00b2a445bea3ba1a547d7682c3d49ae5619d0fc26f1b35bb4322ad6"}, {"id": "fls_ditfx04tb4h0", "number": "B.649:2", "link": "glossary.html#fls_ditfx04tb4h0", "checksum": "998aa3d18694487f4a3f8b413092cb43b87c51361c018ff43f50426e70d4ff91"}], "informational": false}, {"id": "fls_868cgnb1soeh", "number": "B.650", "title": "trait bound", "link": "glossary.html#trait-bound", "paragraphs": [{"id": "fls_95zx8unuxxpq", "number": "B.650:1", "link": "glossary.html#fls_95zx8unuxxpq", "checksum": "eb508851b91d4f27932856849cf182b28b83707b42dc7206964e098efa41dc02"}, {"id": "fls_bkbym8v4t6oh", "number": "B.650:2", "link": "glossary.html#fls_bkbym8v4t6oh", "checksum": "6338bc49a64e3c376911109c331a37133aea2682ed07b3012cf3be295a2baabf"}], "informational": false}, {"id": "fls_kflieu6uottg", "number": "B.651", "title": "trait implementation", "link": "glossary.html#trait-implementation", "paragraphs": [{"id": "fls_5v7kbg144pr8", "number": "B.651:1", "link": "glossary.html#fls_5v7kbg144pr8", "checksum": "a5d5da0318d7ec6c47bf385aa8183d09d97852f18063c4b197eaf7e0638c0bdf"}, {"id": "fls_rytylyyxh27f", "number": "B.651:2", "link": "glossary.html#fls_rytylyyxh27f", "checksum": "de677497269bbc746364f40ff86042e595e9ae307d7586eed4e455d97d6eb5b6"}], "informational": false}, {"id": "fls_tcizyomegtub", "number": "B.652", "title": "trait object lifetime elision", "link": "glossary.html#trait-object-lifetime-elision", "paragraphs": [{"id": "fls_ralp9b6qjlp9", "number": "B.652:1", "link": "glossary.html#fls_ralp9b6qjlp9", "checksum": "ec20dc3fcc961ba79d6cec949a10bbcfde569965da5bdc16a2b164c79ee837a1"}], "informational": false}, {"id": "fls_7qtbro7ipndr", "number": "B.653", "title": "trait object type", "link": "glossary.html#trait-object-type", "paragraphs": [{"id": "fls_lo2fzzdwxy1l", "number": "B.653:1", "link": "glossary.html#fls_lo2fzzdwxy1l", "checksum": "596f296cca0b51eaa8e888755d7d04130b502f20422d5a513322d6ce74806052"}, {"id": "fls_d632mc5c8qwt", "number": "B.653:2", "link": "glossary.html#fls_d632mc5c8qwt", "checksum": "583cbdd6914b329061117d141e14d6076bf8fc9a1092fd74f131455d10fe417e"}], "informational": false}, {"id": "fls_nfdfefvzrc5f", "number": "B.654", "title": "trait type", "link": "glossary.html#trait-type", "paragraphs": [{"id": "fls_jqsqnq0dthls", "number": "B.654:1", "link": "glossary.html#fls_jqsqnq0dthls", "checksum": "282d3a580517f24ff1a616e6dc74f09871ab4b9c744dab103befca5df9b7974f"}], "informational": false}, {"id": "fls_sl62718i1kkn", "number": "B.655", "title": "transparent representation", "link": "glossary.html#transparent-representation", "paragraphs": [{"id": "fls_hb3e72rhzpnv", "number": "B.655:1", "link": "glossary.html#fls_hb3e72rhzpnv", "checksum": "1aa437048ffba699da3bad8b9d92d96000b75d9f2654d585d93967ff2d6df826"}], "informational": false}, {"id": "fls_soqkluvirlsd", "number": "B.656", "title": "trivial predicate", "link": "glossary.html#trivial-predicate", "paragraphs": [{"id": "fls_db5njwrjolhs", "number": "B.656:1", "link": "glossary.html#fls_db5njwrjolhs", "checksum": "72411b58cceb5aff59f068ef733015dddfe004273aa63c2936451c3752c30803"}], "informational": false}, {"id": "fls_si70t19ox07e", "number": "B.657", "title": "tuple", "link": "glossary.html#tuple", "paragraphs": [{"id": "fls_yhcfqz6p0059", "number": "B.657:1", "link": "glossary.html#fls_yhcfqz6p0059", "checksum": "ada19ba49b9c09a8650bc6dae3c0162ffb460e1f3fce7b72d3c89e43397c8868"}], "informational": false}, {"id": "fls_1xehpjok9dkb", "number": "B.658", "title": "tuple enum variant", "link": "glossary.html#tuple-enum-variant", "paragraphs": [{"id": "fls_eduqhuybekvx", "number": "B.658:1", "link": "glossary.html#fls_eduqhuybekvx", "checksum": "96f0314bd359452ec5781db052a5b1237ac5af5741013b5594601070a0238790"}], "informational": false}, {"id": "fls_sp7uholxgfro", "number": "B.659", "title": "tuple enum variant value", "link": "glossary.html#tuple-enum-variant-value", "paragraphs": [{"id": "fls_orurxipgqnrz", "number": "B.659:1", "link": "glossary.html#fls_orurxipgqnrz", "checksum": "fd7a0c032dc675eac522e0d301dfac0dd616324af7fad3e01a24b4c628b5ea6d"}], "informational": false}, {"id": "fls_udl6ujjg1jae", "number": "B.660", "title": "tuple expression", "link": "glossary.html#tuple-expression", "paragraphs": [{"id": "fls_x7m4u1dx4eli", "number": "B.660:1", "link": "glossary.html#fls_x7m4u1dx4eli", "checksum": "77393bbf95fdc35673bc286aa58c588f01f1fd5873efdfa3f332b1024599f723"}, {"id": "fls_qawnvcddgyxx", "number": "B.660:2", "link": "glossary.html#fls_qawnvcddgyxx", "checksum": "df4b75afd3344d180661255ac0da48f1f23d5456d1502eb6862a2cbc3ec193c2"}], "informational": false}, {"id": "fls_bf1v4e1s5xj6", "number": "B.661", "title": "tuple field", "link": "glossary.html#tuple-field", "paragraphs": [{"id": "fls_8rq1gbzij5tk", "number": "B.661:1", "link": "glossary.html#fls_8rq1gbzij5tk", "checksum": "dc347c35a584cf9bc8cb8bfc6d525092724712619b91a2e5c4123574a19cbfeb"}], "informational": false}, {"id": "fls_zfvvbf7ncrhj", "number": "B.662", "title": "tuple initializer", "link": "glossary.html#tuple-initializer", "paragraphs": [{"id": "fls_94hg6re11zl5", "number": "B.662:1", "link": "glossary.html#fls_94hg6re11zl5", "checksum": "fe59827b018a12bd1afdb2a274f0db4bcdc35d4a4e263d0130439c137025cc41"}], "informational": false}, {"id": "fls_7f2sx37kg4ca", "number": "B.663", "title": "tuple pattern", "link": "glossary.html#tuple-pattern", "paragraphs": [{"id": "fls_al2q3vh1rg6e", "number": "B.663:1", "link": "glossary.html#fls_al2q3vh1rg6e", "checksum": "014e8976a0754aabc5a82c10550042e050855bf54da0c5fd42c89e1713d3e0ad"}, {"id": "fls_bevmt5t0238j", "number": "B.663:2", "link": "glossary.html#fls_bevmt5t0238j", "checksum": "366b7cc3670f470aa55f22e1a42e8fbb4a6335e807dc55022cbfc8e043ac4740"}], "informational": false}, {"id": "fls_245idp9hpqf6", "number": "B.664", "title": "tuple struct", "link": "glossary.html#tuple-struct", "paragraphs": [{"id": "fls_pdcpmapiq491", "number": "B.664:1", "link": "glossary.html#fls_pdcpmapiq491", "checksum": "b311d346bfd4e086b5c17c8f16534ff967414f9627ca9530ca3b8be758b5c18f"}, {"id": "fls_1tj4p05m4wdf", "number": "B.664:2", "link": "glossary.html#fls_1tj4p05m4wdf", "checksum": "6cdc2a1f6dde6174225d84db6381bd5955b4cf4670fa66ce2cb4fd134bfb3706"}], "informational": false}, {"id": "fls_uycpeq4z87my", "number": "B.665", "title": "tuple struct call expression", "link": "glossary.html#tuple-struct-call-expression", "paragraphs": [{"id": "fls_dqacukskfxzk", "number": "B.665:1", "link": "glossary.html#fls_dqacukskfxzk", "checksum": "a64d40bff82db0127f3143f64a671fb6f7d89c57e8ac4c3ead72042d404e6aea"}], "informational": false}, {"id": "fls_xx4slbg8s63e", "number": "B.666", "title": "tuple struct field", "link": "glossary.html#tuple-struct-field", "paragraphs": [{"id": "fls_ndeb1a2hm9d8", "number": "B.666:1", "link": "glossary.html#fls_ndeb1a2hm9d8", "checksum": "34f0ca66a05c537ae1ade668b63e1e7ac6dca1122c33c64c2ef18c2a7863c403"}, {"id": "fls_v4eq8xg608d5", "number": "B.666:2", "link": "glossary.html#fls_v4eq8xg608d5", "checksum": "1f33d04d14f1689b6934399e869ab681345727930a1ebf333573e8631fcd8583"}], "informational": false}, {"id": "fls_u2j18nl1t12f", "number": "B.667", "title": "tuple struct pattern", "link": "glossary.html#tuple-struct-pattern", "paragraphs": [{"id": "fls_gu1mfurivnfz", "number": "B.667:1", "link": "glossary.html#fls_gu1mfurivnfz", "checksum": "144fd7c64d475120fd661c0bfee35b7c617ef21486036cdc10e17e37a138cfe3"}, {"id": "fls_3jx5683mdm10", "number": "B.667:2", "link": "glossary.html#fls_3jx5683mdm10", "checksum": "3520afa480b073c9eb1d2441a6534ec15d464557e5a5c1b41696b94d12f1793e"}], "informational": false}, {"id": "fls_qx8j2lvqigqk", "number": "B.668", "title": "tuple struct type", "link": "glossary.html#tuple-struct-type", "paragraphs": [{"id": "fls_hhikx5ajx3bl", "number": "B.668:1", "link": "glossary.html#fls_hhikx5ajx3bl", "checksum": "416849fc332ef48c6d4f984fd449183aabcb750d11e2b2e5466e6a95a3756055"}], "informational": false}, {"id": "fls_x4alcjkhvdzf", "number": "B.669", "title": "tuple struct value", "link": "glossary.html#tuple-struct-value", "paragraphs": [{"id": "fls_xz1p4pss2ocn", "number": "B.669:1", "link": "glossary.html#fls_xz1p4pss2ocn", "checksum": "79e56f6a22048aaaa6aa17dfc77a56f04c7cb3406f2b512a417c47429f0408ae"}], "informational": false}, {"id": "fls_k4yz7i2pf9wp", "number": "B.670", "title": "tuple type", "link": "glossary.html#tuple-type", "paragraphs": [{"id": "fls_q0ulqfvnxwni", "number": "B.670:1", "link": "glossary.html#fls_q0ulqfvnxwni", "checksum": "668679a339b1d390d2879dd09057dfb653483310820e25cb85f36ecb257a07f2"}, {"id": "fls_rkugxsau1w78", "number": "B.670:2", "link": "glossary.html#fls_rkugxsau1w78", "checksum": "173ce8cdfc9a32ca31bd38a2ea635ca03be34fb62a27d0a865033c3601be7635"}], "informational": false}, {"id": "fls_wzupssn435n", "number": "B.671", "title": "type", "link": "glossary.html#type", "paragraphs": [{"id": "fls_nhlh7vvgsbwo", "number": "B.671:1", "link": "glossary.html#fls_nhlh7vvgsbwo", "checksum": "0abdb8e038c1bfa402d5079e31e31f4e462c1551ca20b145e493f50f1f3c7854"}], "informational": false}, {"id": "fls_vaklivoy2ix2", "number": "B.672", "title": "type alias", "link": "glossary.html#type-alias", "paragraphs": [{"id": "fls_8pcsxodv1xp5", "number": "B.672:1", "link": "glossary.html#fls_8pcsxodv1xp5", "checksum": "aa3c4d9f62051dcd0d2aab6ecc975098440380f66c21a7c8a410d0280d6d2dda"}, {"id": "fls_qfzskp1t3h5w", "number": "B.672:2", "link": "glossary.html#fls_qfzskp1t3h5w", "checksum": "7ce8f63fe99b83be7ea5fbe8ba19ddd3e9485e4c4b41bad48e9f3c6af28a6389"}], "informational": false}, {"id": "fls_89ollsdjx3uy", "number": "B.673", "title": "type argument", "link": "glossary.html#type-argument", "paragraphs": [{"id": "fls_152lk7hrtd11", "number": "B.673:1", "link": "glossary.html#fls_152lk7hrtd11", "checksum": "fa43d63754ae49bfbcb18ce1c738640e7ea982d0e8a54f7a373fca1a8f8687b5"}, {"id": "fls_91tqk65qiygf", "number": "B.673:2", "link": "glossary.html#fls_91tqk65qiygf", "checksum": "a3bf5eee58995eca7961b2df9db410281b0267a7308845a618f2c29758520c1c"}], "informational": false}, {"id": "fls_1n50v16et5e6", "number": "B.674", "title": "type ascription", "link": "glossary.html#type-ascription", "paragraphs": [{"id": "fls_pm5jytclqn7y", "number": "B.674:1", "link": "glossary.html#fls_pm5jytclqn7y", "checksum": "e786169392329eab70eb20b191e49053427501e8e0e70866639dc3e79db0c56c"}, {"id": "fls_c3xtiputfxea", "number": "B.674:2", "link": "glossary.html#fls_c3xtiputfxea", "checksum": "4017b57ffdd0b3ce8085deb3eeb6c74b70ee0424570270827943660f8f9e6e99"}], "informational": false}, {"id": "fls_zddxv5i4bw9h", "number": "B.675", "title": "type bound predicate", "link": "glossary.html#type-bound-predicate", "paragraphs": [{"id": "fls_j6wkoybb4cep", "number": "B.675:1", "link": "glossary.html#fls_j6wkoybb4cep", "checksum": "9eda2d81c174228b1d72bed89c9818071620c13ae46d5ae55cb5152642ece5bb"}, {"id": "fls_omlpngodjnow", "number": "B.675:2", "link": "glossary.html#fls_omlpngodjnow", "checksum": "0246218bc2fdad2c586c7abeea45f0e01af777b9ed8915378a5b40d264abcf14"}], "informational": false}, {"id": "fls_k24jb967nu1q", "number": "B.676", "title": "type cast expression", "link": "glossary.html#type-cast-expression", "paragraphs": [{"id": "fls_j6zo3rir1x76", "number": "B.676:1", "link": "glossary.html#fls_j6zo3rir1x76", "checksum": "e49eb059e7bb4cee0f4fd399cfff35171648face5051433e2aa2c8524cbf1680"}, {"id": "fls_dvh1xy9w74ch", "number": "B.676:2", "link": "glossary.html#fls_dvh1xy9w74ch", "checksum": "98cca27ac1968d639801599c46b5009c59014d58e18c6232f0f6141b7e5cb18a"}], "informational": false}, {"id": "fls_6j08yuafv0vl", "number": "B.677", "title": "type coercion", "link": "glossary.html#type-coercion", "paragraphs": [{"id": "fls_mt36qehtqova", "number": "B.677:1", "link": "glossary.html#fls_mt36qehtqova", "checksum": "15d4c95ee790f9faf8bf61ea000ae4a165864cad1a8ee88a120cb524d75f37f6"}], "informational": false}, {"id": "fls_7fpvb2gvqng8", "number": "B.678", "title": "type inference", "link": "glossary.html#type-inference", "paragraphs": [{"id": "fls_ky8epvf9834e", "number": "B.678:1", "link": "glossary.html#fls_ky8epvf9834e", "checksum": "d70e06ecdd54a9ee05e709764b36e5d3d678f857d806b816c0b8c84801361aa5"}], "informational": false}, {"id": "fls_0jri0m3f1fat", "number": "B.679", "title": "type inference root", "link": "glossary.html#type-inference-root", "paragraphs": [{"id": "fls_hli7lcixs48z", "number": "B.679:1", "link": "glossary.html#fls_hli7lcixs48z", "checksum": "5859c3075cf1df2fd347a0e0ba5681b8b26efa87f65a5eb486a7b8835742b661"}], "informational": false}, {"id": "fls_uv2damik654e", "number": "B.680", "title": "type parameter", "link": "glossary.html#type-parameter", "paragraphs": [{"id": "fls_5t6510wkb67x", "number": "B.680:1", "link": "glossary.html#fls_5t6510wkb67x", "checksum": "446d19536c494b187a348cede9ba0474e39271596216682bcb9b59c2c24a270a"}, {"id": "fls_vquy0tsvd93x", "number": "B.680:2", "link": "glossary.html#fls_vquy0tsvd93x", "checksum": "3c2520f52c836ea52a6b324f7a0b5eac234dfce8887421ee8b74454a286fab82"}], "informational": false}, {"id": "fls_fq2zthyrpk2v", "number": "B.681", "title": "type parameter initializer", "link": "glossary.html#type-parameter-initializer", "paragraphs": [{"id": "fls_xpz47jlnsoxi", "number": "B.681:1", "link": "glossary.html#fls_xpz47jlnsoxi", "checksum": "aa3c1397613c12b73072f31871e63805ccc573bf4146d576bc2a651177c2fde2"}, {"id": "fls_6ap26acsadp8", "number": "B.681:2", "link": "glossary.html#fls_6ap26acsadp8", "checksum": "faa528ec23f1f22d7c3d98aff96922f60da745b4648303e2129eeaf744823f5d"}], "informational": false}, {"id": "fls_hghjwqvyj5bn", "number": "B.682", "title": "type parameter type", "link": "glossary.html#type-parameter-type", "paragraphs": [{"id": "fls_euhhxwhd0rhv", "number": "B.682:1", "link": "glossary.html#fls_euhhxwhd0rhv", "checksum": "47e816df6b2d0e10441e59307eef6ae63bb4b1e453422eb9d9f1eeb8560eeb92"}], "informational": false}, {"id": "fls_qdcixh7usj9r", "number": "B.683", "title": "type path", "link": "glossary.html#type-path", "paragraphs": [{"id": "fls_ubr5czhrmtrx", "number": "B.683:1", "link": "glossary.html#fls_ubr5czhrmtrx", "checksum": "9bf978f0ebc438873d30e0f3e45f7435e96d3f59593761c0313c7370b48e86fd"}, {"id": "fls_7cbnazyszayw", "number": "B.683:2", "link": "glossary.html#fls_7cbnazyszayw", "checksum": "d2504465bb4d3df32d8b919c4d19b6a57ec9e6beae1243147f3aa895c509b960"}], "informational": false}, {"id": "fls_wa3bit0rq102", "number": "B.684", "title": "type path resolution", "link": "glossary.html#type-path-resolution", "paragraphs": [{"id": "fls_xv6jbfdiyva3", "number": "B.684:1", "link": "glossary.html#fls_xv6jbfdiyva3", "checksum": "f8d3cfe269f992d7d63c38d05fa6aade8d3389f1ec18bb04cf7912bf3c7a03eb"}], "informational": false}, {"id": "fls_u1zkh2m8p92", "number": "B.685", "title": "type representation", "link": "glossary.html#type-representation", "paragraphs": [{"id": "fls_rv80nyxwj2z8", "number": "B.685:1", "link": "glossary.html#fls_rv80nyxwj2z8", "checksum": "8355a6f37c4708ef914397a364e6a89857c563d05d75c36eb33fe65bbd6efa18"}], "informational": false}, {"id": "fls_ukua6gbye6ot", "number": "B.686", "title": "type specification", "link": "glossary.html#type-specification", "paragraphs": [{"id": "fls_tdjhjg9zhnv5", "number": "B.686:1", "link": "glossary.html#fls_tdjhjg9zhnv5", "checksum": "6c9e5a399a4171a1a046c7e23d90ed0926e546fb56c7213a8c1887b7d6df9cce"}, {"id": "fls_a3sqjp1l8po6", "number": "B.686:2", "link": "glossary.html#fls_a3sqjp1l8po6", "checksum": "3dc19b9af6f9759dae3311697bffdcb48c66303780af22ebf32a3f2a72847bb8"}], "informational": false}, {"id": "fls_qoehu9p00q56", "number": "B.687", "title": "type unification", "link": "glossary.html#type-unification", "paragraphs": [{"id": "fls_3vyodut341b5", "number": "B.687:1", "link": "glossary.html#fls_3vyodut341b5", "checksum": "d50f874f3d49514c3e972dcc5a0b04401b9d0688b9d306219b210878cbf44bee"}], "informational": false}, {"id": "fls_6zhffgxtytku", "number": "B.688", "title": "type variable", "link": "glossary.html#type-variable", "paragraphs": [{"id": "fls_j9eusnwze4rz", "number": "B.688:1", "link": "glossary.html#fls_j9eusnwze4rz", "checksum": "078fa9c5e5d905d209b8c537c7b22c2aebe1e612159403576f63645e9f16278b"}], "informational": false}, {"id": "fls_44uvj9l7q98z", "number": "B.689", "title": "u8", "link": "glossary.html#u8", "paragraphs": [{"id": "fls_umf9zfeghy6", "number": "B.689:1", "link": "glossary.html#fls_umf9zfeghy6", "checksum": "240fd707d03c5f4225010e82cf65427143275020027f099e7dd590de0f95fb17"}], "informational": false}, {"id": "fls_eh24kdjdze5j", "number": "B.690", "title": "u16", "link": "glossary.html#u16", "paragraphs": [{"id": "fls_8vi7bm2895y0", "number": "B.690:1", "link": "glossary.html#fls_8vi7bm2895y0", "checksum": "d96f9b0e832d3824333a07bf5766342a3ba6faf603caad0f38302dde5b66027d"}], "informational": false}, {"id": "fls_jybcgdujzpqy", "number": "B.691", "title": "u32", "link": "glossary.html#u32", "paragraphs": [{"id": "fls_pw90erui8vkk", "number": "B.691:1", "link": "glossary.html#fls_pw90erui8vkk", "checksum": "40acfb2f28be18517ba1ea79549d8e40910b2ea677f9c450972bfecd9172d431"}], "informational": false}, {"id": "fls_1z1e3chuejzz", "number": "B.692", "title": "u64", "link": "glossary.html#u64", "paragraphs": [{"id": "fls_pbcmhznqft9m", "number": "B.692:1", "link": "glossary.html#fls_pbcmhznqft9m", "checksum": "1823d4b590e3d0914a15950d1b7cc9de45f2d3a17cb7a6046ea3bdcb86e0d416"}], "informational": false}, {"id": "fls_5hn9e3ce1smp", "number": "B.693", "title": "u128", "link": "glossary.html#u128", "paragraphs": [{"id": "fls_8yv891ur2av5", "number": "B.693:1", "link": "glossary.html#fls_8yv891ur2av5", "checksum": "d00e9b45f6629787267fae792c957b6efe042cd13c423d504d6de0634e21fd29"}], "informational": false}, {"id": "fls_p032easjag3d", "number": "B.694", "title": "unary operator", "link": "glossary.html#unary-operator", "paragraphs": [{"id": "fls_p6mk2zrwgwem", "number": "B.694:1", "link": "glossary.html#fls_p6mk2zrwgwem", "checksum": "45a374a6fe44141b872001767db4be400065b995ab6d0c882b20cba7b56408dd"}], "informational": false}, {"id": "fls_wull4svskavz", "number": "B.695", "title": "undefined behavior", "link": "glossary.html#undefined-behavior", "paragraphs": [{"id": "fls_wpwmltumqgza", "number": "B.695:1", "link": "glossary.html#fls_wpwmltumqgza", "checksum": "66990068515e14ec7bd45601e878f6e9bc7dbbfe756c38be7ab30ee6fb789861"}], "informational": false}, {"id": "fls_x6xjwwyetnvr", "number": "B.696", "title": "under resolution", "link": "glossary.html#under-resolution", "paragraphs": [{"id": "fls_bppwxsvuwteu", "number": "B.696:1", "link": "glossary.html#fls_bppwxsvuwteu", "checksum": "46639279f33be845b817105ffc1419b926a77f9b60d6e55df1f5fcc0812ccc98"}], "informational": false}, {"id": "fls_57kis2vnt3cv", "number": "B.697", "title": "underscore expression", "link": "glossary.html#underscore-expression", "paragraphs": [{"id": "fls_ukl1sefb99gj", "number": "B.697:1", "link": "glossary.html#fls_ukl1sefb99gj", "checksum": "20a85f5dbb0b1b440060fdd9497082cee68731cdb924a53268da4daf9a6b7ad0"}, {"id": "fls_qbo267kdjcgs", "number": "B.697:2", "link": "glossary.html#fls_qbo267kdjcgs", "checksum": "5ae2fa57a1d70cb388a595ffd273105b1f4b7238f8d8e113d7dbaa9647711ff0"}], "informational": false}, {"id": "fls_fhwqe6afup2o", "number": "B.698", "title": "underscore pattern", "link": "glossary.html#underscore-pattern", "paragraphs": [{"id": "fls_f6yroesif1q4", "number": "B.698:1", "link": "glossary.html#fls_f6yroesif1q4", "checksum": "6db0bf00d375f6f71d8f32444dcae6c9c8405cc337d210083fbf4d32f461dfb4"}, {"id": "fls_bktuchv7o4dd", "number": "B.698:2", "link": "glossary.html#fls_bktuchv7o4dd", "checksum": "2c0394e8c9a3ca2f3a9f4e7fbb6308977613da1de981eb8d336ed83a4f4d474d"}], "informational": false}, {"id": "fls_hpuswmvns5f4", "number": "B.699", "title": "unhygienic", "link": "glossary.html#unhygienic", "paragraphs": [{"id": "fls_0t4lfzlknier", "number": "B.699:1", "link": "glossary.html#fls_0t4lfzlknier", "checksum": "f540fd8e6be1fd890846ea28490cda6a8d9778e214c7359e874b25ef60cffca7"}], "informational": false}, {"id": "fls_kafgmevvzl5t", "number": "B.700", "title": "Unicode", "link": "glossary.html#unicode", "paragraphs": [{"id": "fls_y7gwku7pe1f4", "number": "B.700:1", "link": "glossary.html#fls_y7gwku7pe1f4", "checksum": "66de55020a851a16e63889213d54eb58e457882fa4700c0b88bb2bc6e2200bed"}], "informational": false}, {"id": "fls_y7m6aentm6ik", "number": "B.701", "title": "unifiable", "link": "glossary.html#unifiable", "paragraphs": [{"id": "fls_01bntcl4u8gn", "number": "B.701:1", "link": "glossary.html#fls_01bntcl4u8gn", "checksum": "99c0a32aee687c8485a97d48e2954f00639b71b35e7798555144ee6fcc6071b9"}], "informational": false}, {"id": "fls_u03p4rvz1jhs", "number": "B.702", "title": "unifiable types", "link": "glossary.html#unifiable-types", "paragraphs": [{"id": "fls_jsbggfitv9xk", "number": "B.702:1", "link": "glossary.html#fls_jsbggfitv9xk", "checksum": "12c30d23e49fa947d50f9367ef6d16ba1b0fa37b23b66c57df17510bdab20c31"}], "informational": false}, {"id": "fls_9rfudii6qrzz", "number": "B.703", "title": "unified type", "link": "glossary.html#unified-type", "paragraphs": [{"id": "fls_tqrwie6z3a4j", "number": "B.703:1", "link": "glossary.html#fls_tqrwie6z3a4j", "checksum": "9ce1bb7a4916b9c625b7d55b6c7046df5cd3fbdf12bd025f221c1e3bf93b5c91"}], "informational": false}, {"id": "fls_da6ssnmmsevo", "number": "B.704", "title": "unify", "link": "glossary.html#unify", "paragraphs": [{"id": "fls_mango4gffb9e", "number": "B.704:1", "link": "glossary.html#fls_mango4gffb9e", "checksum": "a4696e694d314be23cb1c73696569d3019d536edd5cb27e6d91a22cf0b61c261"}], "informational": false}, {"id": "fls_8qljy9e1jjcb", "number": "B.705", "title": "union", "link": "glossary.html#union", "paragraphs": [{"id": "fls_x3oibk39dvem", "number": "B.705:1", "link": "glossary.html#fls_x3oibk39dvem", "checksum": "0e85919540d6abee1a86afcbf1cf7ba606ef8750d81655c0993451e8c162f575"}], "informational": false}, {"id": "fls_71xvazpwi8p0", "number": "B.706", "title": "union field", "link": "glossary.html#union-field", "paragraphs": [{"id": "fls_6t2fbnlndz8y", "number": "B.706:1", "link": "glossary.html#fls_6t2fbnlndz8y", "checksum": "42c1eeab5df8669a23a8174e85a967c08b0a4bb6193f0a46c12fc8e34e122283"}], "informational": false}, {"id": "fls_nrgyga1rztb3", "number": "B.707", "title": "union type", "link": "glossary.html#union-type", "paragraphs": [{"id": "fls_af2sscrep7mc", "number": "B.707:1", "link": "glossary.html#fls_af2sscrep7mc", "checksum": "03a081739582029e2cf73267b95ef3091e731e205714ff0c738ce5fc6fdb5e9d"}, {"id": "fls_fgvjogfz8ink", "number": "B.707:2", "link": "glossary.html#fls_fgvjogfz8ink", "checksum": "2a190782043c191952b41b989f80b5f8e19ff25a66982307171b40712bb5cc42"}], "informational": false}, {"id": "fls_2qrqmea3osvl", "number": "B.708", "title": "union value", "link": "glossary.html#union-value", "paragraphs": [{"id": "fls_9bprxky3a4ne", "number": "B.708:1", "link": "glossary.html#fls_9bprxky3a4ne", "checksum": "874e78f40001ffeb6589fe44ef1284106f77490c5142b4fdbc3ef3815743bfd7"}], "informational": false}, {"id": "fls_is9hwlc6q0g5", "number": "B.709", "title": "unique immutable reference", "link": "glossary.html#unique-immutable-reference", "paragraphs": [{"id": "fls_exrivamnxzmv", "number": "B.709:1", "link": "glossary.html#fls_exrivamnxzmv", "checksum": "46e6ddda6586685cb4481613c375417db7a49c52bbfa54677240f8c40c613c5c"}], "informational": false}, {"id": "fls_rwtgq904noal", "number": "B.710", "title": "unit enum variant", "link": "glossary.html#unit-enum-variant", "paragraphs": [{"id": "fls_y6fi5l3tghie", "number": "B.710:1", "link": "glossary.html#fls_y6fi5l3tghie", "checksum": "06d070b750bfc2856728ed128922d0d6d7f75bac48b38193857a3d9765f8072f"}], "informational": false}, {"id": "fls_f3hmx9qya258", "number": "B.711", "title": "unit struct", "link": "glossary.html#unit-struct", "paragraphs": [{"id": "fls_9t7fu8fcak6k", "number": "B.711:1", "link": "glossary.html#fls_9t7fu8fcak6k", "checksum": "2b5e32a18d029e2c9499e716ab614297f977095023bd2f89e271e3cadf89458a"}, {"id": "fls_msuiysavczpx", "number": "B.711:2", "link": "glossary.html#fls_msuiysavczpx", "checksum": "9a4a36a9c339532c2866460d9fa0aeeb69de36a8d9ab11fdcb0c088e5643c3f2"}], "informational": false}, {"id": "fls_jdvenl8f7i8r", "number": "B.712", "title": "unit struct constant", "link": "glossary.html#unit-struct-constant", "paragraphs": [{"id": "fls_llgn4jqddeag", "number": "B.712:1", "link": "glossary.html#fls_llgn4jqddeag", "checksum": "ee313d7b845dad7fedf2fb56e0e18b297450b2cd48ac8a69efeea153520a5f5a"}], "informational": false}, {"id": "fls_6j2wnombilja", "number": "B.713", "title": "unit struct type", "link": "glossary.html#unit-struct-type", "paragraphs": [{"id": "fls_oizmvacneqpe", "number": "B.713:1", "link": "glossary.html#fls_oizmvacneqpe", "checksum": "95231838f01caa661982881c4490bea6d03af7f28abcfeb08723b3c371d046aa"}], "informational": false}, {"id": "fls_cxp8fgprbvue", "number": "B.714", "title": "unit struct value", "link": "glossary.html#unit-struct-value", "paragraphs": [{"id": "fls_kr9ngijx3n4r", "number": "B.714:1", "link": "glossary.html#fls_kr9ngijx3n4r", "checksum": "89b6b9416afba18aa81bd12c9a7bae03ee6252816561b861b81b0af8ceedb90c"}], "informational": false}, {"id": "fls_wmn9mcqae88q", "number": "B.715", "title": "unit tuple", "link": "glossary.html#unit-tuple", "paragraphs": [{"id": "fls_vo1jw6rmu4yy", "number": "B.715:1", "link": "glossary.html#fls_vo1jw6rmu4yy", "checksum": "8548bab7c83948bc1472b46057179d1082fc5eda3ea01d610618ec9d4c7ef21c"}], "informational": false}, {"id": "fls_t32yfzmpid5a", "number": "B.716", "title": "unit type", "link": "glossary.html#unit-type", "paragraphs": [{"id": "fls_jtdtv3q2ls05", "number": "B.716:1", "link": "glossary.html#fls_jtdtv3q2ls05", "checksum": "d98a7945c0178ac11310bf7409389f0e5c7a3d7b807856fc6891c9e53484a28d"}], "informational": false}, {"id": "fls_vxt0ifseehv9", "number": "B.717", "title": "unit value", "link": "glossary.html#unit-value", "paragraphs": [{"id": "fls_ycdv4nvsdyx", "number": "B.717:1", "link": "glossary.html#fls_ycdv4nvsdyx", "checksum": "8fd7d221054a7b10ef91afa5a32abc45c848a365fcc6a347cb40a90d6eb629fa"}], "informational": false}, {"id": "fls_u78ng1tleh0w", "number": "B.718", "title": "unnamed constant", "link": "glossary.html#unnamed-constant", "paragraphs": [{"id": "fls_ufj01cxxsv1w", "number": "B.718:1", "link": "glossary.html#fls_ufj01cxxsv1w", "checksum": "cba5a3f3c0fdc57f0cac81e99b8a88a9d74174bbcc415aeac31ea80667080807"}], "informational": false}, {"id": "fls_r8567aozbyxl", "number": "B.719", "title": "unnamed lifetime", "link": "glossary.html#unnamed-lifetime", "paragraphs": [{"id": "fls_4iy6zpq66mit", "number": "B.719:1", "link": "glossary.html#fls_4iy6zpq66mit", "checksum": "7ed10cf906202e473aee8f7062336f3ae2a1e5e983ac5fa34322455b6764c713"}], "informational": false}, {"id": "fls_cdvmvrvhubmr", "number": "B.720", "title": "unqualified path expression", "link": "glossary.html#unqualified-path-expression", "paragraphs": [{"id": "fls_9xkgp8uvsoar", "number": "B.720:1", "link": "glossary.html#fls_9xkgp8uvsoar", "checksum": "2c7f34a4421b36a3de115c19d0f2986496bc0ccac6f6650e3eb199d9f68e7db3"}], "informational": false}, {"id": "fls_6349nvapfj9d", "number": "B.721", "title": "unsafe block", "link": "glossary.html#unsafe-block", "paragraphs": [{"id": "fls_8tkolhmd6xfp", "number": "B.721:1", "link": "glossary.html#fls_8tkolhmd6xfp", "checksum": "746af7557dda4662a7df23f5d69e723fbe0f3f7759c981bca1a6e9ede6d91052"}], "informational": false}, {"id": "fls_u8sdp2fxz9pn", "number": "B.722", "title": "unsafe block expression", "link": "glossary.html#unsafe-block-expression", "paragraphs": [{"id": "fls_et2h89jyivhs", "number": "B.722:1", "link": "glossary.html#fls_et2h89jyivhs", "checksum": "12767e911d6788d44d6aab73c9c1defd79788a9aff3055b771e0c7826f990e53"}, {"id": "fls_c94rudunhp5b", "number": "B.722:2", "link": "glossary.html#fls_c94rudunhp5b", "checksum": "14d57b3f5e9cf2a3744d227f964a8bbba246986b93e2f521cca9571201988d80"}], "informational": false}, {"id": "fls_5m85wlr2qw78", "number": "B.723", "title": "unsafe context", "link": "glossary.html#unsafe-context", "paragraphs": [{"id": "fls_qn1s845ejbu0", "number": "B.723:1", "link": "glossary.html#fls_qn1s845ejbu0", "checksum": "74b2e572b55ba25145f4e1157dcf2f47ae453ee8fc5a32e33d091efb9fb7c3ff"}], "informational": false}, {"id": "fls_ua64pv82skaw", "number": "B.724", "title": "unsafe function", "link": "glossary.html#unsafe-function", "paragraphs": [{"id": "fls_2ht13dgtxi1o", "number": "B.724:1", "link": "glossary.html#fls_2ht13dgtxi1o", "checksum": "09a2ab18e10c912b792daab07b9e448646dc62864c26467d0eb49953b686c343"}], "informational": false}, {"id": "fls_y1iruf62p856", "number": "B.725", "title": "unsafe function item type", "link": "glossary.html#unsafe-function-item-type", "paragraphs": [{"id": "fls_r91tuwi55nu7", "number": "B.725:1", "link": "glossary.html#fls_r91tuwi55nu7", "checksum": "2a6f7b357bcf9e02e01322e292bf9a49fff98398285fdbbeaaf079ddc5082bd2"}], "informational": false}, {"id": "fls_bokqlokua059", "number": "B.726", "title": "unsafe function pointer type", "link": "glossary.html#unsafe-function-pointer-type", "paragraphs": [{"id": "fls_tiluwa2v4l6d", "number": "B.726:1", "link": "glossary.html#fls_tiluwa2v4l6d", "checksum": "8211b7ec4e7b1ddab1f82d716901904b54c2ad8c374f8c49050fa326358bc850"}], "informational": false}, {"id": "fls_e2wyfbem6vwn", "number": "B.727", "title": "unsafe operation", "link": "glossary.html#unsafe-operation", "paragraphs": [{"id": "fls_34h60ubicgsj", "number": "B.727:1", "link": "glossary.html#fls_34h60ubicgsj", "checksum": "6d04e874de15ec8533916fa1837ec3f748e0041416df7c5dcab483fafffb7050"}], "informational": false}, {"id": "fls_4f6mppoenj3b", "number": "B.728", "title": "unsafe Rust", "link": "glossary.html#unsafe-rust", "paragraphs": [{"id": "fls_30asi010yf1a", "number": "B.728:1", "link": "glossary.html#fls_30asi010yf1a", "checksum": "d4e120832d43e5442500d1f582915ab5c4981ee54c81700fd0fec82eaa1b174d"}], "informational": false}, {"id": "fls_38ae1t48h9cb", "number": "B.729", "title": "unsafe trait", "link": "glossary.html#unsafe-trait", "paragraphs": [{"id": "fls_w6zlsf2ye457", "number": "B.729:1", "link": "glossary.html#fls_w6zlsf2ye457", "checksum": "fcb7e9e51c1ad23c53607bd9fed543f033683ccec2f703b9caa76ccc635daaeb"}], "informational": false}, {"id": "fls_h62dfjfyqcbn", "number": "B.730", "title": "unsafe trait implementation", "link": "glossary.html#unsafe-trait-implementation", "paragraphs": [{"id": "fls_kqwcv076dzie", "number": "B.730:1", "link": "glossary.html#fls_kqwcv076dzie", "checksum": "fa62f79410b8f3f03ff064f7b2aeae07edd46afa17fb3e05d645ddbeb6e51469"}], "informational": false}, {"id": "fls_pst7yov6vnr9", "number": "B.731", "title": "unsafety", "link": "glossary.html#unsafety", "paragraphs": [{"id": "fls_742ycx5181n", "number": "B.731:1", "link": "glossary.html#fls_742ycx5181n", "checksum": "3b8984c321c17db411893b2f678203985119ef59cfad6466111017b363ca5658"}], "informational": false}, {"id": "fls_4jc74lz245z3", "number": "B.732", "title": "unsigned integer type", "link": "glossary.html#unsigned-integer-type", "paragraphs": [{"id": "fls_dxnf79qemlg6", "number": "B.732:1", "link": "glossary.html#fls_dxnf79qemlg6", "checksum": "a98b44a8b0c6b0552246906fa82d599d1c2d98ca33f9927c058579d6577dda5e"}], "informational": false}, {"id": "fls_pjup0piqlxe3", "number": "B.733", "title": "unsized coercion", "link": "glossary.html#unsized-coercion", "paragraphs": [{"id": "fls_olt5qhyvhmtq", "number": "B.733:1", "link": "glossary.html#fls_olt5qhyvhmtq", "checksum": "348c1728b3e98cb6790a7d9f4b3b632afe4b9554200d2df15d1c6aaed7c52f68"}], "informational": false}, {"id": "fls_kivgo7i3uuhh", "number": "B.734", "title": "unsized type", "link": "glossary.html#unsized-type", "paragraphs": [{"id": "fls_m9npzbh8wf4z", "number": "B.734:1", "link": "glossary.html#fls_m9npzbh8wf4z", "checksum": "62eca509966b187d4122d97645ccfbd24db641add46b27e8be7c2ae576f96503"}], "informational": false}, {"id": "fls_4ph9cact2scc", "number": "B.735", "title": "unsuffixed float", "link": "glossary.html#unsuffixed-float", "paragraphs": [{"id": "fls_7wp6y0xeqqve", "number": "B.735:1", "link": "glossary.html#fls_7wp6y0xeqqve", "checksum": "043e62442cf2db7aad7811221b566012c7f90db6b6f8872a7ae4d4a5819a4205"}], "informational": false}, {"id": "fls_d18nctsj8wu5", "number": "B.736", "title": "unsuffixed integer", "link": "glossary.html#unsuffixed-integer", "paragraphs": [{"id": "fls_t419z3zder0q", "number": "B.736:1", "link": "glossary.html#fls_t419z3zder0q", "checksum": "8704968fe1a6ddc742ec36e2e481c45216a7909a8aeb6bf44699babe6e975375"}], "informational": false}, {"id": "fls_fow1bnvduafi", "number": "B.737", "title": "use import", "link": "glossary.html#use-import", "paragraphs": [{"id": "fls_uccv9zthh5vt", "number": "B.737:1", "link": "glossary.html#fls_uccv9zthh5vt", "checksum": "ed8550645e0953e23063dcc53dd744bb1aedb661c1d8fce0f15ca60a006767c9"}, {"id": "fls_ib5wf62j4uhr", "number": "B.737:2", "link": "glossary.html#fls_ib5wf62j4uhr", "checksum": "dbd8cf2b875110fb8f629b15bbd1d7c296379c578316f6553ab8d2350d8f0c3c"}], "informational": false}, {"id": "fls_gvjm5mms9ahz", "number": "B.738", "title": "usize", "link": "glossary.html#usize", "paragraphs": [{"id": "fls_r22k1l8799k6", "number": "B.738:1", "link": "glossary.html#fls_r22k1l8799k6", "checksum": "184adfe8b40e498c10b13994671a6aec10a3d60c8dd0d7d49611462cbe965adc"}], "informational": false}, {"id": "fls_a5k8aobsi3bg", "number": "B.739", "title": "validity invariant", "link": "glossary.html#validity-invariant", "paragraphs": [{"id": "fls_3ebc3l839ajf", "number": "B.739:1", "link": "glossary.html#fls_3ebc3l839ajf", "checksum": "1347632e6ce2c4ee49038f50ae13199cf27d4690167ba97f02bedbedd2a05293"}], "informational": false}, {"id": "fls_tg866bc926ms", "number": "B.740", "title": "value", "link": "glossary.html#value", "paragraphs": [{"id": "fls_h8jn338b51yu", "number": "B.740:1", "link": "glossary.html#fls_h8jn338b51yu", "checksum": "63b3768dfc5663ef6cc4bebbff9dab2e3f9a9517deeeb7092f2aedd12f9ae18a"}], "informational": false}, {"id": "fls_h03noz6jzpyl", "number": "B.741", "title": "value expression", "link": "glossary.html#value-expression", "paragraphs": [{"id": "fls_mn6tcuz5j3p", "number": "B.741:1", "link": "glossary.html#fls_mn6tcuz5j3p", "checksum": "97ce03f5d133c156c2a873b2c3bfbe141c79c5f3439eaf79749688438d96b196"}], "informational": false}, {"id": "fls_7xiaxxswy4gp", "number": "B.742", "title": "value expression context", "link": "glossary.html#value-expression-context", "paragraphs": [{"id": "fls_nggzebmolrbd", "number": "B.742:1", "link": "glossary.html#fls_nggzebmolrbd", "checksum": "cb2b2895ac8157efff1e4477cf2a7482d64c99c9b251c0e789dc26e88cbffe0f"}], "informational": false}, {"id": "fls_a5xof9jlpc2e", "number": "B.743", "title": "value operand", "link": "glossary.html#value-operand", "paragraphs": [{"id": "fls_x4seemjknk2z", "number": "B.743:1", "link": "glossary.html#fls_x4seemjknk2z", "checksum": "d6923a479fd3cecafe3bab1e1c8346b039c95d034a6ea9311970ad24f4e85c11"}, {"id": "fls_cl4fakfkpscp", "number": "B.743:2", "link": "glossary.html#fls_cl4fakfkpscp", "checksum": "7842d3f876bb2f2154b1b74aecde5c363cc4a8607ac77fc1a46a8fc84663b78d"}], "informational": false}, {"id": "fls_donq6w1906lw", "number": "B.744", "title": "variable", "link": "glossary.html#variable", "paragraphs": [{"id": "fls_9ab12k4vwsio", "number": "B.744:1", "link": "glossary.html#fls_9ab12k4vwsio", "checksum": "36478cc9ff5272fabf7a32e121dd6075c62366448ef8741b677f766d56bd9c56"}], "informational": false}, {"id": "fls_rie80xof8vla", "number": "B.745", "title": "variadic part", "link": "glossary.html#variadic-part", "paragraphs": [{"id": "fls_epntyloqj1i7", "number": "B.745:1", "link": "glossary.html#fls_epntyloqj1i7", "checksum": "220d715c4f8432b1b2ed9d84586bd572af548dc7ac7a15e689a46fee55334d26"}, {"id": "fls_z9d86gbfbkb5", "number": "B.745:2", "link": "glossary.html#fls_z9d86gbfbkb5", "checksum": "b9880cbe15db60d110b22def087765de48eee422716f5bdd7ef9a4efa72c5164"}], "informational": false}, {"id": "fls_q0xplb4tbzpq", "number": "B.746", "title": "variance", "link": "glossary.html#variance", "paragraphs": [{"id": "fls_il0krrsf09f8", "number": "B.746:1", "link": "glossary.html#fls_il0krrsf09f8", "checksum": "6ffe1ec9864a7fdf10179c4f786551b508513c83be6c1cc6d42dc3bd3fa6491b"}], "informational": false}, {"id": "fls_svx87y4p8fdx", "number": "B.747", "title": "visibility", "link": "glossary.html#visibility", "paragraphs": [{"id": "fls_sadmsqhptlho", "number": "B.747:1", "link": "glossary.html#fls_sadmsqhptlho", "checksum": "df2d054a45f11386315fe7ad021e1e9f588e98e0956ee0cde1d2a0b953ae5f64"}], "informational": false}, {"id": "fls_xqjk8avt7t51", "number": "B.748", "title": "visibility modifier", "link": "glossary.html#visibility-modifier", "paragraphs": [{"id": "fls_ze7befho4jhs", "number": "B.748:1", "link": "glossary.html#fls_ze7befho4jhs", "checksum": "8822842cfdb9899f545a6863f17b3fd9f4ed8742e1a45e24e82893a3131ecfe4"}], "informational": false}, {"id": "fls_iplp3gvfbcpw", "number": "B.749", "title": "weak keyword", "link": "glossary.html#weak-keyword", "paragraphs": [{"id": "fls_4hiznltf5wlu", "number": "B.749:1", "link": "glossary.html#fls_4hiznltf5wlu", "checksum": "12946e0375bdd1300d682bbc3ffe536ed2c1f1d2e0ef90d5f195934aee62deff"}, {"id": "fls_psah573fsrig", "number": "B.749:2", "link": "glossary.html#fls_psah573fsrig", "checksum": "0ccad5782e285aaebbab4f525da60719e6fc70b16ce843c8ae0c7cfba3628186"}], "informational": false}, {"id": "fls_ew2gsg72rjxk", "number": "B.750", "title": "where clause", "link": "glossary.html#where-clause", "paragraphs": [{"id": "fls_prljyrhontzn", "number": "B.750:1", "link": "glossary.html#fls_prljyrhontzn", "checksum": "6d38cff29cf6450cf1cffc0e99547671e44776d60ab8fb23632eb0c86d9b7c16"}, {"id": "fls_k32hnug33eo9", "number": "B.750:2", "link": "glossary.html#fls_k32hnug33eo9", "checksum": "da5c4a74abc8155179c4eca22cf1c4cf733370173eaed26a6d9d627196709d7c"}], "informational": false}, {"id": "fls_myneycm4vi0r", "number": "B.751", "title": "where clause predicate", "link": "glossary.html#where-clause-predicate", "paragraphs": [{"id": "fls_0lacqvmzpdqf", "number": "B.751:1", "link": "glossary.html#fls_0lacqvmzpdqf", "checksum": "62a3945d893b6e8f16b7248680f277547ec165cba3f7cdd1f81774d4362c4973"}, {"id": "fls_jk7v1soke4gm", "number": "B.751:2", "link": "glossary.html#fls_jk7v1soke4gm", "checksum": "f5d3b6fbddf11fbcb02e78d7654c5526825238dcea2e4a32a27c1123c31f0c7a"}], "informational": false}, {"id": "fls_8hcsablipi17", "number": "B.752", "title": "while let loop", "link": "glossary.html#while-let-loop", "paragraphs": [{"id": "fls_ovutw52qtx71", "number": "B.752:1", "link": "glossary.html#fls_ovutw52qtx71", "checksum": "c8664735abb74e6a486190548311df13dcb3a26d2306c0443cb988f0d5b96e91"}], "informational": false}, {"id": "fls_gme4odk59x6d", "number": "B.753", "title": "while let loop expression", "link": "glossary.html#while-let-loop-expression", "paragraphs": [{"id": "fls_g35gn7n88acp", "number": "B.753:1", "link": "glossary.html#fls_g35gn7n88acp", "checksum": "22c214161888086966d2d6e7347c0ce17301b6965a178a232eed8887e1413644"}, {"id": "fls_q3jcb4nodqba", "number": "B.753:2", "link": "glossary.html#fls_q3jcb4nodqba", "checksum": "9e4436f4af053abade784bdc5407280c2db6d9d43149e859f59026c0ddc988b1"}], "informational": false}, {"id": "fls_od59yim9kasi", "number": "B.754", "title": "while loop", "link": "glossary.html#while-loop", "paragraphs": [{"id": "fls_ug9cxoml9ged", "number": "B.754:1", "link": "glossary.html#fls_ug9cxoml9ged", "checksum": "a5cc9bf83bb2bf35b55e2e2dd6ef1bc056b0e37555c867b21198befa67e81739"}], "informational": false}, {"id": "fls_1qxi3h3qmgso", "number": "B.755", "title": "while loop expression", "link": "glossary.html#while-loop-expression", "paragraphs": [{"id": "fls_fq0zyup4djyh", "number": "B.755:1", "link": "glossary.html#fls_fq0zyup4djyh", "checksum": "756b0aea4f3c3af0d5e8d8e7d31fdc7be0f35de71a8b4003662807e1b18a3293"}, {"id": "fls_7htwpbmyq83u", "number": "B.755:2", "link": "glossary.html#fls_7htwpbmyq83u", "checksum": "9f22f6f0955567b0b63aeee2ca3f78379d5a16acb633f9ea12a2fe537e5c19d3"}], "informational": false}, {"id": "fls_cxm8nw6qiryr", "number": "B.756", "title": "whitespace string", "link": "glossary.html#whitespace-string", "paragraphs": [{"id": "fls_nljkmadklwdp", "number": "B.756:1", "link": "glossary.html#fls_nljkmadklwdp", "checksum": "840efa27d2a573c352b1f414faa65fb09e61835af65aaac9217b2df73999c7f7"}], "informational": false}, {"id": "fls_a5lrxgucl3be", "number": "B.757", "title": "zero-sized type", "link": "glossary.html#zero-sized-type", "paragraphs": [{"id": "fls_rmd6pearrhr8", "number": "B.757:1", "link": "glossary.html#fls_rmd6pearrhr8", "checksum": "07a868b57298e2097a28d0a21ead2ad8e657cd8516eaa4d2a7ae0153d379a8ac"}], "informational": false}, {"id": "fls_pix563lfbpm", "number": "B.758", "title": "zero-variant enum type", "link": "glossary.html#zero-variant-enum-type", "paragraphs": [{"id": "fls_84gqz3vwi5mj", "number": "B.758:1", "link": "glossary.html#fls_84gqz3vwi5mj", "checksum": "f635809dd0ab3cbd675012e88b6b6cb1578b29f7be6c55698932adf2f51569d6"}], "informational": false}], "informational": true}, {"title": "General", "link": "general.html", "sections": [{"id": "fls_48qldfwwh493", "number": "1", "title": "General", "link": "general.html", "paragraphs": [{"id": "fls_c4ry0kgmvk9z", "number": "1:1", "link": "general.html#fls_c4ry0kgmvk9z", "checksum": "b56c8be8103d8226bbdec210a97ca8f2c38405d36f65f17b15936a1a8284b26c"}, {"id": "fls_gxqbj0qoiaio", "number": "1:2", "link": "general.html#fls_gxqbj0qoiaio", "checksum": "4a8fd448c0e40fd0675f5d82c36b6f963f99259021c6022cc9bd5104c20fbdeb"}, {"id": "fls_u8k9zr8da30", "number": "1:3", "link": "general.html#fls_u8k9zr8da30", "checksum": "02be35a62aff5e48d56d3fb05c75ade724aff55d6ad8278715bd7fac8adbe03f"}, {"id": "fls_8mt9iigoboba", "number": "1:4", "link": "general.html#fls_8mt9iigoboba", "checksum": "11a39a0b407d0ca45db7639f588e85fe27910624c6c508283f983229a6aad5db"}, {"id": "fls_suhf2g3fatfa", "number": "1:5", "link": "general.html#fls_suhf2g3fatfa", "checksum": "cd1b728c4e56af1dd90836a76afce9239d07ea2aa3095cbeedf8693a22f14caf"}, {"id": "fls_jjr5kbn0wuco", "number": "1:6", "link": "general.html#fls_jjr5kbn0wuco", "checksum": "8b4dce11b14d66a6a1177ef131384957fe6a887c388d56a1902e09ee60f80af0"}, {"id": "fls_4dfcjyprkzbx", "number": "1:7", "link": "general.html#fls_4dfcjyprkzbx", "checksum": "3a278c9aaaabec045a6eede8eb5a0beab745d8b84b098a39b6cdf2e167bc5178"}, {"id": "fls_tq9jcv5ddvwn", "number": "1:8", "link": "general.html#fls_tq9jcv5ddvwn", "checksum": "1e02dbccc64818a6cebcc7d6331d8281a24621e813178d0f5be9d0b3356c7a22"}], "informational": false}, {"id": "fls_fo1c7pg2mw1", "number": "1.1", "title": "Scope", "link": "general.html#scope", "paragraphs": [{"id": "fls_srdq4mota5pr", "number": "1.1:1", "link": "general.html#fls_srdq4mota5pr", "checksum": "a07b4fe66cf65b8ce3a858b2856554611de4b9e53002b5ffa7fbb90c6cfc2b44"}, {"id": "fls_dv1qish8svc", "number": "1.1:2", "link": "general.html#fls_dv1qish8svc", "checksum": "2fd3ee99a2741348afeb5b1c225ce4f0f75e2a082a1761ab70b2514a188bf003"}, {"id": "fls_osh9tiwpnsn1", "number": "1.1:3", "link": "general.html#fls_osh9tiwpnsn1", "checksum": "3cafe78bf672e065271c827827275c25ee801c1d3205969de17e9f49d6aab5ba"}], "informational": false}, {"id": "fls_10yukmkhl0ng", "number": "1.1.1", "title": "Extent", "link": "general.html#extent", "paragraphs": [{"id": "fls_x78yd1sszydv", "number": "1.1.1:1", "link": "general.html#fls_x78yd1sszydv", "checksum": "07358ef439d78086f970b0606b6da177cb6cc2e64318f27af92832c21a67be43"}, {"id": "fls_9e032738udnb", "number": "1.1.1:2", "link": "general.html#fls_9e032738udnb", "checksum": "818ed40aac2e52250ea0014e5de7fbcbcf1e8f325b74a015ac0085699523a43d"}, {"id": "fls_jk7scu5xs17z", "number": "1.1.1:3", "link": "general.html#fls_jk7scu5xs17z", "checksum": "85861dc839d41712fe2a39712eb1dcfd1dc88ba30f3782f92bd1986fe355c196"}, {"id": "fls_jiryupa5fxgf", "number": "1.1.1:4", "link": "general.html#fls_jiryupa5fxgf", "checksum": "dc11c0150f1c1ea89b5e2e31e3d90c45c62fa5d26005eb9ed3a16e3f7a3fb68c"}, {"id": "fls_sph1a3sapinh", "number": "1.1.1:5", "link": "general.html#fls_sph1a3sapinh", "checksum": "4ce6c16caad38e7ccb47adc109089c53cc047073ebba0a06457cbeded05f68e0"}, {"id": "fls_7tm19jxtffc8", "number": "1.1.1:6", "link": "general.html#fls_7tm19jxtffc8", "checksum": "7c348ba84b24afee5a0a39c44f15af8c05a07208877750c9a766d44ab767da7b"}, {"id": "fls_5pbrl8lhuth1", "number": "1.1.1:7", "link": "general.html#fls_5pbrl8lhuth1", "checksum": "585a289861cd9b12366dc2314022378903323fea3cdbd6863a2e5bd96ed69446"}, {"id": "fls_o8fc3e53vp7g", "number": "1.1.1:8", "link": "general.html#fls_o8fc3e53vp7g", "checksum": "fc97ac93c58134f54e07f9f6ff5334dbf3afdc8b1e707525ddd8eb232a915c74"}, {"id": "fls_rw0y5t13y6gs", "number": "1.1.1:9", "link": "general.html#fls_rw0y5t13y6gs", "checksum": "8adc0c63aa968e623b7251ecc0776057325470f81d39879bb6dfb23d1985a407"}, {"id": "fls_x7c3o621qj9z", "number": "1.1.1:10", "link": "general.html#fls_x7c3o621qj9z", "checksum": "2f2276e84ea3e0251d343a2c859bafeefc4eb09d8d7222774ce538650c01980b"}, {"id": "fls_5y2b6yjcl1vz", "number": "1.1.1:11", "link": "general.html#fls_5y2b6yjcl1vz", "checksum": "cd7a1f68c81b43b8536b355596a13da9ddc2e33d7b37a18af00eee2456c3fd06"}, {"id": "fls_8dennhk2dha", "number": "1.1.1:12", "link": "general.html#fls_8dennhk2dha", "checksum": "a695d7fe1b36b6516b8530ec034376b8c43e7aa53cd0795f48e39482be5a38cf"}, {"id": "fls_j2gs3hrbxtyx", "number": "1.1.1:13", "link": "general.html#fls_j2gs3hrbxtyx", "checksum": "65c2d0a375d2b29b8836f90cfdf174fc8fe72f5198073097bb9401add5d0880b"}, {"id": "fls_gy2c7vfwkd8j", "number": "1.1.1:14", "link": "general.html#fls_gy2c7vfwkd8j", "checksum": "94c8f2e37b34e95fffa62df717bbcd7d87653a8506a65f52d91e1706e0dfe9d8"}], "informational": false}, {"id": "fls_xscgklvg1wd2", "number": "1.1.2", "title": "Structure", "link": "general.html#structure", "paragraphs": [{"id": "fls_6lrqailxjb02", "number": "1.1.2:1", "link": "general.html#fls_6lrqailxjb02", "checksum": "cf3cbc9c40c36b3adb1ed7688c9146dbd4600e0a3b26d22e0a8e2d2787004b20"}, {"id": "fls_tys7ciqnp8bn", "number": "1.1.2:2", "link": "general.html#fls_tys7ciqnp8bn", "checksum": "13aa072e39fbda618587953663ec86d1a188fe0eb4db97252b906ca8e9c2fe51"}, {"id": "fls_3ubhkaheu8i1", "number": "1.1.2:3", "link": "general.html#fls_3ubhkaheu8i1", "checksum": "913231e2b3ec529bb3f2e3657b340d11fa082044e00ab94da54e14e109b7d0ac"}, {"id": "fls_xw3grr2g5zgi", "number": "1.1.2:4", "link": "general.html#fls_xw3grr2g5zgi", "checksum": "a3dbc58c5b6f14fcb934d8fe2816aa264d6ae3a56685f6bae01cdec5e2cae935"}, {"id": "fls_k6obg07c1i71", "number": "1.1.2:5", "link": "general.html#fls_k6obg07c1i71", "checksum": "7a81481a7b99562194bdd68e36bc46a25695efe04833a417b9408a585c0d8073"}, {"id": "fls_6srbinvnyd54", "number": "1.1.2:6", "link": "general.html#fls_6srbinvnyd54", "checksum": "11c90805ef23752a416f5a6a8b69230febfdf97b68edaf26f6517bd359492443"}, {"id": "fls_ciixfg9jhv42", "number": "1.1.2:7", "link": "general.html#fls_ciixfg9jhv42", "checksum": "fdcfcebd0c9395a151b773b35ef5d5e2720a08080c54f279652f7668a0182897"}, {"id": "fls_ej94lm2682kg", "number": "1.1.2:8", "link": "general.html#fls_ej94lm2682kg", "checksum": "25a56f970c722a9217989c3250b9b75798453ac229d32dc74b97c2a6c84a2109"}, {"id": "fls_xgk91jrbpyoc", "number": "1.1.2:9", "link": "general.html#fls_xgk91jrbpyoc", "checksum": "1d6b46a99af9d8d5a9922ea6bf1c4898d71c34759d9b8533b122fe70c0df9c02"}, {"id": "fls_enkvrkfqwyt8", "number": "1.1.2:10", "link": "general.html#fls_enkvrkfqwyt8", "checksum": "97c8f4b93879c48bdb5318e6566c1d1354f510b903d8d6b9ecef494153773737"}, {"id": "fls_yfyiaipc9omp", "number": "1.1.2:11", "link": "general.html#fls_yfyiaipc9omp", "checksum": "a24d947dafa49ce8e2c37571c7d28c4b895b8bb3b09bc1fd250ce2eb3f7b9a01"}, {"id": "fls_jc4upf6685bw", "number": "1.1.2:12", "link": "general.html#fls_jc4upf6685bw", "checksum": "db3c5f8206004bb2cca82ca219a417ec2a4fe259773ae667ab3d10114d5740ee"}, {"id": "fls_oxzjqxgejx9t", "number": "1.1.2:13", "link": "general.html#fls_oxzjqxgejx9t", "checksum": "1594b619675d7802bccfee40ca10262be9916e29f70d8f7fecbf5dddd00246f4"}, {"id": "fls_gmx688d6ek1o", "number": "1.1.2:14", "link": "general.html#fls_gmx688d6ek1o", "checksum": "acf02a4a250adb8e29284b356a6f4a386a936d32f0e85d3b304e708863f10929"}, {"id": "fls_5zdjikp1jhc", "number": "1.1.2:15", "link": "general.html#fls_5zdjikp1jhc", "checksum": "7f053104dd4947498f1bb5121b9fe28a23d78ead65d37dd580df0111d558d8dd"}, {"id": "fls_as5bhc5t285g", "number": "1.1.2:16", "link": "general.html#fls_as5bhc5t285g", "checksum": "44025e9b54bdddecd35c847f5628ffddbfc9e4721cd733f41c9186c904ef15b1"}, {"id": "fls_70qjvaqoz007", "number": "1.1.2:17", "link": "general.html#fls_70qjvaqoz007", "checksum": "6efef41c7a703e3b3562b12e95047110a954b19026060d22099de222c142ed8b"}, {"id": "fls_o4rdsbc7u98", "number": "1.1.2:18", "link": "general.html#fls_o4rdsbc7u98", "checksum": "525edc88be77e71d6777eef00907902bcd024abb3c401a92d67f1ca997971c5a"}, {"id": "fls_w8j575w2hmc8", "number": "1.1.2:19", "link": "general.html#fls_w8j575w2hmc8", "checksum": "3ab99fa52627e6796ca7e01a7242052885523e5e0f93b9dd98ec22d483688e60"}], "informational": false}, {"id": "fls_99b7xi1bkgih", "number": "1.1.3", "title": "Conformity", "link": "general.html#conformity", "paragraphs": [{"id": "fls_kdyqtnc6loam", "number": "1.1.3:1", "link": "general.html#fls_kdyqtnc6loam", "checksum": "42aa78f31bd39d9d54d95d846fc09f42910052efc6f2cb7eb50a7b34706f7c97"}, {"id": "fls_ctwsz8sl7lbq", "number": "1.1.3:2", "link": "general.html#fls_ctwsz8sl7lbq", "checksum": "8b9c3254ca795d197ee149cc6a05067039977d8d19cfed0ec3bbf060d371ba02"}, {"id": "fls_bvpekhdaxctq", "number": "1.1.3:3", "link": "general.html#fls_bvpekhdaxctq", "checksum": "07f27f39d36356ac4cc58744dc4daecfe8c97cb7f9457db19d9494fb1ad0dfca"}, {"id": "fls_kfs8gsd36d91", "number": "1.1.3:4", "link": "general.html#fls_kfs8gsd36d91", "checksum": "150c7404a99f5330be2638cb2ac1bc7b36d679a98051361a985d7711fc138e3c"}, {"id": "fls_k5sozk8jhrmg", "number": "1.1.3:5", "link": "general.html#fls_k5sozk8jhrmg", "checksum": "dda9b4ee8e63bba9e91cfb85dc3d43db063c22f72bff45cafd2f6876bfbfd0e1"}, {"id": "fls_nwx1fdq6b4mg", "number": "1.1.3:6", "link": "general.html#fls_nwx1fdq6b4mg", "checksum": "bb994ebfd651f73153ab5b7d1a32ca6551ee593448eacf3d370e164a3dec5eb1"}, {"id": "fls_n3ypaile1a36", "number": "1.1.3:7", "link": "general.html#fls_n3ypaile1a36", "checksum": "563ed3d97a65d96209f45e597d0d76b8b47739154161a7cc64f041addf71436b"}, {"id": "fls_nnmx2qsu14ft", "number": "1.1.3:8", "link": "general.html#fls_nnmx2qsu14ft", "checksum": "1f8c2956cb9f8b946f0f56053a038a9ab8efaf6dd7881bb5d1d65e1c87b05900"}, {"id": "fls_gu3331rmv2ho", "number": "1.1.3:9", "link": "general.html#fls_gu3331rmv2ho", "checksum": "617b745c8533d592398a9cdda6ababa7108d653724d221af49db01201b37f99d"}, {"id": "fls_3iekobt8qqi", "number": "1.1.3:10", "link": "general.html#fls_3iekobt8qqi", "checksum": "0fdf723a1e989eb9434d0479b0af810bec67bf6b5c463ca83f170e87ac426737"}, {"id": "fls_qx9fxf4py0j0", "number": "1.1.3:11", "link": "general.html#fls_qx9fxf4py0j0", "checksum": "ab0e8dc4979784d434b36c0192e6ae186044669dc49a67740bcea941c5a3fbb1"}, {"id": "fls_pl0fyjcwslqm", "number": "1.1.3:12", "link": "general.html#fls_pl0fyjcwslqm", "checksum": "849ea928df375ac126378ee4fd16534119a4f03f42721cd25145edc4d7850294"}, {"id": "fls_lkdm0mdghppv", "number": "1.1.3:13", "link": "general.html#fls_lkdm0mdghppv", "checksum": "534de23af559805d2b96e284fdd9afc9838e9e3f65b120c5401aa7cf130d439b"}, {"id": "fls_d07x1mbhgpsd", "number": "1.1.3:14", "link": "general.html#fls_d07x1mbhgpsd", "checksum": "f87533ba7b47cb56f59c27e8d99d031d3c5c35b16c4d3ae271ddb9b3ee18c33b"}], "informational": false}, {"id": "fls_79rl6ylmct07", "number": "1.1.4", "title": "Method of Description and Syntax Notation", "link": "general.html#method-of-description-and-syntax-notation", "paragraphs": [{"id": "fls_mc4a28do6kcp", "number": "1.1.4:1", "link": "general.html#fls_mc4a28do6kcp", "checksum": "8811c1ef8e9707861f67d171dc813cc290188343fde68d68304072ab9d422c41"}, {"id": "fls_ioyp4wux6skt", "number": "1.1.4:2", "link": "general.html#fls_ioyp4wux6skt", "checksum": "5265a200f292feb3f40a0a1fe1884a988c50521945182e3581d1e04067c1c746"}, {"id": "fls_jsflt7691ye4", "number": "1.1.4:3", "link": "general.html#fls_jsflt7691ye4", "checksum": "5be24f2bcda1727c3b6e1ad27d2d7c8ffe6e487d292f2b48bd528e411c2ae1be"}, {"id": "fls_98fm7z04lq9", "number": "1.1.4:4", "link": "general.html#fls_98fm7z04lq9", "checksum": "15f27fa3164d4f34e687dff0589a9406f64fd304a5cbac1d917e215a3420b24d"}, {"id": "fls_ceb5a8t6cakr", "number": "1.1.4:5", "link": "general.html#fls_ceb5a8t6cakr", "checksum": "bf197e4e3db74f8f9189b2d39392b793c47f8e26908e5ff493a91d3567e2e58d"}, {"id": "fls_pts29mb5ld68", "number": "1.1.4:6", "link": "general.html#fls_pts29mb5ld68", "checksum": "e53521056d56c3f85475811368708e304047e64d39a20604584fa7f38d9c7f86"}, {"id": "fls_gqjo5oh7vn3b", "number": "1.1.4:7", "link": "general.html#fls_gqjo5oh7vn3b", "checksum": "48013ee45666937c8ad55fb39de161c383ead549216e3bdc9e2882e83bcf0a90"}, {"id": "fls_1dz634xp8xp5", "number": "1.1.4:8", "link": "general.html#fls_1dz634xp8xp5", "checksum": "f6d36c515bd4436ca87447bc369bb7b1c69b50ca9215b1d6981dabce39f33593"}, {"id": "fls_pp9vtjlyblrl", "number": "1.1.4:9", "link": "general.html#fls_pp9vtjlyblrl", "checksum": "949f3857c5bbb056b780f44c08df02afc05d59db42be92d94a86c97a20ae4943"}, {"id": "fls_6e2vd9fvhsmk", "number": "1.1.4:10", "link": "general.html#fls_6e2vd9fvhsmk", "checksum": "d7b7b2e401f1bc24ffd16c1f417d18c3d12336cc2d2325ecc1c07d77ea0e513e"}, {"id": "fls_4onq0kkrt6qv", "number": "1.1.4:11", "link": "general.html#fls_4onq0kkrt6qv", "checksum": "0eda08ae37976f0d7d15570d790c9bc3107ea4533794e554872ea0d77af06d9c"}, {"id": "fls_qu4rsmnq659w", "number": "1.1.4:12", "link": "general.html#fls_qu4rsmnq659w", "checksum": "bf1b757e4fec099109dc75529b8709e0177c379698e8c762c5c27fe8fe0ac2d3"}, {"id": "fls_rllu7aksf17e", "number": "1.1.4:13", "link": "general.html#fls_rllu7aksf17e", "checksum": "ca3586f81ab3962899f5a1a79386ef8637003025a729a5b76bebdb5d1e43cb28"}, {"id": "fls_blvsfqeevosr", "number": "1.1.4:14", "link": "general.html#fls_blvsfqeevosr", "checksum": "87380f5c66b721c614a404b1852a6c1f93b93d02b04517c8be6e401f85832f82"}, {"id": "fls_lwcjq3wzjyvb", "number": "1.1.4:15", "link": "general.html#fls_lwcjq3wzjyvb", "checksum": "d05cec36bfece44c3203af30f098975bd0f3d0cccd9687f0956cd9eca66c810f"}, {"id": "fls_v7wd5yk00im6", "number": "1.1.4:16", "link": "general.html#fls_v7wd5yk00im6", "checksum": "9a579e74f8de12da445c5197e2555aab86fc739d0defc1f685c0aa5dfb44cebc"}, {"id": "fls_nf8alga8uz6c", "number": "1.1.4:17", "link": "general.html#fls_nf8alga8uz6c", "checksum": "afb0e775413f09199a584413d501b6ec88d107c1be87cac6e07bc33ecce6ad74"}], "informational": false}, {"id": "fls_9cd746qe40ag", "number": "1.2", "title": "Versioning", "link": "general.html#versioning", "paragraphs": [{"id": "fls_l80e3kdwnldc", "number": "1.2:1", "link": "general.html#fls_l80e3kdwnldc", "checksum": "ac30f10574356a3a3472c8858b8b13e8b8ef034312c5823a3674a594b4e4e468"}], "informational": false}, {"id": "fls_ijzgf4h0mp3c", "number": "1.3", "title": "Definitions", "link": "general.html#definitions", "paragraphs": [{"id": "fls_sm2kexes5pr7", "number": "1.3:1", "link": "general.html#fls_sm2kexes5pr7", "checksum": "34f82930e1b6b4af471b30519f81d43725341882ad0a3e8e36d85ab7b3f5713b"}, {"id": "fls_2o98zw29xc46", "number": "1.3:2", "link": "general.html#fls_2o98zw29xc46", "checksum": "397ee14d96917a0a9033a587347a2246e4118f1270d64cce0f7eefeeaf565980"}, {"id": "fls_lon5qffd65fi", "number": "1.3:3", "link": "general.html#fls_lon5qffd65fi", "checksum": "969a1f3b691a3118abcd815618a71feba07fdd5be4c2a12ce37d0b49595d013a"}, {"id": "fls_qeolgxvcy75", "number": "1.3:4", "link": "general.html#fls_qeolgxvcy75", "checksum": "0d6e2d5075e9ccebe0f79ee2d1d393c07fae6b8d4b6cbf7fbf59b1348185fc5d"}, {"id": "fls_h2m244agxaxs", "number": "1.3:5", "link": "general.html#fls_h2m244agxaxs", "checksum": "70b86c11c1708aa3d4d6b52af002352aebaef77835c4b45ebc4233a789844230"}, {"id": "fls_47svine904xk", "number": "1.3:6", "link": "general.html#fls_47svine904xk", "checksum": "c669dced28f1bb44dbac7e17e855e184b1f14baecfa15e22b21d2379a5998be6"}], "informational": false}], "informational": true}, {"title": "FFI", "link": "ffi.html", "sections": [{"id": "fls_osd6c4utyjb3", "number": "21", "title": "FFI", "link": "ffi.html", "paragraphs": [{"id": "fls_djlglv2eaihl", "number": "21:1", "link": "ffi.html#fls_djlglv2eaihl", "checksum": "9dbb89c33be2fd11861ca905be788d903d72880fdf1dece1bc8a63747a947445"}, {"id": "fls_k1hiwghzxtfa", "number": "21:2", "link": "ffi.html#fls_k1hiwghzxtfa", "checksum": "33f23ecced9a34c5f1aaaa909380603062d763f33056c5a2998e61ba20e81e21"}, {"id": "fls_3cgtdk4698hm", "number": "21:3", "link": "ffi.html#fls_3cgtdk4698hm", "checksum": "e6918e7d46ef5f24647902726d860e1abaf15c6b4f3e50771748abe1156acb4a"}, {"id": "fls_shzmgci4f7o5", "number": "21:4", "link": "ffi.html#fls_shzmgci4f7o5", "checksum": "b297f2f7182e518adc328b76e8e51549d74fd016d982e945f3afad959b8e4fee"}, {"id": "fls_m7x5odt4nb23", "number": "21:5", "link": "ffi.html#fls_m7x5odt4nb23", "checksum": "fc67b06bdfa241b1112995e95bea87b539fd31dee8c24e402fcd9d7af65eed2f"}, {"id": "fls_4akfvpq1yg4g", "number": "21:6", "link": "ffi.html#fls_4akfvpq1yg4g", "checksum": "ed6db46b8be18e820fbb6dfc0dd19df1bb2ac9687dacf002b00c217d8ddbf625"}, {"id": "fls_9d8v0xeyi0f", "number": "21:7", "link": "ffi.html#fls_9d8v0xeyi0f", "checksum": "a0f18eb2fe8db99bebeadf847111b16dfaa78ebdbaec8e8f7b364e6a40966ebf"}], "informational": false}, {"id": "fls_usgd0xlijoxv", "number": "21.1", "title": "ABI", "link": "ffi.html#abi", "paragraphs": [{"id": "fls_xangrq3tfze0", "number": "21.1:1", "link": "ffi.html#fls_xangrq3tfze0", "checksum": "5907d37d1b47c67dacab00d10295ab91ec2974c77016fc225a28413fdcecf896"}, {"id": "fls_2w0xi6rxw3uz", "number": "21.1:2", "link": "ffi.html#fls_2w0xi6rxw3uz", "checksum": "303e206ff87fda7c72da6833ecc1035fb2e1bc4de71a73e3c1d6fce85b12b068"}, {"id": "fls_9zitf1fvvfk8", "number": "21.1:3", "link": "ffi.html#fls_9zitf1fvvfk8", "checksum": "a7324b60f99f6fb51284703d13f58460e71099e1fae889aca7365c5c7c1b5976"}, {"id": "fls_x7ct9k82fpgn", "number": "21.1:4", "link": "ffi.html#fls_x7ct9k82fpgn", "checksum": "9deadcb79842b0adc5ae917673a5a388d2bd4ed4c1732bf5a25e4e650395ca87"}, {"id": "fls_lfjvlxvi6tfl", "number": "21.1:5", "link": "ffi.html#fls_lfjvlxvi6tfl", "checksum": "c336142c062c3b0f4238fbadf03105300bfcc6e13ec8c02ac9c02aa0bb4dcf50"}, {"id": "fls_a2d8ltpgtvn6", "number": "21.1:6", "link": "ffi.html#fls_a2d8ltpgtvn6", "checksum": "39df1027aa9c166e4e50895b0a788131e1f5f2323e7cfd31b5e06e5b3c128c65"}, {"id": "fls_8m7pc3riokst", "number": "21.1:7", "link": "ffi.html#fls_8m7pc3riokst", "checksum": "73a1ea71c6511f5c8fa189351be1febafe409c8be34b695dbf2b171521b6a22a"}, {"id": "fls_r2drzo3dixe4", "number": "21.1:8", "link": "ffi.html#fls_r2drzo3dixe4", "checksum": "bde0533495e75b4ceb809bb02e397e0d5daa1d7c3d1977865fcaf0ff5f4d989a"}, {"id": "fls_z2kzyin8dyr7", "number": "21.1:9", "link": "ffi.html#fls_z2kzyin8dyr7", "checksum": "907e87e17820da8559bd8a486992acf18956b1456ecc61cb90278065e01374ca"}, {"id": "fls_j6pqchx27ast", "number": "21.1:10", "link": "ffi.html#fls_j6pqchx27ast", "checksum": "c2d1059fcd1026468253d1771f735c5e6a5bab43177231babeb00190e68633a2"}, {"id": "fls_dbbfqaqa80r8", "number": "21.1:11", "link": "ffi.html#fls_dbbfqaqa80r8", "checksum": "3669dcdebc7765bda115346c9c6980555f7499a5575f7f12566645e7c5580b1b"}, {"id": "fls_36qrs2fxxvi7", "number": "21.1:12", "link": "ffi.html#fls_36qrs2fxxvi7", "checksum": "1da7fe0a23d93d524fed3110b8c116e9b7fe7f1563c51830ffd8b98ce562b9dd"}, {"id": "fls_6rtj6rwqxojh", "number": "21.1:13", "link": "ffi.html#fls_6rtj6rwqxojh", "checksum": "42ee2288dd6a0bde172c2aa19bdd6c764e4c21913a22a4d9d65065b478aa14ba"}, {"id": "fls_d3nmpc5mtg27", "number": "21.1:14", "link": "ffi.html#fls_d3nmpc5mtg27", "checksum": "a81529042a5b1033d4dfd23dc355a422cafc5e8a94dac4134dcc1cdbe6d6b01d"}, {"id": "fls_7t7yxh94wnbl", "number": "21.1:15", "link": "ffi.html#fls_7t7yxh94wnbl", "checksum": "fab1088ce02afa3c8566f0f5033efbd1b6cfec69fc639a64273cc39e32f479e5"}, {"id": "fls_sxj4vy39sj4g", "number": "21.1:16", "link": "ffi.html#fls_sxj4vy39sj4g", "checksum": "aa45e16b2c9fb1e7d7ecf23ca38806bc2f369b1d1be518e74d28e24e6b54a8b4"}, {"id": "fls_tyjs1x4j8ovp", "number": "21.1:17", "link": "ffi.html#fls_tyjs1x4j8ovp", "checksum": "563032c0e9c472e10f9c487c70925926c24107c3258cc003fb04dd03b00c21af"}, {"id": "fls_m4lqhf8hbpa8", "number": "21.1:18", "link": "ffi.html#fls_m4lqhf8hbpa8", "checksum": "325e66e1fabd736adc5af45c19421a9268caa39bd78c98d091266005e54f20c8"}], "informational": false}, {"id": "fls_tmoh3y9oyqsy", "number": "21.2", "title": "External Blocks", "link": "ffi.html#external-blocks", "paragraphs": [{"id": "fls_4dje9t5y2dia", "number": "21.2:1", "link": "ffi.html#fls_4dje9t5y2dia", "checksum": "32c972f272a9d15a0eb8dc264c17c46b370c4bd9b1088bfd65a68fdb64c4b15e"}, {"id": "fls_nz0l16hmxqtd", "number": "21.2:2", "link": "ffi.html#fls_nz0l16hmxqtd", "checksum": "d3516af1c3ea4a3ba811bf1081ac06de4b8eb22057c37dc0bd4d086ee54db362"}, {"id": "fls_4xooifloxm7t", "number": "21.2:3", "link": "ffi.html#fls_4xooifloxm7t", "checksum": "160ef01077e123c673f3437e37cc0c39bc2ecf284187af80088547f8c4dcea59"}, {"id": "fls_pbsepnhimjkh", "number": "21.2:4", "link": "ffi.html#fls_pbsepnhimjkh", "checksum": "dd7c836fa590b14a7da0c87f48b6eb0d11c83010e9f4ac1e0615ebecc9ba7eb3"}, {"id": "fls_iaimuqcclstl", "number": "21.2:5", "link": "ffi.html#fls_iaimuqcclstl", "checksum": "7d4b55c59ea318d78494221e436aedbac6a9c1c17661c2243e80990dd2188a52"}], "informational": false}, {"id": "fls_yztwtek0y34v", "number": "21.3", "title": "External Functions", "link": "ffi.html#external-functions", "paragraphs": [{"id": "fls_v24ino4hix3m", "number": "21.3:1", "link": "ffi.html#fls_v24ino4hix3m", "checksum": "0104ba914d1d2a6dafc2b7914cc94254e1ab3678864a25c1864a89740a54294f"}, {"id": "fls_l88r9fj82650", "number": "21.3:2", "link": "ffi.html#fls_l88r9fj82650", "checksum": "1bf19f866a19f72882e1486cea9582179a769d7bd9a3d9378b982a74452ebb7b"}, {"id": "fls_qwchgvvnp0qe", "number": "21.3:3", "link": "ffi.html#fls_qwchgvvnp0qe", "checksum": "9abb006e22c228a40953b442c54e63fd9a10cc675390d5e7d61b1fb7221ec353"}, {"id": "fls_w00qi1gx204e", "number": "21.3:4", "link": "ffi.html#fls_w00qi1gx204e", "checksum": "af35e63fe34e63713827f5525caee153a033f726c0cf64300b5612781daf29fc"}, {"id": "fls_m7tu4w4lk8v", "number": "21.3:5", "link": "ffi.html#fls_m7tu4w4lk8v", "checksum": "9ff777cfdc4b91eb8472493cfbc9e96b5e66329d621fb37d3c8603b420f63f79"}, {"id": "fls_rdu4723vp0oo", "number": "21.3:6", "link": "ffi.html#fls_rdu4723vp0oo", "checksum": "69809b6272d266f36a20ad706492a4e3561e0afa136d36145d8804f83456d978"}, {"id": "fls_9div9yusw64h", "number": "21.3:7", "link": "ffi.html#fls_9div9yusw64h", "checksum": "8a5942ade1d1568f8a2e335a8767ab295816829fc64e2c4ef250f53feee9ec69"}, {"id": "fls_juob30rst11r", "number": "21.3:8", "link": "ffi.html#fls_juob30rst11r", "checksum": "0e21072dc94fa05d0ff274b95c7cdfe5e96a5fddabfd26720dd20bcd7aecbf38"}], "informational": false}, {"id": "fls_s4yt19sptl7d", "number": "21.4", "title": "External Statics", "link": "ffi.html#external-statics", "paragraphs": [{"id": "fls_8ddsytjr4il6", "number": "21.4:1", "link": "ffi.html#fls_8ddsytjr4il6", "checksum": "a342af289e2343c6a6c563bb75a44dd7f003efc17cc5dddaf9db25fc1395f17c"}, {"id": "fls_h0cg9xmagz0y", "number": "21.4:2", "link": "ffi.html#fls_h0cg9xmagz0y", "checksum": "7456ec21405a4f2629a47ca17fd031b08d4bf3cde66139fe81c3b11248264ca1"}, {"id": "fls_fo9with6xumo", "number": "21.4:3", "link": "ffi.html#fls_fo9with6xumo", "checksum": "0950c80e76e16cc26a368f06ab710449600669547abe9b7d1b6e520dc0065ff9"}, {"id": "fls_tr7purzcldn0", "number": "21.4:4", "link": "ffi.html#fls_tr7purzcldn0", "checksum": "1e3dcb44d797a493ed568db4d4a7c292794fa22ef50cc810f94492b86ec20c75"}, {"id": "fls_en2h09ehj0j3", "number": "21.4:5", "link": "ffi.html#fls_en2h09ehj0j3", "checksum": "0fb23c674fc5c6699fc7b3869fdc36f00d967880169275042498442dc58a8872"}], "informational": false}], "informational": false}, {"title": "Functions", "link": "functions.html", "sections": [{"id": "fls_qcb1n9c0e5hz", "number": "9", "title": "Functions", "link": "functions.html", "paragraphs": [{"id": "fls_gn1ngtx2tp2s", "number": "9:1", "link": "functions.html#fls_gn1ngtx2tp2s", "checksum": "d85148abd62f72e649abbb14ec33bcf5dd833660e6d429978a1233e8aa19e739"}, {"id": "fls_bdx9gnnjxru3", "number": "9:2", "link": "functions.html#fls_bdx9gnnjxru3", "checksum": "0b7f0bc4680d19a82f2a03e22ab8228330095ac38f768e6138b1fa061209b0cd"}, {"id": "fls_87jnkimc15gi", "number": "9:3", "link": "functions.html#fls_87jnkimc15gi", "checksum": "4ef42a17784ccf912f1917cdc894f87abaa5c3ae6bbc330e5d97884670ee69a3"}, {"id": "fls_nwywh1vjt6rr", "number": "9:4", "link": "functions.html#fls_nwywh1vjt6rr", "checksum": "1be13228840af974c47c9d4a16fb932edc3efcbbb1b5a5d8261d4eb3d4db1df5"}, {"id": "fls_uwuthzfgslif", "number": "9:5", "link": "functions.html#fls_uwuthzfgslif", "checksum": "e7bbdbb6cf00db43de1e27fe5b39e71062d7737351b11ee44c1f02ab45beabfb"}, {"id": "fls_ymeo93t4mz4", "number": "9:6", "link": "functions.html#fls_ymeo93t4mz4", "checksum": "d6307364051e9afc70d6e0e3e277a7a096ecb2eb1db51e356303d7ee87537a12"}, {"id": "fls_ijbt4tgnl95n", "number": "9:7", "link": "functions.html#fls_ijbt4tgnl95n", "checksum": "2119a7ea0e7b937c1318f8b7cb342aea3ec7249cab773a35ff4b8a0701d43f4b"}, {"id": "fls_aayjdcnmjgtq", "number": "9:8", "link": "functions.html#fls_aayjdcnmjgtq", "checksum": "dc4e670f51d2ee19f4c69b4a53263229e45ace59824443ac01dbd7ba6c7949f5"}, {"id": "fls_pgtp39f6gjwu", "number": "9:9", "link": "functions.html#fls_pgtp39f6gjwu", "checksum": "30e95e18866cbad24af65360f1b5c32deb9410cfedc3a540584b63358a19b385"}, {"id": "fls_yz2yixxmy2ri", "number": "9:10", "link": "functions.html#fls_yz2yixxmy2ri", "checksum": "2205b3649789767c105c262228a48536d8d9af2734351fcab5e8650eed044f19"}, {"id": "fls_35asvbxbnizm", "number": "9:11", "link": "functions.html#fls_35asvbxbnizm", "checksum": "00ff6766b53e2501ce67b57b21ac801f24b86208afab3a509a0cd92439b2f346"}, {"id": "fls_ogziu8s01qpq", "number": "9:12", "link": "functions.html#fls_ogziu8s01qpq", "checksum": "d44af44daa180c96d7c066dd036be5c2217e9ef54e5440a28226f4155da1fbd9"}, {"id": "fls_xcssxyuzufed", "number": "9:13", "link": "functions.html#fls_xcssxyuzufed", "checksum": "e007c5d5fe350258fe85248f1a507b573c634bb18cf907d6b83babb1a8a98f5d"}, {"id": "fls_lxzinvqveuqh", "number": "9:14", "link": "functions.html#fls_lxzinvqveuqh", "checksum": "afcad007b988dd4e9a7ae77d05318b5818905bf05921cd7d14070abe83ebb9b2"}, {"id": "fls_kcabtpzxq5y8", "number": "9:15", "link": "functions.html#fls_kcabtpzxq5y8", "checksum": "af44866222e3ba28adab818deff3cff0fe079c936325cb39ed958ac977eaf988"}, {"id": "fls_pgdkwk7npvgw", "number": "9:16", "link": "functions.html#fls_pgdkwk7npvgw", "checksum": "a6f8a428953b804ae4d9a530c1659087e99139633acc2e99d4315bf792bf123a"}, {"id": "fls_icdzs1mjh0n4", "number": "9:17", "link": "functions.html#fls_icdzs1mjh0n4", "checksum": "0b1169bc488b60cf4dba9b24b7d4d453438aaef69d30789b16d3df1094ec74da"}, {"id": "fls_vljy4mm0zca2", "number": "9:18", "link": "functions.html#fls_vljy4mm0zca2", "checksum": "b82bf4578023aa2218ec01202b93d193cbb48fd8b53d740a5c9d3bb482caaf10"}, {"id": "fls_eqjb3jl3vk8k", "number": "9:19", "link": "functions.html#fls_eqjb3jl3vk8k", "checksum": "b89caf540730b919c47a1f20bdd5dc9302aca3ec99300e25098600be2e706acf"}, {"id": "fls_c7dvzcxcpqcy", "number": "9:20", "link": "functions.html#fls_c7dvzcxcpqcy", "checksum": "e2ca22f3a68ea69c89d5499ab8bfaff4ea879242e37d601e8b78939484e3fbd9"}, {"id": "fls_j8x8ahnjlrmo", "number": "9:21", "link": "functions.html#fls_j8x8ahnjlrmo", "checksum": "2f2202efc417e1cd3118f5b446cf8c8a375b6e5f8ebaed72a0201aa9d161578a"}, {"id": "fls_927nfm5mkbsp", "number": "9:22", "link": "functions.html#fls_927nfm5mkbsp", "checksum": "f01d77c3faa9dafff3f5a3ca3928a29d60e2867a2438140aaaa4cbceb25da31b"}, {"id": "fls_yfm0jh62oaxr", "number": "9:23", "link": "functions.html#fls_yfm0jh62oaxr", "checksum": "a8e601de98599b419876278ab5521c5cc49ae6bfdacfe061350c283e236e211f"}, {"id": "fls_bhwy8flzeui3", "number": "9:24", "link": "functions.html#fls_bhwy8flzeui3", "checksum": "45189d0422353cd31d5e3d1460ac0bf25731cc9f464574e6acf3ba0a8661dffb"}, {"id": "fls_5q861wb08du3", "number": "9:25", "link": "functions.html#fls_5q861wb08du3", "checksum": "1952dd7798e9fd4d8fb5f525eedc05613f2ef1a660b93bfa8f24167e67f839bb"}, {"id": "fls_owdlsaaygtho", "number": "9:26", "link": "functions.html#fls_owdlsaaygtho", "checksum": "a336a489c323ad22b7aa3059350a2400bb8e41f5eef6ce02b17682c438a9fd09"}, {"id": "fls_2049qu3ji5x7", "number": "9:27", "link": "functions.html#fls_2049qu3ji5x7", "checksum": "4355b34dd22393af15f6fad33ae3c69fc7091736b751b78d2b18cb15ceb7b3cc"}, {"id": "fls_7mlanuh5mvpn", "number": "9:28", "link": "functions.html#fls_7mlanuh5mvpn", "checksum": "515666a67e5b60858568348fd8b4c6021e49484b778d6ccd6c357f9b792643d1"}, {"id": "fls_otr3hgp8lj1q", "number": "9:29", "link": "functions.html#fls_otr3hgp8lj1q", "checksum": "4ccbc87469f1565c32bef31f5909da4c2b2f1febaf71e3b0216053540e2732c4"}, {"id": "fls_m3jiunibqj81", "number": "9:30", "link": "functions.html#fls_m3jiunibqj81", "checksum": "45a75ca66fc48e3abbe4a9b46d1599f9ecbcfae9fbc5df35e1b5d8939f41f8c4"}, {"id": "fls_7vogmqyd87ey", "number": "9:31", "link": "functions.html#fls_7vogmqyd87ey", "checksum": "388876fffc5a50a274a155691b5fe0142ca2651fe1ce20d17301a9682d3638f6"}, {"id": "fls_7ucwmzqtittv", "number": "9:32", "link": "functions.html#fls_7ucwmzqtittv", "checksum": "3f0f3a193820a8bc83e0d3bc5c7d12596eeec70afc5bb2a86f74329034382fc0"}, {"id": "fls_5hn8fkf7rcvz", "number": "9:33", "link": "functions.html#fls_5hn8fkf7rcvz", "checksum": "fbf5fb05e9efc647400ab22d0002c1bc09b999d239850236501817c8374a143c"}, {"id": "fls_nw49shkqx40b", "number": "9:34", "link": "functions.html#fls_nw49shkqx40b", "checksum": "bbb5147c63bbcc53372207b2b9688b14bf724e4eebf9d6eed8b1c8335bc46339"}, {"id": "fls_o4fxok23134r", "number": "9:35", "link": "functions.html#fls_o4fxok23134r", "checksum": "06806b5f2bb00b12d499429e29aa3f6916237f0c54e9136fd16474fae18c14fb"}, {"id": "fls_bk755pvc1l53", "number": "9:36", "link": "functions.html#fls_bk755pvc1l53", "checksum": "c791afca579a283e2645e4a3bf9473606a55028fcaec0a1fca0c5d87bf7db370"}, {"id": "fls_5j2vbkt2hitj", "number": "9:37", "link": "functions.html#fls_5j2vbkt2hitj", "checksum": "6fda6306c77fde877485229b9ec857991209bb51bb0c707140c6eff580933610"}, {"id": "fls_a3je4wc53bmo", "number": "9:38", "link": "functions.html#fls_a3je4wc53bmo", "checksum": "4eaf3f71fa346f0de97eaef7ae61b54e234608337d12733cee8930cd3a0a16be"}, {"id": "fls_w8q15zp7kyl0", "number": "9:39", "link": "functions.html#fls_w8q15zp7kyl0", "checksum": "dc35e76e01d0f08b81b61a7c8861a422fa2dc8a5d44ce4557affba712d088d61"}, {"id": "fls_4psnfphsgdek", "number": "9:40", "link": "functions.html#fls_4psnfphsgdek", "checksum": "0605829262c1b010a633c97250c2141e26eabf10f42a901e0ffae239bc84909e"}, {"id": "fls_m7xfrhqif74", "number": "9:41", "link": "functions.html#fls_m7xfrhqif74", "checksum": "406115e1f2b804459a7155b5aa521a67fae4b9a11d3d9ee26b45671e0d705fad"}, {"id": "fls_qq9fzrw4aykd", "number": "9:42", "link": "functions.html#fls_qq9fzrw4aykd", "checksum": "7527f425026d6c1455709270dbc862fa8c81edae9aa97bbf4c63b854ab77ea04"}], "informational": false}], "informational": false}, {"title": "Implementations", "link": "implementations.html", "sections": [{"id": "fls_fk2m2irwpeof", "number": "11", "title": "Implementations", "link": "implementations.html", "paragraphs": [{"id": "fls_ivxpoxggy7s6", "number": "11:1", "link": "implementations.html#fls_ivxpoxggy7s6", "checksum": "68d68054bfe8ffe57002321f94f09f2c21faac92f10052af0b8ebb6bb2e4bdd4"}, {"id": "fls_yopmjbnw8tbl", "number": "11:2", "link": "implementations.html#fls_yopmjbnw8tbl", "checksum": "a88885418df7946e8facb892e33e099cc8789c354fbf7bd977f460e40ec2089d"}, {"id": "fls_eihc8y9fbtr0", "number": "11:3", "link": "implementations.html#fls_eihc8y9fbtr0", "checksum": "28523ce67d9161886a6bbdc6415a2a18a12cac0bd7cf96d2e560d4acaa243c96"}, {"id": "fls_mcpdzzcw43m7", "number": "11:4", "link": "implementations.html#fls_mcpdzzcw43m7", "checksum": "073aeb6b836eee108b5b6d5a5ded4f1b8df8ab96ec075686dca1d2b7fc6c1b34"}, {"id": "fls_v0n0bna40dqr", "number": "11:5", "link": "implementations.html#fls_v0n0bna40dqr", "checksum": "6d7038fd93f535f1a95c93f6917f3cebd5b30ad181afde8d89173856ec36d502"}, {"id": "fls_797etpdk5dyb", "number": "11:6", "link": "implementations.html#fls_797etpdk5dyb", "checksum": "e18c1caa38c5924e033a0026fc017b1c792df55f87c598c5783efe25cb62819f"}, {"id": "fls_ry3an0mwb63g", "number": "11:7", "link": "implementations.html#fls_ry3an0mwb63g", "checksum": "74cac3914710c2f1a1f624a3c5a1c9aaf33da46b9946695f9bee4eaeb22c5e42"}, {"id": "fls_8pwr7ibvhmhu", "number": "11:8", "link": "implementations.html#fls_8pwr7ibvhmhu", "checksum": "dd34aa75e7947124723372145385a391a6527acf3d57821cf6bfb3530926d0df"}, {"id": "fls_47x0ep8of8wr", "number": "11:9", "link": "implementations.html#fls_47x0ep8of8wr", "checksum": "ba2818ea733c9b43c0160165759dc06495876220780d457240575201aebbf397"}, {"id": "fls_agitlryvyc16", "number": "11:10", "link": "implementations.html#fls_agitlryvyc16", "checksum": "8223ac177e0dcc171dbac1fb21b191141842026a92038b9694be40797d2bdad8"}, {"id": "fls_mx5xjcejwa6u", "number": "11:11", "link": "implementations.html#fls_mx5xjcejwa6u", "checksum": "0ecbb270fa78be720b325ddc3197182ea1ca39be3069bd7d37f201389c9b3991"}, {"id": "fls_z78dg261oob6", "number": "11:12", "link": "implementations.html#fls_z78dg261oob6", "checksum": "7ec52a2c02f0e55bea6e0a3c728c22e5720e34bdeabc0740d52707774946acbe"}, {"id": "fls_89ynjgnb7ki3", "number": "11:13", "link": "implementations.html#fls_89ynjgnb7ki3", "checksum": "1f973a701dba719c9b5c7879e8f7e39c271e60ebd4708b781a5ec557ca35bb6b"}, {"id": "fls_yuyesijndu9n", "number": "11:14", "link": "implementations.html#fls_yuyesijndu9n", "checksum": "94597e560f592f649b38ef27778a62819bc7e5c2e01faa0ef53fa29225d8083c"}, {"id": "fls_o62i75sjzp9y", "number": "11:15", "link": "implementations.html#fls_o62i75sjzp9y", "checksum": "7093aa443b2d63b8c3ad1d99dc26a6f1df03d367428b954e62e372eab3d4f569"}, {"id": "fls_a2utf0tmuhy4", "number": "11:16", "link": "implementations.html#fls_a2utf0tmuhy4", "checksum": "8ad70788c23781cfbb4cc77f8e9b280870f2088b7f3522cf5adf7a4030b29b48"}], "informational": false}, {"id": "fls_46ork6fz5o2e", "number": "11.1", "title": "Implementation Coherence", "link": "implementations.html#implementation-coherence", "paragraphs": [{"id": "fls_fv1l4yjuut7p", "number": "11.1:1", "link": "implementations.html#fls_fv1l4yjuut7p", "checksum": "f593f63f6406327889e137ab55ec05d98a6d439176ec14afafae261241a14f1c"}, {"id": "fls_swdusjwzgksx", "number": "11.1:2", "link": "implementations.html#fls_swdusjwzgksx", "checksum": "1452e1e4d864f7a4178e6f1be77e9694766805cd6a0556f67f5314caf0a5d8de"}, {"id": "fls_ir7hp941ky8t", "number": "11.1:3", "link": "implementations.html#fls_ir7hp941ky8t", "checksum": "9763aff40d5e4ca431a133884a391a71d1e3434b2dd8e6ab1c928ba846346526"}, {"id": "fls_3tbm20k2ixol", "number": "11.1:4", "link": "implementations.html#fls_3tbm20k2ixol", "checksum": "3a7e9191eb41e4bba88408faba2f7f149137b7df440996588e945fad99c82867"}, {"id": "fls_lscc9ileg3gm", "number": "11.1:5", "link": "implementations.html#fls_lscc9ileg3gm", "checksum": "46b1fe27e9a10a5a463205624c88ba78b4851fbf47c3d1e31d45026df49b1774"}, {"id": "fls_9klwbsh3vlxu", "number": "11.1:6", "link": "implementations.html#fls_9klwbsh3vlxu", "checksum": "90514614f2da8202c20d849b7c71d72ae95423a582d7fcb612d03343c5ce1b8a"}, {"id": "fls_9gmc1tcscq9v", "number": "11.1:7", "link": "implementations.html#fls_9gmc1tcscq9v", "checksum": "79f486e433c0cc3589e42f1efbdc6df12866131778c2b136b5be7d27ff1b67ec"}, {"id": "fls_ukqhjewsjpdq", "number": "11.1:8", "link": "implementations.html#fls_ukqhjewsjpdq", "checksum": "6b6dac78cb7d28fe378157a5827ca98ef8996833871c9acbbad28e04b8781132"}, {"id": "fls_fsybug40ha5r", "number": "11.1:9", "link": "implementations.html#fls_fsybug40ha5r", "checksum": "cbf8117eb6e59dd31ff3217f236513679c4236d8d108c4451693dfdeb766d3d2"}, {"id": "fls_z8apl0cef7a0", "number": "11.1:10", "link": "implementations.html#fls_z8apl0cef7a0", "checksum": "35936abe2e47a3f84e6b97c5b8773f0e57035b2a2311e2ec92b001e91f057096"}, {"id": "fls_rjjafhpvsi6m", "number": "11.1:11", "link": "implementations.html#fls_rjjafhpvsi6m", "checksum": "16c8bf3ad79c585e2a19ab5043608ba5cdfbe59b334ba09913fe7cb101ef98a0"}, {"id": "fls_dtujxhnkl8ty", "number": "11.1:12", "link": "implementations.html#fls_dtujxhnkl8ty", "checksum": "bd35a79daaebf148b48f637a939718b4e78fe6d95ec05e092dabf33c372e5045"}, {"id": "fls_zjkovqrxqwdu", "number": "11.1:13", "link": "implementations.html#fls_zjkovqrxqwdu", "checksum": "8e6a64bbe4e6692fa29ab6cab825bed32aa92944541ab8b3cab95f46ec47ae1a"}, {"id": "fls_v6r8yqtsqnyv", "number": "11.1:14", "link": "implementations.html#fls_v6r8yqtsqnyv", "checksum": "881eb7081d32bca6dd31a402732083c1a10cfbb0703d65d4903481c9df0fa6cc"}, {"id": "fls_cpc6xqn1iwqu", "number": "11.1:15", "link": "implementations.html#fls_cpc6xqn1iwqu", "checksum": "0bff693cd5c7bd24006d97966faf22d8ad51776dd27b155aa3c4c53705f1e230"}, {"id": "fls_dj7ygw4e4i4h", "number": "11.1:16", "link": "implementations.html#fls_dj7ygw4e4i4h", "checksum": "3a1f51af690831f150b9917ff7ed785fc0ad8572bfdb024cbbe419e2b1536063"}, {"id": "fls_koy70k770ayu", "number": "11.1:17", "link": "implementations.html#fls_koy70k770ayu", "checksum": "a69a7eba188277ac25d75030529f9289094778fd2d87d38a1ed7ab9c1871938e"}], "informational": false}, {"id": "fls_e1pgdlv81vul", "number": "11.2", "title": "Implementation Conformance", "link": "implementations.html#implementation-conformance", "paragraphs": [{"id": "fls_yyusuayg4lx6", "number": "11.2:1", "link": "implementations.html#fls_yyusuayg4lx6", "checksum": "235dcfef5a150c402f42c33dd6eabd7189375ddb2bb8e3cd3cc162fe22a53e9a"}, {"id": "fls_v31idwjau90d", "number": "11.2:2", "link": "implementations.html#fls_v31idwjau90d", "checksum": "5f1a4f88e1dd9fd77d93c773080c7b2e8fa3179f7d8e4de72e39d0ff16a2a387"}, {"id": "fls_k3wfh5japmyw", "number": "11.2:3", "link": "implementations.html#fls_k3wfh5japmyw", "checksum": "f18161b732608a6732ea2886b4c609dc56b7dde6df16c57cf321542c887aa1d8"}, {"id": "fls_11qrqfuc3rmh", "number": "11.2:4", "link": "implementations.html#fls_11qrqfuc3rmh", "checksum": "428b016d82301c34cac20a058d8e9f87628abcd977fc4d1ff1557bc1bf2d24f8"}, {"id": "fls_qmhduwunxww0", "number": "11.2:5", "link": "implementations.html#fls_qmhduwunxww0", "checksum": "7e921c53c7799271e80ccbadf2d47a340d1ef1bd9326fe4e2bdf54e5dcf2d127"}, {"id": "fls_2500ivh0cc3y", "number": "11.2:6", "link": "implementations.html#fls_2500ivh0cc3y", "checksum": "aa4594177b713ab6ee2d502e2c0f20256ac5a5e546fab64bcc52db72ee407c5d"}, {"id": "fls_18gimgfy0kw9", "number": "11.2:7", "link": "implementations.html#fls_18gimgfy0kw9", "checksum": "f3fb2ce2caeb76b89e224e1c88594d2dc95ddc66e180f8cb6d50b428f01eedcf"}, {"id": "fls_fi4qmauirlsm", "number": "11.2:8", "link": "implementations.html#fls_fi4qmauirlsm", "checksum": "0b6f276c677931c78d760ff5def7e67a7e4cbd817e1f21f0343edb674c80e0b4"}, {"id": "fls_2s8lh3k4rw6u", "number": "11.2:9", "link": "implementations.html#fls_2s8lh3k4rw6u", "checksum": "31bad81c5be19c117a8675a891a00247edb13fe1ab49a36e1f439da9b3123b6f"}, {"id": "fls_bb874uu2alt3", "number": "11.2:10", "link": "implementations.html#fls_bb874uu2alt3", "checksum": "fe5486ca02f9ffadaed847c11ea13af8afba0eb18ea38527ec5b8cc5d45cbf83"}, {"id": "fls_so8em6rphkhv", "number": "11.2:11", "link": "implementations.html#fls_so8em6rphkhv", "checksum": "43150bf6a5f61f75ca365a77174d7d659f67e1c8cd00dcd74b3f72cdc7282045"}, {"id": "fls_ldu9bmb9cy10", "number": "11.2:12", "link": "implementations.html#fls_ldu9bmb9cy10", "checksum": "2928f339f8abfbe9b10de44c5ab57f730fdc2e7881dc3cce685844a2ada75373"}, {"id": "fls_5cr6un2gzdft", "number": "11.2:13", "link": "implementations.html#fls_5cr6un2gzdft", "checksum": "1a07917d9eeb24596f2800e26f4930f6ecc94fc0027f33f7cce840c026ee28a5"}, {"id": "fls_pshfe3ioh0mg", "number": "11.2:14", "link": "implementations.html#fls_pshfe3ioh0mg", "checksum": "dc51b8a6f90c2e32e2ec099057c7d4745f9082e4521e0f0cb64ba03ac87c95ed"}, {"id": "fls_8yq1g7nzv9px", "number": "11.2:15", "link": "implementations.html#fls_8yq1g7nzv9px", "checksum": "bc54fae0d59dee07617ca65931de1869df56a18c8afe575dcc287c8d2d9305ed"}], "informational": false}], "informational": false}, {"title": "Entities and Resolution", "link": "entities-and-resolution.html", "sections": [{"id": "fls_gdeyap4or1db", "number": "14", "title": "Entities and Resolution", "link": "entities-and-resolution.html", "paragraphs": [], "informational": false}, {"id": "fls_151r19d7xbgz", "number": "14.1", "title": "Entities", "link": "entities-and-resolution.html#entities", "paragraphs": [{"id": "fls_x7j6wcigqt7u", "number": "14.1:1", "link": "entities-and-resolution.html#fls_x7j6wcigqt7u", "checksum": "92b15a7349815675a6ada6d976e81b32a73c72307b7c303744b672b2b79f3ccb"}, {"id": "fls_40d2g0hvq2il", "number": "14.1:2", "link": "entities-and-resolution.html#fls_40d2g0hvq2il", "checksum": "3ac0c135867846c8545f48d505c7223de228d3c834e6c35369d20839f30645cc"}, {"id": "fls_lcca91wjwnpx", "number": "14.1:3", "link": "entities-and-resolution.html#fls_lcca91wjwnpx", "checksum": "387b393db8ebbfbbaa31538cf9d1ed1fbd883a62e99cd43daae557d55d6e3778"}, {"id": "fls_94l2d7ti0hjw", "number": "14.1:4", "link": "entities-and-resolution.html#fls_94l2d7ti0hjw", "checksum": "1e043bf7a4a6c40020a77d37fba4d646c5e5114a2fd0ce467c817c77746df26f"}, {"id": "fls_kvdqmo8gmdxi", "number": "14.1:5", "link": "entities-and-resolution.html#fls_kvdqmo8gmdxi", "checksum": "cc53b299dafa70bd4b1bc538690c6759ff1aad962a25dd458050dd834792d02d"}, {"id": "fls_b3cdg74utyvo", "number": "14.1:6", "link": "entities-and-resolution.html#fls_b3cdg74utyvo", "checksum": "62877b7edbba7547c96ed213430dab1fe6be842fc13b0905bf1e0e39c1574c5b"}, {"id": "fls_njcmeqxzvfsa", "number": "14.1:7", "link": "entities-and-resolution.html#fls_njcmeqxzvfsa", "checksum": "df0355bf9d408621ab3501afd0c95fb72223e5ff74db7d62eaddc72e96f02fe7"}, {"id": "fls_63ul8sgf6dgr", "number": "14.1:8", "link": "entities-and-resolution.html#fls_63ul8sgf6dgr", "checksum": "9cd87b048aec0624e781b4917dc99e0e3956051679365ab7d33211685d93833e"}, {"id": "fls_6hxf0rn9j1sr", "number": "14.1:9", "link": "entities-and-resolution.html#fls_6hxf0rn9j1sr", "checksum": "43a9474bc05f5cd0e56b671046a19f56d4d25db70d02d706182d94772fbd9525"}, {"id": "fls_2qitjk5ssaau", "number": "14.1:10", "link": "entities-and-resolution.html#fls_2qitjk5ssaau", "checksum": "9db5af7bb0d5b4e2f0254774b4d7490d11b8de8e608b0b73eab3268c19fb91fb"}, {"id": "fls_4li2c5qc31c7", "number": "14.1:11", "link": "entities-and-resolution.html#fls_4li2c5qc31c7", "checksum": "e602c23f513b2a0a4e008c3ea5961a7ed8f80dac05e98ee7a31d32e25387986d"}, {"id": "fls_nq8n7w2s3bja", "number": "14.1:12", "link": "entities-and-resolution.html#fls_nq8n7w2s3bja", "checksum": "f8bbcd5c0b5f9b29fea6dd2805dd0de209e9d9b443342686960740d64e79321f"}, {"id": "fls_jv7qi34flit0", "number": "14.1:13", "link": "entities-and-resolution.html#fls_jv7qi34flit0", "checksum": "fa112b87d033633e63c7f4216a3dac2dfa3bd0d440c7f574ab7a8375752d577d"}, {"id": "fls_rutlgmzh3tnz", "number": "14.1:14", "link": "entities-and-resolution.html#fls_rutlgmzh3tnz", "checksum": "e61e4578e8cd0a2124be00366bcc0ace261b47e5cc829bcf30274cd2b97c588f"}, {"id": "fls_1owx5ch7sidm", "number": "14.1:15", "link": "entities-and-resolution.html#fls_1owx5ch7sidm", "checksum": "79a170cb7c345638c6755e2d61f7444d2a35b53530a2cb6d81638b4f002de86e"}, {"id": "fls_8ldy7lec9bcd", "number": "14.1:16", "link": "entities-and-resolution.html#fls_8ldy7lec9bcd", "checksum": "25dffbf70cb2bb0cd22c431fd0a46235618a589b0bdbf4bf180b51ed37a9d5d6"}, {"id": "fls_3mt2p4ssqt0a", "number": "14.1:17", "link": "entities-and-resolution.html#fls_3mt2p4ssqt0a", "checksum": "9f6fa9d43fbf2924e1c1ecc5b6eef6db41f10e0eda261f898fa00b0db1afddce"}, {"id": "fls_qqwu3e98lktb", "number": "14.1:18", "link": "entities-and-resolution.html#fls_qqwu3e98lktb", "checksum": "79b617624b18e886c67a3fd5303e3c3701a1bd761fbd598742fa457fc62de196"}, {"id": "fls_fup6984lxdfy", "number": "14.1:19", "link": "entities-and-resolution.html#fls_fup6984lxdfy", "checksum": "3cb5bba3fd185734dbe976155c21323253786de2fe38287190058d186d71d532"}, {"id": "fls_ji9iem1c7ekq", "number": "14.1:20", "link": "entities-and-resolution.html#fls_ji9iem1c7ekq", "checksum": "d3626b9e94df64ec6a68712a8efc764bafebfd1c7736ff21617a39badd0aaffb"}, {"id": "fls_v7w8ptbyxv9w", "number": "14.1:21", "link": "entities-and-resolution.html#fls_v7w8ptbyxv9w", "checksum": "65940ab579200a562e9131adc24d67f63cf6751522972925d98e3eae88aff033"}, {"id": "fls_ig1l38gpy5gy", "number": "14.1:22", "link": "entities-and-resolution.html#fls_ig1l38gpy5gy", "checksum": "d2c4cc3aa6df1ff8c7acad8083bd97da4c7bd274a886f15fd95a0d2495bdbb3c"}, {"id": "fls_ed0t6u7fo3fi", "number": "14.1:23", "link": "entities-and-resolution.html#fls_ed0t6u7fo3fi", "checksum": "87567b121feb41fb49a72ba0f88e7147e1ba7182f665fcd3118ee7cb4e446d2a"}, {"id": "fls_gjps01c8l6aa", "number": "14.1:24", "link": "entities-and-resolution.html#fls_gjps01c8l6aa", "checksum": "d9efa486af937ab8018d16e3b87ca3ba0732e7ca8ee67d91e37f85f401545d65"}], "informational": false}, {"id": "fls_jdknpu3kf865", "number": "14.2", "title": "Visibility", "link": "entities-and-resolution.html#visibility", "paragraphs": [{"id": "fls_7kpepal8ghuj", "number": "14.2:1", "link": "entities-and-resolution.html#fls_7kpepal8ghuj", "checksum": "14af7dc4459e85c32c0011005e8e1d05bae942ed8f5d4cb54aa713543425be90"}, {"id": "fls_qo0itr5il1kk", "number": "14.2:2", "link": "entities-and-resolution.html#fls_qo0itr5il1kk", "checksum": "fca421955d7d461ea14be29c223491277febdafc297c8580073d5de797c6d03d"}, {"id": "fls_knjruq5wppv", "number": "14.2:3", "link": "entities-and-resolution.html#fls_knjruq5wppv", "checksum": "5ca85d6ded39a41b0210496968063f04f76d7902d519e0044cb431f2888c032e"}, {"id": "fls_t7i4n19qdgn4", "number": "14.2:4", "link": "entities-and-resolution.html#fls_t7i4n19qdgn4", "checksum": "f5f0a1362543a52c48a0832fff6511e7b9cdc663430d2e625d748329455133e9"}, {"id": "fls_aa4f3rvir9lm", "number": "14.2:5", "link": "entities-and-resolution.html#fls_aa4f3rvir9lm", "checksum": "66f72eec45e87d39e392824cbccd92cde109e25c1ee3731ca8e7b27a1bf1b778"}, {"id": "fls_tnh7o3pb4e22", "number": "14.2:6", "link": "entities-and-resolution.html#fls_tnh7o3pb4e22", "checksum": "3e16d751015c5913b6d155171e1fe22c30d873dd4c5557cff7f046161cdcea45"}, {"id": "fls_yymgpyi67dty", "number": "14.2:7", "link": "entities-and-resolution.html#fls_yymgpyi67dty", "checksum": "452fb25c8aa516688bcf11408b978c40b71cfd10786c03becf5b16b12856c292"}, {"id": "fls_hc121mxknq03", "number": "14.2:8", "link": "entities-and-resolution.html#fls_hc121mxknq03", "checksum": "80ceeb14a02b69d81e041c8aa913ebc5ae529cf2ee64c36a4e3d2490d9362418"}, {"id": "fls_icztzxjpm1du", "number": "14.2:9", "link": "entities-and-resolution.html#fls_icztzxjpm1du", "checksum": "5b655efb0d1d9c1ebf6eb86a27556a8c7c7f88e3eefb54012f7a4875c62c4c65"}, {"id": "fls_np8aghofjqhm", "number": "14.2:10", "link": "entities-and-resolution.html#fls_np8aghofjqhm", "checksum": "ce3d4660375205a9a7a05150a0d32054e4b084831f3597693559ff0ac6ecc11a"}, {"id": "fls_quzvhzpr0124", "number": "14.2:11", "link": "entities-and-resolution.html#fls_quzvhzpr0124", "checksum": "58a169c5015aa314a9ea29344a5fd52675e580674d1e2c168b5a1cf37a662248"}, {"id": "fls_utgjx6l5zwfl", "number": "14.2:12", "link": "entities-and-resolution.html#fls_utgjx6l5zwfl", "checksum": "807c234d700c1c58154b62858df9203ffd5320127beface925513a72d43746a9"}, {"id": "fls_jifg2st5bfd6", "number": "14.2:13", "link": "entities-and-resolution.html#fls_jifg2st5bfd6", "checksum": "651aeacef587c3880996a14a105866d5887bfa31fee311aca7513f5271e0ab59"}, {"id": "fls_dm0xr424ine1", "number": "14.2:14", "link": "entities-and-resolution.html#fls_dm0xr424ine1", "checksum": "d2248a6b249c97703150accda87c18ce1d43c45ffefa58683d93eab6824434a9"}], "informational": false}, {"id": "fls_9i5msiuuyihf", "number": "14.3", "title": "Paths", "link": "entities-and-resolution.html#paths", "paragraphs": [{"id": "fls_klcltwcwrw6i", "number": "14.3:1", "link": "entities-and-resolution.html#fls_klcltwcwrw6i", "checksum": "faccaa19e7b0dd16805a53e9927816227b3f4124f6860de31b266715a59bde86"}, {"id": "fls_y1z7kougmahd", "number": "14.3:2", "link": "entities-and-resolution.html#fls_y1z7kougmahd", "checksum": "6f1bc5b5d9ddca435a18802abb0879b3e878d2b97ae4b40649b17237e7aefb96"}, {"id": "fls_8q8nqfpsz7ly", "number": "14.3:3", "link": "entities-and-resolution.html#fls_8q8nqfpsz7ly", "checksum": "a598a12193d0fc3d17a4719a6654b5c3e5de057fb03a8f36364aedb05933e05d"}, {"id": "fls_opn5n5t2mo3m", "number": "14.3:4", "link": "entities-and-resolution.html#fls_opn5n5t2mo3m", "checksum": "a04567d394d65300bd24d7a6f612dfe96ab09a8e1d9d24007027cc4d257070ef"}, {"id": "fls_774uryecc2sx", "number": "14.3:5", "link": "entities-and-resolution.html#fls_774uryecc2sx", "checksum": "5acaf482d5f5abc1db1e3f4e641bcd7d6c807d43c02ce713887758947708de2a"}, {"id": "fls_7k88ypcgaoff", "number": "14.3:6", "link": "entities-and-resolution.html#fls_7k88ypcgaoff", "checksum": "a51e77fdf7a71f0b0eb300f601b6c822e9ab150f5103aa44a1d5ca3df82f5d6e"}, {"id": "fls_7kb6ltajgiou", "number": "14.3:7", "link": "entities-and-resolution.html#fls_7kb6ltajgiou", "checksum": "ac1d3cb4221100b61e82b61f5b77c09f81760c8ad406f8180479d1578f69aad6"}, {"id": "fls_n77icl6idazp", "number": "14.3:8", "link": "entities-and-resolution.html#fls_n77icl6idazp", "checksum": "2bbb4365668a8e9949e6ea226fc1c4ca1bb0c3059e7c2972f064baed667ad506"}, {"id": "fls_ynusdsm4x9eq", "number": "14.3:9", "link": "entities-and-resolution.html#fls_ynusdsm4x9eq", "checksum": "46a2d9694956884e4ad1725c0e2505ade9aa39d6718a015d2850e0cfd1d66063"}, {"id": "fls_iuzvtr3oax1o", "number": "14.3:10", "link": "entities-and-resolution.html#fls_iuzvtr3oax1o", "checksum": "804ea247d1050feb630c47dee50038329c0f8fa4a1c7bb724eb1d19b29eaaaa0"}, {"id": "fls_cw006jhlboa", "number": "14.3:11", "link": "entities-and-resolution.html#fls_cw006jhlboa", "checksum": "0810d5dde86b8556c45ed507bfbec7f51260bd25badbaf62080b21443358840c"}, {"id": "fls_kv5bpq8rf1j9", "number": "14.3:12", "link": "entities-and-resolution.html#fls_kv5bpq8rf1j9", "checksum": "0b5983245cd5346dfd1276ced7307c04d4d81717e265035c72319454fbdfac52"}, {"id": "fls_chtj3hcfe3ap", "number": "14.3:13", "link": "entities-and-resolution.html#fls_chtj3hcfe3ap", "checksum": "6b80947a0c4468e18fade3520519a9b79a5d2d8115001c1eb8bfc0a4a029399f"}, {"id": "fls_wm61yeclairz", "number": "14.3:14", "link": "entities-and-resolution.html#fls_wm61yeclairz", "checksum": "f525bc5d1cc46a6aa7cf36eff8be2a47a90c9803c8a06fe6f8dc345c61c9b080"}, {"id": "fls_nrgjclyzl3ix", "number": "14.3:15", "link": "entities-and-resolution.html#fls_nrgjclyzl3ix", "checksum": "34501af716aa34b93e15d351af04e08ef899126df7109cba1f2037f7ebaf9b3e"}, {"id": "fls_tvvycup09b51", "number": "14.3:16", "link": "entities-and-resolution.html#fls_tvvycup09b51", "checksum": "612a8b592294352e6c67e0fd45f33a2baa3584b57d904a270e78d4339281dd9e"}, {"id": "fls_h2zikgmazoxx", "number": "14.3:17", "link": "entities-and-resolution.html#fls_h2zikgmazoxx", "checksum": "6ea02148b0bd9c494f779eeaac0fa983285fd00082c3df4add60a7293f1b4d54"}, {"id": "fls_nj7s6xmzx55f", "number": "14.3:18", "link": "entities-and-resolution.html#fls_nj7s6xmzx55f", "checksum": "2356207dea29ed2d5aa6e5a78e4994316431b1fe5a8a50b76c7d4b8cdeddede4"}, {"id": "fls_e65q3iz50j6a", "number": "14.3:19", "link": "entities-and-resolution.html#fls_e65q3iz50j6a", "checksum": "8ed372f7349a77552ebc1390e264ac1254ab102736d6e6455ffb3143c4602dbe"}, {"id": "fls_ai1jn5a8h3dz", "number": "14.3:20", "link": "entities-and-resolution.html#fls_ai1jn5a8h3dz", "checksum": "038e052fffa92303139c1be17bb4f7521e552611f2647cf22270e8358b9553e4"}, {"id": "fls_ybv0tdu7dnj5", "number": "14.3:21", "link": "entities-and-resolution.html#fls_ybv0tdu7dnj5", "checksum": "af34b5b94f5c4f453bbbfd85b46861f49c8a88f06df9ae12aa2283441c4c8138"}, {"id": "fls_qkyf2j7gvah8", "number": "14.3:22", "link": "entities-and-resolution.html#fls_qkyf2j7gvah8", "checksum": "87aea9dbee8a48f85557797bbc2d29f8e6fdb0dac7615ebc8e45ed28500441bc"}, {"id": "fls_qjnqbqhucrtt", "number": "14.3:23", "link": "entities-and-resolution.html#fls_qjnqbqhucrtt", "checksum": "94b5df1f402d9ada3134d26046016aef437a8e86533892e27c5a99f4edf52a58"}, {"id": "fls_7sm3206va03c", "number": "14.3:24", "link": "entities-and-resolution.html#fls_7sm3206va03c", "checksum": "8902e7d1f80cd0a6e4e560838c03d8a2949169ae5cf6ffc22f241884a23bdc84"}, {"id": "fls_huynsyx13gsz", "number": "14.3:25", "link": "entities-and-resolution.html#fls_huynsyx13gsz", "checksum": "272e37c850f521889e6d9d7e6813f0a87f44a727cb59102b140179debf821a56"}, {"id": "fls_rzvisapi4wqm", "number": "14.3:26", "link": "entities-and-resolution.html#fls_rzvisapi4wqm", "checksum": "07fbe740bf19563ae613bfea97ef80ae7a163aeeb40db28860b3e3271f30dec9"}, {"id": "fls_f1ciozzetj5a", "number": "14.3:27", "link": "entities-and-resolution.html#fls_f1ciozzetj5a", "checksum": "3f386dfca473cbbe5216f7579aabaa0cda4f6d9bfe53ab258a43c18168692f75"}, {"id": "fls_cy7vza3flqi9", "number": "14.3:28", "link": "entities-and-resolution.html#fls_cy7vza3flqi9", "checksum": "c3776124fbef0e532209f8f067a47e7af3a3bf7032ceeab5cfb896c7651d07dd"}, {"id": "fls_cul31g1kkz5c", "number": "14.3:29", "link": "entities-and-resolution.html#fls_cul31g1kkz5c", "checksum": "21a2d8cb523c5773ae29d50f41763ed7ddb60176b8c96ed994bbb76bef1bf401"}, {"id": "fls_no853u27p4f3", "number": "14.3:30", "link": "entities-and-resolution.html#fls_no853u27p4f3", "checksum": "1efe56e648556f44aad0d45dd15797ab9f64720e38e3df135b9a6f95869b49b6"}, {"id": "fls_28c21rzc6rsp", "number": "14.3:31", "link": "entities-and-resolution.html#fls_28c21rzc6rsp", "checksum": "177724d6510ea45d50120fed6c28c92b69dca2fc3124541b67c96e933917bc0d"}, {"id": "fls_4s2n95h4rd1q", "number": "14.3:32", "link": "entities-and-resolution.html#fls_4s2n95h4rd1q", "checksum": "a16e3a0e1a36090a7b32f972287f4cdedbddc5e240a9b3c08929277f4696a99a"}, {"id": "fls_ojdntg5i79pb", "number": "14.3:33", "link": "entities-and-resolution.html#fls_ojdntg5i79pb", "checksum": "3d7face163b14a1f83f142fc864a2664a8c9ff279c76d924be5a0d78c9df1a62"}], "informational": false}, {"id": "fls_izl8iuhoz9e0", "number": "14.4", "title": "Scopes", "link": "entities-and-resolution.html#scopes", "paragraphs": [{"id": "fls_5x5xykocwyiy", "number": "14.4:1", "link": "entities-and-resolution.html#fls_5x5xykocwyiy", "checksum": "43517ff3b8cb455dc43e97cf0f608edaefcb7c7be9cbed87555264c018d5f507"}], "informational": false}, {"id": "fls_6ozthochxz1i", "number": "14.4.1", "title": "Binding Scopes", "link": "entities-and-resolution.html#binding-scopes", "paragraphs": [{"id": "fls_ncg9etb3x7k0", "number": "14.4.1:1", "link": "entities-and-resolution.html#fls_ncg9etb3x7k0", "checksum": "1c091220f546537aa0376292e1056112fdb4f6accdb5704f2b02a353e1dc7f57"}, {"id": "fls_u52mx4xw8zod", "number": "14.4.1:2", "link": "entities-and-resolution.html#fls_u52mx4xw8zod", "checksum": "28f8cbea9a3c14d13f591f4f492b25d66fb3fef3471e02a0bce1eb50f219a2fa"}, {"id": "fls_t9mk8kasobea", "number": "14.4.1:3", "link": "entities-and-resolution.html#fls_t9mk8kasobea", "checksum": "38c14cea741975dfcf0745579b4485aa6e7fb1819efc47af41906460216ba171"}, {"id": "fls_h9cvs854ae34", "number": "14.4.1:4", "link": "entities-and-resolution.html#fls_h9cvs854ae34", "checksum": "c828a2288a376f29a23988cc6c36a6e201e5de5b00188c8dae26d122a334a4e2"}, {"id": "fls_vl1qk0odouyb", "number": "14.4.1:5", "link": "entities-and-resolution.html#fls_vl1qk0odouyb", "checksum": "9738803f2e1cc4b49daa374b470dec9c822944abdddc2d5553cc3a7d2ff81962"}, {"id": "fls_74nk389rk075", "number": "14.4.1:6", "link": "entities-and-resolution.html#fls_74nk389rk075", "checksum": "704d759b8e808aade84bf9d91c6547afd260d382951c9e63b34d612e46adb44a"}, {"id": "fls_xbnki64un70v", "number": "14.4.1:7", "link": "entities-and-resolution.html#fls_xbnki64un70v", "checksum": "01919a0675796333a57c77739f2e33e59788ca34fb915657ee4300af13e689ff"}], "informational": false}, {"id": "fls_ftphlagzd2te", "number": "14.4.2", "title": "Generic Parameter Scope", "link": "entities-and-resolution.html#generic-parameter-scope", "paragraphs": [{"id": "fls_amoh8r4gghyj", "number": "14.4.2:1", "link": "entities-and-resolution.html#fls_amoh8r4gghyj", "checksum": "d584c25b23d784679f49bee07542de8692b945ee1f537fbbfe6de0748ac4fb71"}, {"id": "fls_6o38qhbna46z", "number": "14.4.2:2", "link": "entities-and-resolution.html#fls_6o38qhbna46z", "checksum": "8279dc6a8b235106f42ec6b4f7ac14f3cbc73a5387e8050967651ecbc6aba0b0"}, {"id": "fls_jqevvpndxzdz", "number": "14.4.2:3", "link": "entities-and-resolution.html#fls_jqevvpndxzdz", "checksum": "1bf64d3433e9732df7b69f03bc39b74cb23d3c97ec46beaacab32fd3c95b7311"}, {"id": "fls_t9ztg017itkp", "number": "14.4.2:4", "link": "entities-and-resolution.html#fls_t9ztg017itkp", "checksum": "b58069d3632126cd1d327344ae6ddc3ea80724b6edb47aae53f655412afbebe2"}, {"id": "fls_pmo939jw9m1m", "number": "14.4.2:5", "link": "entities-and-resolution.html#fls_pmo939jw9m1m", "checksum": "ba9481f2a0dab8367b56e1986f679ff8388f4d6fdbd58144bd8fec7d02d50597"}, {"id": "fls_67dtv1z3arbl", "number": "14.4.2:6", "link": "entities-and-resolution.html#fls_67dtv1z3arbl", "checksum": "5be283d945e26887b35476d71c9983067056e07394062f8e074c437f23e48e7c"}, {"id": "fls_y8j4isk9libl", "number": "14.4.2:7", "link": "entities-and-resolution.html#fls_y8j4isk9libl", "checksum": "b51781ef00cf909b9c6f954d1f3ad0fcde40305f987b06a26fde3bc2fce0cebd"}, {"id": "fls_ow5ih7q3xxfx", "number": "14.4.2:8", "link": "entities-and-resolution.html#fls_ow5ih7q3xxfx", "checksum": "d80167a0dcd4ced3ddd314d967d1072c823cab9fb8cd19ea7168bce3bda55d70"}, {"id": "fls_h9rpwxpz72v0", "number": "14.4.2:9", "link": "entities-and-resolution.html#fls_h9rpwxpz72v0", "checksum": "8ba2db48a9fbc5cd1345c45bbc4ffcce13b8b4fd94cb3d312f53128b4459aaf9"}, {"id": "fls_3qm3vh97bvpb", "number": "14.4.2:10", "link": "entities-and-resolution.html#fls_3qm3vh97bvpb", "checksum": "6da6b05924e3ca7b78a52d8b6bebba58a20200ccc2beec4a64d3e81ad77da76f"}, {"id": "fls_xuxbpv5b2ym9", "number": "14.4.2:11", "link": "entities-and-resolution.html#fls_xuxbpv5b2ym9", "checksum": "e918fbab918fabdf9fdbc58cfc78079484a925ab64ba7147cf502d5a1ad77c81"}, {"id": "fls_95z5mytvfjia", "number": "14.4.2:12", "link": "entities-and-resolution.html#fls_95z5mytvfjia", "checksum": "689d6488c7516efa05b316fc2b100ccd54fc41bf3bac4b72f0868c6a4f251d1d"}], "informational": false}, {"id": "fls_m0z7omni9hp0", "number": "14.4.3", "title": "Item Scope", "link": "entities-and-resolution.html#item-scope", "paragraphs": [{"id": "fls_p5o243hhe1y3", "number": "14.4.3:1", "link": "entities-and-resolution.html#fls_p5o243hhe1y3", "checksum": "fb831c1ad14c0df880fe0e2965047fd726fb0ed1e305c93656d65e870501e7cd"}, {"id": "fls_huvo0mp2i6fb", "number": "14.4.3:2", "link": "entities-and-resolution.html#fls_huvo0mp2i6fb", "checksum": "25bc4c9ccd15441cb75deda5c2ca31e035e40a8231453a5c22e52e2646c44186"}, {"id": "fls_x8r0oppuc1t6", "number": "14.4.3:3", "link": "entities-and-resolution.html#fls_x8r0oppuc1t6", "checksum": "21fe2e6b23a8c76e0b909cb3bb66d87811b819ce8cae90179b3d73eceff47c01"}], "informational": false}, {"id": "fls_769b4p8v3cwu", "number": "14.4.4", "title": "Label Scope", "link": "entities-and-resolution.html#label-scope", "paragraphs": [{"id": "fls_96kczd4zhpco", "number": "14.4.4:1", "link": "entities-and-resolution.html#fls_96kczd4zhpco", "checksum": "521fb43b24f85cbd6c81cae0c33b399291a86e51201554028deeb6b63c47e26a"}, {"id": "fls_8sevg1sa82h4", "number": "14.4.4:2", "link": "entities-and-resolution.html#fls_8sevg1sa82h4", "checksum": "f9d012717e48391d6a169f0d2134dd95a7d39ab75ea97dbf1dff6d58431a9ba5"}, {"id": "fls_ep5smja1rxdv", "number": "14.4.4:3", "link": "entities-and-resolution.html#fls_ep5smja1rxdv", "checksum": "688be0bee74edd58c2e2e383d5686e45abd8a325780d2d340605d0b7b3af96bc"}], "informational": false}, {"id": "fls_kgbi26212eof", "number": "14.4.5", "title": "Self Scope", "link": "entities-and-resolution.html#self-scope", "paragraphs": [{"id": "fls_kgt81m4f72ne", "number": "14.4.5:1", "link": "entities-and-resolution.html#fls_kgt81m4f72ne", "checksum": "46ec90b1b86c7151216c55420994d294c6454cf9a68db0d8835a9fb9b50e5984"}, {"id": "fls_kxdwq4b136tl", "number": "14.4.5:2", "link": "entities-and-resolution.html#fls_kxdwq4b136tl", "checksum": "9ea7a212c6751d354e97c5eaa4a920477f382ff731fbf5eaf9539e771f658286"}, {"id": "fls_nf4g82gi12ij", "number": "14.4.5:3", "link": "entities-and-resolution.html#fls_nf4g82gi12ij", "checksum": "d453f4e8c7603cc4a3af26b98e29a3619d3e4151e2257de52a6d49f61e7ac8d1"}, {"id": "fls_dy4gyepebe7b", "number": "14.4.5:4", "link": "entities-and-resolution.html#fls_dy4gyepebe7b", "checksum": "f92935a62e26ce498f4d124d356e3e78782eef0ef6a3740c3cf24f7b09250efe"}, {"id": "fls_cha4ddwfqwvj", "number": "14.4.5:5", "link": "entities-and-resolution.html#fls_cha4ddwfqwvj", "checksum": "3554e24b5a9b2499a683328f0576d51a86bd26bf117490738edb7ae2e7904a1c"}, {"id": "fls_ql4i021ut2n8", "number": "14.4.5:6", "link": "entities-and-resolution.html#fls_ql4i021ut2n8", "checksum": "2e5e179e6007b149b3d35850933d604403fbaf8f3cce6fdbd380b2f719d27cd8"}, {"id": "fls_mj9vlxnf44oi", "number": "14.4.5:7", "link": "entities-and-resolution.html#fls_mj9vlxnf44oi", "checksum": "6c12e7861360d4792869765a4ef4afc10ef9b835148fd7c3b5b6a78c61e470db"}], "informational": false}, {"id": "fls_octf6sf7yso", "number": "14.4.6", "title": "Textual Macro Scope", "link": "entities-and-resolution.html#textual-macro-scope", "paragraphs": [{"id": "fls_xkh8cqubhxad", "number": "14.4.6:1", "link": "entities-and-resolution.html#fls_xkh8cqubhxad", "checksum": "9d8d566bf0cc9c442a6f8caa9750acaad5fd97b2051978a07e83ecde9be6c8ed"}, {"id": "fls_iec3otx863yp", "number": "14.4.6:2", "link": "entities-and-resolution.html#fls_iec3otx863yp", "checksum": "20ccfad5b0eb356d3674f0df4b46713ca8de9f5e25b83f9ec21fa2ff02dc92cc"}, {"id": "fls_cbfuh9y87y6i", "number": "14.4.6:3", "link": "entities-and-resolution.html#fls_cbfuh9y87y6i", "checksum": "fb291d2a2d9aa2c05d01d7c0697cf5633d229a13e733f5c63cf3880d0e198fe7"}], "informational": false}, {"id": "fls_lnpyb285qdiy", "number": "14.4.7", "title": "Scope Hierarchy", "link": "entities-and-resolution.html#scope-hierarchy", "paragraphs": [{"id": "fls_4o7vfo6v39l7", "number": "14.4.7:1", "link": "entities-and-resolution.html#fls_4o7vfo6v39l7", "checksum": "f551c6d52274528f4d39e9f7ebb33850b7a9886014adda99bd7dfdea6a937703"}, {"id": "fls_ns4eog3od4kw", "number": "14.4.7:2", "link": "entities-and-resolution.html#fls_ns4eog3od4kw", "checksum": "4d1555490789b23e0b29f3539cc6b17f32c58c25a752e2dff0ab22d6d85ba927"}, {"id": "fls_kqmykyzdb1k6", "number": "14.4.7:3", "link": "entities-and-resolution.html#fls_kqmykyzdb1k6", "checksum": "0c3ab46d2d4bbdfb7f8aa15e861edba999dcd3ab2c8247042b749fdfea5d82b2"}, {"id": "fls_g86d5v14sxxv", "number": "14.4.7:4", "link": "entities-and-resolution.html#fls_g86d5v14sxxv", "checksum": "a879143703b2ebbf1c26fff249edc2ee837f8d4c7b131b30fc5b2da7cb149c8b"}, {"id": "fls_ldwencd8zp9a", "number": "14.4.7:5", "link": "entities-and-resolution.html#fls_ldwencd8zp9a", "checksum": "e3f691f921462849f2125bb6f79621259b85389c58f9db3809ce843964ba6095"}, {"id": "fls_jz7hgkvocc9r", "number": "14.4.7:6", "link": "entities-and-resolution.html#fls_jz7hgkvocc9r", "checksum": "0486289257a5a1890cd132dfa6c3f59e5fddf88be745323f21a5d89198421ac0"}, {"id": "fls_p4g8sxba7at9", "number": "14.4.7:7", "link": "entities-and-resolution.html#fls_p4g8sxba7at9", "checksum": "5552d190c3a9cad12620fa1208ea5d3f5618d642ab37332f58d35c9d58779495"}, {"id": "fls_d1cp5pt5wn0z", "number": "14.4.7:8", "link": "entities-and-resolution.html#fls_d1cp5pt5wn0z", "checksum": "b37222b3100e2b80b7b034edb7a76cc840d78dd0fe191e49a45846b0e6903d8d"}, {"id": "fls_ibmm8y748z4", "number": "14.4.7:9", "link": "entities-and-resolution.html#fls_ibmm8y748z4", "checksum": "f2348baa759c683ef36d18d117184e9e34670dd0247232e3c9765ce2bd5acf41"}, {"id": "fls_39011vsy2vxx", "number": "14.4.7:10", "link": "entities-and-resolution.html#fls_39011vsy2vxx", "checksum": "3b60014467b97b96f55006cc958d04dba76f07721782eae6af5f4185ef0b50ed"}, {"id": "fls_m81hyd154yun", "number": "14.4.7:11", "link": "entities-and-resolution.html#fls_m81hyd154yun", "checksum": "ee8879063f069e206d0ee79c4f20ae8cdc570027eeec9cd9ba5327ad2ecc4697"}, {"id": "fls_fvgzmsaox4z3", "number": "14.4.7:12", "link": "entities-and-resolution.html#fls_fvgzmsaox4z3", "checksum": "92bfa8ddd580edf9895e16b361150c8c3d0cdd1c9ccde8524f7e6451e4e7fc64"}, {"id": "fls_rj8uld11o1br", "number": "14.4.7:13", "link": "entities-and-resolution.html#fls_rj8uld11o1br", "checksum": "be583136a634bdd26f4a80930ae3ca6dbbdd6e0358978bd6923a42e1c84b0da7"}, {"id": "fls_hyp4dnpqe620", "number": "14.4.7:14", "link": "entities-and-resolution.html#fls_hyp4dnpqe620", "checksum": "628e0a86e2c9490c0f27ad412acf3bfcaebb23591129c816d0863d06c698ea97"}, {"id": "fls_zgied4qysk2a", "number": "14.4.7:15", "link": "entities-and-resolution.html#fls_zgied4qysk2a", "checksum": "c3092ffb4d6f8e51556d11db102ff26ff4a26fcc6d578001ab2367f0466f8681"}, {"id": "fls_cn6dzmrxdp1w", "number": "14.4.7:16", "link": "entities-and-resolution.html#fls_cn6dzmrxdp1w", "checksum": "ef0cd3b9e3e74fb06c3b65260e11dad890b4f75033c75029d59385ec3657f7b4"}, {"id": "fls_9n7m0tv7w2np", "number": "14.4.7:17", "link": "entities-and-resolution.html#fls_9n7m0tv7w2np", "checksum": "b147985d5033458a477fc80cfbdbe97b50bfe9cba065f8e54ce66e21162aa93b"}, {"id": "fls_sj2ivbf2l2dp", "number": "14.4.7:18", "link": "entities-and-resolution.html#fls_sj2ivbf2l2dp", "checksum": "f72b277b5c1c9727052cdaaee9b8c8db7db662bebc2b7e7059b6af7aed73da62"}, {"id": "fls_cejfio3ddy0j", "number": "14.4.7:19", "link": "entities-and-resolution.html#fls_cejfio3ddy0j", "checksum": "86db3013b3c7a67a2925b579f72ceec4124fd83d53e5dc632e4b57d7cc2eaf3b"}, {"id": "fls_j3rot386teec", "number": "14.4.7:20", "link": "entities-and-resolution.html#fls_j3rot386teec", "checksum": "c2e9b4fad1e4fc3b81216128713d9fd685d26f561850a43261e300f242650592"}, {"id": "fls_nuobrpnymym1", "number": "14.4.7:21", "link": "entities-and-resolution.html#fls_nuobrpnymym1", "checksum": "f953ad67423f37e5b897c8c6668894471626c602b1893f1d007a340ddedbecbd"}, {"id": "fls_r0x9sw7dwnww", "number": "14.4.7:22", "link": "entities-and-resolution.html#fls_r0x9sw7dwnww", "checksum": "f961d6fe49562f6bd683b5e7dac9856e6b65949cdfe488452a9af791a1a20a38"}, {"id": "fls_ve7svuy7xvh0", "number": "14.4.7:23", "link": "entities-and-resolution.html#fls_ve7svuy7xvh0", "checksum": "0132fa4a1bb8914b9f99869812101355d04a8da7aad46c2a3fdb0838b020ca97"}, {"id": "fls_pvfqhtts3qsa", "number": "14.4.7:24", "link": "entities-and-resolution.html#fls_pvfqhtts3qsa", "checksum": "ab92461a17e2778df037251723d9e8305445c141efe44b6ca98f7ddd5804cbe9"}, {"id": "fls_9k9hourczbv7", "number": "14.4.7:25", "link": "entities-and-resolution.html#fls_9k9hourczbv7", "checksum": "08f70ffd77b18c260a9e349a49a29aed866ef6fa09e0df2aa9f1a8228046edc8"}, {"id": "fls_p6wiuhkeypzs", "number": "14.4.7:26", "link": "entities-and-resolution.html#fls_p6wiuhkeypzs", "checksum": "6d3036f41d092e3cd2e55476c4918788be2ab98eb9c6d0b9e69ee70d433cbce7"}, {"id": "fls_34usianesmf6", "number": "14.4.7:27", "link": "entities-and-resolution.html#fls_34usianesmf6", "checksum": "4025d7292308fbfa960b1bb6777f0012c20f86641c9d40465dbeefdf5b08c521"}, {"id": "fls_n1a41d8i0rot", "number": "14.4.7:28", "link": "entities-and-resolution.html#fls_n1a41d8i0rot", "checksum": "6e01c796d3afc2eeedc107698dfc4456b7446b5110ba7583416245987f3b16db"}, {"id": "fls_amhi3d9dd3i3", "number": "14.4.7:29", "link": "entities-and-resolution.html#fls_amhi3d9dd3i3", "checksum": "0db116cf8a599b71212419a8bae8425a590f80dc601f73ff9e537a80f6411a9a"}, {"id": "fls_nu8xj3vza55j", "number": "14.4.7:30", "link": "entities-and-resolution.html#fls_nu8xj3vza55j", "checksum": "b12e44bc28cdd8d7415305251565ee0efd311e80ca5798f02424d3d97af7abf9"}, {"id": "fls_fiyj50u6cg2n", "number": "14.4.7:31", "link": "entities-and-resolution.html#fls_fiyj50u6cg2n", "checksum": "2831803e44ad7befd12a919e248e44a0be126600a95ea86bddaf2a682634f7ea"}, {"id": "fls_azjx3y5yezoi", "number": "14.4.7:32", "link": "entities-and-resolution.html#fls_azjx3y5yezoi", "checksum": "be9f93509f539e90659d105d4f3312acd8a85b94e8c3aa00920639811e1eb437"}, {"id": "fls_puly43s4x360", "number": "14.4.7:33", "link": "entities-and-resolution.html#fls_puly43s4x360", "checksum": "9360333f7d8597a9b299a8028b723451ce669aa9bf7571105bcffc0ed2665b48"}, {"id": "fls_pxtlu7ud6w2h", "number": "14.4.7:34", "link": "entities-and-resolution.html#fls_pxtlu7ud6w2h", "checksum": "07f7dbb2dcd0707931f55e12d3c59fd8e10ecb809691978bc03ebcae149c872a"}, {"id": "fls_ddxxt11u0yal", "number": "14.4.7:35", "link": "entities-and-resolution.html#fls_ddxxt11u0yal", "checksum": "73d81df70d3dae226f85d4fc1d947dcb6c50a3b857102f823d92d248260ce169"}, {"id": "fls_qofr9vme46wp", "number": "14.4.7:36", "link": "entities-and-resolution.html#fls_qofr9vme46wp", "checksum": "e9128513da136c0be871747b63ccd23562fce9810967916d929dfa3e17fdd8b7"}, {"id": "fls_gjvfty9m84a9", "number": "14.4.7:37", "link": "entities-and-resolution.html#fls_gjvfty9m84a9", "checksum": "0900771280a33d9ba8e1d92770357e08ea0ba60343df556c52ebd24218d890a6"}, {"id": "fls_xr9wors6oa7w", "number": "14.4.7:38", "link": "entities-and-resolution.html#fls_xr9wors6oa7w", "checksum": "32dbf2307aedd581270c9472e89c27976e8bafcdef78287e45a2d79c85a0e2fa"}], "informational": false}, {"id": "fls_dq403wq5yrs", "number": "14.5", "title": "Namespaces", "link": "entities-and-resolution.html#namespaces", "paragraphs": [{"id": "fls_1d4jm61qnt4l", "number": "14.5:1", "link": "entities-and-resolution.html#fls_1d4jm61qnt4l", "checksum": "4836b7a81f95f97d95f77726c269b4aa77f371889797ad03dd5ac5df22bb36d3"}, {"id": "fls_avsua7bho205", "number": "14.5:2", "link": "entities-and-resolution.html#fls_avsua7bho205", "checksum": "db9113301feaaf01f285b54f58e061b2b4b3902f5faf3d7d227eb0b315c29ed6"}, {"id": "fls_9e3xeza853wx", "number": "14.5:3", "link": "entities-and-resolution.html#fls_9e3xeza853wx", "checksum": "9d7737fbed1d15d12a68fb7556505470fade9e802af7fd449a008b5b02bcfcdc"}, {"id": "fls_w625tk3ogdui", "number": "14.5:4", "link": "entities-and-resolution.html#fls_w625tk3ogdui", "checksum": "1ca9460a4376c7d597c332cf181c59202868d0b5d8d5fe8255a7b430c6025ed1"}, {"id": "fls_crwfafrmydr7", "number": "14.5:5", "link": "entities-and-resolution.html#fls_crwfafrmydr7", "checksum": "a19dd69d00d64c388eab5b3d9c048c0137016955c4437b1898ac721c57e8f994"}, {"id": "fls_t8fcpm8ldv1y", "number": "14.5:6", "link": "entities-and-resolution.html#fls_t8fcpm8ldv1y", "checksum": "823ca05b98ccb7e81d9e549d58a3aae35ebbed2f14813b3715bc9e393835a951"}, {"id": "fls_7pkex797rkeu", "number": "14.5:7", "link": "entities-and-resolution.html#fls_7pkex797rkeu", "checksum": "b25e6462bc8422aa888e0dfcd2fce3eb82d9ad592ae8442b03f73c12fb73f326"}, {"id": "fls_v32f2evgqt5q", "number": "14.5:8", "link": "entities-and-resolution.html#fls_v32f2evgqt5q", "checksum": "1d855f70942b4b97e20f7a8c2376293535691ffc63e1a3c00d9ff48fbed1c016"}, {"id": "fls_f6yrzwu6yi30", "number": "14.5:9", "link": "entities-and-resolution.html#fls_f6yrzwu6yi30", "checksum": "be6570673f514f4a0d3d22cd860599d6811f9cd474760042c53ed220001d5d06"}, {"id": "fls_nk0swexy2ztm", "number": "14.5:10", "link": "entities-and-resolution.html#fls_nk0swexy2ztm", "checksum": "039f5baf7e3e9350742076c571ec8701657413eb2ab8cf7c8ba7e4a9c6525e47"}, {"id": "fls_ckptn88o6lla", "number": "14.5:11", "link": "entities-and-resolution.html#fls_ckptn88o6lla", "checksum": "4e6c9e8735f706d3ed311192bdd242aebefbc9cd8b79ed32481799fc4e4d54ab"}, {"id": "fls_3ma5v1fop98p", "number": "14.5:12", "link": "entities-and-resolution.html#fls_3ma5v1fop98p", "checksum": "c2df785b7f8b4c342a0cd204655bf38f1cdcdf6da21e8f7033577a0779ea7dfa"}, {"id": "fls_nj7sep7ht7lg", "number": "14.5:13", "link": "entities-and-resolution.html#fls_nj7sep7ht7lg", "checksum": "b626273c028df98bf83f9cc308f4b313b40fd4af9a828d4baa99d514847b7e4f"}, {"id": "fls_g8h6t5x6yprm", "number": "14.5:14", "link": "entities-and-resolution.html#fls_g8h6t5x6yprm", "checksum": "e2e5c5f30f5fe02da3765cc72c29c109ec1284daaaacef2440cd86c7dca3ce84"}, {"id": "fls_2l1o7vqfr4m7", "number": "14.5:15", "link": "entities-and-resolution.html#fls_2l1o7vqfr4m7", "checksum": "6cc5106a9453f6b24aa3d1b25413993384c934c46830703cf83d6aea69144c37"}, {"id": "fls_6q8rjv1jmu84", "number": "14.5:16", "link": "entities-and-resolution.html#fls_6q8rjv1jmu84", "checksum": "6de1568e937c91c9d59930b38b47a437c2f0d6c186377eb0f20facbfed8ffed5"}, {"id": "fls_lx2tx1jt8t3a", "number": "14.5:17", "link": "entities-and-resolution.html#fls_lx2tx1jt8t3a", "checksum": "da1ee981a9e1da0bcc03eb523e05994e90313be4bbd2f3a91ac1cef0226944fe"}, {"id": "fls_mo00df28t7c1", "number": "14.5:18", "link": "entities-and-resolution.html#fls_mo00df28t7c1", "checksum": "1f6a93e2bd7f34e4fba8c83590318721a361b61a42c82338c30914ca994e74b0"}, {"id": "fls_8o3izim4zf8t", "number": "14.5:19", "link": "entities-and-resolution.html#fls_8o3izim4zf8t", "checksum": "e64cf0d2e680eb773614e1b17642212b8071fe0e2601a1b4c95e71731c84a4e0"}, {"id": "fls_fweohszgbuj4", "number": "14.5:20", "link": "entities-and-resolution.html#fls_fweohszgbuj4", "checksum": "8030bef3d19c581e3a4a96c91f3fd57388b1fb2bedea44b40c010da243302e7f"}, {"id": "fls_ry02dzisxz3h", "number": "14.5:21", "link": "entities-and-resolution.html#fls_ry02dzisxz3h", "checksum": "df9b14ad6a4ce87a81cdbfcb59cf04e07e8eb0a0c2de14823a7b87d1ee2a5700"}, {"id": "fls_dcz1bxjjfsq", "number": "14.5:22", "link": "entities-and-resolution.html#fls_dcz1bxjjfsq", "checksum": "5cd65fc00ce58c6713964263dae05662f477e761c5b34c5bd4f050b3608b12bc"}, {"id": "fls_wt9kgsi6n6ep", "number": "14.5:23", "link": "entities-and-resolution.html#fls_wt9kgsi6n6ep", "checksum": "1d817e252ce6759b84635d64a683f45d0081ab7c687143959331fb141cce459a"}, {"id": "fls_w29t5njbe46s", "number": "14.5:24", "link": "entities-and-resolution.html#fls_w29t5njbe46s", "checksum": "52ce21886a1f1adcb3176e37769e7fbf75f96b161b8f1ff617e40e254a1113b6"}, {"id": "fls_u1533bngb0yv", "number": "14.5:25", "link": "entities-and-resolution.html#fls_u1533bngb0yv", "checksum": "26d2b1e1d098bd315370c984c209e9bcfe05242d062331290c72be6bbe298b92"}, {"id": "fls_e8v4g45v5ry2", "number": "14.5:26", "link": "entities-and-resolution.html#fls_e8v4g45v5ry2", "checksum": "daa0b3886b8ff9f6ff8b555ad965ddbc2563f2cf44e1b869d632647511fde7f0"}, {"id": "fls_pq8bzav84q3z", "number": "14.5:27", "link": "entities-and-resolution.html#fls_pq8bzav84q3z", "checksum": "120d3ec4ef8b8d96a2aeed9aae90b73656762d0a9cad70696c487cf430845448"}, {"id": "fls_ttr6v8ca4av0", "number": "14.5:28", "link": "entities-and-resolution.html#fls_ttr6v8ca4av0", "checksum": "809a2c313aa61cdd28a44cd5fcd05bcb52778a18127ddd942da86fc441d1c2de"}, {"id": "fls_aivi97hhfxy2", "number": "14.5:29", "link": "entities-and-resolution.html#fls_aivi97hhfxy2", "checksum": "3ff5dde150cb5c944aec2ecd5a8349fb90870bae072f2f54544f3c820bfa7fee"}, {"id": "fls_pie4ltdtzkl3", "number": "14.5:30", "link": "entities-and-resolution.html#fls_pie4ltdtzkl3", "checksum": "d4015ccb1d4717c0b29f6d3f48fddfad1ac1f9f8a397e4963f0d571b37bd4a4b"}, {"id": "fls_qmf7lk6h96sv", "number": "14.5:31", "link": "entities-and-resolution.html#fls_qmf7lk6h96sv", "checksum": "650724cc8ebda80bcd989f6e99e585db43a4590a015f45fedea21bb82f33dc3c"}, {"id": "fls_ufp3btk8pet5", "number": "14.5:32", "link": "entities-and-resolution.html#fls_ufp3btk8pet5", "checksum": "ba289fa126ce5f48c2046c9cc9e5e7cbd13217e772757f9c2d12848473872ebd"}, {"id": "fls_t3bnpkfazw4z", "number": "14.5:33", "link": "entities-and-resolution.html#fls_t3bnpkfazw4z", "checksum": "cc447ee2f7a5dac66d5e22eb032c6a31eb21d5526ca66fda96ebc2ad415fe6e6"}, {"id": "fls_y0shlli54n5y", "number": "14.5:34", "link": "entities-and-resolution.html#fls_y0shlli54n5y", "checksum": "61fb8303812158a4adfaef901dc1452be9cb24ee1b643dfde5f612d0d0a7eacf"}, {"id": "fls_tghgxcju5u2t", "number": "14.5:35", "link": "entities-and-resolution.html#fls_tghgxcju5u2t", "checksum": "42dffcc4cecdc17b20167b7319ca32561b6c3bac4a546b72a18301ddd55a407a"}, {"id": "fls_yesesxynpq6s", "number": "14.5:36", "link": "entities-and-resolution.html#fls_yesesxynpq6s", "checksum": "40f27fcd73d87d8592e01e22030b08faea5b83cae412960f492dcc2f8a684cc2"}, {"id": "fls_40o8y6exr3df", "number": "14.5:37", "link": "entities-and-resolution.html#fls_40o8y6exr3df", "checksum": "ff385d3524d4f2788d893d77f024a5876c248a7eeee84ac5626642a07c55e0aa"}, {"id": "fls_y76o5ug7dtv", "number": "14.5:38", "link": "entities-and-resolution.html#fls_y76o5ug7dtv", "checksum": "a2c64e06759e68c6b0cf453b6868f12decc89182b9e88d83b02190bccc393951"}, {"id": "fls_3np518s1su4w", "number": "14.5:39", "link": "entities-and-resolution.html#fls_3np518s1su4w", "checksum": "45f1bccebe0303da8288a05a61a1209ff3203d962d252fcfa1fb0a549f9feb28"}], "informational": false}, {"id": "fls_ld0ize96cm6m", "number": "14.6", "title": "Preludes", "link": "entities-and-resolution.html#preludes", "paragraphs": [{"id": "fls_po4gw6t2ptwu", "number": "14.6:1", "link": "entities-and-resolution.html#fls_po4gw6t2ptwu", "checksum": "38d62c936f206c7f1e48f785bbde2d34f1bc2865287994876e882b1c0f65d05e"}, {"id": "fls_n4102qskkmz2", "number": "14.6:2", "link": "entities-and-resolution.html#fls_n4102qskkmz2", "checksum": "9110a045c9c8c940ad03c36e93d5155d9143317d35c55691fb325a15db4b8607"}, {"id": "fls_atvnwly4w8g2", "number": "14.6:3", "link": "entities-and-resolution.html#fls_atvnwly4w8g2", "checksum": "ec28e48bd9269897b4f0446e74ae493289085d680cbdc44336623ee5d261c82b"}, {"id": "fls_pbc7ktlu0pl", "number": "14.6:4", "link": "entities-and-resolution.html#fls_pbc7ktlu0pl", "checksum": "51511e88fc1929d2b8a82b1599001557503f199917df1a80d734152884ff7c77"}, {"id": "fls_frjv68kqqxfh", "number": "14.6:5", "link": "entities-and-resolution.html#fls_frjv68kqqxfh", "checksum": "6bc798373f758197663c5691e9bf15b398a778e6f199a05c44fa7aa932fe6c11"}, {"id": "fls_rf6a2ae3y7vu", "number": "14.6:6", "link": "entities-and-resolution.html#fls_rf6a2ae3y7vu", "checksum": "c92c07a0326e48234f51c8b6a55bbc0ef651cc56135b5f0f5b5203095dac192e"}, {"id": "fls_sxnnkzmuvexa", "number": "14.6:7", "link": "entities-and-resolution.html#fls_sxnnkzmuvexa", "checksum": "4346e39808389249844816dc52643e4e1c2e04e1990eddc603e94ad0e797c809"}, {"id": "fls_qsyorqjkdh2t", "number": "14.6:8", "link": "entities-and-resolution.html#fls_qsyorqjkdh2t", "checksum": "27cab7337ca595be01ad78b78429ef14d328fa6a449fea686acad8144ea79c34"}, {"id": "fls_aolj6abvp9sa", "number": "14.6:9", "link": "entities-and-resolution.html#fls_aolj6abvp9sa", "checksum": "77446948cc77c5f2d38ee156686b5607c4f0331f371b47e54e835ad173f80ba9"}, {"id": "fls_of4n3vv15l5z", "number": "14.6:10", "link": "entities-and-resolution.html#fls_of4n3vv15l5z", "checksum": "9a4a1df8c10224f0c968a22de8bdb0bef1914575cfb19ea0eabb39bce468dd62"}], "informational": false}, {"id": "fls_9gprp17h6t1q", "number": "14.7", "title": "Use Imports", "link": "entities-and-resolution.html#use-imports", "paragraphs": [{"id": "fls_lyw4t098sxrj", "number": "14.7:1", "link": "entities-and-resolution.html#fls_lyw4t098sxrj", "checksum": "813cc34b517b6e85c804618d58441cbaec0e01369396ee4e16225d853a8ea8f3"}, {"id": "fls_sxo1jb25pl8a", "number": "14.7:2", "link": "entities-and-resolution.html#fls_sxo1jb25pl8a", "checksum": "60cd8ef0b9e4e5913161b5314d0d298edd34ff20cb398eb5e69afcb53c884a65"}, {"id": "fls_waa4wmohgu6t", "number": "14.7:3", "link": "entities-and-resolution.html#fls_waa4wmohgu6t", "checksum": "eb328b409e1e5b1f5bfe01c443065950ff895ff862c758235178db6ea7812a7b"}, {"id": "fls_ipyvldmqduf4", "number": "14.7:4", "link": "entities-and-resolution.html#fls_ipyvldmqduf4", "checksum": "1b245fbcb87f36b4177fc03be141f12a61d6353063182660fab4e0cdc454c0da"}, {"id": "fls_moxid37fcnpy", "number": "14.7:5", "link": "entities-and-resolution.html#fls_moxid37fcnpy", "checksum": "e517d4937f6b8b583887c5043676af52be726cafd61bbc680f13f5656221172d"}, {"id": "fls_2uyfcb6our1v", "number": "14.7:6", "link": "entities-and-resolution.html#fls_2uyfcb6our1v", "checksum": "6bf1152c602ed8ba48c73c7fa1915bfad897fb93875da88dcb8ba9ffbffd7dca"}, {"id": "fls_irdkqoyzbm0m", "number": "14.7:7", "link": "entities-and-resolution.html#fls_irdkqoyzbm0m", "checksum": "79e5b1e6a7d289558aff645ca9eef17ce05e04fedcea56361c3c5c8e0ee8da88"}, {"id": "fls_gawsqibl4glq", "number": "14.7:8", "link": "entities-and-resolution.html#fls_gawsqibl4glq", "checksum": "f9a3c4f788393bf20c3f6e2f1532ebe181eabd6d14c64bc76bbde37f384cc86b"}, {"id": "fls_2bkcn83smy2y", "number": "14.7:9", "link": "entities-and-resolution.html#fls_2bkcn83smy2y", "checksum": "5b6924c18d30552bc9b8351dcc65a6bd1e5d98680cbcb35bd254e872513eb96e"}, {"id": "fls_v3a6y2ze44v2", "number": "14.7:10", "link": "entities-and-resolution.html#fls_v3a6y2ze44v2", "checksum": "7fbdb92123ed136d12204172f71af7bdf831c5cca0d09fb88a8446f8a976e9cd"}, {"id": "fls_jhu0ersyb6el", "number": "14.7:11", "link": "entities-and-resolution.html#fls_jhu0ersyb6el", "checksum": "7645908217267b4bb43c4e7b5562d641d9bd121bc47c13f2301e854c768d2dab"}, {"id": "fls_jlnkxkuhsvx4", "number": "14.7:12", "link": "entities-and-resolution.html#fls_jlnkxkuhsvx4", "checksum": "8e0c213bf3df7e68bb3d5a37c5d28f9a2951831f6a212231d780248a26766802"}, {"id": "fls_q0kffnalmslq", "number": "14.7:13", "link": "entities-and-resolution.html#fls_q0kffnalmslq", "checksum": "9cec53e98886d395fc8df4d58bb00bfcb91617b34acaf616395d8e52652246e5"}, {"id": "fls_hy17lzofgfop", "number": "14.7:14", "link": "entities-and-resolution.html#fls_hy17lzofgfop", "checksum": "3bfcbf98de455cd97691285c1acf7f4818c2d6a62889ebc042f7444e9a36d98b"}, {"id": "fls_90hqvsh7bfyg", "number": "14.7:15", "link": "entities-and-resolution.html#fls_90hqvsh7bfyg", "checksum": "64222f860a3b80479b545a9e1668b362fc096bd84fd135b83848cab59f535464"}, {"id": "fls_wrmvtgqkfa6w", "number": "14.7:16", "link": "entities-and-resolution.html#fls_wrmvtgqkfa6w", "checksum": "0e4fdf65d5d96641f5f69fd73231dc0d8b53d0a8ee40c16c7e62fc70ee53f047"}, {"id": "fls_kz2gij5whxnl", "number": "14.7:17", "link": "entities-and-resolution.html#fls_kz2gij5whxnl", "checksum": "b5a17251d386bd737a55045cc108b41a18740d77abb50130269d9ebe6303ec72"}, {"id": "fls_yy58pfpkig9o", "number": "14.7:18", "link": "entities-and-resolution.html#fls_yy58pfpkig9o", "checksum": "2649f9cf8cb9cc5a2907d411e6134e4e0997b0ab85f19a07509de9ffc29575b4"}, {"id": "fls_ar03d5rxjzy0", "number": "14.7:19", "link": "entities-and-resolution.html#fls_ar03d5rxjzy0", "checksum": "41745bc2f1843a06a54a672f54f86ac947143da2a368e20e62f8df7a9d67ebeb"}, {"id": "fls_ce73bg0bqv1x", "number": "14.7:20", "link": "entities-and-resolution.html#fls_ce73bg0bqv1x", "checksum": "00e9aea779512a6b5660ecaf0702c0d3ac4c3c845a967ca739fd4cac1be0b551"}, {"id": "fls_filur3pfwjw3", "number": "14.7:21", "link": "entities-and-resolution.html#fls_filur3pfwjw3", "checksum": "43af72288bd22a2547f54bfac05285b72065c3c2cb06c8de5b5ce6ba9efb055b"}, {"id": "fls_iqogxnihuer7", "number": "14.7:22", "link": "entities-and-resolution.html#fls_iqogxnihuer7", "checksum": "2ddb4b51369e74bddbb00fcd04f1bb773bfba5a9e5dfc796d8df300f808159ff"}, {"id": "fls_ldr7tsuqw34s", "number": "14.7:23", "link": "entities-and-resolution.html#fls_ldr7tsuqw34s", "checksum": "fa0a3046e6eb99fb80810bb3178f02f5e79ed989591df2df0d2770e7a189838e"}, {"id": "fls_inubx5fjai1n", "number": "14.7:24", "link": "entities-and-resolution.html#fls_inubx5fjai1n", "checksum": "8cdb7a1fd01eee9c13a292e349acea9eb9ac949a2fa9265baef3c16015ddb27e"}, {"id": "fls_ruifq17bmrlt", "number": "14.7:25", "link": "entities-and-resolution.html#fls_ruifq17bmrlt", "checksum": "12921489bca7899128033af3093a7ba86cffca5d616df55a4805a78bec860c60"}, {"id": "fls_hv3xt2cjzuxc", "number": "14.7:26", "link": "entities-and-resolution.html#fls_hv3xt2cjzuxc", "checksum": "923e223c194e910992be0f11cedf10480449de62681514efabd485fd092a163f"}, {"id": "fls_pxc0ts8y7pfw", "number": "14.7:27", "link": "entities-and-resolution.html#fls_pxc0ts8y7pfw", "checksum": "7b947c9844d14caa57b996745fe9aba3027e04b17242edb5d6ba5c93d9247024"}, {"id": "fls_wb3fvglloqbz", "number": "14.7:28", "link": "entities-and-resolution.html#fls_wb3fvglloqbz", "checksum": "17b551577a4582157ce3c9a4dd5f1f653ac4f0fcca4d9b35db57fcb2edc04dda"}, {"id": "fls_zmysbw995ksn", "number": "14.7:29", "link": "entities-and-resolution.html#fls_zmysbw995ksn", "checksum": "96787ea2ff0300ae0e9ddc0818a3d47b177e6ce4c85c2c850a2784a954fa5c27"}, {"id": "fls_5dlnffim6fso", "number": "14.7:30", "link": "entities-and-resolution.html#fls_5dlnffim6fso", "checksum": "0e8c1af4192bbb151c8e0d0e48a61bbc1f113b36ede83721e90db3fc6229e35a"}, {"id": "fls_9rhflreuubhq", "number": "14.7:31", "link": "entities-and-resolution.html#fls_9rhflreuubhq", "checksum": "6a1fe59e480a0b1ad4b849816298fff68ba63985da52c560be04b860192302b0"}, {"id": "fls_s86dgrdpl1w4", "number": "14.7:32", "link": "entities-and-resolution.html#fls_s86dgrdpl1w4", "checksum": "450d1f7e6a218347a2975757a64915986a919f11db07da137f1b613c0651d553"}], "informational": false}, {"id": "fls_ydmnb7qnmzzq", "number": "14.8", "title": "Shadowing", "link": "entities-and-resolution.html#shadowing", "paragraphs": [{"id": "fls_ob0riinmitkl", "number": "14.8:1", "link": "entities-and-resolution.html#fls_ob0riinmitkl", "checksum": "eb93934c961caf16b01776dfdbf9b28bd8d888368b6ad7e96ed926a29f22bbf4"}, {"id": "fls_fslg89a70e3n", "number": "14.8:2", "link": "entities-and-resolution.html#fls_fslg89a70e3n", "checksum": "6e3390d623ef6fb40f9e1687c6a8225b9eba4a6e72844ff3d2c96319a35975fc"}, {"id": "fls_hp3f4r3399kt", "number": "14.8:3", "link": "entities-and-resolution.html#fls_hp3f4r3399kt", "checksum": "db3d661af677fa5cf3df3f945d076f9f7636833ffe1dda2753c0bd7295c67912"}, {"id": "fls_z8qjpskt13yq", "number": "14.8:4", "link": "entities-and-resolution.html#fls_z8qjpskt13yq", "checksum": "418ed55705f495765526f09bf71b0e5b2725b130e6f0fce6aef783c6ebca4258"}, {"id": "fls_i0gp1y38lr73", "number": "14.8:5", "link": "entities-and-resolution.html#fls_i0gp1y38lr73", "checksum": "7bb5774d32bb848596abc22f98835526687c7290c92e9a0c480006e2ff78fcee"}, {"id": "fls_7pif12rt4s4s", "number": "14.8:6", "link": "entities-and-resolution.html#fls_7pif12rt4s4s", "checksum": "83eb26105dc85d77872ef84d2a9ee034d52e70b80e1aebf1653955eb3298caad"}, {"id": "fls_are9qz67p7b6", "number": "14.8:7", "link": "entities-and-resolution.html#fls_are9qz67p7b6", "checksum": "2b077c03fd28171c667fe2cf4b197a2f463d319e9fc967f4718fc7013e240522"}, {"id": "fls_4tis5syofyg0", "number": "14.8:8", "link": "entities-and-resolution.html#fls_4tis5syofyg0", "checksum": "c67d0f504519dd854e9530bae15b45de6b718e9b8c41f7cbf3e5178c96e8c04b"}, {"id": "fls_u0tsnkhacr06", "number": "14.8:9", "link": "entities-and-resolution.html#fls_u0tsnkhacr06", "checksum": "77ce43e27ab83c36305d9a185a5ca04f7f8829673d2b5697f77fd89d032f6cbe"}, {"id": "fls_iaklf84guczc", "number": "14.8:10", "link": "entities-and-resolution.html#fls_iaklf84guczc", "checksum": "28721531162ef5d6094a8ccb50a419eb494630777d043b260cc2e84dd9e65180"}, {"id": "fls_a0zovslu2v4u", "number": "14.8:11", "link": "entities-and-resolution.html#fls_a0zovslu2v4u", "checksum": "849224ffd513f258a847928a943322879b28ee64055165e1ea8d3bac7ae0e624"}], "informational": false}, {"id": "fls_40xoego2thsp", "number": "14.9", "title": "Resolution", "link": "entities-and-resolution.html#resolution", "paragraphs": [{"id": "fls_ho4kem1slcxg", "number": "14.9:1", "link": "entities-and-resolution.html#fls_ho4kem1slcxg", "checksum": "9dc68fa012d432e6ce69d9945c40a38ec3fa96e38601d3106e03acfe663fdc95"}, {"id": "fls_7le2vcdbtxbq", "number": "14.9:2", "link": "entities-and-resolution.html#fls_7le2vcdbtxbq", "checksum": "66ebea6978cb1daf3e00dfeebbba4e819b907b02a40349e360a6b094881ff7ff"}, {"id": "fls_x3alg07yd7hx", "number": "14.9:3", "link": "entities-and-resolution.html#fls_x3alg07yd7hx", "checksum": "f1ca8332615aeed822d795872f0809ed29a4e1d2160faa1ee7da8b3e1f6e6346"}, {"id": "fls_4hulwazdu20i", "number": "14.9:4", "link": "entities-and-resolution.html#fls_4hulwazdu20i", "checksum": "1697af6564bdffc62e51d3c846e72831c1c12e73fe2790f11c7a21ebfaa07a71"}, {"id": "fls_ptocwx5p25lj", "number": "14.9:5", "link": "entities-and-resolution.html#fls_ptocwx5p25lj", "checksum": "f79f3efcbf1195ffe54c0a60acbf4bf5874f53ef8c0b36f0851ce886a40598d3"}, {"id": "fls_ygam5nisv98c", "number": "14.9:6", "link": "entities-and-resolution.html#fls_ygam5nisv98c", "checksum": "a131476f47296126bd7d484e19183efe874d331eb45abb3ea465295d1c0645ca"}], "informational": false}, {"id": "fls_xcwfotmq2e5d", "number": "14.9.1", "title": "Field Resolution", "link": "entities-and-resolution.html#field-resolution", "paragraphs": [{"id": "fls_1nxknwjdp0am", "number": "14.9.1:1", "link": "entities-and-resolution.html#fls_1nxknwjdp0am", "checksum": "aaf0db1f36f8f15b96618b5a70cec4a15e5d625748a8590acdfb9e046f222dd1"}, {"id": "fls_j1bip4w30q8", "number": "14.9.1:2", "link": "entities-and-resolution.html#fls_j1bip4w30q8", "checksum": "66cc3c2c1a5ec6dd71396911c8316e01e72ca51ce4bc489387e1e7b0b3371827"}, {"id": "fls_jrk3gzqvqr8e", "number": "14.9.1:3", "link": "entities-and-resolution.html#fls_jrk3gzqvqr8e", "checksum": "19df557d0cd32382f3a39cabc59987441fef33fd672cfe083367c1432ed20de2"}, {"id": "fls_asn20qx16sr6", "number": "14.9.1:4", "link": "entities-and-resolution.html#fls_asn20qx16sr6", "checksum": "8a8e13fcffd5809ce5f90c8ea9cefec9fa5ca58b1bea8566b16d1fc9a6040f1d"}, {"id": "fls_jzoon4x89zp7", "number": "14.9.1:5", "link": "entities-and-resolution.html#fls_jzoon4x89zp7", "checksum": "f7516801073f4902b37f8c6a2860b920595b14089f145b432e64e340de0fca99"}, {"id": "fls_r80pixfoe5hk", "number": "14.9.1:6", "link": "entities-and-resolution.html#fls_r80pixfoe5hk", "checksum": "7a2ade6ee042d2fa1254f9e3a047fe526e3618d2f949b87f34a08121a165eb4f"}, {"id": "fls_40oa0j6aiop3", "number": "14.9.1:7", "link": "entities-and-resolution.html#fls_40oa0j6aiop3", "checksum": "3c9f984a5a8cf97fecfc89b84a15e8ae272e62c460b0988610134cebefe43a63"}, {"id": "fls_2bp1zs7qaz7o", "number": "14.9.1:8", "link": "entities-and-resolution.html#fls_2bp1zs7qaz7o", "checksum": "9f3f6ee5e9400959e3a4445be267664e3ccdec6bf0887f243d3696b27b6c2ac2"}, {"id": "fls_s14fegwhwnc8", "number": "14.9.1:9", "link": "entities-and-resolution.html#fls_s14fegwhwnc8", "checksum": "1245cb0d297861a8c0266d9628d353be5f835d30038c5d29c99d6ebd0af2a540"}, {"id": "fls_tfjm27ydiake", "number": "14.9.1:10", "link": "entities-and-resolution.html#fls_tfjm27ydiake", "checksum": "1fa259887a9405988fa7b3381ca5a486089f705f216bc750d058d170e8641a6d"}, {"id": "fls_p6hgoqo0kcx", "number": "14.9.1:11", "link": "entities-and-resolution.html#fls_p6hgoqo0kcx", "checksum": "0ac084f03e5a81020440616fa419fc5d5b6861d4a201ef74c1be61813fdeca03"}, {"id": "fls_e7sj392ohvbd", "number": "14.9.1:12", "link": "entities-and-resolution.html#fls_e7sj392ohvbd", "checksum": "4e24dc92aa06d5b4ad0e1df6508c329176170f30e1a94c6692df3e2e12215796"}, {"id": "fls_z6qt9obbhhcg", "number": "14.9.1:13", "link": "entities-and-resolution.html#fls_z6qt9obbhhcg", "checksum": "07f1cdb38f9bd8c127759860f4a51b104e71f573c2880fceec9bb97d393d32aa"}, {"id": "fls_ljnjxex3u5o", "number": "14.9.1:14", "link": "entities-and-resolution.html#fls_ljnjxex3u5o", "checksum": "c7857117b11bfd871d7e3b709cd608d66f29d41ebccc028b2b47eb0a71ae7fd5"}, {"id": "fls_nm06mru40tyg", "number": "14.9.1:15", "link": "entities-and-resolution.html#fls_nm06mru40tyg", "checksum": "bb0494028f9d19ce98975cf71392baf6f4b01e861bd44b13c4eec3780403a9fa"}], "informational": false}, {"id": "fls_wqazkzle0ix9", "number": "14.9.2", "title": "Method Resolution", "link": "entities-and-resolution.html#method-resolution", "paragraphs": [{"id": "fls_e5a5z5yht26l", "number": "14.9.2:1", "link": "entities-and-resolution.html#fls_e5a5z5yht26l", "checksum": "506663a2566f85e068c82d0103f1ca78bd821cb68b77fbdbcd52c1072331ad09"}, {"id": "fls_mbds0xinlj92", "number": "14.9.2:2", "link": "entities-and-resolution.html#fls_mbds0xinlj92", "checksum": "29e3e853007709641b0c2182f3e9bc70020808d3869acd0dcfa131141a8c00a0"}, {"id": "fls_z80ylmlu1f3q", "number": "14.9.2:3", "link": "entities-and-resolution.html#fls_z80ylmlu1f3q", "checksum": "c89b01c453ba585643631dc3b2963abc8b1e4c53933b3721b3dfc7101393d2d2"}, {"id": "fls_e1029pvq706h", "number": "14.9.2:4", "link": "entities-and-resolution.html#fls_e1029pvq706h", "checksum": "0cf16c00febccc266cbb1905aa697021947ef02980576e67df40efe5cf32c0a4"}, {"id": "fls_w3ik83d43fr1", "number": "14.9.2:5", "link": "entities-and-resolution.html#fls_w3ik83d43fr1", "checksum": "7d99ef0d1b75056141e26deea64ad1a7c9653284138e25b5fdad0f5c30a465b0"}, {"id": "fls_pybv4krsvktv", "number": "14.9.2:6", "link": "entities-and-resolution.html#fls_pybv4krsvktv", "checksum": "8e912acb711b0d365e2b30de2a8c67f34bfc9132756c0ce068ee0cccafb9d8d4"}, {"id": "fls_m2njj6no0p1i", "number": "14.9.2:7", "link": "entities-and-resolution.html#fls_m2njj6no0p1i", "checksum": "2f5e3e2a6ede7f8249c7456439a30d94da8d1baf1c53135ae9fbdde73ae46077"}, {"id": "fls_16l2q1wpcnbp", "number": "14.9.2:8", "link": "entities-and-resolution.html#fls_16l2q1wpcnbp", "checksum": "72843d941971110fefb9a9b6995ef90cd5b564d6639651630b631e41ee4e491e"}, {"id": "fls_fcnahkqxomuo", "number": "14.9.2:9", "link": "entities-and-resolution.html#fls_fcnahkqxomuo", "checksum": "6d27f6b19310c77c713cea4e5c7bb344db8cbb3fdf479386c7233e155236809f"}, {"id": "fls_ii0fdpekn1qt", "number": "14.9.2:10", "link": "entities-and-resolution.html#fls_ii0fdpekn1qt", "checksum": "cb39263ec9ad7cd027df0b037770018592ea1b93c52e02c1e911048464995f86"}, {"id": "fls_ohjmxhbw3nx3", "number": "14.9.2:11", "link": "entities-and-resolution.html#fls_ohjmxhbw3nx3", "checksum": "e7745cebb4a1cfb9d08a5ec1b5827d5cb745348158eb1ab0b3677d950118e4c7"}, {"id": "fls_lgpdicxxwq13", "number": "14.9.2:12", "link": "entities-and-resolution.html#fls_lgpdicxxwq13", "checksum": "d9a23a581045be380483ef64273fb0970eb3a080cffb32f83f6ff8e0922acd5c"}, {"id": "fls_ugl3x4y3lli2", "number": "14.9.2:13", "link": "entities-and-resolution.html#fls_ugl3x4y3lli2", "checksum": "d684bf9d23507a618c9721f7ea2ec85c2736c06dbee658fa864d22a5e32c5d44"}, {"id": "fls_bb4cbmvui8fk", "number": "14.9.2:14", "link": "entities-and-resolution.html#fls_bb4cbmvui8fk", "checksum": "8e4b764f8f8a09f136954a2bfc947ddc4eda420f1148fad92fc5fa7a24c12c13"}, {"id": "fls_5wny1yxbyuz0", "number": "14.9.2:15", "link": "entities-and-resolution.html#fls_5wny1yxbyuz0", "checksum": "66ebe678e1ae9102e4d8521706cef63daeae10b848e263ab3766e4aa6cc9a1d9"}, {"id": "fls_gsc8pt4tlsqv", "number": "14.9.2:16", "link": "entities-and-resolution.html#fls_gsc8pt4tlsqv", "checksum": "17c39504c2086447190664d68d7a3eae124510357ebc7f144f3d1b25f7026518"}, {"id": "fls_tfglce1wuq5q", "number": "14.9.2:17", "link": "entities-and-resolution.html#fls_tfglce1wuq5q", "checksum": "9aed381332445df712568775e61af445c35e6c942e4722e7a4d38140ff9b3fa3"}, {"id": "fls_64bfcn9okeve", "number": "14.9.2:18", "link": "entities-and-resolution.html#fls_64bfcn9okeve", "checksum": "04832d6c14ff2380c1a19024f980142d165adb58520a40c0c8af80ffe1fb55c8"}, {"id": "fls_om90v9re8b2l", "number": "14.9.2:19", "link": "entities-and-resolution.html#fls_om90v9re8b2l", "checksum": "3700640ef18118308cf59e04636cc5b6f1c574e9b6d802e29ef33f0d5814bf71"}, {"id": "fls_bsf4hy9x7c2e", "number": "14.9.2:20", "link": "entities-and-resolution.html#fls_bsf4hy9x7c2e", "checksum": "f01b3809e31f3e711b3d853cd5dc8d1acdc431c60f9d0c04452abeccb6190de6"}, {"id": "fls_cnn5hkf1z5q4", "number": "14.9.2:21", "link": "entities-and-resolution.html#fls_cnn5hkf1z5q4", "checksum": "e610b83f08f3c1ffeb1693c97a13b45472e77067e9caff1501681e6e4ff7633c"}, {"id": "fls_j9ho6xc2fj0w", "number": "14.9.2:22", "link": "entities-and-resolution.html#fls_j9ho6xc2fj0w", "checksum": "4380ca472e236c4d884dc55c2ab8da71766dbea2d3cc0895b010c2c48c9df55b"}, {"id": "fls_1y94elgpg0uk", "number": "14.9.2:23", "link": "entities-and-resolution.html#fls_1y94elgpg0uk", "checksum": "2cd76e3de2de59d6830b6ea7fef86225bf36e7cfcecb6ebec75030fcfb2efc73"}, {"id": "fls_npsdxrtcslcf", "number": "14.9.2:24", "link": "entities-and-resolution.html#fls_npsdxrtcslcf", "checksum": "4b79cb54112a7172b9965ddcc0ee752f7f3490dd18a445e79bd25bddb06908c0"}, {"id": "fls_yv5l823lwdsv", "number": "14.9.2:25", "link": "entities-and-resolution.html#fls_yv5l823lwdsv", "checksum": "5f2072da8fa1e8d184be3da512c28aed044a859e8fcd3ffe93c952419a84e822"}, {"id": "fls_ckdoyvbaybe0", "number": "14.9.2:26", "link": "entities-and-resolution.html#fls_ckdoyvbaybe0", "checksum": "c3218b553ed9d95d1235f5fc0fd5281890f0bf12ace5c8649ae55530225d53e1"}, {"id": "fls_1azkiu20r0e4", "number": "14.9.2:27", "link": "entities-and-resolution.html#fls_1azkiu20r0e4", "checksum": "64374639950e73d231a40ccb24e159d9cd1d7dd8e03cfab109bd17a57ea06805"}, {"id": "fls_ose5m4bhkg57", "number": "14.9.2:28", "link": "entities-and-resolution.html#fls_ose5m4bhkg57", "checksum": "63fa9c1342877193573e6c29b715d5deac6bfb9eb8ea49fa19c104c6063e6b4c"}, {"id": "fls_jw2yv23cduu4", "number": "14.9.2:29", "link": "entities-and-resolution.html#fls_jw2yv23cduu4", "checksum": "9977dc1614c53e251615c07e9e08e617d47505e3cdbc9b1f313d120c80533919"}], "informational": false}, {"id": "fls_telbknkodx3d", "number": "14.9.3", "title": "Call Resolution", "link": "entities-and-resolution.html#call-resolution", "paragraphs": [{"id": "fls_zjj7y9r6qqmw", "number": "14.9.3:1", "link": "entities-and-resolution.html#fls_zjj7y9r6qqmw", "checksum": "e00de8ccb48972edb964b7efe2cdb1840c249fb526d14c3331b293a3cf8cf79d"}, {"id": "fls_zbslou2gjv7x", "number": "14.9.3:2", "link": "entities-and-resolution.html#fls_zbslou2gjv7x", "checksum": "18e91497757f3ccef6d3e37f0ab6fa99650ef04419b74aa5cb0faaf8d646c8c1"}, {"id": "fls_xbakdylf7aog", "number": "14.9.3:3", "link": "entities-and-resolution.html#fls_xbakdylf7aog", "checksum": "d569ecf4ccc75ebed4ac9a1fd2482c4db16dcb459e321909013b8a42be1b4bf4"}, {"id": "fls_kzovwqiw7ghc", "number": "14.9.3:4", "link": "entities-and-resolution.html#fls_kzovwqiw7ghc", "checksum": "de3fc414790cfa7bddbc44846eff2f3816840e6b0249dd0e743b4ee447d3a909"}, {"id": "fls_4ibdte0ji4tf", "number": "14.9.3:5", "link": "entities-and-resolution.html#fls_4ibdte0ji4tf", "checksum": "f9822b671141f854469f2aa328c18a596471e264a51e4f3c1630f47b3b828d76"}, {"id": "fls_twr5giuxpcaj", "number": "14.9.3:6", "link": "entities-and-resolution.html#fls_twr5giuxpcaj", "checksum": "c7df7b2b6d7b1fbd91b08418341411ea2e0a68ee04bf8ab36bcf50f60d63f1b8"}], "informational": false}, {"id": "fls_i6qzga6dyaee", "number": "14.9.4", "title": "Path Resolution", "link": "entities-and-resolution.html#path-resolution", "paragraphs": [{"id": "fls_8slvisr3jfja", "number": "14.9.4:1", "link": "entities-and-resolution.html#fls_8slvisr3jfja", "checksum": "55361e7d41c5c24510d526001510c8bad4aef48dbd51f81ef0d1fe0e7aa4128c"}, {"id": "fls_nmev0tnzgw35", "number": "14.9.4:2", "link": "entities-and-resolution.html#fls_nmev0tnzgw35", "checksum": "8cd576cd86befd359dfe276c5f05be757f54ff4b4b44768f9a4b71ec18287156"}, {"id": "fls_p23q1ob2qitz", "number": "14.9.4:3", "link": "entities-and-resolution.html#fls_p23q1ob2qitz", "checksum": "a8a99061757e28c4776e91bccebf019763e6c7876ea81a92d9a1c528165aaf18"}, {"id": "fls_e9rv8dfa0arl", "number": "14.9.4:4", "link": "entities-and-resolution.html#fls_e9rv8dfa0arl", "checksum": "537b298a9d54dde06ac687138d86b76d85a21e75ce6b341493c8b394b5239199"}, {"id": "fls_yule33qm1ok", "number": "14.9.4:5", "link": "entities-and-resolution.html#fls_yule33qm1ok", "checksum": "48938e27d06bad943ff87be97fcc21540da3b77868b16a71eb117137d09d23fc"}, {"id": "fls_7xmhm2lf2h8f", "number": "14.9.4:6", "link": "entities-and-resolution.html#fls_7xmhm2lf2h8f", "checksum": "725b600fb8ecdc9eddfb8e2568ae2102893884fcb7c6aa4e1963c948b242dabe"}, {"id": "fls_ec4wo8odusqp", "number": "14.9.4:7", "link": "entities-and-resolution.html#fls_ec4wo8odusqp", "checksum": "d67675a77fe3ac8c7c6a93c703b80fb47b1307005a8bca11ae42fe53388b0e18"}, {"id": "fls_9tedg9lpewqa", "number": "14.9.4:8", "link": "entities-and-resolution.html#fls_9tedg9lpewqa", "checksum": "ed06a87167d12f3592d3f1f3fe6b1b8dee1445d3084186ca2eb0c64e38d0a195"}, {"id": "fls_mvymlhp7192e", "number": "14.9.4:9", "link": "entities-and-resolution.html#fls_mvymlhp7192e", "checksum": "836b27b41fb978acddad30353606e589d3d7a0f959fd869e0363f5f4da38a1e2"}, {"id": "fls_cs485plo4z49", "number": "14.9.4:10", "link": "entities-and-resolution.html#fls_cs485plo4z49", "checksum": "8bc4d6164a3454b1f92bc7c3b987ebd35d035f0b570af2120160837269eb6880"}, {"id": "fls_yrpem8vhxpr5", "number": "14.9.4:11", "link": "entities-and-resolution.html#fls_yrpem8vhxpr5", "checksum": "28e96aa4ab999e28d472ac597a459b4f3cf5355e1f3d4e36729f80527e38a9a3"}, {"id": "fls_ri50nc2dg7c4", "number": "14.9.4:12", "link": "entities-and-resolution.html#fls_ri50nc2dg7c4", "checksum": "12d01e64bed3fb1d93c2baaba1c990b876b01143f65e13549b16e2f86722c1f8"}, {"id": "fls_to52oma1bvx3", "number": "14.9.4:13", "link": "entities-and-resolution.html#fls_to52oma1bvx3", "checksum": "2f1892ee92de8c871fc2ae0a0108195b7e93d76975e2ed4557897be68ac335ea"}, {"id": "fls_kpn2y7xb3s8q", "number": "14.9.4:14", "link": "entities-and-resolution.html#fls_kpn2y7xb3s8q", "checksum": "e2260bf8d1cd6ed1f8f560bde5a04eda03749ba3b9698be0e9e830379cc526ac"}, {"id": "fls_z71op1vdnazq", "number": "14.9.4:15", "link": "entities-and-resolution.html#fls_z71op1vdnazq", "checksum": "e869f661950b3fb36bb49810ed4fa5897bab056d9061a5614f1f983004a68702"}, {"id": "fls_2km29ekj9464", "number": "14.9.4:16", "link": "entities-and-resolution.html#fls_2km29ekj9464", "checksum": "f1bf72c3463050e387b72d2514a1d90f3ce47bceb98da6b23877d0cf3a67ad9a"}, {"id": "fls_l2y464skbuta", "number": "14.9.4:17", "link": "entities-and-resolution.html#fls_l2y464skbuta", "checksum": "8048713e7609c52f8f92a383762dac9c9e3c99f7aa1e987e0d6e2fe1af9c998a"}, {"id": "fls_n2x13sg5szbl", "number": "14.9.4:18", "link": "entities-and-resolution.html#fls_n2x13sg5szbl", "checksum": "1bf727a1dcaab6f5e8df8590d6bb1ba357978668aa0b347d821b88b023b5731b"}, {"id": "fls_53kd7eb1qzuz", "number": "14.9.4:19", "link": "entities-and-resolution.html#fls_53kd7eb1qzuz", "checksum": "288a6623bd127a3853dec6c8c81b675f11276f49d7085cdc4252566638ef0cad"}, {"id": "fls_3spnlz9tqnhj", "number": "14.9.4:20", "link": "entities-and-resolution.html#fls_3spnlz9tqnhj", "checksum": "8d75724256d8acc0107bb9928323bf6eebea21f3cb90023f550e681bd0f4c068"}, {"id": "fls_mt6xki08viyw", "number": "14.9.4:21", "link": "entities-and-resolution.html#fls_mt6xki08viyw", "checksum": "b3276319834228734d7f152a0a6ee88d4760ced117b6e497f7775f79453e1247"}, {"id": "fls_7hk059djudgn", "number": "14.9.4:22", "link": "entities-and-resolution.html#fls_7hk059djudgn", "checksum": "bba6464e5850bc807bb84138c417abccf4d8e863b7cc927a7dc6c4f574742d9f"}, {"id": "fls_lxa7uhmdoy9d", "number": "14.9.4:23", "link": "entities-and-resolution.html#fls_lxa7uhmdoy9d", "checksum": "d976b884515464965ab2b569d6e256a24cbdd97a74803de060faefb3dcf17a9a"}, {"id": "fls_ecazaurxegcs", "number": "14.9.4:24", "link": "entities-and-resolution.html#fls_ecazaurxegcs", "checksum": "3ceffa06884bb95ce527ddb9ed4cc31c620d57a422f0938a8257f78e4c4f844a"}, {"id": "fls_xujlscsir05f", "number": "14.9.4:25", "link": "entities-and-resolution.html#fls_xujlscsir05f", "checksum": "10ebf431ca0e173e09d0e95cc99d83fa560ba88808dfbb3c22cb34e450e43483"}, {"id": "fls_wypnvfklnmc1", "number": "14.9.4:26", "link": "entities-and-resolution.html#fls_wypnvfklnmc1", "checksum": "d4f7baf7b1415e0ddd6d71a215ed14fec816b15d9e58dcc2454d7f27e69004bd"}, {"id": "fls_zi46lmwsn4rg", "number": "14.9.4:27", "link": "entities-and-resolution.html#fls_zi46lmwsn4rg", "checksum": "cd2421eeddd4a05db76bdfc69b504e9b4de55915c2ef18bfaa6e927a3e72ce16"}, {"id": "fls_batfgtxjkq0b", "number": "14.9.4:28", "link": "entities-and-resolution.html#fls_batfgtxjkq0b", "checksum": "5090abee767f23b1aea068bdf5cf40ac88c35f6bab4a3fe0c8da122c592d1093"}], "informational": false}, {"id": "fls_bbso3c45kr9z", "number": "14.9.4.1", "title": "Simple Path Resolution", "link": "entities-and-resolution.html#simple-path-resolution", "paragraphs": [{"id": "fls_uml24jw5jo7a", "number": "14.9.4.1:1", "link": "entities-and-resolution.html#fls_uml24jw5jo7a", "checksum": "c1ebb5064acb14aea9a28d26b01046f531294fbbd5ca6410cce82bf98b8d7261"}, {"id": "fls_59wd7loxst43", "number": "14.9.4.1:2", "link": "entities-and-resolution.html#fls_59wd7loxst43", "checksum": "253940a0312803793da657e8bb0a7e478cbc89857c2a237d03548618de1ec256"}, {"id": "fls_mk0ufkeggot6", "number": "14.9.4.1:3", "link": "entities-and-resolution.html#fls_mk0ufkeggot6", "checksum": "8459bc1ffb9ad72f9f9ce23cfd6b93c218419c6681b8e4a7686dae5b8ac9e309"}, {"id": "fls_ayv8okec9fwb", "number": "14.9.4.1:4", "link": "entities-and-resolution.html#fls_ayv8okec9fwb", "checksum": "b3db0521d2ccad1a7ff3c83e38d7bfada206a50d8fced514e5605a753bcacab8"}, {"id": "fls_ppoc6wcplab6", "number": "14.9.4.1:5", "link": "entities-and-resolution.html#fls_ppoc6wcplab6", "checksum": "1650a4f513fab2754fe189d6a8993c9c7855378082856282662768a8528dc575"}, {"id": "fls_dc0yv4306p82", "number": "14.9.4.1:6", "link": "entities-and-resolution.html#fls_dc0yv4306p82", "checksum": "f036f3d708d6307e0393c1e54c59023aa992026100787bff26b010ac6a22a467"}, {"id": "fls_jhivcca0xcqj", "number": "14.9.4.1:7", "link": "entities-and-resolution.html#fls_jhivcca0xcqj", "checksum": "5ac0651992734c49cdd19081a8d8fe0dc4836c3ac46e8efe50194b2f7e10729f"}, {"id": "fls_tfsgutcpube2", "number": "14.9.4.1:8", "link": "entities-and-resolution.html#fls_tfsgutcpube2", "checksum": "07a8a2eb540fa895244a934632b5bf01b28d65714143604e47094193df81fafb"}], "informational": false}, {"id": "fls_o9u2h5m17kpz", "number": "14.9.4.2", "title": "Path Expression Resolution", "link": "entities-and-resolution.html#path-expression-resolution", "paragraphs": [{"id": "fls_akjlqm3a2lb1", "number": "14.9.4.2:1", "link": "entities-and-resolution.html#fls_akjlqm3a2lb1", "checksum": "89af848f7138b85e851a6fce2956808b14f21021ce84337948db5477059f0233"}, {"id": "fls_xyzdajtf4u2t", "number": "14.9.4.2:2", "link": "entities-and-resolution.html#fls_xyzdajtf4u2t", "checksum": "36e698199bc9da0c6a50931da2b24831e8a0c0750e8ce52aeac1278944de27a5"}, {"id": "fls_d45vu3iazi3", "number": "14.9.4.2:3", "link": "entities-and-resolution.html#fls_d45vu3iazi3", "checksum": "947403e0d43bb6cfb3077d98850a6352967094b8f5cb8b7f5c87720092f9c7ce"}, {"id": "fls_9pjhok9rctty", "number": "14.9.4.2:4", "link": "entities-and-resolution.html#fls_9pjhok9rctty", "checksum": "d10ea4290290cedc3b93488c82b41a90c8b0f81d39b7086609ec5f0800847605"}, {"id": "fls_2wbpr9lvz5yq", "number": "14.9.4.2:5", "link": "entities-and-resolution.html#fls_2wbpr9lvz5yq", "checksum": "b61a1df0de63c17349e99968166779c0689667f68065641b1e2150f748f65308"}, {"id": "fls_u5nyv6ii1g2l", "number": "14.9.4.2:6", "link": "entities-and-resolution.html#fls_u5nyv6ii1g2l", "checksum": "aab266bf1130186940d08a2295560fbf7ce71f175fd96c37a30e54fc2c971f1e"}, {"id": "fls_bscg48os5otx", "number": "14.9.4.2:7", "link": "entities-and-resolution.html#fls_bscg48os5otx", "checksum": "f48db4f42fe8c1ac1316b5e2c8512944ed025def1e5c0e37911a3eca62f9d2d0"}, {"id": "fls_qbmp0blpoxx9", "number": "14.9.4.2:8", "link": "entities-and-resolution.html#fls_qbmp0blpoxx9", "checksum": "82ccbb720ea64a252b72a8aec77019bb5127c99487c3f35d9e6dadc715a2490d"}, {"id": "fls_ydni5laqv6gp", "number": "14.9.4.2:9", "link": "entities-and-resolution.html#fls_ydni5laqv6gp", "checksum": "bbeb20abca91e618378dccd524e3d3a000f6f9e7f3141dc46ca1370b9efb0aeb"}, {"id": "fls_lsxbl6ep3150", "number": "14.9.4.2:10", "link": "entities-and-resolution.html#fls_lsxbl6ep3150", "checksum": "447a699862b4725e7b22ef7e24b1ab0783fec4db871aa6703ba6a7001eab753e"}, {"id": "fls_x1n7w8w6lwm", "number": "14.9.4.2:11", "link": "entities-and-resolution.html#fls_x1n7w8w6lwm", "checksum": "82acf15a92dae67f822e95bc38c6423ae258c77c41fe7312c0a6d9fbb981207e"}, {"id": "fls_v1h4frnbqruu", "number": "14.9.4.2:12", "link": "entities-and-resolution.html#fls_v1h4frnbqruu", "checksum": "15004350a8a539c4ce31613578db742e17945883ac27c5d3bf184e757faed1c6"}, {"id": "fls_utfpnwlo0v99", "number": "14.9.4.2:13", "link": "entities-and-resolution.html#fls_utfpnwlo0v99", "checksum": "9ac0b1cdc63a7e767baf563d906d9f2d9c9f560ba05a020309fdea70f031bf47"}, {"id": "fls_1p8ocf1w5bp4", "number": "14.9.4.2:14", "link": "entities-and-resolution.html#fls_1p8ocf1w5bp4", "checksum": "39b97104cbe16fdf9cdc1acf3f079ade2fd32c3ac33e7858ae07e79a0bbc7907"}, {"id": "fls_qb5yo7j5gnvf", "number": "14.9.4.2:15", "link": "entities-and-resolution.html#fls_qb5yo7j5gnvf", "checksum": "57570b48e6c6c789ee1bcbc956a0f24f79597a3ef49766fcff1d1600dad9b834"}, {"id": "fls_o1g0forw6xw", "number": "14.9.4.2:16", "link": "entities-and-resolution.html#fls_o1g0forw6xw", "checksum": "f5d76df40ae4cadd8e2d9663fbe3c5b810519b7c72d0c10a68e00aa5f027118b"}, {"id": "fls_bcqe13q696zg", "number": "14.9.4.2:17", "link": "entities-and-resolution.html#fls_bcqe13q696zg", "checksum": "ce270746d595abe4f9d7b06360f034018301bd6709bc75fe5c1fde0bc1629b78"}, {"id": "fls_3sceutaqpqha", "number": "14.9.4.2:18", "link": "entities-and-resolution.html#fls_3sceutaqpqha", "checksum": "91a7d385f03fde69b74c5358096b89c7db65599637389124b36104c6f45d2b53"}, {"id": "fls_6q9cwqlvxmd1", "number": "14.9.4.2:19", "link": "entities-and-resolution.html#fls_6q9cwqlvxmd1", "checksum": "6737364b72e672ce8f63321ee00914ec76f3c688ef520853fa9e96db1550f2e5"}, {"id": "fls_qeym3vbi36iv", "number": "14.9.4.2:20", "link": "entities-and-resolution.html#fls_qeym3vbi36iv", "checksum": "a6ecb99abfccb4f9199fc7b11b6264c36f5e5074d9a587814517d58bb28b0397"}, {"id": "fls_8x0pqwpm80sj", "number": "14.9.4.2:21", "link": "entities-and-resolution.html#fls_8x0pqwpm80sj", "checksum": "b5e402b7df0a8601f86f4a9fe385165d3998a9a9d0eda91d847641c00cac3469"}, {"id": "fls_pp09gmrnasjp", "number": "14.9.4.2:22", "link": "entities-and-resolution.html#fls_pp09gmrnasjp", "checksum": "e6032bec4cb34591f1ba4d23d2ce789f2b98a66582dd5c3aa70faf8101bd90f7"}, {"id": "fls_q0jt6n2j1hsx", "number": "14.9.4.2:23", "link": "entities-and-resolution.html#fls_q0jt6n2j1hsx", "checksum": "b1754db3d3ab0eb3fe598859fff3a8179aa499eb840ad97eba99417063259cb9"}], "informational": false}, {"id": "fls_1h0olpc7vbui", "number": "14.9.4.3", "title": "Type Path Resolution", "link": "entities-and-resolution.html#type-path-resolution", "paragraphs": [{"id": "fls_2zuncql8ir5k", "number": "14.9.4.3:1", "link": "entities-and-resolution.html#fls_2zuncql8ir5k", "checksum": "148fc3beb5377b51b5edacfbb4ace5e23c7411944c711b49cd4964375b6fc241"}, {"id": "fls_bv5cj918dqqe", "number": "14.9.4.3:2", "link": "entities-and-resolution.html#fls_bv5cj918dqqe", "checksum": "fbaeca87efc96f46effc5215cbf8bc344900a3226501a59b1a547bb863112ec9"}, {"id": "fls_bsakzuteuh5s", "number": "14.9.4.3:3", "link": "entities-and-resolution.html#fls_bsakzuteuh5s", "checksum": "752f0ff05ebaea022db0ecba55adfcb69b6f6c23c86019b367b3543af220a26c"}, {"id": "fls_j1ewjisx0mc2", "number": "14.9.4.3:4", "link": "entities-and-resolution.html#fls_j1ewjisx0mc2", "checksum": "a2d543d3938e4eaf6c88335ab06f4b99d478110d46ea60d86ee04356b323bcd9"}, {"id": "fls_o4snu1him277", "number": "14.9.4.3:5", "link": "entities-and-resolution.html#fls_o4snu1him277", "checksum": "12dd80327fd8a5c538a2841bd1c0e0122e4159042245c5ffce28e72f8be6691d"}, {"id": "fls_goe8q52toik2", "number": "14.9.4.3:6", "link": "entities-and-resolution.html#fls_goe8q52toik2", "checksum": "6689718fd77318ab2f4a94867ff442dd6bfa733fdede8a658be7cdb6eabb0281"}, {"id": "fls_4rs35f6ydckj", "number": "14.9.4.3:7", "link": "entities-and-resolution.html#fls_4rs35f6ydckj", "checksum": "38657ebf4baa69cb441b05dfa17a0c65b100642cb9c9c766425c0db3fd888577"}, {"id": "fls_jh4db1p7or0x", "number": "14.9.4.3:8", "link": "entities-and-resolution.html#fls_jh4db1p7or0x", "checksum": "b41f690747dc7316182fec64bdba0c0beb06900a8bbaba23f018fcec1330a29d"}], "informational": false}], "informational": false}, {"title": "Concurrency", "link": "concurrency.html", "sections": [{"id": "fls_3v733mnewssy", "number": "17", "title": "Concurrency", "link": "concurrency.html", "paragraphs": [{"id": "fls_opt7v0mopxc8", "number": "17:1", "link": "concurrency.html#fls_opt7v0mopxc8", "checksum": "58e23287dc1c3ffbe6b2c4672501d222916a129910befc8fadc364de5171c351"}, {"id": "fls_tx4b8r6i93n4", "number": "17:2", "link": "concurrency.html#fls_tx4b8r6i93n4", "checksum": "60786d66db9926333e9768b0cc8aa490ff764f600fdbdb389912f9e85add0678"}, {"id": "fls_isypweqewe78", "number": "17:3", "link": "concurrency.html#fls_isypweqewe78", "checksum": "5a06090908c3a726a0df6203b3e9f7c460c35609c758b6db09cf2d5c5c753c8e"}], "informational": false}, {"id": "fls_eiw4by8z75di", "number": "17.1", "title": "Send and Sync", "link": "concurrency.html#send-and-sync", "paragraphs": [{"id": "fls_n5l17mlglq11", "number": "17.1:1", "link": "concurrency.html#fls_n5l17mlglq11", "checksum": "18cfbb89a43fe476f2c0e5f3299b552fe8abafac2b759f081654338c7597f688"}, {"id": "fls_2jujsujpjp3w", "number": "17.1:2", "link": "concurrency.html#fls_2jujsujpjp3w", "checksum": "2c6d410f6594c15bcbb289be0b5a44ae8b19c478583342e5405aef3abbdb8951"}, {"id": "fls_cax6fe4em23k", "number": "17.1:3", "link": "concurrency.html#fls_cax6fe4em23k", "checksum": "11baae79e2b2bec1ba1dccff05f08bedf2b603f0b2748f345dafa59243aab72f"}, {"id": "fls_4ypqdehn7b0v", "number": "17.1:4", "link": "concurrency.html#fls_4ypqdehn7b0v", "checksum": "14b867fe8baaef726910084c46d92291fffbfe3b462586c4a7ecd134f8152d96"}, {"id": "fls_dekskhk4g895", "number": "17.1:5", "link": "concurrency.html#fls_dekskhk4g895", "checksum": "3e1f608593a27c63b70db641f71e71a331b116739b77b1bc9ce207481f0dd8be"}, {"id": "fls_y0iqr5ibnbfe", "number": "17.1:6", "link": "concurrency.html#fls_y0iqr5ibnbfe", "checksum": "37c5ee82be489b2f1bd2eb9efdd02a9e9734ac2867c6bfc04f37f9877a9ab760"}, {"id": "fls_zgemofbs5q2x", "number": "17.1:7", "link": "concurrency.html#fls_zgemofbs5q2x", "checksum": "a206190ea6bc9a6672886ed000599cd972f4abec22f754db4c4d9acbc6754a4c"}], "informational": false}, {"id": "fls_vyc9vcuamlph", "number": "17.2", "title": "Atomics", "link": "concurrency.html#atomics", "paragraphs": [{"id": "fls_3pjla9s93mhd", "number": "17.2:1", "link": "concurrency.html#fls_3pjla9s93mhd", "checksum": "aca31f1758bf227f88cdd68e64370874768f51dd10e9211ec344537b1d7ba6cd"}, {"id": "fls_wn4ynaio8u47", "number": "17.2:2", "link": "concurrency.html#fls_wn4ynaio8u47", "checksum": "ce72ccfc2f3e59228fae42edd3521e8333bddb6951896be2347ec2387355262a"}, {"id": "fls_q7mn6pdd8bix", "number": "17.2:3", "link": "concurrency.html#fls_q7mn6pdd8bix", "checksum": "f04e33b2cedb200500a0733c23e46638bb219c9422ea4796905e57f57c0bc457"}, {"id": "fls_jx0784jzxy00", "number": "17.2:4", "link": "concurrency.html#fls_jx0784jzxy00", "checksum": "fa9d632297e07c71321455d7ac82181279f4349b2878ed60e0088fb76453fa21"}, {"id": "fls_vzuwnpx7mt08", "number": "17.2:5", "link": "concurrency.html#fls_vzuwnpx7mt08", "checksum": "17b8684e84e891ce119a119dcdf3b5cc1df0bd9132fc39002ef445333a7386cf"}, {"id": "fls_cpcd0vexfbhj", "number": "17.2:6", "link": "concurrency.html#fls_cpcd0vexfbhj", "checksum": "3df9c673e62071885a6938566ce59609242470b1c63272f358bf5f999f2324fe"}, {"id": "fls_jt7rfq9atbiv", "number": "17.2:7", "link": "concurrency.html#fls_jt7rfq9atbiv", "checksum": "9c9a349252f3cb141e008067381e5a19c45f3b1738132bfebc02583b25c36873"}, {"id": "fls_2hqmfwswc6k", "number": "17.2:8", "link": "concurrency.html#fls_2hqmfwswc6k", "checksum": "72763ab828f9c57a7ba7ae57c095d30f4ef5bb34e5319df45f176f6570588e00"}, {"id": "fls_5ab2sw3gwmt3", "number": "17.2:9", "link": "concurrency.html#fls_5ab2sw3gwmt3", "checksum": "051b06b8e012ef9e9c02369b0cb8074a99acd99781938a746c9de16fa2ce4dcd"}, {"id": "fls_w2mw833g28eb", "number": "17.2:10", "link": "concurrency.html#fls_w2mw833g28eb", "checksum": "a8ab421b6894b056917c74396d9ac843c73dad27e12268a43fad03a877c8009c"}, {"id": "fls_mjq1l1y0vmz4", "number": "17.2:11", "link": "concurrency.html#fls_mjq1l1y0vmz4", "checksum": "f182e5451b68bf0b4094178052d33c3a59b7d40c5282e4bf77de423b44b77f8d"}, {"id": "fls_906978wtss6n", "number": "17.2:12", "link": "concurrency.html#fls_906978wtss6n", "checksum": "3b07334d52a95685b653abaecb58f071b99276e911b0f4bc4ab80cda4ef4ff1f"}, {"id": "fls_4urmnh4mfehl", "number": "17.2:13", "link": "concurrency.html#fls_4urmnh4mfehl", "checksum": "5b5d7f2d72de32a5c8c9e36b4111885655abad9b351cd2bdd65dac06dcdf6660"}, {"id": "fls_2qkrcd5eovpe", "number": "17.2:14", "link": "concurrency.html#fls_2qkrcd5eovpe", "checksum": "b14552f886fa68d1904ccff6320f2d395f90fee027a70f30588a9ba68a53b172"}, {"id": "fls_cry1e78gp19q", "number": "17.2:15", "link": "concurrency.html#fls_cry1e78gp19q", "checksum": "1bf7e1661a0f7e7762a5549fe82988a4afbe4436720588214b9ad3857ecc02a7"}], "informational": false}, {"id": "fls_mtuwzinpfvkl", "number": "17.3", "title": "Asynchronous Computation", "link": "concurrency.html#asynchronous-computation", "paragraphs": [{"id": "fls_g40xp4andj5g", "number": "17.3:1", "link": "concurrency.html#fls_g40xp4andj5g", "checksum": "dfbc3bd3bcdae5a3f76ab60f5c1fbcb25458c3975778746db7eea952015a2f79"}, {"id": "fls_fte085hi1yqj", "number": "17.3:2", "link": "concurrency.html#fls_fte085hi1yqj", "checksum": "0a94602025c891b37d5f98e1ccd525f0cd66c06df02df85b06336668d0711cbe"}, {"id": "fls_7muubin2wn1v", "number": "17.3:3", "link": "concurrency.html#fls_7muubin2wn1v", "checksum": "306a3b2eabc2ff31f77f6446060185578f9427fcc497d1588cb51a4c94ae4819"}, {"id": "fls_ftzey2156ha", "number": "17.3:4", "link": "concurrency.html#fls_ftzey2156ha", "checksum": "d6389f23a8eff8343451429941d835b9e1b00fa45cf260112041467021172752"}], "informational": false}], "informational": false}, {"title": "Attributes", "link": "attributes.html", "sections": [{"id": "fls_gvwd0kf72jt", "number": "13", "title": "Attributes", "link": "attributes.html", "paragraphs": [{"id": "fls_rnzxj1t0hehl", "number": "13:1", "link": "attributes.html#fls_rnzxj1t0hehl", "checksum": "eff2f3d8085ca2ad43e10aa74acd5fb4de1a71393ec1e3bb69b4da6eca0bac43"}, {"id": "fls_yd0ehw5csaur", "number": "13:2", "link": "attributes.html#fls_yd0ehw5csaur", "checksum": "dd933aff5339727903dca2ff3f8484b0c000fdda5ab4ef729319db3dd76c9f10"}, {"id": "fls_8o6vmzbw1b1j", "number": "13:3", "link": "attributes.html#fls_8o6vmzbw1b1j", "checksum": "08694050309ada68c0f9d36f4cf7bf427a740fb2dd1175bd0acf555bedcf4729"}, {"id": "fls_9tmrvlqwadtb", "number": "13:4", "link": "attributes.html#fls_9tmrvlqwadtb", "checksum": "80ab4794df7b97c498adf667d822f03e67802cfa46ac84a9c38967818009cfd1"}], "informational": false}, {"id": "fls_i52cujixq9qs", "number": "13.1", "title": "Attribute Properties", "link": "attributes.html#attribute-properties", "paragraphs": [{"id": "fls_p4potvq7x532", "number": "13.1:1", "link": "attributes.html#fls_p4potvq7x532", "checksum": "37140f4cac4f331316da767c72dc2e92fb5dfe383af30c5eb742a269163ccd01"}, {"id": "fls_xk7lb2g02sy7", "number": "13.1:2", "link": "attributes.html#fls_xk7lb2g02sy7", "checksum": "e3cc14af5a12637d401f768630f9f0596ea7cd5c05458d5e49c6242fc7e178d8"}, {"id": "fls_q8wl7pidx2za", "number": "13.1:3", "link": "attributes.html#fls_q8wl7pidx2za", "checksum": "cebd4af12f069c0f4ce742eabdd258723662de0e0f1065a6bcfe8772e5e7194b"}, {"id": "fls_jottio69o9e7", "number": "13.1:4", "link": "attributes.html#fls_jottio69o9e7", "checksum": "3c8df296f170a3b399899cfa57fc5da2cb24c804bc939039d3e9458c342b6334"}, {"id": "fls_gzyx9lfi5pvd", "number": "13.1:5", "link": "attributes.html#fls_gzyx9lfi5pvd", "checksum": "9ea853c8e48bec469214a2d9b52929d6510733dbfd7da35ad72428a27b205528"}, {"id": "fls_elsfqsiqor1y", "number": "13.1:6", "link": "attributes.html#fls_elsfqsiqor1y", "checksum": "b4754f2c355f2072357c0a755bb404f6751667b43571d332db5c965114f6b906"}, {"id": "fls_4xu1rwecd9au", "number": "13.1:7", "link": "attributes.html#fls_4xu1rwecd9au", "checksum": "ddc3357e11fde52528c561fe21918b1245bd5e8f4b51c556ad29d044506d4dd5"}, {"id": "fls_n3737i320qum", "number": "13.1:8", "link": "attributes.html#fls_n3737i320qum", "checksum": "f304103b55d7d87cca0e19cc4a96ed5406fa81e32277ba35a91b20c6ac85614f"}], "informational": false}, {"id": "fls_ahmnqhm8anlb", "number": "13.2", "title": "Built-in Attributes", "link": "attributes.html#built-in-attributes", "paragraphs": [{"id": "fls_92tqo8uas8kd", "number": "13.2:1", "link": "attributes.html#fls_92tqo8uas8kd", "checksum": "8831d99bc357aecc925ce16cd58e47b873e3b06390d5fb7a155f553383be820f"}, {"id": "fls_bxucstrfcco8", "number": "13.2:2", "link": "attributes.html#fls_bxucstrfcco8", "checksum": "819b429cae29c60933aa33ed73c325f87704b027ac0198d05fae9f4bf69e4f9e"}, {"id": "fls_wle815gb9ai2", "number": "13.2:3", "link": "attributes.html#fls_wle815gb9ai2", "checksum": "44b470444d5c0ced9e021ec324c2d117754a70bf3f44d00e5303fef3bee9f401"}, {"id": "fls_tvn08dtuilue", "number": "13.2:4", "link": "attributes.html#fls_tvn08dtuilue", "checksum": "2e27368f11256b44dd2ff0e2e21daa255d6bed7e9e9c923ff8043070e7560521"}, {"id": "fls_q4c023zdsfgn", "number": "13.2:5", "link": "attributes.html#fls_q4c023zdsfgn", "checksum": "2f27a78e70b3ce7bcc2fa8fbd9d7e48bcf5f81303e22b4473c9ad67be8183e5c"}, {"id": "fls_xtu3p0kzwn7b", "number": "13.2:6", "link": "attributes.html#fls_xtu3p0kzwn7b", "checksum": "baed00b7e77547d373721bf0e05d646d88cb96ded2722b7505577f118cac0b81"}, {"id": "fls_gxxbf6eag3et", "number": "13.2:7", "link": "attributes.html#fls_gxxbf6eag3et", "checksum": "a1e7b39f6c99e32a187f228c19c2009de7fe6fdb93f751ce5336f2008300d9e9"}, {"id": "fls_87o6n9et9jio", "number": "13.2:8", "link": "attributes.html#fls_87o6n9et9jio", "checksum": "d49e8eff84e5ce88a93c8e6b4f4a4ba514b0028bb3d1b7d17254dc7f599ddb15"}, {"id": "fls_ui0i3rpt5v5u", "number": "13.2:9", "link": "attributes.html#fls_ui0i3rpt5v5u", "checksum": "8bdce4eb7ab793087e487d41f14318daea55698317ec8c2b834f93716676d8ba"}, {"id": "fls_6utorag4adlv", "number": "13.2:10", "link": "attributes.html#fls_6utorag4adlv", "checksum": "02a0c085b317b40311d3351f46a1962249d001ea8178f149b1db9a76bfa770f6"}, {"id": "fls_d8spdkjzp496", "number": "13.2:11", "link": "attributes.html#fls_d8spdkjzp496", "checksum": "124eb05c66c007133b357ef970ea0ae8451920e4a7920d8b84d5ec680201b0ed"}, {"id": "fls_vidbcv25dyud", "number": "13.2:12", "link": "attributes.html#fls_vidbcv25dyud", "checksum": "0b3817e206a78ddd0a8e8b4ed610b9f55b12348279d741c6b73e04f718ad7af6"}, {"id": "fls_d0298bmlyuu4", "number": "13.2:13", "link": "attributes.html#fls_d0298bmlyuu4", "checksum": "323fb400bdae437ffcf0829ed2261a1544d5ce01aec7bf434039ecdd05963f85"}, {"id": "fls_dtb3t5ht5ngf", "number": "13.2:14", "link": "attributes.html#fls_dtb3t5ht5ngf", "checksum": "b475a70894edc2d24474d317e039db5c901e1875b816cab114567e81bd8ab90b"}, {"id": "fls_c5n4gzgs79vv", "number": "13.2:15", "link": "attributes.html#fls_c5n4gzgs79vv", "checksum": "9b687112a84218dfa3ca1c0398bd960887a07dd5a6bc8638b5b8d2cb839101cc"}, {"id": "fls_xheohvupr8kb", "number": "13.2:16", "link": "attributes.html#fls_xheohvupr8kb", "checksum": "21c4c3f4bc27f88194a4d70c18fea7e0c0dd30914282d878277d915ff3696c35"}, {"id": "fls_s5z2q5pl14p4", "number": "13.2:17", "link": "attributes.html#fls_s5z2q5pl14p4", "checksum": "d69474814037b5865fc97976164e1adab1e4e2d50965ee20568962b021550b4b"}, {"id": "fls_5ko0q9jnxv5a", "number": "13.2:18", "link": "attributes.html#fls_5ko0q9jnxv5a", "checksum": "e79694d1fca990a102620dc1063eff04ea1dd5c1dfbe2141a22745bbe30aa92d"}, {"id": "fls_rgjf5ibhurda", "number": "13.2:19", "link": "attributes.html#fls_rgjf5ibhurda", "checksum": "e7a9d3069445027dd0df2d0ca2be3467b745bfedc8fda368fdea9ae8714a07b1"}, {"id": "fls_29y8icoou1gx", "number": "13.2:20", "link": "attributes.html#fls_29y8icoou1gx", "checksum": "bdd154ea0f22fca637f51b6c83cb046352335e01a835e7578c6131621efacee3"}, {"id": "fls_3fxhz0olhbcy", "number": "13.2:21", "link": "attributes.html#fls_3fxhz0olhbcy", "checksum": "994a15d14865c9ac299a469fa02491a079be98f08e532c1842561696a2b061a9"}, {"id": "fls_oexj0952o05u", "number": "13.2:22", "link": "attributes.html#fls_oexj0952o05u", "checksum": "3ee32e5e73d9f2f1211fb65ca1c0f0d9d62156fe5ed050f460f1912ce3b036e3"}, {"id": "fls_q579e97n1m8j", "number": "13.2:23", "link": "attributes.html#fls_q579e97n1m8j", "checksum": "cc38d8d58ef7f13fe4397cce653d8d17edbbf4e2f403bfbe1a8b43ec4ec6bc5b"}, {"id": "fls_sn43rofpq6ld", "number": "13.2:24", "link": "attributes.html#fls_sn43rofpq6ld", "checksum": "c162024d8e33899473123cc87be077f31a4f25434418bb05acf6f8b0020d6d36"}, {"id": "fls_56d70gkmin4p", "number": "13.2:25", "link": "attributes.html#fls_56d70gkmin4p", "checksum": "ec2aaeb5be71ab80801008bbbe736f283e0d5966c61fb962f3e0eeca5c099c6c"}, {"id": "fls_mgb1xipm0qwo", "number": "13.2:26", "link": "attributes.html#fls_mgb1xipm0qwo", "checksum": "7272a1c6f97c65a1a242fddb8442c6a6775d841ecf8e6dca74890ea2b21b90ad"}, {"id": "fls_rmhlssasdtkj", "number": "13.2:27", "link": "attributes.html#fls_rmhlssasdtkj", "checksum": "7488d316ab0bbccd6abaa4b7e9fac3051db8b6b7e7abde9eea639f605061ae24"}, {"id": "fls_josaywt6g3rq", "number": "13.2:28", "link": "attributes.html#fls_josaywt6g3rq", "checksum": "e318a8fb125755feb4d3ff217ad94ecfbed347ec2d3b5fc6b915785092ad356f"}, {"id": "fls_qk4vkn42c2jh", "number": "13.2:29", "link": "attributes.html#fls_qk4vkn42c2jh", "checksum": "45520f65cdd77c53947a088461ef31fee2930bb2ed25f58133a20ba182466c85"}, {"id": "fls_f21azsygoovw", "number": "13.2:30", "link": "attributes.html#fls_f21azsygoovw", "checksum": "8c88e030229dcaf650154b169b91390821d8dfd437a0dbe05acfc8e30cba2e0d"}, {"id": "fls_4d31lwzblg91", "number": "13.2:31", "link": "attributes.html#fls_4d31lwzblg91", "checksum": "f89ffdf2e417fe247529cb8ada441fde754938c091666370fb4a4907947ff762"}, {"id": "fls_muucfla1s8yn", "number": "13.2:32", "link": "attributes.html#fls_muucfla1s8yn", "checksum": "f975580a1b931d94c926c545e6f59accc6089800804e55bf0d717b7fc1f63015"}, {"id": "fls_wbdtpntjr95w", "number": "13.2:33", "link": "attributes.html#fls_wbdtpntjr95w", "checksum": "561ac627fa6ab3ebf3be1dfa0723e9ea019b53340fbf84caaf46c3b23415887a"}, {"id": "fls_lglwcbsvi9yj", "number": "13.2:34", "link": "attributes.html#fls_lglwcbsvi9yj", "checksum": "f1727bb25344abffe152fe96b9ae047c50c7467805d094633f7c5ba7a263e76a"}, {"id": "fls_1gyg8hfb13n7", "number": "13.2:35", "link": "attributes.html#fls_1gyg8hfb13n7", "checksum": "f207e9ce744c5b946fc10ed77f0e4d48c9805dbebca1dbdb5557c6a076c1e78f"}, {"id": "fls_6005g57evfbp", "number": "13.2:36", "link": "attributes.html#fls_6005g57evfbp", "checksum": "dfd603b48e4714c2db10e165507f36aabf589e751ffecb158b59124480fe5b80"}, {"id": "fls_3y4o8kq58dt8", "number": "13.2:37", "link": "attributes.html#fls_3y4o8kq58dt8", "checksum": "9d7b1a8681c416a8fb1ffb7f988ebc46ebe4d70caee8109ff9f24e727f1f94fa"}, {"id": "fls_vsix3pqf519x", "number": "13.2:38", "link": "attributes.html#fls_vsix3pqf519x", "checksum": "469d4af2bf4bb8bf7d70abbc6b17c1c1bb6fad4e1fefe9cabd15d3451fcdc72e"}, {"id": "fls_c8uqw8p0qrh5", "number": "13.2:39", "link": "attributes.html#fls_c8uqw8p0qrh5", "checksum": "83ee9ec2496eca5f9f1bf7225a184b339394c8fcd2aa146177bb9bffc0eac79a"}, {"id": "fls_b3jobjxmqppy", "number": "13.2:40", "link": "attributes.html#fls_b3jobjxmqppy", "checksum": "953d885e7fb1e0ea03c0ade5eaa5934bf60dd032fd3261d585adf05d7da0b2e8"}, {"id": "fls_xyhoxm30i7wn", "number": "13.2:41", "link": "attributes.html#fls_xyhoxm30i7wn", "checksum": "276f7f393035ddb571a6f1e00ad388e9854d9e0dcd79acd44e10b7e2f2939fcc"}, {"id": "fls_nowfw1ffhupd", "number": "13.2:42", "link": "attributes.html#fls_nowfw1ffhupd", "checksum": "b5faaae83480acf33dea941d05390fe8ad7ccec79bfab2b30e87b0b938047593"}, {"id": "fls_5i27houut1mu", "number": "13.2:43", "link": "attributes.html#fls_5i27houut1mu", "checksum": "5ce7389b0120f2188d0456318c21e6e97516400b08b9931e9fc08d0e36c18a35"}, {"id": "fls_1v9p4vr1nszn", "number": "13.2:44", "link": "attributes.html#fls_1v9p4vr1nszn", "checksum": "ef068eea3b4195d63c4faeaf8ddec06130b9c97886f65d6a735641fdfa0bbe99"}, {"id": "fls_jvkgtnulrqgh", "number": "13.2:45", "link": "attributes.html#fls_jvkgtnulrqgh", "checksum": "85810ed8c5e753c8587f859f84c0c189be76078846edaa0d4b9844829fc5646f"}, {"id": "fls_k9p2xrs3dotn", "number": "13.2:46", "link": "attributes.html#fls_k9p2xrs3dotn", "checksum": "634ed90b7e9a1e93528b551b7e87ccc2f19cabaabd8cfe119731630c1555b2f8"}, {"id": "fls_73n30xdcx8e", "number": "13.2:47", "link": "attributes.html#fls_73n30xdcx8e", "checksum": "cd700e1e3816ad09e427ed80ad2362eeff80ffa5182360299496b6583c87ec3e"}, {"id": "fls_e7zusnfka5dt", "number": "13.2:48", "link": "attributes.html#fls_e7zusnfka5dt", "checksum": "415ad2d08817bd284d6e72dfa33b0e8321eb4afb36b1cad3da54238b9df07fd6"}, {"id": "fls_85ul6x76ew9", "number": "13.2:49", "link": "attributes.html#fls_85ul6x76ew9", "checksum": "b241235f00eb9bda3db61fcee7dba7a5a395a008dda75dba1c18489f5ec52c23"}, {"id": "fls_xkhm1sht2ju5", "number": "13.2:50", "link": "attributes.html#fls_xkhm1sht2ju5", "checksum": "ad228252c455413a9d11054129ea0a307eb4301392fb4dc7aaaba0db8b102e6c"}, {"id": "fls_w9za4moh6gb3", "number": "13.2:51", "link": "attributes.html#fls_w9za4moh6gb3", "checksum": "3a524553119d48abe6bc7fdc94871d5862f0815aab4e5cfb1f63f69d71656f2b"}, {"id": "fls_3vubhygy9jje", "number": "13.2:52", "link": "attributes.html#fls_3vubhygy9jje", "checksum": "8aafb6d088ea34e1340f6dc625d312ae87a35784cb19b992667687abc8f9bb36"}, {"id": "fls_mhaplbf40j02", "number": "13.2:53", "link": "attributes.html#fls_mhaplbf40j02", "checksum": "90292e11d3564cdfea3b3a715f63a2a2bc7ff5c0e0a7bf7394d45a73612e1542"}, {"id": "fls_23huzf3c4arx", "number": "13.2:54", "link": "attributes.html#fls_23huzf3c4arx", "checksum": "044666250ed6ab719cc195deadec75751cf88ccd03d5d74f0424888448852461"}, {"id": "fls_i63y9xnnwq2z", "number": "13.2:55", "link": "attributes.html#fls_i63y9xnnwq2z", "checksum": "5b250c789906dbcf10378e94398f0b4e5540359c213277369259c48af0bbe0f9"}, {"id": "fls_yic8ksed28no", "number": "13.2:56", "link": "attributes.html#fls_yic8ksed28no", "checksum": "546608d35bfe5a90d5a66a076a3d517f618f561c82800080bab893cd87c9f7aa"}, {"id": "fls_p1ugiol1e5v5", "number": "13.2:57", "link": "attributes.html#fls_p1ugiol1e5v5", "checksum": "bc97a9ab750dc2ab4e8945d338a63dc76c13eb9d172e00871b1bc6678c592cfc"}, {"id": "fls_7xh2iphiteam", "number": "13.2:58", "link": "attributes.html#fls_7xh2iphiteam", "checksum": "6212b84580c14ced11ff1299672bb121d44059cb744a474b7e412ee35d653f43"}], "informational": false}, {"id": "fls_h4k49eadninz", "number": "13.2.1", "title": "Code Generation Attributes", "link": "attributes.html#code-generation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_kpwbpp5hc00s", "number": "13.2.1.1", "title": "Attribute cold", "link": "attributes.html#attribute-cold", "paragraphs": [{"id": "fls_x860jl4103p", "number": "13.2.1.1:1", "link": "attributes.html#fls_x860jl4103p", "checksum": "fb40c1f17f95fed4bda4668940636f75c4436a94cdf00ee6fd2ae36e0ea1c564"}, {"id": "fls_8zdexi5lgm2f", "number": "13.2.1.1:2", "link": "attributes.html#fls_8zdexi5lgm2f", "checksum": "e8b558243f7bf0325a129db3b6a9dcfdeaf35a9b8aee0f97064da28323c33ce0"}], "informational": false}, {"id": "fls_ypio6boj3pwf", "number": "13.2.1.2", "title": "Attribute inline", "link": "attributes.html#attribute-inline", "paragraphs": [{"id": "fls_jwyhky49ssup", "number": "13.2.1.2:1", "link": "attributes.html#fls_jwyhky49ssup", "checksum": "8af34535fc44405dd0d1185fc8ff42acca2853c54da038fc47f8bf644aeedc58"}, {"id": "fls_s7bf7tf9206d", "number": "13.2.1.2:2", "link": "attributes.html#fls_s7bf7tf9206d", "checksum": "4d894bc4ab40b2e9fb23428a9ce2913d411c123546417eb804e57322674bae21"}, {"id": "fls_930o6urn669w", "number": "13.2.1.2:3", "link": "attributes.html#fls_930o6urn669w", "checksum": "132910b8fef15bd7f371019b12f4f3ff9e87a2bad1099553cefb639d39ab7d5c"}, {"id": "fls_z7ufiqqujgdh", "number": "13.2.1.2:4", "link": "attributes.html#fls_z7ufiqqujgdh", "checksum": "c0e37dc273ef977b6bdcb9424c48613b76cb248df209151bdc9e32a5e5e9d029"}, {"id": "fls_f0n4g5uky9tp", "number": "13.2.1.2:5", "link": "attributes.html#fls_f0n4g5uky9tp", "checksum": "02ef19bf80c5200669e96e008b98fccff3c5fa277c7fad57dece77bdf97528fc"}, {"id": "fls_r3p4din7rjz8", "number": "13.2.1.2:6", "link": "attributes.html#fls_r3p4din7rjz8", "checksum": "cd14e98a49d9891ed4fcd4b3b9a2704b3acc39acbfd6deb0698c5b2810227f7e"}], "informational": false}, {"id": "fls_zakwockktml8", "number": "13.2.1.3", "title": "Attribute no_builtins", "link": "attributes.html#attribute-no-builtins", "paragraphs": [{"id": "fls_x36c6j1ivbvp", "number": "13.2.1.3:1", "link": "attributes.html#fls_x36c6j1ivbvp", "checksum": "8009c0049e3490fddc7e24a87c11b90f80ecb8de0220062b76efe87d97c52f20"}, {"id": "fls_k2k10qtn6f0g", "number": "13.2.1.3:2", "link": "attributes.html#fls_k2k10qtn6f0g", "checksum": "7089a3f20c79b60dbcbc66b2e3df9d1c5911e691c738cd1846adf88d4ac1e68b"}], "informational": false}, {"id": "fls_spdmit5fy7el", "number": "13.2.1.4", "title": "Attribute target_feature", "link": "attributes.html#attribute-target-feature", "paragraphs": [{"id": "fls_3qj3jvmtxvx6", "number": "13.2.1.4:1", "link": "attributes.html#fls_3qj3jvmtxvx6", "checksum": "1df8df023327dd4f97448aabeb73c307d5da815e417c8cba242c9e9bfc721c1d"}, {"id": "fls_agpkz1v3c281", "number": "13.2.1.4:2", "link": "attributes.html#fls_agpkz1v3c281", "checksum": "585e4a1fa321aa3303ab0bd5552d8d1721f633efa71ec8860f55edcc75647378"}, {"id": "fls_91b7nd6qslsb", "number": "13.2.1.4:3", "link": "attributes.html#fls_91b7nd6qslsb", "checksum": "e472ceda7230cf454f09e04024a0eaaa04baecb00eb12585de90bdece33f7f1d"}, {"id": "fls_yz4itbk700ot", "number": "13.2.1.4:4", "link": "attributes.html#fls_yz4itbk700ot", "checksum": "f31211e5b9f382a935e4e483c3fc10fc958066dcb3b64be6772d797738339919"}, {"id": "fls_pdyotoq8uqi2", "number": "13.2.1.4:5", "link": "attributes.html#fls_pdyotoq8uqi2", "checksum": "094f219b2ede048c90c66692b41e7a30763694b917cfced20fa4eb76afc6a626"}, {"id": "fls_vdbjoy6gbk7l", "number": "13.2.1.4:6", "link": "attributes.html#fls_vdbjoy6gbk7l", "checksum": "78bb46c24f2ca946ed0b4e7c6089e40d13e6c39431bb0fee1bab3542dde16f26"}, {"id": "fls_k3szii6nviza", "number": "13.2.1.4:7", "link": "attributes.html#fls_k3szii6nviza", "checksum": "897555f2c7487adb369d557e88e95f68598fd643686dc9402f4f295226b210f6"}, {"id": "fls_xsdkkfgv0pz6", "number": "13.2.1.4:8", "link": "attributes.html#fls_xsdkkfgv0pz6", "checksum": "eb4568cb53c1a9e06aea725449fa9eba6f2a425e98354dca4df23d483faa90e2"}, {"id": "fls_eglaup5zyfsk", "number": "13.2.1.4:9", "link": "attributes.html#fls_eglaup5zyfsk", "checksum": "27fceb61f07a31faf22bccecf31e526e2d22bf0615fbe8998ffcd1dd528e8e35"}, {"id": "fls_tkayqh7li81o", "number": "13.2.1.4:10", "link": "attributes.html#fls_tkayqh7li81o", "checksum": "e37b94209979512d83141b81df8da7e950dc0f59ee4df88e7a1977cf6547eb6a"}, {"id": "fls_vv8o31s0zmli", "number": "13.2.1.4:11", "link": "attributes.html#fls_vv8o31s0zmli", "checksum": "f04d0e556354ad85a7cb772b90a5bea40dfc80d7258b591367ef1c4299bd26cd"}, {"id": "fls_g0762ekvl2ah", "number": "13.2.1.4:12", "link": "attributes.html#fls_g0762ekvl2ah", "checksum": "75c3e60c0e86babf3644778265ff04d82086fd20428ca94add2ab7fa29a4b786"}, {"id": "fls_406ltkru11tk", "number": "13.2.1.4:13", "link": "attributes.html#fls_406ltkru11tk", "checksum": "e9b710a4e7a5d951c56b3f75f26e35b7a826e3d5c1958e4e71d5502857541ad0"}, {"id": "fls_4mhyvwj8pbpk", "number": "13.2.1.4:14", "link": "attributes.html#fls_4mhyvwj8pbpk", "checksum": "4e93115858ebed6f679bcd9090c45327132a80d56ebcefa7ba556b066fc97d72"}, {"id": "fls_ijsmqk7pgyiz", "number": "13.2.1.4:15", "link": "attributes.html#fls_ijsmqk7pgyiz", "checksum": "5140f4b9a43b91808591e2b954a2980ff337e13a4e8335e3e29f7498a06a869e"}, {"id": "fls_a1jggfetycxh", "number": "13.2.1.4:16", "link": "attributes.html#fls_a1jggfetycxh", "checksum": "7858b9613091a34085b288d29faa10cc8eba087a29ddb9ec313ffbdd3f6db23e"}, {"id": "fls_rmbadmoeaoxu", "number": "13.2.1.4:17", "link": "attributes.html#fls_rmbadmoeaoxu", "checksum": "417c3d70bcfa0a289a99c07935492966631944ffed968fac67820222ee2f9f1d"}, {"id": "fls_f9ydn049isbv", "number": "13.2.1.4:18", "link": "attributes.html#fls_f9ydn049isbv", "checksum": "a692dae36ad20687143af0ddd8381c71260bb5e4917fbc7b203f47f6e384c986"}, {"id": "fls_7c31e21g6bdj", "number": "13.2.1.4:19", "link": "attributes.html#fls_7c31e21g6bdj", "checksum": "f975dc2d5c0c2c15b963eccd4795930fa5cce62aa848ff640e9de66a52ea3cbc"}, {"id": "fls_6d5a375j2775", "number": "13.2.1.4:20", "link": "attributes.html#fls_6d5a375j2775", "checksum": "4bcec9bb92108de19e67a173df0098642ddb36e508bfcd6556bd6ee10daced06"}, {"id": "fls_xthidh2nyrno", "number": "13.2.1.4:21", "link": "attributes.html#fls_xthidh2nyrno", "checksum": "2e1bf630eca35a69526f65ac5f8fbdfe0c2f92ca2b3ac6d6be31c9e1440e29a3"}, {"id": "fls_w02pk6kf9w9e", "number": "13.2.1.4:22", "link": "attributes.html#fls_w02pk6kf9w9e", "checksum": "cbb68dabefc941e4d38db9be75022e8aef69299cd2368f981991501d97245972"}, {"id": "fls_lzl1gpco3osx", "number": "13.2.1.4:23", "link": "attributes.html#fls_lzl1gpco3osx", "checksum": "2765819a612a9117bbe617d8b73b4ff6a353b2f5cd2953bc1c894701ba157e98"}, {"id": "fls_9x2on8w44k4f", "number": "13.2.1.4:24", "link": "attributes.html#fls_9x2on8w44k4f", "checksum": "9a1429077ce3fd1214a1e364203492d57772729632414f91b3c2cd2f3d0559ac"}, {"id": "fls_rilqwazchfpp", "number": "13.2.1.4:25", "link": "attributes.html#fls_rilqwazchfpp", "checksum": "dd2313cfedf44267dbb54d88f3314ca7c7076bfc167b691f549028e3e4965bef"}, {"id": "fls_f0of1395z9pn", "number": "13.2.1.4:26", "link": "attributes.html#fls_f0of1395z9pn", "checksum": "c66a6be45c57e16772d12a0c52d3d765424f9d564f839da0cb77fc8c01347d4f"}, {"id": "fls_v9gf6selc17l", "number": "13.2.1.4:27", "link": "attributes.html#fls_v9gf6selc17l", "checksum": "2cc4b06fbda49374ef17f4974acd16d167b72b9b46c9b13f70587ab9a098587c"}, {"id": "fls_jyb5s2r8w1po", "number": "13.2.1.4:28", "link": "attributes.html#fls_jyb5s2r8w1po", "checksum": "55fa6aaa332a37320f9c7223150099eba092430986498c5ae328de57fa2e9487"}, {"id": "fls_xx51fjkbgg5g", "number": "13.2.1.4:29", "link": "attributes.html#fls_xx51fjkbgg5g", "checksum": "6743b7e3fdc6f0ff88d22af6ed0826b488e6d15d91849cf2f44fe00b8824ed1c"}], "informational": false}, {"id": "fls_6qj249hphj1s", "number": "13.2.1.5", "title": "Attribute track_caller", "link": "attributes.html#attribute-track-caller", "paragraphs": [{"id": "fls_h8yepgchjxv9", "number": "13.2.1.5:1", "link": "attributes.html#fls_h8yepgchjxv9", "checksum": "e23f26c1bdaac35fb187af2c3437a156c142109266b6922552c87a35c4fd7652"}, {"id": "fls_w1pxtzp7acty", "number": "13.2.1.5:2", "link": "attributes.html#fls_w1pxtzp7acty", "checksum": "be22b61cc84fba1c898524be4f927f7ae8b8aec54323ad08f5b3a0d7ae1c6ff9"}, {"id": "fls_zch43jpetmdu", "number": "13.2.1.5:3", "link": "attributes.html#fls_zch43jpetmdu", "checksum": "778290a828a1c18436fe29f9d858726e4e341c74a14f532e55779389a4733012"}, {"id": "fls_y1e258p4rby5", "number": "13.2.1.5:4", "link": "attributes.html#fls_y1e258p4rby5", "checksum": "cf4ab277047420d2b26238c76cfc2a3cc9ba2c6e60092568995ceba4e201831f"}, {"id": "fls_vkz8t751gfhk", "number": "13.2.1.5:5", "link": "attributes.html#fls_vkz8t751gfhk", "checksum": "ef4fb5367f8b8eec661ad431d7645eeb45c5a5691ee03447d7b267f66d6b2bc7"}, {"id": "fls_ddg0u5lej74x", "number": "13.2.1.5:6", "link": "attributes.html#fls_ddg0u5lej74x", "checksum": "5b17e06e43d9f47282dbe761e0e463c0d2b276faa4045afc0ab58815012d19db"}], "informational": false}, {"id": "fls_cdx9zb1yxcc8", "number": "13.2.2", "title": "Conditional Compilation Attributes", "link": "attributes.html#conditional-compilation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_fymvsy6ig99a", "number": "13.2.2.1", "title": "Attribute cfg", "link": "attributes.html#attribute-cfg", "paragraphs": [{"id": "fls_xrjp7xw9jutz", "number": "13.2.2.1:1", "link": "attributes.html#fls_xrjp7xw9jutz", "checksum": "8ce58553238726c00673ba1eb2613f145c385fd18764cfb47b1674bfa60a342b"}, {"id": "fls_l96kyix5xsof", "number": "13.2.2.1:2", "link": "attributes.html#fls_l96kyix5xsof", "checksum": "58fc80fa15a48bf125434201acfd61890abb0876c32f33ee234150c5a2db53fa"}, {"id": "fls_y1muhnkcxk6t", "number": "13.2.2.1:3", "link": "attributes.html#fls_y1muhnkcxk6t", "checksum": "20bbdb81e00aa2ce6e15572b261930193367b58565a11d3b7df5fe4d2fb92058"}, {"id": "fls_tncxxsyutppf", "number": "13.2.2.1:4", "link": "attributes.html#fls_tncxxsyutppf", "checksum": "e3e52c127b3a45a28120d4a22599dc479401160fd2ab551667790d586a58ed83"}, {"id": "fls_rp73yee3afdi", "number": "13.2.2.1:5", "link": "attributes.html#fls_rp73yee3afdi", "checksum": "0a8af2d1ed68a8e58507a513800cba27fe171d005323ccf9b1dea50098d45eda"}, {"id": "fls_m0zxktz168e0", "number": "13.2.2.1:6", "link": "attributes.html#fls_m0zxktz168e0", "checksum": "b1317fa9240a0683317601af9dbd0d64b3bdfb9f8516093a3aa3febe38ef4940"}, {"id": "fls_xsxeod32ji8x", "number": "13.2.2.1:7", "link": "attributes.html#fls_xsxeod32ji8x", "checksum": "c678d8736b809e8b047bb8dec6b729baecd22ff0dc7cfca0cea327a1174294dc"}, {"id": "fls_tvsadfy9uibu", "number": "13.2.2.1:8", "link": "attributes.html#fls_tvsadfy9uibu", "checksum": "7b842e2904a1bd499fdf9166a26058c88d4357ca86b54fce379427f3db4f6c87"}, {"id": "fls_jbl9xyynjo0g", "number": "13.2.2.1:9", "link": "attributes.html#fls_jbl9xyynjo0g", "checksum": "fbaba2bbfc24b35f86a4f7dd04dbe8282ddf984c2d109a9ee52a777dc8b3360f"}], "informational": false}, {"id": "fls_dd9xh3wdjudo", "number": "13.2.2.2", "title": "Attribute cfg_attr", "link": "attributes.html#attribute-cfg-attr", "paragraphs": [{"id": "fls_r66jhict6rlq", "number": "13.2.2.2:1", "link": "attributes.html#fls_r66jhict6rlq", "checksum": "d4c02f4ddc98da8bafd4fc43fb7cb00dc77d84e6b42cf83332e1d8ab9e29250f"}, {"id": "fls_rzw12sagm585", "number": "13.2.2.2:2", "link": "attributes.html#fls_rzw12sagm585", "checksum": "58b7d08514f893172d59bfa69761494f4bb62b45412529d75cd3eb80fe2a6e9d"}], "informational": false}, {"id": "fls_wednba84zi3y", "number": "13.2.3", "title": "Derivation Attributes", "link": "attributes.html#derivation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_bqw87nz4qbrb", "number": "13.2.3.1", "title": "Attribute automatically_derived", "link": "attributes.html#attribute-automatically-derived", "paragraphs": [{"id": "fls_5u1e0lkt0ab1", "number": "13.2.3.1:1", "link": "attributes.html#fls_5u1e0lkt0ab1", "checksum": "921207c7548372ce92fdca679bc3476d41831899b57c4e34b13268b01997e0f8"}], "informational": false}, {"id": "fls_r6gj1p4gajnq", "number": "13.2.3.2", "title": "Attribute derive", "link": "attributes.html#attribute-derive", "paragraphs": [{"id": "fls_4btm6zwf445a", "number": "13.2.3.2:1", "link": "attributes.html#fls_4btm6zwf445a", "checksum": "a1c77a2b2980c21e6e863dd1b876f7c14683644e96cf49df977a847b4e9e5e1a"}, {"id": "fls_pjmbmj2b35y8", "number": "13.2.3.2:2", "link": "attributes.html#fls_pjmbmj2b35y8", "checksum": "0a92a3c710cbd1738e619ab4ed564919e5913e3252de308e5f6f347d1833cea7"}, {"id": "fls_xtty2ino4vwc", "number": "13.2.3.2:3", "link": "attributes.html#fls_xtty2ino4vwc", "checksum": "01d955a36e6ea356f588c104a043bbb024bd45ea952c638344667bf6abc1fc81"}], "informational": false}, {"id": "fls_t2590yyvclgb", "number": "13.2.4", "title": "Diagnostics Attributes", "link": "attributes.html#diagnostics-attributes", "paragraphs": [{"id": "fls_ghumzt9ybtit", "number": "13.2.4:1", "link": "attributes.html#fls_ghumzt9ybtit", "checksum": "3211f6c48f79ae56d33f1f9bacd442f463c800f82da1ca3bc76e3afbd75c27ea"}], "informational": true}, {"id": "fls_8wcliky2svcs", "number": "13.2.5", "title": "Documentation Attributes", "link": "attributes.html#documentation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_63v1fqedzwfd", "number": "13.2.5.1", "title": "Attribute doc", "link": "attributes.html#attribute-doc", "paragraphs": [{"id": "fls_1ee9qjcgbwme", "number": "13.2.5.1:1", "link": "attributes.html#fls_1ee9qjcgbwme", "checksum": "b5b9bec9d76d46cbea5f3747e5f7b0132aac36d1c007bca045c1a1e350d88cde"}], "informational": false}, {"id": "fls_pgp7ezcc9lh8", "number": "13.2.6", "title": "Foreign Function Interface Attributes", "link": "attributes.html#foreign-function-interface-attributes", "paragraphs": [], "informational": false}, {"id": "fls_sun645voqex6", "number": "13.2.6.1", "title": "Attribute crate_name", "link": "attributes.html#attribute-crate-name", "paragraphs": [{"id": "fls_tsdk8jyajcg", "number": "13.2.6.1:1", "link": "attributes.html#fls_tsdk8jyajcg", "checksum": "61437013bccd601dda4663fa8275e8def835508d51f858d4584acb2816792d24"}, {"id": "fls_6riphqysh0gd", "number": "13.2.6.1:2", "link": "attributes.html#fls_6riphqysh0gd", "checksum": "31e103c274c243fd0657f6c9fb22d4587184086c9c66befda6643f82b2435479"}], "informational": false}, {"id": "fls_ujig607lmwbm", "number": "13.2.6.2", "title": "Attribute crate_type", "link": "attributes.html#attribute-crate-type", "paragraphs": [{"id": "fls_2i2g55nqqpc1", "number": "13.2.6.2:1", "link": "attributes.html#fls_2i2g55nqqpc1", "checksum": "54779685564cfbdb9ff97ae91287f885632bf1e75e9e44af0e3115fe73cdb3e6"}, {"id": "fls_1zziddjuzjeq", "number": "13.2.6.2:2", "link": "attributes.html#fls_1zziddjuzjeq", "checksum": "05939963a9001f26e930c1bf9bad738b146dad4bd95c5cbee3e0ef2503896e7b"}], "informational": false}, {"id": "fls_olzilmy8n0nl", "number": "13.2.6.3", "title": "Attribute export_name", "link": "attributes.html#attribute-export-name", "paragraphs": [{"id": "fls_r3fwpuuaoeie", "number": "13.2.6.3:1", "link": "attributes.html#fls_r3fwpuuaoeie", "checksum": "fa8489539e2aa3b8aa9a16e4531a9c0f7e082581000b26430071b5fe8bddd791"}, {"id": "fls_spwr6gf7kpds", "number": "13.2.6.3:2", "link": "attributes.html#fls_spwr6gf7kpds", "checksum": "35ac008e660d6499f218d0c11b1c822a4fda466a0469f3424a0c9aa028f72ea6"}], "informational": false}, {"id": "fls_o0f9ae22ug1x", "number": "13.2.6.4", "title": "Attribute link", "link": "attributes.html#attribute-link", "paragraphs": [{"id": "fls_yslpkdngo8hj", "number": "13.2.6.4:1", "link": "attributes.html#fls_yslpkdngo8hj", "checksum": "8f57b8472dff4cd91f355578e5c3bfa9096c22950b9766df341e266371a1a946"}, {"id": "fls_6rohnk4swj6c", "number": "13.2.6.4:2", "link": "attributes.html#fls_6rohnk4swj6c", "checksum": "6eb5a07a373ecc60dd23324335a8b659caf2269885af5c3585f4df1c13ca727c"}, {"id": "fls_o83pf3bcrzma", "number": "13.2.6.4:3", "link": "attributes.html#fls_o83pf3bcrzma", "checksum": "d9db9f413583821ddb835f34a03fd02f2a1d38f6eab189bb99008475e2400f3f"}, {"id": "fls_5541q1qoxdpf", "number": "13.2.6.4:4", "link": "attributes.html#fls_5541q1qoxdpf", "checksum": "0353cd50793fff24e61d961587929ddeeb5a7f46853756fa4e2d70319d7500a6"}, {"id": "fls_wpqawdpevkj6", "number": "13.2.6.4:5", "link": "attributes.html#fls_wpqawdpevkj6", "checksum": "eef115065e6c96a05b7ae0eb410b3b05418ce07352bb23ed9baaf23d7f5d5450"}, {"id": "fls_hpl6poxgiaqv", "number": "13.2.6.4:6", "link": "attributes.html#fls_hpl6poxgiaqv", "checksum": "60ae8311dc7a096a8d78ddf2ae480d5cd77d966a20facb0ce94dcea8d1eab84e"}, {"id": "fls_h9dfs6kzmobp", "number": "13.2.6.4:7", "link": "attributes.html#fls_h9dfs6kzmobp", "checksum": "b0db32db9b79b0e6ad02182b8befad2a9aa177097a1fa014a59781f5686d36a2"}, {"id": "fls_3a3r4jf7hzqr", "number": "13.2.6.4:8", "link": "attributes.html#fls_3a3r4jf7hzqr", "checksum": "ae7e1e29c04ecbee336f1381e8308022f3ad0ccb61bd5c5c7c353b7eea560997"}, {"id": "fls_1tdheukgm6ai", "number": "13.2.6.4:9", "link": "attributes.html#fls_1tdheukgm6ai", "checksum": "4ea15c08520b2c2fb958beab6ad0fc324e6aa088b62d5fb1e6931d8d6507bc5d"}, {"id": "fls_3i9ijypnh8nx", "number": "13.2.6.4:10", "link": "attributes.html#fls_3i9ijypnh8nx", "checksum": "7fb19964f38021c6916eb50ab245d90c1f006905de59ccc42d0d0f3d1235641f"}, {"id": "fls_idjcqczfqknm", "number": "13.2.6.4:11", "link": "attributes.html#fls_idjcqczfqknm", "checksum": "e9be1b611b17fb0d613033d31855e2094fd26b9bbc43a9b80f8182da2e833906"}, {"id": "fls_rcerq1pfkpji", "number": "13.2.6.4:12", "link": "attributes.html#fls_rcerq1pfkpji", "checksum": "fdf51bc6996e603cffe22c0b534103b20e91952afdf7739053ad88ccbdc56f61"}], "informational": false}, {"id": "fls_p44fky7fifc", "number": "13.2.6.5", "title": "Attribute link_name", "link": "attributes.html#attribute-link-name", "paragraphs": [{"id": "fls_g09jhukl0ez2", "number": "13.2.6.5:1", "link": "attributes.html#fls_g09jhukl0ez2", "checksum": "6321fe23e29ea0ad41b3c85bedafbf9ef00aee8ccef4be33847faf98c00dcc83"}, {"id": "fls_d00wni4edi8f", "number": "13.2.6.5:2", "link": "attributes.html#fls_d00wni4edi8f", "checksum": "089ca2eda0df3b0c76c2d4a1e66e7b57615201c37cb7791d3217d9bf7b581da9"}, {"id": "fls_0athv8kfa5fo", "number": "13.2.6.5:3", "link": "attributes.html#fls_0athv8kfa5fo", "checksum": "0600f1f844b645dd649dcfdebecbdc3af837dcba7089013ae17dfc7ba6295fec"}], "informational": false}, {"id": "fls_hffpo88r61rh", "number": "13.2.6.6", "title": "Attribute link_section", "link": "attributes.html#attribute-link-section", "paragraphs": [{"id": "fls_5loqzajiz34m", "number": "13.2.6.6:1", "link": "attributes.html#fls_5loqzajiz34m", "checksum": "10a4631db6c550ee4410b3605bb85beb0c3c0dc21dfefb51ce2f0d1b3e42343b"}, {"id": "fls_cyxk12wuicml", "number": "13.2.6.6:2", "link": "attributes.html#fls_cyxk12wuicml", "checksum": "fdb84e96608c3986056b7d198e88ed046825e6c72eff37d9b7ad5d107635d528"}], "informational": false}, {"id": "fls_obik2w9gvhln", "number": "13.2.6.7", "title": "Attribute link_ordinal", "link": "attributes.html#attribute-link-ordinal", "paragraphs": [{"id": "fls_fuv29biqcaww", "number": "13.2.6.7:1", "link": "attributes.html#fls_fuv29biqcaww", "checksum": "b9f69058d6cf44ac40747cbd7dd38c8689c1de672c433b6fd76c37a59413c0a8"}, {"id": "fls_qh5sxg4znaxa", "number": "13.2.6.7:2", "link": "attributes.html#fls_qh5sxg4znaxa", "checksum": "bae500fd492b5390f081b17a3c19a753b385115b83d2678de450e7fc08802073"}, {"id": "fls_asnjjixwglki", "number": "13.2.6.7:3", "link": "attributes.html#fls_asnjjixwglki", "checksum": "1c20d78c53465204598d099ba8c270f12e905456c6b799086d88a295046e6b7f"}], "informational": false}, {"id": "fls_ch9nkxkloozv", "number": "13.2.6.8", "title": "Attribute no_link", "link": "attributes.html#attribute-no-link", "paragraphs": [{"id": "fls_ayhn6g6sgt3h", "number": "13.2.6.8:1", "link": "attributes.html#fls_ayhn6g6sgt3h", "checksum": "b264d167b04d1f62c99717023640f39c72ae2c165f8c8802648308cf461c78db"}, {"id": "fls_76ox8n3eef5", "number": "13.2.6.8:2", "link": "attributes.html#fls_76ox8n3eef5", "checksum": "aad978ad1b9b2134fb756fc3db820f6b58d2638aa0c07cf0f6910e996e04b5df"}], "informational": false}, {"id": "fls_fh27ljezn3qz", "number": "13.2.6.9", "title": "Attribute no_main", "link": "attributes.html#attribute-no-main", "paragraphs": [{"id": "fls_84a9k0fzmnfk", "number": "13.2.6.9:1", "link": "attributes.html#fls_84a9k0fzmnfk", "checksum": "515473b5a7edc71b0872a2f78ed4aac163ef1b1fd6716ca8b8a8a87717e85105"}, {"id": "fls_6qig3s3qpj0i", "number": "13.2.6.9:2", "link": "attributes.html#fls_6qig3s3qpj0i", "checksum": "02e72f828ebcd6f9f80b9df6af14c28f1e372a5ffb9167e596acda52024560c4"}], "informational": false}, {"id": "fls_mvd7nz8k3wcy", "number": "13.2.6.10", "title": "Attribute no_mangle", "link": "attributes.html#attribute-no-mangle", "paragraphs": [{"id": "fls_q5swm5meafmx", "number": "13.2.6.10:1", "link": "attributes.html#fls_q5swm5meafmx", "checksum": "d11ddb1c212025856ed6074fd11d79b465db9c57c2818f14597a4a2b51ef0028"}, {"id": "fls_esaew4fqk8mm", "number": "13.2.6.10:2", "link": "attributes.html#fls_esaew4fqk8mm", "checksum": "68ed1d8594d8c5b565c9c3ba1dad3e246f93c1b2b85a0620b07350282ecfb68d"}, {"id": "fls_lvnclpxbye9u", "number": "13.2.6.10:3", "link": "attributes.html#fls_lvnclpxbye9u", "checksum": "9865aff343470dc6f503617f53b6b0518ff23e429de527be62858ede954a50ad"}, {"id": "fls_vkusiswpmll7", "number": "13.2.6.10:4", "link": "attributes.html#fls_vkusiswpmll7", "checksum": "41b882e78b95a2fd3d2d109426bb31a61f34606a58d041b2592a662c22c5305b"}, {"id": "fls_i029rvr5bx5p", "number": "13.2.6.10:5", "link": "attributes.html#fls_i029rvr5bx5p", "checksum": "7a8578b15d438d33bfe5ea2e9b8441da5cd13f514c196d3711fda2f876d4e701"}], "informational": false}, {"id": "fls_aibb2quva4mn", "number": "13.2.6.11", "title": "Attribute repr", "link": "attributes.html#attribute-repr", "paragraphs": [{"id": "fls_vetjq9sw84qc", "number": "13.2.6.11:1", "link": "attributes.html#fls_vetjq9sw84qc", "checksum": "10eda6760b60f8b3456de8229a6557a58fb131d2fbbdb50e40f210219814c453"}, {"id": "fls_is2esjz1sy36", "number": "13.2.6.11:2", "link": "attributes.html#fls_is2esjz1sy36", "checksum": "0a18a601c320e54cccbb64a16e0ff23f67f5a8c9ee5e3fced2951001ef7cfd88"}], "informational": false}, {"id": "fls_7skf24auayqy", "number": "13.2.6.12", "title": "Attribute used", "link": "attributes.html#attribute-used", "paragraphs": [{"id": "fls_s4ii078wgpk", "number": "13.2.6.12:1", "link": "attributes.html#fls_s4ii078wgpk", "checksum": "15b90a46b8d8e960e0c5c083b1de7c180ee05c88e6844587b34798d179ad1ee6"}, {"id": "fls_k293nzcffks4", "number": "13.2.6.12:2", "link": "attributes.html#fls_k293nzcffks4", "checksum": "34849743163e54f2380ebe33f0c44562d6903c45fbcb2d17d9b42cde2c5d27f4"}], "informational": false}, {"id": "fls_cjq792yj6vft", "number": "13.2.7", "title": "Limits Attributes", "link": "attributes.html#limits-attributes", "paragraphs": [], "informational": false}, {"id": "fls_u2hzlzpzh7yy", "number": "13.2.7.1", "title": "Attribute recursion_limit", "link": "attributes.html#attribute-recursion-limit", "paragraphs": [{"id": "fls_o55cxc67sya7", "number": "13.2.7.1:1", "link": "attributes.html#fls_o55cxc67sya7", "checksum": "e029467a0536bae96ae25a73cd801fbfc9c8874c35c9cef6110fda5cb0ae9916"}, {"id": "fls_o9p8fa8zhe15", "number": "13.2.7.1:2", "link": "attributes.html#fls_o9p8fa8zhe15", "checksum": "181e8dbd1bc511f8b6a2fd59595070b2e85422b0c0b2fa446b31cf0408650ba2"}], "informational": false}, {"id": "fls_tdjjuwbr7mkg", "number": "13.2.7.2", "title": "Attribute type_length_limit", "link": "attributes.html#attribute-type-length-limit", "paragraphs": [{"id": "fls_dfnkzj8ob3uq", "number": "13.2.7.2:1", "link": "attributes.html#fls_dfnkzj8ob3uq", "checksum": "4a50bf4d79c29ee4da73fa4b82e49dbde7e5bb057e6709e84b888a7458ea5356"}, {"id": "fls_61vt1r8g51nh", "number": "13.2.7.2:2", "link": "attributes.html#fls_61vt1r8g51nh", "checksum": "c1cc259e5bd84ef7201ecf3eea15ae58c6db27ab49f9b20cca614c7397dc0cd0"}], "informational": false}, {"id": "fls_2084b06dr0wz", "number": "13.2.8", "title": "Macros Attributes", "link": "attributes.html#macros-attributes", "paragraphs": [], "informational": false}, {"id": "fls_e0a96eb6ux3y", "number": "13.2.8.1", "title": "Attribute macro_export", "link": "attributes.html#attribute-macro-export", "paragraphs": [{"id": "fls_3ma7zkk6john", "number": "13.2.8.1:1", "link": "attributes.html#fls_3ma7zkk6john", "checksum": "b7f82a1f9a690d7f22754bcc39c0c5a7aa96121a1dd60e82b27d66a66723bc28"}, {"id": "fls_h26iw5wh4lla", "number": "13.2.8.1:2", "link": "attributes.html#fls_h26iw5wh4lla", "checksum": "482470d45ab2936cb24974dba4d6dd68a83506c1c8d812b93b1125611ef28893"}], "informational": false}, {"id": "fls_qxjy0f758x5s", "number": "13.2.8.2", "title": "Attribute macro_use", "link": "attributes.html#attribute-macro-use", "paragraphs": [{"id": "fls_uua0nthq9id", "number": "13.2.8.2:1", "link": "attributes.html#fls_uua0nthq9id", "checksum": "cb9be301d970ad119fddcd5b1aed8838b378d008a99aee3b37680273ef7c2735"}, {"id": "fls_oq4kyo5z5tj5", "number": "13.2.8.2:2", "link": "attributes.html#fls_oq4kyo5z5tj5", "checksum": "c57f6b3b535491797fe56ebb3d700049dd61c9daed4faeabf4b81ff930713d72"}, {"id": "fls_skexvtpbjknn", "number": "13.2.8.2:3", "link": "attributes.html#fls_skexvtpbjknn", "checksum": "0f7a33e20540faa9a9f1f692378ac792ba6bdad3b1cae65e1aa6f5f1d46f15ad"}, {"id": "fls_v03924dr0u0z", "number": "13.2.8.2:4", "link": "attributes.html#fls_v03924dr0u0z", "checksum": "1f21807e410d91d0bdf2a148125d253f2e11d2ef02a10360f295161deb2db79d"}, {"id": "fls_eha2hoey857x", "number": "13.2.8.2:5", "link": "attributes.html#fls_eha2hoey857x", "checksum": "d3ba7cfda60161cb47300e194e3d076342330aae22d93b71577c8de8eaa19e68"}, {"id": "fls_p6jlgmn2sg7j", "number": "13.2.8.2:6", "link": "attributes.html#fls_p6jlgmn2sg7j", "checksum": "15633d7af605c9b73e99840c7e31720cc2a83e5731086fef2f9861de505c03ce"}], "informational": false}, {"id": "fls_qkmkev85o5jf", "number": "13.2.8.3", "title": "Attribute proc_macro", "link": "attributes.html#attribute-proc-macro", "paragraphs": [{"id": "fls_u48dtmh97g", "number": "13.2.8.3:1", "link": "attributes.html#fls_u48dtmh97g", "checksum": "a7056881313a129fd3ec31f81d6d3bb01a2c9d5f56b3d256ff553f5d47df7eda"}, {"id": "fls_t4ez0zg1m569", "number": "13.2.8.3:2", "link": "attributes.html#fls_t4ez0zg1m569", "checksum": "c2045a082f6a84673475a58ccde2204fadd47f7c6e23407bfaed9319e1242fdd"}], "informational": false}, {"id": "fls_ejhlylrcajo", "number": "13.2.8.4", "title": "Attribute proc_macro_attribute", "link": "attributes.html#attribute-proc-macro-attribute", "paragraphs": [{"id": "fls_huznzmkuhdky", "number": "13.2.8.4:1", "link": "attributes.html#fls_huznzmkuhdky", "checksum": "d914e82b19183ec81ba7ca878ce84320d00af280cfaeebaf06a1bce3ce91dc34"}, {"id": "fls_gc3ly8fsodf1", "number": "13.2.8.4:2", "link": "attributes.html#fls_gc3ly8fsodf1", "checksum": "51be5aebe1c07fea1dd288f810fd58b529feabbb2db4633c447eac8036526b22"}], "informational": false}, {"id": "fls_q6qecp6e413", "number": "13.2.8.5", "title": "Attribute proc_macro_derive", "link": "attributes.html#attribute-proc-macro-derive", "paragraphs": [{"id": "fls_l82yswg0k3px", "number": "13.2.8.5:1", "link": "attributes.html#fls_l82yswg0k3px", "checksum": "ccd312dde256071afed24a8368cb4561a8238f97767345ad8286d082eb213a6e"}, {"id": "fls_ir9i4i2x5gyx", "number": "13.2.8.5:2", "link": "attributes.html#fls_ir9i4i2x5gyx", "checksum": "c57f5a4e85fdec7a28646b6dac958146ae5ffacab2268b24082814db828cc895"}, {"id": "fls_nydvxyb43th6", "number": "13.2.8.5:3", "link": "attributes.html#fls_nydvxyb43th6", "checksum": "f06497bca4b72dd176f21ed2508cb69fa3833ef6cbd8a4b22af928fc995b81b8"}], "informational": false}, {"id": "fls_7bb5ua4g06k8", "number": "13.2.9", "title": "Modules Attributes", "link": "attributes.html#modules-attributes", "paragraphs": [], "informational": false}, {"id": "fls_1zbaajz5prpn", "number": "13.2.9.1", "title": "Attribute path", "link": "attributes.html#attribute-path", "paragraphs": [{"id": "fls_lht4pcezmbxw", "number": "13.2.9.1:1", "link": "attributes.html#fls_lht4pcezmbxw", "checksum": "82da18a25355abd0b9d6d12edfe37ae45678bc9c547052772f63a9a356614526"}, {"id": "fls_qb6anohvc03k", "number": "13.2.9.1:2", "link": "attributes.html#fls_qb6anohvc03k", "checksum": "1779cf2215b4d1593fa40611459d55cb2246586eee4503f9d2e823cc1871c703"}, {"id": "fls_18tcecx4p2wp", "number": "13.2.9.1:3", "link": "attributes.html#fls_18tcecx4p2wp", "checksum": "074e1f0751b8cd12b037a8b551dc3d753dae8a3d8c8238db1bd5f168eab83a8f"}], "informational": false}, {"id": "fls_go457hpaf7ov", "number": "13.2.10", "title": "Prelude Attributes", "link": "attributes.html#prelude-attributes", "paragraphs": [], "informational": false}, {"id": "fls_iikmhqsp1r5a", "number": "13.2.10.1", "title": "Attribute no_implicit_prelude", "link": "attributes.html#attribute-no-implicit-prelude", "paragraphs": [{"id": "fls_tki5k5uo74gw", "number": "13.2.10.1:1", "link": "attributes.html#fls_tki5k5uo74gw", "checksum": "78b6ef76a225f8a6314dbb484e5f6c33a4323ad9202816ead2f71474e4fcdc82"}, {"id": "fls_cmrqxc5oax4r", "number": "13.2.10.1:2", "link": "attributes.html#fls_cmrqxc5oax4r", "checksum": "81930ef591f96d6b1e90e5ad685dadeadd18244ffd6bf2b93e1e564d00df7002"}, {"id": "fls_c7v2hbdb7g2d", "number": "13.2.10.1:3", "link": "attributes.html#fls_c7v2hbdb7g2d", "checksum": "63933d48ff890b9977fb1e7739ec4a0c3fce66da852cfc19921e9fef4c0c30c6"}], "informational": false}, {"id": "fls_9xnaxd7qbakp", "number": "13.2.10.2", "title": "Attribute no_std", "link": "attributes.html#attribute-no-std", "paragraphs": [{"id": "fls_qnxihxsvkyf6", "number": "13.2.10.2:1", "link": "attributes.html#fls_qnxihxsvkyf6", "checksum": "bf65af2170c2fce6c798624dc20ef98cdd4c56ba8a6d771db6d63c5b33b9fe50"}, {"id": "fls_kxav9vw59ts4", "number": "13.2.10.2:2", "link": "attributes.html#fls_kxav9vw59ts4", "checksum": "812969d17f6cf1c8f09c3aa7e496056b918a7936c5656724b5023957f1a6480d"}, {"id": "fls_ve1shwjq09pl", "number": "13.2.10.2:3", "link": "attributes.html#fls_ve1shwjq09pl", "checksum": "c0823a0a3da1888952864c8a1e51dcb076f7acb24133027a4c96805704a36b87"}, {"id": "fls_wgwsn7laoju7", "number": "13.2.10.2:4", "link": "attributes.html#fls_wgwsn7laoju7", "checksum": "be41407d903f76e4c4f3bb28728743dc02d28c58b2abb01664514d25f6707420"}, {"id": "fls_lxkd6hdboav4", "number": "13.2.10.2:5", "link": "attributes.html#fls_lxkd6hdboav4", "checksum": "55f1527bb22419e4a271f37b4ddc4109e3478e34cbcaf56381afe6e82f4ff76a"}], "informational": false}, {"id": "fls_nbbvukrdngev", "number": "13.2.11", "title": "Runtime Attributes", "link": "attributes.html#runtime-attributes", "paragraphs": [], "informational": false}, {"id": "fls_fs0lcfllamj", "number": "13.2.11.1", "title": "Attribute global_allocator", "link": "attributes.html#attribute-global-allocator", "paragraphs": [{"id": "fls_5b8aewlgeon8", "number": "13.2.11.1:1", "link": "attributes.html#fls_5b8aewlgeon8", "checksum": "b627ddaa5ef649b306598dd5f6297c67a76f75ec92d0b5746f31fa0163690273"}, {"id": "fls_homoidh8mu1r", "number": "13.2.11.1:2", "link": "attributes.html#fls_homoidh8mu1r", "checksum": "da27332328b097f036a002143a0c62df334d3fafe943281b9e5ac3f53256ac87"}], "informational": false}, {"id": "fls_ls5eryuoxlp9", "number": "13.2.11.2", "title": "Attribute panic_handler", "link": "attributes.html#attribute-panic-handler", "paragraphs": [{"id": "fls_ryz8qy1wdnma", "number": "13.2.11.2:1", "link": "attributes.html#fls_ryz8qy1wdnma", "checksum": "811d25ac05c366571fee950dbae9130bfedbc07a6e6b74ecfd339fc993199f16"}, {"id": "fls_ncyod5gegmql", "number": "13.2.11.2:2", "link": "attributes.html#fls_ncyod5gegmql", "checksum": "19a78bf1c35131ec0625e919fd7f92ef2acc5b5986bdae84101d8449b0bf671a"}, {"id": "fls_jzihzpkjqvm8", "number": "13.2.11.2:3", "link": "attributes.html#fls_jzihzpkjqvm8", "checksum": "7be989fe417f083b8e5dd74846cda7e32d86a89db6194539d9733eb40ba837bc"}, {"id": "fls_qxii07xwruot", "number": "13.2.11.2:4", "link": "attributes.html#fls_qxii07xwruot", "checksum": "12c2336bf9e9b05b5fe0f3bab73c7b1cdb604d082afa1e7984eb3b79f71b3642"}, {"id": "fls_zejvn4mmfsct", "number": "13.2.11.2:5", "link": "attributes.html#fls_zejvn4mmfsct", "checksum": "a88dbeff7797209a81595c30a58d7f150b9104f217bcef43b2ee461555a5a0ce"}, {"id": "fls_iwpw0qfe5trp", "number": "13.2.11.2:6", "link": "attributes.html#fls_iwpw0qfe5trp", "checksum": "051e4b8ff27f299cff0e443ea677b2f935831974162b34dba8fd7b30feb610a7"}, {"id": "fls_wirxqd7uv4m0", "number": "13.2.11.2:7", "link": "attributes.html#fls_wirxqd7uv4m0", "checksum": "c82af1ca7021a4e17089b436f3d65889b6c5d9a6e7600fae295b40ff0f0f6ec6"}, {"id": "fls_5cgtqtut0i5v", "number": "13.2.11.2:8", "link": "attributes.html#fls_5cgtqtut0i5v", "checksum": "8e4d1d0997dd94de884dbc95268544335e331949cd1d45db0be53a80200a5714"}, {"id": "fls_8gqun8lma9wz", "number": "13.2.11.2:9", "link": "attributes.html#fls_8gqun8lma9wz", "checksum": "7b2ec9db6d8b1c8ace22368047c47d159462712924d519696cffb84e602fcbfc"}, {"id": "fls_ka66jcu8gir7", "number": "13.2.11.2:10", "link": "attributes.html#fls_ka66jcu8gir7", "checksum": "f8d09837569e3e2a9dace1f81b8514e10951252bd8ca780e1a7de6210fc4abe5"}], "informational": false}, {"id": "fls_1l4mnlfk5rr2", "number": "13.2.11.3", "title": "Attribute windows_subsystem", "link": "attributes.html#attribute-windows-subsystem", "paragraphs": [{"id": "fls_7mzjahvdzpy5", "number": "13.2.11.3:1", "link": "attributes.html#fls_7mzjahvdzpy5", "checksum": "7102958597ca2f19205e0e9f7c950d9b597adf5a8c1e6fe96e7661413a02f860"}, {"id": "fls_t3c0t3lcnebk", "number": "13.2.11.3:2", "link": "attributes.html#fls_t3c0t3lcnebk", "checksum": "b8684eebecaefb67c2e17229476d5544ed6ff0e7e8b51d4b8cab06a169d1541c"}, {"id": "fls_go7pfkgpjk2t", "number": "13.2.11.3:3", "link": "attributes.html#fls_go7pfkgpjk2t", "checksum": "d52e19f42f5927bd34a651b16184a11e9fce5ae8de504bde89af1da5a51e0c59"}], "informational": false}, {"id": "fls_riyi0gy48fxw", "number": "13.2.12", "title": "Testing Attributes", "link": "attributes.html#testing-attributes", "paragraphs": [], "informational": false}, {"id": "fls_x849a4u7h82j", "number": "13.2.12.1", "title": "Attribute ignore", "link": "attributes.html#attribute-ignore", "paragraphs": [{"id": "fls_qmdylxse9yhu", "number": "13.2.12.1:1", "link": "attributes.html#fls_qmdylxse9yhu", "checksum": "233bac50acbcf5ce70191e350e3e9d720fd83236b2a754a5846e557024e5fb50"}, {"id": "fls_9m8e59fc1tyh", "number": "13.2.12.1:2", "link": "attributes.html#fls_9m8e59fc1tyh", "checksum": "001e5f299105a44ca3acba687e810549c184a7062f15f48c4c2907feedcd00db"}], "informational": false}, {"id": "fls_aes2d94g12b9", "number": "13.2.12.2", "title": "Attribute should_panic", "link": "attributes.html#attribute-should-panic", "paragraphs": [{"id": "fls_w7dq8gnzel36", "number": "13.2.12.2:1", "link": "attributes.html#fls_w7dq8gnzel36", "checksum": "bc29bb034a6a845f15d32f52bc63929f460f59dfafc941ba3d3ac7f591786021"}, {"id": "fls_bm5x846zfnb8", "number": "13.2.12.2:2", "link": "attributes.html#fls_bm5x846zfnb8", "checksum": "0f5bcffb6ab2fd79ab1a1578fd84c818378597bd4bf7bc940dba19ff7cc9de02"}, {"id": "fls_bcoq5aus8nkr", "number": "13.2.12.2:3", "link": "attributes.html#fls_bcoq5aus8nkr", "checksum": "4b053fefee6cf33683101e489e70e2569e4deb8d7aa26b06a840e03085ddb586"}], "informational": false}, {"id": "fls_dv2j1fvvnk1t", "number": "13.2.12.3", "title": "Attribute test", "link": "attributes.html#attribute-test", "paragraphs": [{"id": "fls_o2elhg5w1rj9", "number": "13.2.12.3:1", "link": "attributes.html#fls_o2elhg5w1rj9", "checksum": "41f8276015dc58f76e82db668219043600611837b52a93fd9dbb18436201041a"}, {"id": "fls_ert22u8rvkxt", "number": "13.2.12.3:2", "link": "attributes.html#fls_ert22u8rvkxt", "checksum": "de64cdcc854596c8cf8a9e3bb1b6312bf4faac5928890297f69918e148a51d43"}, {"id": "fls_c9ckjrq6emdj", "number": "13.2.12.3:3", "link": "attributes.html#fls_c9ckjrq6emdj", "checksum": "580975987fb8829aa62f5481e0c98f2f9a739c3d0a5cc0719d34be6815601aa3"}, {"id": "fls_4uykzqpq6svl", "number": "13.2.12.3:4", "link": "attributes.html#fls_4uykzqpq6svl", "checksum": "e7ee08c2d3407ba055bfeec7a59f1c8c56257bf55ff14412206210e1dbbe08a2"}, {"id": "fls_aqzd30s267pt", "number": "13.2.12.3:5", "link": "attributes.html#fls_aqzd30s267pt", "checksum": "2c4a77cf5f2b9daf7f0535ffb85ee39298f774999cb40b3f78672fb5a2bd7a24"}, {"id": "fls_n3hjhh3d7tyx", "number": "13.2.12.3:6", "link": "attributes.html#fls_n3hjhh3d7tyx", "checksum": "f1ebf979a3ed2dde03dae2e93cc771988c8f5fa634afce4ee6b664c193adc1b4"}, {"id": "fls_ze6cs75y9aft", "number": "13.2.12.3:7", "link": "attributes.html#fls_ze6cs75y9aft", "checksum": "c19b0501aa117ddef6f66c5dc6c307c9c23cdfb62ecb953be67f2cf7448cda23"}, {"id": "fls_pcs0prrh23y3", "number": "13.2.12.3:8", "link": "attributes.html#fls_pcs0prrh23y3", "checksum": "6bfc6057de86432e2367e8c9682ff52750a502d7bd68f37c400345417f514d4b"}, {"id": "fls_niky8lbkvej9", "number": "13.2.12.3:9", "link": "attributes.html#fls_niky8lbkvej9", "checksum": "f1e97f65682f7f35e2f314273d3b307d456c7be2cce75abddd4bbacff9429ddc"}, {"id": "fls_qfuntdm2g184", "number": "13.2.12.3:10", "link": "attributes.html#fls_qfuntdm2g184", "checksum": "2799842d7aed69f223fca391a95a67b96cb9d904f240678550cd095843a9163c"}], "informational": false}, {"id": "fls_r3zwgf9sg1xp", "number": "13.2.13", "title": "Type Attributes", "link": "attributes.html#type-attributes", "paragraphs": [], "informational": false}, {"id": "fls_9tmvuqrmk3ug", "number": "13.2.13.1", "title": "Attribute non_exhaustive", "link": "attributes.html#attribute-non-exhaustive", "paragraphs": [{"id": "fls_szvrd79cgzsg", "number": "13.2.13.1:1", "link": "attributes.html#fls_szvrd79cgzsg", "checksum": "db123f9e8d90ea8a65b70081bc86bdbeb74728f7fbb3abf94a19106591eacfd5"}, {"id": "fls_1of56vl2ewq0", "number": "13.2.13.1:2", "link": "attributes.html#fls_1of56vl2ewq0", "checksum": "d921bf1556555621ac4497f95036f2b36a900b3ca72209b3c8257b411f3434aa"}, {"id": "fls_hkyzdmmdyoin", "number": "13.2.13.1:3", "link": "attributes.html#fls_hkyzdmmdyoin", "checksum": "2b72505af01da754c8938fcc663e58c83b4bbcaabd1dc98ae2ab5e8da65fd8a2"}, {"id": "fls_7b0fvwrmz0mh", "number": "13.2.13.1:4", "link": "attributes.html#fls_7b0fvwrmz0mh", "checksum": "a408a04e473714cf160f9d5888fb173e91412fe640b793002c6cc41c7426ec78"}, {"id": "fls_oqfrg9tqgaj8", "number": "13.2.13.1:5", "link": "attributes.html#fls_oqfrg9tqgaj8", "checksum": "6cec52bab3d21f307cca338424ee3bb3802f2d59a4e3b224c7f00f72640ffd19"}, {"id": "fls_aql3c89840ix", "number": "13.2.13.1:6", "link": "attributes.html#fls_aql3c89840ix", "checksum": "51678d511ec9b523bd052b51dce30e863238b3e09f7cf8640da14f382d4df5be"}, {"id": "fls_cez7yxfc376c", "number": "13.2.13.1:7", "link": "attributes.html#fls_cez7yxfc376c", "checksum": "91faee15159779bdfb246c3082526e3f01c0b8b71644bffad0bc701a7a23e5a0"}], "informational": false}], "informational": false}, {"title": "Exceptions and Errors", "link": "exceptions-and-errors.html", "sections": [{"id": "fls_dzq9cdz4ibsz", "number": "16", "title": "Exceptions and Errors", "link": "exceptions-and-errors.html", "paragraphs": [{"id": "fls_vsk4vhnuiyyz", "number": "16:1", "link": "exceptions-and-errors.html#fls_vsk4vhnuiyyz", "checksum": "d0dadbee084de3030e81aaf2325ea8878e99a72e77800a2662c1fe290bbc9d62"}, {"id": "fls_ebangxc36t74", "number": "16:2", "link": "exceptions-and-errors.html#fls_ebangxc36t74", "checksum": "f2e56f24b5565d180411f7693f63a3b70001ae9c0e4e605e1bd11ea5c207f968"}, {"id": "fls_ckeitwiv326r", "number": "16:3", "link": "exceptions-and-errors.html#fls_ckeitwiv326r", "checksum": "1fd314e20308ba8d525a721f6a9bf050a337f71186510503044dc84efe09173e"}, {"id": "fls_eg0orgibg98m", "number": "16:4", "link": "exceptions-and-errors.html#fls_eg0orgibg98m", "checksum": "b346390e8119d57549b96dcb345a29235552cdc69a61d7d2c8c883cf6d34ae61"}, {"id": "fls_ko1x0gp9e7y3", "number": "16:5", "link": "exceptions-and-errors.html#fls_ko1x0gp9e7y3", "checksum": "83c2582339039d863409873a919aa3040ed86f444b3a5f5729e9fe0d65313c5e"}, {"id": "fls_gwu4cn4ziabe", "number": "16:6", "link": "exceptions-and-errors.html#fls_gwu4cn4ziabe", "checksum": "475f3e3082b2760a32589c7540d5123f0459abea622ba1ae15aa53068c337d7b"}], "informational": false}, {"id": "fls_k02nt1m5fq1z", "number": "16.1", "title": "Panic", "link": "exceptions-and-errors.html#panic", "paragraphs": [{"id": "fls_a554v4n0khye", "number": "16.1:1", "link": "exceptions-and-errors.html#fls_a554v4n0khye", "checksum": "f4d500cf3ddd573cf21ec19b03d0e534bb8caa50bdf5d11eecd095eeaae539f2"}, {"id": "fls_i9njhpte5l0t", "number": "16.1:2", "link": "exceptions-and-errors.html#fls_i9njhpte5l0t", "checksum": "d0ec8ad699ff1c4778bd35b0577f2de16559c4f7a8a67503e9d8b5ffb3feefe0"}, {"id": "fls_n6q7bksyn1m", "number": "16.1:3", "link": "exceptions-and-errors.html#fls_n6q7bksyn1m", "checksum": "df2cd62113f2dc6ca452da3c12891fd958bc64f17397066b0a128c09a0fef520"}, {"id": "fls_xmtt04lw517w", "number": "16.1:4", "link": "exceptions-and-errors.html#fls_xmtt04lw517w", "checksum": "7ce748762310bab19fffad785d50307098ea7d0e69ac336f7218ce22e6205dfa"}], "informational": false}, {"id": "fls_hi1iz0gbnksi", "number": "16.2", "title": "Abort", "link": "exceptions-and-errors.html#abort", "paragraphs": [{"id": "fls_9a1izu3omkbn", "number": "16.2:1", "link": "exceptions-and-errors.html#fls_9a1izu3omkbn", "checksum": "7a15948904b2de411b7c6338a4b97095cd8046a23ef8462801fa784b9b75ba03"}, {"id": "fls_iq6olct3rw4u", "number": "16.2:2", "link": "exceptions-and-errors.html#fls_iq6olct3rw4u", "checksum": "890c034f6aea73b0142607337332d673a009ec8f47e288cd2cfdab3f5c91cee4"}, {"id": "fls_wd2q6ft9yzrg", "number": "16.2:3", "link": "exceptions-and-errors.html#fls_wd2q6ft9yzrg", "checksum": "77bbb6c647c37714e1fa9e1f81b3f63485155de50d4d371608e8f006a638a216"}, {"id": "fls_7bnrbjb0pq5n", "number": "16.2:4", "link": "exceptions-and-errors.html#fls_7bnrbjb0pq5n", "checksum": "b5c6b6bfc6de8e05e13b1fa486c385523fa6472c257f7c8c4b2b86ec91d6664f"}], "informational": false}], "informational": false}, {"title": "Expressions", "link": "expressions.html", "sections": [{"id": "fls_ckvjj4tt1hh2", "number": "6", "title": "Expressions", "link": "expressions.html", "paragraphs": [{"id": "fls_pwut2jbmk66k", "number": "6:1", "link": "expressions.html#fls_pwut2jbmk66k", "checksum": "f4a9c891c5f3f7a4164d6c86d796b665f9435bc01fc8bbbbaa59036b553a042b"}, {"id": "fls_361q9ljc6ybz", "number": "6:2", "link": "expressions.html#fls_361q9ljc6ybz", "checksum": "0645a76c0904721382a9db11d9677b68becee6024c9f1577cc7f2a735f218ad5"}, {"id": "fls_h5o6tgul4yor", "number": "6:3", "link": "expressions.html#fls_h5o6tgul4yor", "checksum": "f5ad17e11f73a3a0df6a225d0ea1179b618c499b3b7155fbb00748809fc16a50"}, {"id": "fls_xmklb3070sp", "number": "6:4", "link": "expressions.html#fls_xmklb3070sp", "checksum": "34930eb5f41ade165e8e2dcedc1cdbeb285b107f659a41466184f4809258e759"}, {"id": "fls_p15oeage4j0e", "number": "6:5", "link": "expressions.html#fls_p15oeage4j0e", "checksum": "d799dd1030ce49998c996f5c45f402da4e7a6d4ace50780e905e20bd758f7cec"}, {"id": "fls_gwgttltgjma4", "number": "6:6", "link": "expressions.html#fls_gwgttltgjma4", "checksum": "a107cb2200785dbcb7690cb3dad0f3467cdb285cffa123b2851edea8be38f609"}, {"id": "fls_1r29rtnjlkql", "number": "6:7", "link": "expressions.html#fls_1r29rtnjlkql", "checksum": "6aa74df5ff6998c36cd4b0303af21019a41841668d615646b3310bc1356befed"}, {"id": "fls_qxdpyf4u3hbz", "number": "6:8", "link": "expressions.html#fls_qxdpyf4u3hbz", "checksum": "ad39790b9e259799a61ae4c3f59b7b80ad1d7684d19dace1619e68b08df39d1a"}, {"id": "fls_2j132xueobfv", "number": "6:9", "link": "expressions.html#fls_2j132xueobfv", "checksum": "aab182f47d02be1c733c5fe2b39472a179b10a15a4dcaeb63c8ce0ea22a1f803"}, {"id": "fls_a243nclqqjlu", "number": "6:10", "link": "expressions.html#fls_a243nclqqjlu", "checksum": "f31c0eca37f5e923bdddeceb52ccea4057f157be662061dd8c4c26b8707dc340"}, {"id": "fls_1223lwh4nq49", "number": "6:11", "link": "expressions.html#fls_1223lwh4nq49", "checksum": "0ab4370e4b805e660ab7f862768edd4e73d59035488ec64df72910f8dfc9c069"}], "informational": false}, {"id": "fls_isyftqu120l", "number": "6.1", "title": "Expression Classification", "link": "expressions.html#expression-classification", "paragraphs": [], "informational": false}, {"id": "fls_3ut3biyra4r9", "number": "6.1.1", "title": "Assignee Expressions", "link": "expressions.html#assignee-expressions", "paragraphs": [{"id": "fls_oqj7s9fi3j3j", "number": "6.1.1:1", "link": "expressions.html#fls_oqj7s9fi3j3j", "checksum": "60b906dd347f40699e98ab1a2baaa4aeeb7f013757c103e406e2096bdf554659"}, {"id": "fls_skopz71arbwa", "number": "6.1.1:2", "link": "expressions.html#fls_skopz71arbwa", "checksum": "575189a16284541fb4bbcea4fd2cd80a17540f1900878b9907804b626afbf1ae"}, {"id": "fls_vxrg6preh46x", "number": "6.1.1:3", "link": "expressions.html#fls_vxrg6preh46x", "checksum": "f757e802590cd6f5714520c2e31d6b89f187aeb5fac01af3c10af2139dc19037"}, {"id": "fls_yso6dmog0an2", "number": "6.1.1:4", "link": "expressions.html#fls_yso6dmog0an2", "checksum": "3724b6486cd33fb55e2fe722c65814be93fdf913e013b3bd2ad12604bd114e92"}, {"id": "fls_1tsdlpgkgb2u", "number": "6.1.1:5", "link": "expressions.html#fls_1tsdlpgkgb2u", "checksum": "c25b90c83c8804de349ad596c8edc8441f9fe8e39ff8a624ad0833546a24ae23"}, {"id": "fls_hier3b8knpuq", "number": "6.1.1:6", "link": "expressions.html#fls_hier3b8knpuq", "checksum": "7d0348796b44af2745ab732f9ca4c1ac8555cb7e9dc2e06a505306dbaf271804"}, {"id": "fls_horl3qcfdb0k", "number": "6.1.1:7", "link": "expressions.html#fls_horl3qcfdb0k", "checksum": "84cb5e1b176d63a2847bcd00a1e723d09f61471fdbd83c46dc4f1ba22c9a7cdc"}, {"id": "fls_1smb3tj9pxsq", "number": "6.1.1:8", "link": "expressions.html#fls_1smb3tj9pxsq", "checksum": "38170dba00ba7905b21fcc6de0032cbe2a9a755064656f9471042b75a766087a"}], "informational": false}, {"id": "fls_66m4rnbssgig", "number": "6.1.2", "title": "Constant Expressions", "link": "expressions.html#constant-expressions", "paragraphs": [{"id": "fls_1ji7368ieg0b", "number": "6.1.2:1", "link": "expressions.html#fls_1ji7368ieg0b", "checksum": "de1b9a859c46ecfefda5689bb444367031a50378d16a3087529244fbfacc7a14"}, {"id": "fls_y6ore0iwx7e0", "number": "6.1.2:2", "link": "expressions.html#fls_y6ore0iwx7e0", "checksum": "9dcd0672817fd04707e71530b3b2ea692843494c1fc724212b7170bdee0c57e4"}, {"id": "fls_xguga84v3j8u", "number": "6.1.2:3", "link": "expressions.html#fls_xguga84v3j8u", "checksum": "59ece0d56caafd3f3b19ffd73ee6d39bc43e3de54f72aa7ba961c094ead62584"}, {"id": "fls_idxf02p7jogu", "number": "6.1.2:4", "link": "expressions.html#fls_idxf02p7jogu", "checksum": "d0d7680ff65e9d4365c3f3207dcd59cea17ce72c3f6475dbbdd5bd6762fba8fd"}, {"id": "fls_6z45ss502alt", "number": "6.1.2:5", "link": "expressions.html#fls_6z45ss502alt", "checksum": "a477daabd5c582a70c94d5bab888ce31a9067b4b67d3d3ddb98becdb8ebc2691"}, {"id": "fls_wqs0792nud4e", "number": "6.1.2:6", "link": "expressions.html#fls_wqs0792nud4e", "checksum": "410eb988349831e9c9de0dfd3fd26eba4040d5db0fea795b92247c2fdd32b111"}, {"id": "fls_490a1b74fut6", "number": "6.1.2:7", "link": "expressions.html#fls_490a1b74fut6", "checksum": "0a3334c8981286278440706cd534605dd5d26fd7728339f4453c3c0656a505fd"}, {"id": "fls_8nyu6phm1nji", "number": "6.1.2:8", "link": "expressions.html#fls_8nyu6phm1nji", "checksum": "759294b08a5248e641c30cdae1634e7d0a607cbe713295dc177466b47ba35103"}, {"id": "fls_8wux08bmpse", "number": "6.1.2:9", "link": "expressions.html#fls_8wux08bmpse", "checksum": "b9f96f90499bd6bbd558e7bacdbbad3fc355aa23ae9e251b1b5dbb76ed7c4e35"}, {"id": "fls_v1bnk7neb82a", "number": "6.1.2:10", "link": "expressions.html#fls_v1bnk7neb82a", "checksum": "252e321eddbb83a6536bf06612aa9ae26862520ac3febe3596676ec5fe2adf75"}, {"id": "fls_6fq6bvxxvhsr", "number": "6.1.2:11", "link": "expressions.html#fls_6fq6bvxxvhsr", "checksum": "e1901939dcf94cb784e9632a7e67b2c977120936dd1cda31caed15974d1e6744"}, {"id": "fls_to4e7imq2c0w", "number": "6.1.2:12", "link": "expressions.html#fls_to4e7imq2c0w", "checksum": "ab77fbf23a95c3856ea49c5147e46adf5284b4b9f98d28b6f3975123bcc32a80"}, {"id": "fls_krtbrpwf3mh0", "number": "6.1.2:13", "link": "expressions.html#fls_krtbrpwf3mh0", "checksum": "8d94c902ac09fb3ef23d83106f3454d99a3c6980a3c488d3a5bf350cd7c115bd"}, {"id": "fls_3etom5uu8y4u", "number": "6.1.2:14", "link": "expressions.html#fls_3etom5uu8y4u", "checksum": "7d19f6d941207761fdd66c288b587bc5db2078e20c1090ffa7bd6c26d2c4b326"}, {"id": "fls_qls0wj8bmupz", "number": "6.1.2:15", "link": "expressions.html#fls_qls0wj8bmupz", "checksum": "d85083a7c7efbf6c5f2f30ff3b383e34fb721f2a53627e94a48aa095adc01022"}, {"id": "fls_b5fraqx07wuo", "number": "6.1.2:16", "link": "expressions.html#fls_b5fraqx07wuo", "checksum": "b02deabfb27be189c179e72fcc8ef208927e305f0509bbabd1b39b64224750d8"}, {"id": "fls_6g7c1kjrmfnr", "number": "6.1.2:17", "link": "expressions.html#fls_6g7c1kjrmfnr", "checksum": "5c6751a8315b541c35cced5cf85aa22ae15161a094f06a99ef59d69f0278d0f3"}, {"id": "fls_rpapnm3afan8", "number": "6.1.2:18", "link": "expressions.html#fls_rpapnm3afan8", "checksum": "e27dbc7a5cfa4584c075296125becf0c47bf01b4556f34e99a14431c2f5c206a"}, {"id": "fls_fc62yaqyjpl2", "number": "6.1.2:19", "link": "expressions.html#fls_fc62yaqyjpl2", "checksum": "d78272015b933abc20846cd4159619480896126232de8bf6fbc87d628a93689f"}, {"id": "fls_kwg8a351vc7", "number": "6.1.2:20", "link": "expressions.html#fls_kwg8a351vc7", "checksum": "ff0b985b3bdb5f39343fb2dbc69819ec1977bca9aa11748b2017b231464e073b"}, {"id": "fls_7mjv1xd45qr4", "number": "6.1.2:21", "link": "expressions.html#fls_7mjv1xd45qr4", "checksum": "4e17a33e1fba6baf81402a56c6561471e61546844fb7097dc554f10fa4929778"}, {"id": "fls_g7hoyfqy9mu1", "number": "6.1.2:22", "link": "expressions.html#fls_g7hoyfqy9mu1", "checksum": "49717c7cdbf319feb99849ad9db98121620f7be8b82ffa9a612a31411b1408c8"}, {"id": "fls_br4g7qwfczig", "number": "6.1.2:23", "link": "expressions.html#fls_br4g7qwfczig", "checksum": "fa3aae99a5b64aab6689772966cab04c2b259d40ee747f5c6583f76fc3519dc1"}, {"id": "fls_w4lpq9bs8tsc", "number": "6.1.2:24", "link": "expressions.html#fls_w4lpq9bs8tsc", "checksum": "f88042b7a17f204fa49f503a68da4e3dd00eb96010156dc3e89ce7e65cf85a31"}, {"id": "fls_y1ezabo61nyk", "number": "6.1.2:25", "link": "expressions.html#fls_y1ezabo61nyk", "checksum": "18934c346329f7a9ea9765917175db6b45dc7c048013afe01459922d25a7bd62"}, {"id": "fls_6tb74n6lu0wf", "number": "6.1.2:26", "link": "expressions.html#fls_6tb74n6lu0wf", "checksum": "3c9b370271add7bae1fba3b37de85653bf0fe577b8baba3bb9fe79b98e753b42"}, {"id": "fls_axwrv7b3zt55", "number": "6.1.2:27", "link": "expressions.html#fls_axwrv7b3zt55", "checksum": "56d424ef413f593ce60c84181e8a5f83929d41553c626cb36562bd0ed5d561a9"}, {"id": "fls_3bucpdj828bq", "number": "6.1.2:28", "link": "expressions.html#fls_3bucpdj828bq", "checksum": "a769fb663d4c130101ac1256b738337cb674757045a4679d495dcbfd33b58fa4"}, {"id": "fls_hkbwa8xx2fwx", "number": "6.1.2:29", "link": "expressions.html#fls_hkbwa8xx2fwx", "checksum": "d753a742a21af7c6cfc9f1893ff4ee5b9a0ef089d0af76bc165411fb4c38b37e"}, {"id": "fls_fobs8ebt7dhc", "number": "6.1.2:30", "link": "expressions.html#fls_fobs8ebt7dhc", "checksum": "c6abd6f66925af9e73351029d0689a15fd2b794d279be4a54cb01ca1434cee76"}, {"id": "fls_dyo3o1h3keqr", "number": "6.1.2:31", "link": "expressions.html#fls_dyo3o1h3keqr", "checksum": "8fef4aa286d46e0b0767d45db83aa8d62ef879c4b31a258905d60aaa391524f6"}, {"id": "fls_e0a1e8ddph7", "number": "6.1.2:32", "link": "expressions.html#fls_e0a1e8ddph7", "checksum": "b6e03f526a8452468e623bed4ec289b78641df3140fae3d2647ea1d5baf04d09"}, {"id": "fls_zcuzhw7qkzkr", "number": "6.1.2:33", "link": "expressions.html#fls_zcuzhw7qkzkr", "checksum": "3bf0e02f2616b8c7222185ee3b336d41c1307df947f058084ce1eb330bdf1900"}, {"id": "fls_pbpzkfo1fgtz", "number": "6.1.2:34", "link": "expressions.html#fls_pbpzkfo1fgtz", "checksum": "a9b547b6bf662506793bdcbe453c85921749fe52183da9d7a851c9dcfe3fc529"}, {"id": "fls_qvofy4wkql0s", "number": "6.1.2:35", "link": "expressions.html#fls_qvofy4wkql0s", "checksum": "cfec980b14b64251c85de2818e75a873d7cb9465255ee4870a55303ac0a86589"}, {"id": "fls_3i7efddbsmn0", "number": "6.1.2:36", "link": "expressions.html#fls_3i7efddbsmn0", "checksum": "44aae2e4e8860762d2e9a8257badc2d3b4e15d99c8c1183112c63da5a4a97767"}, {"id": "fls_9mrrosm8jnn7", "number": "6.1.2:37", "link": "expressions.html#fls_9mrrosm8jnn7", "checksum": "77716dd5cd96ee41a8745441d48419c274fefbea836e7c91d66326bfc5a593f5"}, {"id": "fls_fmqar6o1bwqk", "number": "6.1.2:38", "link": "expressions.html#fls_fmqar6o1bwqk", "checksum": "c70336e37bd438cf7f23f90e11eed66a8b6c54cf7c17bb4e407c69e3e63f7f68"}, {"id": "fls_kjhma680hz3g", "number": "6.1.2:39", "link": "expressions.html#fls_kjhma680hz3g", "checksum": "3651a3d2d8aaca8d17e1fe47b3138585d5b28ed9e904f43961482867fdb88ff0"}, {"id": "fls_ljc6jq5ksbcs", "number": "6.1.2:40", "link": "expressions.html#fls_ljc6jq5ksbcs", "checksum": "515154f2ac48723da0d14f98872f3256c88d0f9d3194c4dbcb5268b9792c5c7d"}, {"id": "fls_3of516eo0kkx", "number": "6.1.2:41", "link": "expressions.html#fls_3of516eo0kkx", "checksum": "cc77160163ddf5f7888c6a059518c2ac68550018fad496be971cc878a9fc7936"}, {"id": "fls_yiks5bvojncc", "number": "6.1.2:42", "link": "expressions.html#fls_yiks5bvojncc", "checksum": "19eb90436a5d32615593180082eddd69ea6768b7d84fbfe7706f603d07efbd2a"}, {"id": "fls_66m2hwkju0vv", "number": "6.1.2:43", "link": "expressions.html#fls_66m2hwkju0vv", "checksum": "b9568c7650933529d82ec97933b47ca7758c6acc5913bb42e52d17cd9f27f32c"}, {"id": "fls_fsn32kmwg65u", "number": "6.1.2:44", "link": "expressions.html#fls_fsn32kmwg65u", "checksum": "0446046528dbd1e07766646b22eba2192eb014bf1364522b89a01dcd054f37a5"}, {"id": "fls_j6kffhbxdm7o", "number": "6.1.2:45", "link": "expressions.html#fls_j6kffhbxdm7o", "checksum": "16163ffa5149a61156b6fa9822bd38c1dda85cc76895b18e45f59a579c78df48"}, {"id": "fls_ib8p7dfwddx2", "number": "6.1.2:46", "link": "expressions.html#fls_ib8p7dfwddx2", "checksum": "8012748a5a9f0df6b5ac50d6cadfc2e260145894007b76e558e68866ec8c495e"}, {"id": "fls_ox6sgl9n43g2", "number": "6.1.2:47", "link": "expressions.html#fls_ox6sgl9n43g2", "checksum": "73287ec37c278d47149516ea285d4901af4095df9725ce4ef23d63d2a88baa16"}, {"id": "fls_od0h3v40kjp6", "number": "6.1.2:48", "link": "expressions.html#fls_od0h3v40kjp6", "checksum": "c0922b72177bb7936fb1812bef8b7f4c3c04e5def41c08c3744d6c40c83416e2"}, {"id": "fls_6sc556tz4oxd", "number": "6.1.2:49", "link": "expressions.html#fls_6sc556tz4oxd", "checksum": "f1e397dc12ceac4f862c1b38ab023057914016448490fbc8103227d260b67421"}, {"id": "fls_b1vfpvsdv38", "number": "6.1.2:50", "link": "expressions.html#fls_b1vfpvsdv38", "checksum": "ab7bcb73bcdab153eda299904b6530b93d546941dc2a9f1fe469c71a5d9164d0"}, {"id": "fls_b46nyamfqxdu", "number": "6.1.2:51", "link": "expressions.html#fls_b46nyamfqxdu", "checksum": "cd483894f0b24cca762db3e942673bbc3f69157bd4471bcabd6ef6bebac9928d"}, {"id": "fls_ms9vey2wymqp", "number": "6.1.2:52", "link": "expressions.html#fls_ms9vey2wymqp", "checksum": "b33fd7caed2c7f25c3d1ea22886e9ff2581064e5bbf75546c0c060ce623c25f1"}, {"id": "fls_xopg4ys9q4q1", "number": "6.1.2:53", "link": "expressions.html#fls_xopg4ys9q4q1", "checksum": "2e795ad3e303a1984376d0a215923f1c51b1ab362c082535b139f2a06ffb81bf"}, {"id": "fls_tg0kya5125jt", "number": "6.1.2:54", "link": "expressions.html#fls_tg0kya5125jt", "checksum": "49624995c2fe8bb8f83498d1cc6cef80c8e2621f8098235179ed89c68ecc1eac"}], "informational": false}, {"id": "fls_zjoamsr3dbqk", "number": "6.1.3", "title": "Diverging Expressions", "link": "expressions.html#diverging-expressions", "paragraphs": [{"id": "fls_oth9vftcb9l4", "number": "6.1.3:1", "link": "expressions.html#fls_oth9vftcb9l4", "checksum": "5060238ed0359d5cf017fd54608baba39f7484a5c262c3567c973dab5a3b2401"}, {"id": "fls_cmbvodjmjzi7", "number": "6.1.3:2", "link": "expressions.html#fls_cmbvodjmjzi7", "checksum": "8421661fce97e956eb513ec4438a85672f6b2b9dd4c22ec09b6da1eb67e42ce7"}, {"id": "fls_xsogdiizysp1", "number": "6.1.3:3", "link": "expressions.html#fls_xsogdiizysp1", "checksum": "2be99cad76924c6697893416fcc29c4e016f80d67774faeb2db12c941e785f24"}, {"id": "fls_xqxdhziqgwf5", "number": "6.1.3:4", "link": "expressions.html#fls_xqxdhziqgwf5", "checksum": "025d4b330cba16ffba6c33fa8eebe317dc0aa2fa9762781ccf41fa3de3e209b9"}, {"id": "fls_fu91m6dcb0ip", "number": "6.1.3:5", "link": "expressions.html#fls_fu91m6dcb0ip", "checksum": "fcf7505ef34f3b2536bb1c62facac6e82b7560f993f5a172a1e20eac4e552fce"}, {"id": "fls_4wdpahhnwzab", "number": "6.1.3:6", "link": "expressions.html#fls_4wdpahhnwzab", "checksum": "2b2c1f21c6c47a7039204424df6509ab2e234eb00cf8ac170d92dea1c46e7e2f"}, {"id": "fls_7ha5uthwjbqj", "number": "6.1.3:7", "link": "expressions.html#fls_7ha5uthwjbqj", "checksum": "8d84180501d511c73659c8b39c51cc56a9e0b643e8f8066b443d30b7a5c578a0"}, {"id": "fls_pddr8lk1gq0t", "number": "6.1.3:8", "link": "expressions.html#fls_pddr8lk1gq0t", "checksum": "0fa4999d15c5909e9c331090f84b483c3f1de9dd8b6bf2785c2a4b9be82ce8e8"}], "informational": false}, {"id": "fls_6ydylimiv553", "number": "6.1.4", "title": "Place Expressions", "link": "expressions.html#place-expressions", "paragraphs": [{"id": "fls_qbrcg3cl9td", "number": "6.1.4:1", "link": "expressions.html#fls_qbrcg3cl9td", "checksum": "5f85774d4af3b4503dd719ebb1c9c13936bb77a4d77eaa5539863456b86f6442"}, {"id": "fls_jpmhibm4omm7", "number": "6.1.4:2", "link": "expressions.html#fls_jpmhibm4omm7", "checksum": "bb6677a9dc0649570d5597a09439c6dcb77c13ccf031be9465c0b4c0b231f2e8"}, {"id": "fls_none1dykbn8c", "number": "6.1.4:3", "link": "expressions.html#fls_none1dykbn8c", "checksum": "5666d2be7d12a4b03c9634d49219ac173536d59607e2fb6b594996c27c1c276c"}, {"id": "fls_lj7x5dgbmg9i", "number": "6.1.4:4", "link": "expressions.html#fls_lj7x5dgbmg9i", "checksum": "f37f0d22ddefd16a571b8bd9a562198423f0af50d7c14eb572d13e5a97bf972a"}, {"id": "fls_anzidgx02lly", "number": "6.1.4:5", "link": "expressions.html#fls_anzidgx02lly", "checksum": "e936ad7c41ed0a523e0faf110179d618e501a9859e20165109df8884466958b8"}, {"id": "fls_ya05djl1d154", "number": "6.1.4:6", "link": "expressions.html#fls_ya05djl1d154", "checksum": "0e9c2d5b424df083445425b2eb9713bca7a87391b4a01ff7d5245b787dfbbb71"}, {"id": "fls_gv4m0de3omwk", "number": "6.1.4:7", "link": "expressions.html#fls_gv4m0de3omwk", "checksum": "1af57119939cf184ae0c7f698a5de9c73f8b5affe3969a6c6312a97c2ced8f8b"}, {"id": "fls_ku38h562vfyl", "number": "6.1.4:8", "link": "expressions.html#fls_ku38h562vfyl", "checksum": "a86fa18a8c5f28ca1d4fdcb6057bbc8fcb5f9f73e20f08da2a49ceb506f76453"}, {"id": "fls_1tq2o2huda9l", "number": "6.1.4:9", "link": "expressions.html#fls_1tq2o2huda9l", "checksum": "32ed377e5c9c2596f96a684dd90844ffdc229f264ed21a3808700ab4504da3ad"}, {"id": "fls_6b4rwkrc1ap6", "number": "6.1.4:10", "link": "expressions.html#fls_6b4rwkrc1ap6", "checksum": "77a556beee4c1ec72f5a1678b30fff2abca44b0814767dc0489a1636d387ab35"}, {"id": "fls_s4bhrpykzmm7", "number": "6.1.4:11", "link": "expressions.html#fls_s4bhrpykzmm7", "checksum": "3bcbb31dbf7a42ccd4882c4df20a73b8fe4169f3b44b0e93f75170ea5478cdb9"}, {"id": "fls_xm0gm2q27x2e", "number": "6.1.4:12", "link": "expressions.html#fls_xm0gm2q27x2e", "checksum": "0af74cc3c79b8880b899f2e3faa5630ff17845b08db731fcaca23547dff9d583"}, {"id": "fls_bt50fltfqcvn", "number": "6.1.4:13", "link": "expressions.html#fls_bt50fltfqcvn", "checksum": "25c0d061e2a3c9b25578a45ab2fb74a50fb9f07444e09ea9f8157c5cd42a04fd"}, {"id": "fls_sgfxp186gmvz", "number": "6.1.4:14", "link": "expressions.html#fls_sgfxp186gmvz", "checksum": "cfc1a8dc708b20eefb9c1ffdb6f76cfc6b927e7cb106c89f58857d627b7f671f"}, {"id": "fls_ilaqmj3hc5uv", "number": "6.1.4:15", "link": "expressions.html#fls_ilaqmj3hc5uv", "checksum": "b9e19a33b6f7298b9f07a4c4ae3dde602adf87fd2ac7151e3596eb02c4566734"}, {"id": "fls_m0gbw9myylv2", "number": "6.1.4:16", "link": "expressions.html#fls_m0gbw9myylv2", "checksum": "5ec103acbbe65af793d28ae454718aa627d30f80b637e1660d1dc5bad8480431"}, {"id": "fls_dcm3yr3y9y0a", "number": "6.1.4:17", "link": "expressions.html#fls_dcm3yr3y9y0a", "checksum": "9e93b8580cde2fd0c66a53470306bed82a53df0e551e80b90efd61ce4147e90a"}, {"id": "fls_cpemhztpkctx", "number": "6.1.4:18", "link": "expressions.html#fls_cpemhztpkctx", "checksum": "d09119cc5c2fcc6e8b84d570c685ead186c9f683703a7221ce13a35f660493f6"}, {"id": "fls_4vxi1ji93dxb", "number": "6.1.4:19", "link": "expressions.html#fls_4vxi1ji93dxb", "checksum": "fdcfcd99d144b775aad90f71eb24b6100e2e7479ea4f930e27ec176ad1bcf45e"}, {"id": "fls_fzsrdrhnndrd", "number": "6.1.4:20", "link": "expressions.html#fls_fzsrdrhnndrd", "checksum": "c48d7f31ca2fc7d1824b49aaabbadc6c96b2f1a67a8373d08b46e5ca9f66549e"}, {"id": "fls_zed5wjqvo6nf", "number": "6.1.4:21", "link": "expressions.html#fls_zed5wjqvo6nf", "checksum": "47d6c8696f4c95779f7fc9cabbb952ffabf2ee35fa15de6e5d50e136660c67c3"}, {"id": "fls_ufz9w5vyzkv3", "number": "6.1.4:22", "link": "expressions.html#fls_ufz9w5vyzkv3", "checksum": "c7859a194ef5acc89935304303c6e48602e3e96c193f66dc0e0c704f89eea83c"}, {"id": "fls_kxwizoh9wwk7", "number": "6.1.4:23", "link": "expressions.html#fls_kxwizoh9wwk7", "checksum": "7a97e95af16f54b01477dbe2da75f8a7b4f6e8c14800739cca2aadec4ded838e"}, {"id": "fls_ov9hd6oifazx", "number": "6.1.4:24", "link": "expressions.html#fls_ov9hd6oifazx", "checksum": "a93bb37b3b0ded48637fc647acbfee3216df9f6e4313a3c9c2e6310c44ca889a"}, {"id": "fls_nnginsh6zgmp", "number": "6.1.4:25", "link": "expressions.html#fls_nnginsh6zgmp", "checksum": "b22c92248f7691f65a628d02c08cf24a9047b02400d6a29c8b6dc20c64bee2f0"}, {"id": "fls_jlzlxihr4w2v", "number": "6.1.4:26", "link": "expressions.html#fls_jlzlxihr4w2v", "checksum": "ee945af2b118196e6ca9326841531db1d96dcd364df978b3110414f0deae444c"}, {"id": "fls_giz7w1g02jsg", "number": "6.1.4:27", "link": "expressions.html#fls_giz7w1g02jsg", "checksum": "f7df761607610d04510f2afe7be1961f85aa037b3df985ce6816b252eb21d7c1"}, {"id": "fls_5yxutlqoq3cc", "number": "6.1.4:28", "link": "expressions.html#fls_5yxutlqoq3cc", "checksum": "342c018f0de28ffea76b86b5ab53420bd7ad1e970b84e3fe2159000feb4bce6d"}, {"id": "fls_nman7mjvsqlm", "number": "6.1.4:29", "link": "expressions.html#fls_nman7mjvsqlm", "checksum": "6157d0f70d0f638550ee4030d5e0c903aedbf4b30498d294d3bc171091856b76"}, {"id": "fls_jbfzufdqg3mu", "number": "6.1.4:30", "link": "expressions.html#fls_jbfzufdqg3mu", "checksum": "2a98510245f19b2c170b5e631738582547bafb0cd7dbc85065c606d2c34501a2"}, {"id": "fls_wxgaowevt77u", "number": "6.1.4:31", "link": "expressions.html#fls_wxgaowevt77u", "checksum": "38f331a73b93c154c708a182d0ff821c2222cc48d99af70efa0b53dd5967dbcf"}, {"id": "fls_qytgkbhqr5ln", "number": "6.1.4:32", "link": "expressions.html#fls_qytgkbhqr5ln", "checksum": "2ba416a11b94658791140c4b85a8ba28c2ec4ef4a778b59038105208dfbcb8ee"}, {"id": "fls_5gy92rsi2mqm", "number": "6.1.4:33", "link": "expressions.html#fls_5gy92rsi2mqm", "checksum": "d3e2d2af5f02248e16a591d51f148029eccf722872db25063330ede8b6a8501e"}, {"id": "fls_u80htrnr2ebz", "number": "6.1.4:34", "link": "expressions.html#fls_u80htrnr2ebz", "checksum": "fe5533b1164a5ed44182fe95abf4c2f62bd09f82e7786433bf589bf505b65d95"}, {"id": "fls_o0feajus3jtu", "number": "6.1.4:35", "link": "expressions.html#fls_o0feajus3jtu", "checksum": "d4860293b247bd862ff7f52f19df94330203138d7f331ce7064449e737085b44"}, {"id": "fls_ffjx1d5dseo4", "number": "6.1.4:36", "link": "expressions.html#fls_ffjx1d5dseo4", "checksum": "ef216b4956c9c82c492eaf33aa42b180dc04003c5c54b572e706d022ec656b5a"}, {"id": "fls_9r7dopqf1nzl", "number": "6.1.4:37", "link": "expressions.html#fls_9r7dopqf1nzl", "checksum": "e37053a8b316b066e2adc833e9b61430341ce7681922450e1a6261795b2826e9"}, {"id": "fls_o76qxhyrrjpg", "number": "6.1.4:38", "link": "expressions.html#fls_o76qxhyrrjpg", "checksum": "b7fa266e959f034fb8027350cfea9ce01444695e7e515512581302d9c3f8cb54"}, {"id": "fls_ka5b87tkf8t6", "number": "6.1.4:39", "link": "expressions.html#fls_ka5b87tkf8t6", "checksum": "de4767a880c9c8d3022d26accad869d8eabeeab119835136fb0594d46405d621"}, {"id": "fls_brwv1zwu37e8", "number": "6.1.4:40", "link": "expressions.html#fls_brwv1zwu37e8", "checksum": "82d5e15e136abbd6e6ff175eff2bf1ae8a648a9eac9fc3e354e8fb962357eb0a"}, {"id": "fls_4axr4v0icdbp", "number": "6.1.4:41", "link": "expressions.html#fls_4axr4v0icdbp", "checksum": "7b686442be7876153393b5ff4396beffa63b880adc6f85d9ec57c64910ffdd94"}], "informational": false}, {"id": "fls_e7zgqroy2qxn", "number": "6.1.5", "title": "Value Expressions", "link": "expressions.html#value-expressions", "paragraphs": [{"id": "fls_7q4hrt6yfr9b", "number": "6.1.5:1", "link": "expressions.html#fls_7q4hrt6yfr9b", "checksum": "59657af5a3d7ea75e221dd8f57fc291073859b55dcc28ea21acc8b6ded645814"}, {"id": "fls_pb6xlp4uag37", "number": "6.1.5:2", "link": "expressions.html#fls_pb6xlp4uag37", "checksum": "cdb48fc283d2317f9e373c3e846c83ddc15b1e08c3586f226a9701b8fd1f6670"}, {"id": "fls_8uhfwqurbyqf", "number": "6.1.5:3", "link": "expressions.html#fls_8uhfwqurbyqf", "checksum": "654c72a974019f16a7138b882973ab8de2a0ae2d8dbfe9d9a5523ea10dd4f5f7"}], "informational": false}, {"id": "fls_h0dvogc64tfh", "number": "6.2", "title": "Literal Expressions", "link": "expressions.html#literal-expressions", "paragraphs": [{"id": "fls_rbwwczom3agt", "number": "6.2:1", "link": "expressions.html#fls_rbwwczom3agt", "checksum": "cbd02ee8c02288e5b249e04aebfe259f50767f82a89a762666b81d9d62a0691a"}, {"id": "fls_w30su9x4q13r", "number": "6.2:2", "link": "expressions.html#fls_w30su9x4q13r", "checksum": "041048152100f5969aed239f4cfbb726b0a5f11aafb03adcbd062c40bd808304"}, {"id": "fls_wdpbg5xzgmwu", "number": "6.2:3", "link": "expressions.html#fls_wdpbg5xzgmwu", "checksum": "fc4778b02fb2097b1b5ab97ad2bea3bf7f026dcae8ad89e91d752e34946cc487"}, {"id": "fls_g061yzws1m45", "number": "6.2:4", "link": "expressions.html#fls_g061yzws1m45", "checksum": "0f726bad76f37f734cf2a31bdddacf357fa8a90a916dbfc89bdded32705c2f67"}], "informational": false}, {"id": "fls_6l60b5hwnjbm", "number": "6.3", "title": "Path Expressions", "link": "expressions.html#path-expressions", "paragraphs": [{"id": "fls_gvanx4874ycy", "number": "6.3:1", "link": "expressions.html#fls_gvanx4874ycy", "checksum": "3b9e4cf4c144eada31afff6d82c75c28defe5281f0aaccd9aef03e1b77efc2c3"}, {"id": "fls_eokrcij9cuhv", "number": "6.3:2", "link": "expressions.html#fls_eokrcij9cuhv", "checksum": "024d54849ef873e36a69bf553b7f32c26c6e336777c9aec3ab1f8468de453518"}, {"id": "fls_gz67ju6l7uhn", "number": "6.3:3", "link": "expressions.html#fls_gz67ju6l7uhn", "checksum": "c64594a113e6bb7fb595e357b4f5a5aa111db5f89f1b74d5c164010aa6394305"}, {"id": "fls_cjywisyiyti6", "number": "6.3:4", "link": "expressions.html#fls_cjywisyiyti6", "checksum": "7ef7642678c5437966b93e2c64abcdaa84e74185e3ce5c93de7adf4963eef270"}, {"id": "fls_5ifai8nkp5ek", "number": "6.3:5", "link": "expressions.html#fls_5ifai8nkp5ek", "checksum": "e6423c718d6764768bee151401e902bf393bc0081d4828bf6d0736c363465b79"}], "informational": false}, {"id": "fls_hndm19t57wby", "number": "6.4", "title": "Block Expressions", "link": "expressions.html#block-expressions", "paragraphs": [{"id": "fls_nf65p0l0v0gr", "number": "6.4:1", "link": "expressions.html#fls_nf65p0l0v0gr", "checksum": "9314640d69dac45b9a4f9f852d9060291e437f265f71d262834f32fea77d26b2"}, {"id": "fls_tn3hj7k2lliu", "number": "6.4:2", "link": "expressions.html#fls_tn3hj7k2lliu", "checksum": "d02030de67fa90b6299b156dfe9325835e08dec1afc82ac9e50e7b416ed4edd3"}, {"id": "fls_dfcne8ywevle", "number": "6.4:3", "link": "expressions.html#fls_dfcne8ywevle", "checksum": "8fa73f746bf6406507f179efa09d7e1416bd0bcbc261553178a1ed7ce5ffdbb7"}, {"id": "fls_u4gj2lnkq9ub", "number": "6.4:4", "link": "expressions.html#fls_u4gj2lnkq9ub", "checksum": "d11f516c2b53db9e1ea73b2de1937f17529e46f2a7d101526fa2822cfb01be08"}, {"id": "fls_lteygvwdthxe", "number": "6.4:5", "link": "expressions.html#fls_lteygvwdthxe", "checksum": "8a18cecaca838f1279baae3bd695a2ebc5f105487016b3277ec32fd2a592f0d5"}, {"id": "fls_97v4fnekrrxi", "number": "6.4:6", "link": "expressions.html#fls_97v4fnekrrxi", "checksum": "e163c464dcda586fa66030eccf1b1ba5b9bf52828e2075b9d81b0a6f3830b820"}, {"id": "fls_ob76y2ymdd27", "number": "6.4:7", "link": "expressions.html#fls_ob76y2ymdd27", "checksum": "74d548e2b7ae37d2f34907672a0ac128ac039d79985342fcb20b08a0cb5a21cb"}, {"id": "fls_u0avbm147nyh", "number": "6.4:8", "link": "expressions.html#fls_u0avbm147nyh", "checksum": "01f722be1236235666def2aec047d3ecb170592333dc2d5b19883b2db2863ef9"}, {"id": "fls_1hzup0sf8l7l", "number": "6.4:9", "link": "expressions.html#fls_1hzup0sf8l7l", "checksum": "275a80e2e27ffeee61eb71c00cd5ceba13337bf4b922fdd28a3ed2dcabda48e8"}, {"id": "fls_kkzpkvj902cw", "number": "6.4:10", "link": "expressions.html#fls_kkzpkvj902cw", "checksum": "27aeb45eea02cc67355b6940d80e6dcce1ac5dc5d0ce6a30e2afb8c7841c56b9"}, {"id": "fls_9nmssjseq3jt", "number": "6.4:11", "link": "expressions.html#fls_9nmssjseq3jt", "checksum": "86fa0b781562a13fcd5b9e6593f0fb31283920444492ea88757ae43e454a4ce6"}, {"id": "fls_a3ulnvyc1ut", "number": "6.4:12", "link": "expressions.html#fls_a3ulnvyc1ut", "checksum": "68326cb71c2631710e4504a539081fbf264f5d77b8ebcf7736ad0be9bcab5ea1"}, {"id": "fls_elcl73psruxw", "number": "6.4:13", "link": "expressions.html#fls_elcl73psruxw", "checksum": "33e644aa682d5b680cc8538c20d96974c4692ef33e1f73e39d724aeecab9eb00"}, {"id": "fls_13b5n127rj92", "number": "6.4:14", "link": "expressions.html#fls_13b5n127rj92", "checksum": "b8af4c854ae00c19f2c146e71416b772fb3d2d2312d68d2d6594d1a7889ad3bb"}, {"id": "fls_nzdpw59plr2g", "number": "6.4:15", "link": "expressions.html#fls_nzdpw59plr2g", "checksum": "02bc7e48facf23ffe3b4d2fd838ab6238ade7b0d00a1171c7f4850f71deb4876"}], "informational": false}, {"id": "fls_aadan19t5006", "number": "6.4.1", "title": "Async Blocks", "link": "expressions.html#async-blocks", "paragraphs": [{"id": "fls_hhidi5ukxo", "number": "6.4.1:1", "link": "expressions.html#fls_hhidi5ukxo", "checksum": "1d4d9b99c7ff55d188fc8016b22f47344c4c3445fe35e679b333494f12734d49"}, {"id": "fls_oisws5qykedi", "number": "6.4.1:2", "link": "expressions.html#fls_oisws5qykedi", "checksum": "d029e4b409fa40ab8cb0723ee7541138703744c5d7f7e56f7416053cab3d75eb"}, {"id": "fls_tzclkasinpoq", "number": "6.4.1:3", "link": "expressions.html#fls_tzclkasinpoq", "checksum": "db276e68d194ccc4d62df06b66ac0a0795f660ac571e227dcc8f8ddecfbcf258"}, {"id": "fls_ncd0wkgtldem", "number": "6.4.1:4", "link": "expressions.html#fls_ncd0wkgtldem", "checksum": "c778823466dda65727a8a0d7f36aa37564e056f58967af9cb158c4a8dfcfb520"}, {"id": "fls_pvnofoomgwl5", "number": "6.4.1:5", "link": "expressions.html#fls_pvnofoomgwl5", "checksum": "a57114810d90bea4121cf2db0f3a6c62be0cdd60a8c6825d1654343e98e4219d"}, {"id": "fls_9ghp5yet75y6", "number": "6.4.1:6", "link": "expressions.html#fls_9ghp5yet75y6", "checksum": "b4ca6e91fd6bb90201e1e60835720f1c24be9a3661057d51f74690cfb994103c"}], "informational": false}, {"id": "fls_0ybsr1heo7wv", "number": "6.4.2", "title": "Named Blocks", "link": "expressions.html#named-blocks", "paragraphs": [{"id": "fls_j8wjnfcsayrs", "number": "6.4.2:1", "link": "expressions.html#fls_j8wjnfcsayrs", "checksum": "e1abf2626df40e58da556bcbf1090df55fad0782419d41dbae13e0d9560acd2e"}, {"id": "fls_b4nbv2jfzluy", "number": "6.4.2:2", "link": "expressions.html#fls_b4nbv2jfzluy", "checksum": "55757b88b705045f14beab3a4d65b0322a4cdf93f6af7899259f023fbbbf19d7"}, {"id": "fls_yxvauuyapkaq", "number": "6.4.2:3", "link": "expressions.html#fls_yxvauuyapkaq", "checksum": "6b86f7170a1e3af586e115208768566779108a41d3159dfa073df5621234f93d"}], "informational": false}, {"id": "fls_8wnyln2nmg4y", "number": "6.4.3", "title": "Unsafe Blocks", "link": "expressions.html#unsafe-blocks", "paragraphs": [{"id": "fls_2az5huhcxzzy", "number": "6.4.3:1", "link": "expressions.html#fls_2az5huhcxzzy", "checksum": "a7432b290848cdb326249e41d85385bac2659f0c92a8910f5c4b99d0265b5698"}, {"id": "fls_5ucvvja4dzoc", "number": "6.4.3:2", "link": "expressions.html#fls_5ucvvja4dzoc", "checksum": "7138ff944bcb923505b9d2fa4a30aa458818aa139fb4984e581b3596335e20d6"}, {"id": "fls_j3mmg317q442", "number": "6.4.3:3", "link": "expressions.html#fls_j3mmg317q442", "checksum": "030ea8f4788a3fe7352fd7cd5cae6b11246051da2ac11503021c46b689a6efab"}, {"id": "fls_nygurv3x3wq6", "number": "6.4.3:4", "link": "expressions.html#fls_nygurv3x3wq6", "checksum": "dd0d4a61f5776a3375247b226efcfb5fa58dfe453c3e8f8f2ddea7335c79fce1"}, {"id": "fls_pv5gcy3tbjwo", "number": "6.4.3:5", "link": "expressions.html#fls_pv5gcy3tbjwo", "checksum": "b525933c45b15659e45290ea33556f571313cd311572db7e944dab18d1eddf97"}], "informational": false}, {"id": "fls_izdv9i4spokw", "number": "6.5", "title": "Operator Expressions", "link": "expressions.html#operator-expressions", "paragraphs": [{"id": "fls_ursc5ynymoy", "number": "6.5:1", "link": "expressions.html#fls_ursc5ynymoy", "checksum": "d4e26ca3cbd644e6b9a5b86d239f6b0e1a62f77aa1305bfb532477b731cfad2f"}], "informational": false}, {"id": "fls_qztk0bkju9u", "number": "6.5.1", "title": "Borrow Expression", "link": "expressions.html#borrow-expression", "paragraphs": [{"id": "fls_nnqfkl228hjx", "number": "6.5.1:1", "link": "expressions.html#fls_nnqfkl228hjx", "checksum": "802926b1cac49b521ff9adcfc0541ffec43dd504d15b57d8293b9d13b99543e9"}, {"id": "fls_r7ix8webgqlm", "number": "6.5.1:2", "link": "expressions.html#fls_r7ix8webgqlm", "checksum": "3d9a28b791947b2bac75ce56a2454e2a1fc73b1d6b40fd5902cc3db89b1833cc"}, {"id": "fls_50j167r4v61b", "number": "6.5.1:3", "link": "expressions.html#fls_50j167r4v61b", "checksum": "261951477abf29bed5f7eb4f51a58054ed4ae09b35694119c21e87ee4065a98d"}, {"id": "fls_ya77l2zgtilp", "number": "6.5.1:4", "link": "expressions.html#fls_ya77l2zgtilp", "checksum": "d573fb1d9d84cbc07730e23f6e479b1d62a8155fc4b7e96206a849226058f1b4"}, {"id": "fls_chr03xll75d", "number": "6.5.1:5", "link": "expressions.html#fls_chr03xll75d", "checksum": "1b2c053da332d1395a04b7eee7001d9e9cf287d2680ad54e81f6041f88acb954"}, {"id": "fls_5b2x5ri2w54r", "number": "6.5.1:6", "link": "expressions.html#fls_5b2x5ri2w54r", "checksum": "2792319b815169dc152f1374d64261936a99a61506e3b030876c5e0a4cdb807b"}, {"id": "fls_agl09ia869rk", "number": "6.5.1:7", "link": "expressions.html#fls_agl09ia869rk", "checksum": "bbb012f406bbc016697a416877c67f8a8e7762859e71fe80b3772bbe6941a5ec"}, {"id": "fls_8cvmee9bzs40", "number": "6.5.1:8", "link": "expressions.html#fls_8cvmee9bzs40", "checksum": "86055e47eba60af7a20a12a96e925c0aa0241aac95b1dbde209af8bb11ccbffc"}, {"id": "fls_luapbicdldtt", "number": "6.5.1:9", "link": "expressions.html#fls_luapbicdldtt", "checksum": "7fea9e09ac35ba97ec0aa1b1d6b6f78b5e456d7acca65d756b2ee58a2e64fdc9"}, {"id": "fls_2jd0mgw4zja4", "number": "6.5.1:10", "link": "expressions.html#fls_2jd0mgw4zja4", "checksum": "6810afff37cb3b81e7cd6abfaa7a09a39cfbdebe5848533ec338be7f0901bc2b"}, {"id": "fls_350qejoq9i23", "number": "6.5.1:11", "link": "expressions.html#fls_350qejoq9i23", "checksum": "1cc271961169e83839a3e42a346dc67fba7f62ac7404861842da4b59e53a7e2d"}], "informational": false}, {"id": "fls_5cm4gkt55hjh", "number": "6.5.2", "title": "Dereference Expression", "link": "expressions.html#dereference-expression", "paragraphs": [{"id": "fls_f6wktzofzdn1", "number": "6.5.2:1", "link": "expressions.html#fls_f6wktzofzdn1", "checksum": "2ca9af25277c175fa9ab6b0b74a4ba46f5038fd562befbd363a40be6ba27d2dc"}, {"id": "fls_aeh5pzpcjveq", "number": "6.5.2:2", "link": "expressions.html#fls_aeh5pzpcjveq", "checksum": "9a5b1f7e7d7d38a721fe16a98b61e35a54dcc7c07d9828ea2e2248bef356dd07"}, {"id": "fls_9cc0ml2sru6x", "number": "6.5.2:3", "link": "expressions.html#fls_9cc0ml2sru6x", "checksum": "b7a8de951a21c65d72d8a668a0e505a25388b7e5a5e2e183d7b9f9e04269c213"}, {"id": "fls_8i4jzksxlrw0", "number": "6.5.2:4", "link": "expressions.html#fls_8i4jzksxlrw0", "checksum": "0340895fd04ae584ac9b90244a3650e4389de5b440519fcfbd43e90c2bf72e0f"}, {"id": "fls_d68ddlse4zp", "number": "6.5.2:5", "link": "expressions.html#fls_d68ddlse4zp", "checksum": "46cd3d16ac76ee2960c5568740cf587ad2c6ceed1218114e80c3a9bb47df7a63"}, {"id": "fls_g73vguanbs1x", "number": "6.5.2:6", "link": "expressions.html#fls_g73vguanbs1x", "checksum": "82ab49fac0f518382455ae1ff105c18fc25eac3f8ac00ffc53deff57a0b75dcc"}, {"id": "fls_8ibfqxtnahzx", "number": "6.5.2:7", "link": "expressions.html#fls_8ibfqxtnahzx", "checksum": "bdc85222a07f89578d68b14e06ee8d7f4e4cd516e7c70ceef67645f2d88b625b"}, {"id": "fls_7e7tka4f2f1a", "number": "6.5.2:8", "link": "expressions.html#fls_7e7tka4f2f1a", "checksum": "4b76624fefafbe89f67f9634f8671e9768189ba2be891749d2cae7f88061857f"}, {"id": "fls_y9bc691kkh6v", "number": "6.5.2:9", "link": "expressions.html#fls_y9bc691kkh6v", "checksum": "1f706d90689273d6cd3ac4319f378aef1bf50f62e07e0596cca8a78f8ef5e23f"}, {"id": "fls_gw49nukfveib", "number": "6.5.2:10", "link": "expressions.html#fls_gw49nukfveib", "checksum": "a7e8224d319471b493644e345b6551b79a0646cd520f3e10b8edf2bfec6a1f84"}, {"id": "fls_jjf3sz9ddfhy", "number": "6.5.2:11", "link": "expressions.html#fls_jjf3sz9ddfhy", "checksum": "5bd3c5f7bd491a7f42f8c2da78d2064ae8679d448dc019897996d49374b0e175"}, {"id": "fls_fyend8kkpqq4", "number": "6.5.2:12", "link": "expressions.html#fls_fyend8kkpqq4", "checksum": "a1370288ab9df6143029b28cc57c082c16176e3bc260e846bb35545f9fe1d8d5"}, {"id": "fls_72bpdsxxbgeq", "number": "6.5.2:13", "link": "expressions.html#fls_72bpdsxxbgeq", "checksum": "b22770ba76b69e3248df639840e98bc59ca865e515da69cc327b84d83d318b43"}, {"id": "fls_9wgldua1u8yt", "number": "6.5.2:14", "link": "expressions.html#fls_9wgldua1u8yt", "checksum": "1082cd3a0c4e2cab05c42e2cf9fcd73902c976d592285073adbf4663ec94947a"}, {"id": "fls_9ifaterm8nop", "number": "6.5.2:15", "link": "expressions.html#fls_9ifaterm8nop", "checksum": "e040c546fefcc0449ac185ee78ce0253f8a422a4152178bf19425f39082890c7"}], "informational": false}, {"id": "fls_pocsh1neugpc", "number": "6.5.3", "title": "Error Propagation Expression", "link": "expressions.html#error-propagation-expression", "paragraphs": [{"id": "fls_8q59wbumrt5s", "number": "6.5.3:1", "link": "expressions.html#fls_8q59wbumrt5s", "checksum": "23b7bdb3a6bc1804b5be08868bde733e2b7a97ae0804d7cbc06aea2b59fd6e1d"}, {"id": "fls_mq2h4seoxah", "number": "6.5.3:2", "link": "expressions.html#fls_mq2h4seoxah", "checksum": "c321eada04f83e7afc3cece805698fd21bfa268dd8753424a0c7a6659cf9987d"}, {"id": "fls_ab4vhq4nwn7f", "number": "6.5.3:3", "link": "expressions.html#fls_ab4vhq4nwn7f", "checksum": "4376b53a0608338ed35c699ced660ca17be38885f5a09a0ced75087fa8c069a9"}, {"id": "fls_z4zikxy2b1em", "number": "6.5.3:4", "link": "expressions.html#fls_z4zikxy2b1em", "checksum": "20839942bb00d91e6bb509c17f8e66b69b91f16691c9ab64b82c867f3ae550ff"}, {"id": "fls_a09614kgsspt", "number": "6.5.3:5", "link": "expressions.html#fls_a09614kgsspt", "checksum": "a7e8462f6f54586f7016c7be8dece9195cc5ffddcb493c00d9c08dcb1947b255"}, {"id": "fls_8df018q7y6g", "number": "6.5.3:6", "link": "expressions.html#fls_8df018q7y6g", "checksum": "f98b5452ecf7b2c43aecf121ed351e093743b91ca044e66b807228b56f80051e"}, {"id": "fls_alk4qvfprnvy", "number": "6.5.3:7", "link": "expressions.html#fls_alk4qvfprnvy", "checksum": "9694b3fa6f2fe93dc54f3037b9f53322423ad65d56ae4f6fc00870750dcb0919"}, {"id": "fls_1nnhjcgy8kdh", "number": "6.5.3:8", "link": "expressions.html#fls_1nnhjcgy8kdh", "checksum": "c3d4fd6b18a382defd7363f2c15d2f5d8517d65814a943df98884ccd5012b7e8"}], "informational": false}, {"id": "fls_wrecura8u5ar", "number": "6.5.4", "title": "Negation Expression", "link": "expressions.html#negation-expression", "paragraphs": [{"id": "fls_pfa81kv2mru8", "number": "6.5.4:1", "link": "expressions.html#fls_pfa81kv2mru8", "checksum": "af3d9baa2e989c7389736af89273f065db34e0a05d834471606dd19b2928db1d"}, {"id": "fls_plcut8vzdwox", "number": "6.5.4:2", "link": "expressions.html#fls_plcut8vzdwox", "checksum": "4f80e3b87fba67c8d18e93636623e678e1374f94eca9dc69a5534fae37565c34"}, {"id": "fls_ohu0kljfexd3", "number": "6.5.4:3", "link": "expressions.html#fls_ohu0kljfexd3", "checksum": "40bf9e05f58749baa5c051ffb2c5e5f8305e58040cd7962de9ad7e669a433737"}, {"id": "fls_ghqvj8q71o97", "number": "6.5.4:4", "link": "expressions.html#fls_ghqvj8q71o97", "checksum": "c83826e3c7c0a48c572c71ec116e3678b134a80964cb0ded4dee83772bf37e4a"}, {"id": "fls_3m4mgqnzqhri", "number": "6.5.4:5", "link": "expressions.html#fls_3m4mgqnzqhri", "checksum": "f58980cc43c3a695e066d1fb882e84d2936c9fc0a9199a672a18e2c278af8165"}, {"id": "fls_u7gzm6n75rzm", "number": "6.5.4:6", "link": "expressions.html#fls_u7gzm6n75rzm", "checksum": "b610ac74d0d701146031a0ac67bb95dd11a032f059a4c2c7e7b2fd03bc2dd5d1"}, {"id": "fls_9rmq7iaf092d", "number": "6.5.4:7", "link": "expressions.html#fls_9rmq7iaf092d", "checksum": "afd2c64f1c23556dffbaa7b63b76751e5b52d1c9ea207d1c640cdec6d97bbd57"}, {"id": "fls_yzt6pcsvj3a", "number": "6.5.4:8", "link": "expressions.html#fls_yzt6pcsvj3a", "checksum": "e14bc33ac51819c14cf0968eead2fd2eb5cb0c7027e5b0b9bcf7ce69add7edbb"}, {"id": "fls_8tgxtprtifrr", "number": "6.5.4:9", "link": "expressions.html#fls_8tgxtprtifrr", "checksum": "f63fca54c6f85459e84fdb4b1ce37d60655697a990bf2eae4b9bea18af1a3f15"}, {"id": "fls_rfflt33a5rsz", "number": "6.5.4:10", "link": "expressions.html#fls_rfflt33a5rsz", "checksum": "b3e235b910132fd26dffacdb2bad28a792618698a524bd1dd1a6be6065711fa2"}, {"id": "fls_h7pil1wz8y2t", "number": "6.5.4:11", "link": "expressions.html#fls_h7pil1wz8y2t", "checksum": "2c69bf1f447be7c6df6d51e2133843f0d576ab8a81ceb6e4f855ee26ff691a2a"}, {"id": "fls_yfk3pghzuo3x", "number": "6.5.4:12", "link": "expressions.html#fls_yfk3pghzuo3x", "checksum": "caaeeebd8c8b53c85a4aad7b3c42754cdc3a758b53183433bb57e22937db33f5"}, {"id": "fls_dcntglq2hrzb", "number": "6.5.4:13", "link": "expressions.html#fls_dcntglq2hrzb", "checksum": "a9d1fe3dff0cedd21947b255165dadfcf588c30c40a43c6e6ba0c3ec8e196f23"}, {"id": "fls_sxlwuits62sn", "number": "6.5.4:14", "link": "expressions.html#fls_sxlwuits62sn", "checksum": "6904a946fe2693b6f425ca86a92fede53c0fe6cecc8598127afffce5d7e62417"}, {"id": "fls_gn3dnuxm2h8m", "number": "6.5.4:15", "link": "expressions.html#fls_gn3dnuxm2h8m", "checksum": "aa3cfae510c0f630768b3fdad3056728d6d46645a5e5bc33ed5aae965d9e8029"}, {"id": "fls_tsou6yz4mfte", "number": "6.5.4:16", "link": "expressions.html#fls_tsou6yz4mfte", "checksum": "ff435742ce6e2e0ff8240946adf104bd9fcb520098854aa859d04c41ea02d3c0"}, {"id": "fls_zdfgqky85r1f", "number": "6.5.4:17", "link": "expressions.html#fls_zdfgqky85r1f", "checksum": "4bcd968eda46af59fcb1ea1f55864281f8b0cde92d38561595d95b4e9ac3dd07"}, {"id": "fls_cutpacfcghqs", "number": "6.5.4:18", "link": "expressions.html#fls_cutpacfcghqs", "checksum": "edfa0f8419b3a73e3ff24890c87fd1fd92c6dc6d8818c3fcce02ab05b6c8c1ab"}, {"id": "fls_b2ekgwajhfkd", "number": "6.5.4:19", "link": "expressions.html#fls_b2ekgwajhfkd", "checksum": "c8effecc440dcf91f96f42e0f04584a5610c1561c24791e2c23b26be12ab80d9"}, {"id": "fls_uldh10k77sng", "number": "6.5.4:20", "link": "expressions.html#fls_uldh10k77sng", "checksum": "8220fff5ef4bb72a0a7dc8f99cfe17f5e5aad6d75e146b2f33ed793b920e580c"}, {"id": "fls_uo6vv2yf8usx", "number": "6.5.4:21", "link": "expressions.html#fls_uo6vv2yf8usx", "checksum": "a643ba42ae84b70ad7aa7f9e7f43587505202b559c0101e5a40a6823d243e69f"}, {"id": "fls_hbrg0d98jak5", "number": "6.5.4:22", "link": "expressions.html#fls_hbrg0d98jak5", "checksum": "7de9ba1051942b5d4a885fe293560881297b7f87eb22ce3a2900d5c4dddb0326"}, {"id": "fls_kqtr9c3jorvg", "number": "6.5.4:23", "link": "expressions.html#fls_kqtr9c3jorvg", "checksum": "5b41d324bf22e4bf196369e2e07e6371340536763b0d1ba7370c3b9ce1e1a3a4"}], "informational": false}, {"id": "fls_1k9mkv7rbezi", "number": "6.5.5", "title": "Arithmetic Expressions", "link": "expressions.html#arithmetic-expressions", "paragraphs": [{"id": "fls_asibqpe3z95h", "number": "6.5.5:1", "link": "expressions.html#fls_asibqpe3z95h", "checksum": "b0a840a217c602a32cf2e1de752852f1c490c0319cf7abad57d81b59e98690c6"}, {"id": "fls_kr8opj3c7uvb", "number": "6.5.5:2", "link": "expressions.html#fls_kr8opj3c7uvb", "checksum": "7d12112b7a06954bb102320e6b09a084143173d1e444b53abae9c5fccccf151a"}, {"id": "fls_8imzo7agyx0k", "number": "6.5.5:3", "link": "expressions.html#fls_8imzo7agyx0k", "checksum": "46e89deb7d936eb2f027aa97f89cfc72b95b5306f81da17435cd5da27b51a05d"}, {"id": "fls_vk17mfv47wk9", "number": "6.5.5:4", "link": "expressions.html#fls_vk17mfv47wk9", "checksum": "088bf6586c416b8d73b9bfa95d095905a510685c6833c5e231abb1553f25ba1f"}, {"id": "fls_ryzhdpxgm7ii", "number": "6.5.5:5", "link": "expressions.html#fls_ryzhdpxgm7ii", "checksum": "5138acfb60759a1f7d1612cce1be84b6ac9130f47b5c8d8d88bc1f7fa0699d8c"}, {"id": "fls_dstca76y08ge", "number": "6.5.5:6", "link": "expressions.html#fls_dstca76y08ge", "checksum": "c6aae217015f2015f44b8e8dd7508277c0d50120b59d841ff0bde78814a6b441"}, {"id": "fls_f1puss9t4btz", "number": "6.5.5:7", "link": "expressions.html#fls_f1puss9t4btz", "checksum": "c84f922867411ee27c2da0f8d55a04f3f4d18514100b2ddc009d42f43f232702"}, {"id": "fls_5rdrkvspw57z", "number": "6.5.5:8", "link": "expressions.html#fls_5rdrkvspw57z", "checksum": "ff004ef562c5a5b41f9f7107ffdbbeaec5b9a4f9e5dbfae68f63162161d2e595"}, {"id": "fls_thyq4h55mx55", "number": "6.5.5:9", "link": "expressions.html#fls_thyq4h55mx55", "checksum": "9a473e780a8fde1608816f5ffbb7b41a753411ca82e0752b8963a1997ab35638"}, {"id": "fls_kf41bphvlse3", "number": "6.5.5:10", "link": "expressions.html#fls_kf41bphvlse3", "checksum": "f9820d8865637e75d0948c7fc41784afa25e79d0df7479395cdc2e53e968549d"}, {"id": "fls_hrml95g2txcj", "number": "6.5.5:11", "link": "expressions.html#fls_hrml95g2txcj", "checksum": "2b94a36c8d16c7f222b29a99dbbaca845c851d263d6323bb9ae6717955d14294"}, {"id": "fls_ittf4yggk7do", "number": "6.5.5:12", "link": "expressions.html#fls_ittf4yggk7do", "checksum": "3bc776fd70017a15281d825de3a03c484a509ed361cfb8e529f3a23268837e0b"}, {"id": "fls_ylqm6wucq2sw", "number": "6.5.5:13", "link": "expressions.html#fls_ylqm6wucq2sw", "checksum": "c8ccb208ad9374a8fa9ac34680b8e8ce1fc4e958169b4470ef74cc9cd4116772"}, {"id": "fls_3de9ulyzuoa", "number": "6.5.5:14", "link": "expressions.html#fls_3de9ulyzuoa", "checksum": "40ba6bc4bf5bc64bbf7bdfb7c5bb2be20c50a808893a34a661e9d1453659455f"}, {"id": "fls_8fbhreyynhid", "number": "6.5.5:15", "link": "expressions.html#fls_8fbhreyynhid", "checksum": "3b601294fdc29f47f2d5ea41a53e52158852777635e4e18a61e75b50b4de6e21"}, {"id": "fls_u3jwnrqun5kl", "number": "6.5.5:16", "link": "expressions.html#fls_u3jwnrqun5kl", "checksum": "d5668e3304bc1aac1a9ad7af00aa04e0bab58efad11cd1aee9b877a2ef767129"}, {"id": "fls_2ude3wrxji2p", "number": "6.5.5:17", "link": "expressions.html#fls_2ude3wrxji2p", "checksum": "a801683b49252019ce410e48c11333d669a2e57b9117c6704ffc4f631d98c802"}, {"id": "fls_aalxhbvu8kdi", "number": "6.5.5:18", "link": "expressions.html#fls_aalxhbvu8kdi", "checksum": "bc454d1b317c9bc88ad24d821d1e58f9bb10101e1f3e45c7a547cbf1897358a5"}, {"id": "fls_fjcv1nm8tlgf", "number": "6.5.5:19", "link": "expressions.html#fls_fjcv1nm8tlgf", "checksum": "11788f05059c59c58cc708654df290bdcff239b6a6b7a3b84598208a77c99b92"}, {"id": "fls_9x2i1zlsm364", "number": "6.5.5:20", "link": "expressions.html#fls_9x2i1zlsm364", "checksum": "eca372870d1bb0bc4b820ac177e1b3b7998233a674e7b8397e72d4be23ab0170"}, {"id": "fls_v8vekngd27sz", "number": "6.5.5:21", "link": "expressions.html#fls_v8vekngd27sz", "checksum": "af587b33a56e6a0002edb893987596f76450639deab12d69c665eba6f4bb5f89"}, {"id": "fls_5nsa9zefz9cv", "number": "6.5.5:22", "link": "expressions.html#fls_5nsa9zefz9cv", "checksum": "17701cdba21c6e0baca8f595115ec320e5814b7d0382db5afd011e4815284d9d"}, {"id": "fls_u3pstd6xe43y", "number": "6.5.5:23", "link": "expressions.html#fls_u3pstd6xe43y", "checksum": "ae993e16ae5bc5ab9b01feb24dcc0507bcdfa1575b222fb56cc069f149fb55a2"}, {"id": "fls_jjmc1xgny77", "number": "6.5.5:24", "link": "expressions.html#fls_jjmc1xgny77", "checksum": "73f75644381d149ce6f4e854dd91d95133658735ed4344352f260f806357124a"}, {"id": "fls_nclf4o1dpnis", "number": "6.5.5:25", "link": "expressions.html#fls_nclf4o1dpnis", "checksum": "719727efa5d31656dd271a750d883da510fd0dc91a365c055995293e5f4b1d8f"}, {"id": "fls_cayhj5hcuhcg", "number": "6.5.5:26", "link": "expressions.html#fls_cayhj5hcuhcg", "checksum": "fc135beb54169cc69ddc3205939375bc09adf919e1015819ef3c4d508636e056"}, {"id": "fls_43knkymqpj7t", "number": "6.5.5:27", "link": "expressions.html#fls_43knkymqpj7t", "checksum": "45d80850a6d4d455e0d832ccecc3f62d2cebab16d21c41babb61a0500e491507"}, {"id": "fls_62gpbubfj30w", "number": "6.5.5:28", "link": "expressions.html#fls_62gpbubfj30w", "checksum": "64f326ea0a4ae3117a4678bc9f29eb8da3ffea2053d4d4b342158d5de10d3751"}, {"id": "fls_bveocgaagk1n", "number": "6.5.5:29", "link": "expressions.html#fls_bveocgaagk1n", "checksum": "4eb93bef00f0c77a5e6ded4b73a4411de3d1597f25e03442d385e8953d179f60"}, {"id": "fls_zlrozh43motn", "number": "6.5.5:30", "link": "expressions.html#fls_zlrozh43motn", "checksum": "c1f131262cc203adffef07cdfd70f939f8e44411b208a3a26e4a8dce1179ae53"}, {"id": "fls_q9dhniicgifr", "number": "6.5.5:31", "link": "expressions.html#fls_q9dhniicgifr", "checksum": "064cfcf4cae6ce4f05d3725a102c1dcef135894bd8cb96bdb7429edfb31ecb0a"}, {"id": "fls_albblstytmyq", "number": "6.5.5:32", "link": "expressions.html#fls_albblstytmyq", "checksum": "70fac8b1be1736648aaaa9fee2cab2c655084d862482bc22f6e296c2ab467a7d"}, {"id": "fls_qd6ggdgq2hob", "number": "6.5.5:33", "link": "expressions.html#fls_qd6ggdgq2hob", "checksum": "6fd272034cea2fe81833c14eaafe524e4a0767be0c73c47320bcf29b97784202"}, {"id": "fls_lr2a21v5en59", "number": "6.5.5:34", "link": "expressions.html#fls_lr2a21v5en59", "checksum": "d0809b66e9fdbbcf0f3f653dea3e490c17584873374daea4e4ca8cf7fb66ab6f"}, {"id": "fls_kpbxcdaflb06", "number": "6.5.5:35", "link": "expressions.html#fls_kpbxcdaflb06", "checksum": "c2e708f49bc1463e1f2c04def2f0b217a259a1886909d4af2b6e4abd63af421d"}, {"id": "fls_b94ojbfukhvd", "number": "6.5.5:36", "link": "expressions.html#fls_b94ojbfukhvd", "checksum": "f678eed2b8bac9c6c67c93c05c9b053cceef52d72d84258ec037eba8a69da58d"}, {"id": "fls_et5gp1i7vqbx", "number": "6.5.5:37", "link": "expressions.html#fls_et5gp1i7vqbx", "checksum": "f146d32e9238902885a1de2e40322ffbe37f7d482221f3f29f09cd74aa10c986"}, {"id": "fls_blyr18iao20n", "number": "6.5.5:38", "link": "expressions.html#fls_blyr18iao20n", "checksum": "76949da2fa0e9cc8e7cb9df9af458fb19d53b951678809db92d05e00586ab885"}, {"id": "fls_g28igfbnwfe0", "number": "6.5.5:39", "link": "expressions.html#fls_g28igfbnwfe0", "checksum": "84f604c240681edd7b71b1d29ef8b66a81b3f921feeefd7649950dad7829b18f"}, {"id": "fls_thcumw8n8xbw", "number": "6.5.5:40", "link": "expressions.html#fls_thcumw8n8xbw", "checksum": "5e2ecaea3a29c5b97b9c76aec758b093b55aca3e89a8ecefee9b691d736ee6cc"}, {"id": "fls_gld1u9fnsj6d", "number": "6.5.5:41", "link": "expressions.html#fls_gld1u9fnsj6d", "checksum": "4150ec47e0d0420937471ef411fcb589a50cf6da2b820a72bd39f3be021962f2"}, {"id": "fls_kdr6flrrj0du", "number": "6.5.5:42", "link": "expressions.html#fls_kdr6flrrj0du", "checksum": "3dde9ea78a683c92e2324df8e9c8250ce8017e6273b1110e6b3c1dd01cb638eb"}, {"id": "fls_fxlnxegt2n9u", "number": "6.5.5:43", "link": "expressions.html#fls_fxlnxegt2n9u", "checksum": "ddc0c2dfbe1023732c1d00d8ee8a8a13a6ef3fb5f2ec27bf3af56f0f356621d5"}, {"id": "fls_kn0hnldvdxsg", "number": "6.5.5:44", "link": "expressions.html#fls_kn0hnldvdxsg", "checksum": "8ad1f5e38027cf5c40e9d6661d275b0c692946ecbe2be3ff598372545ab1ce72"}, {"id": "fls_k7lmxvpkxtub", "number": "6.5.5:45", "link": "expressions.html#fls_k7lmxvpkxtub", "checksum": "797469b1ee10b81ac9f4dd20b9f7943570bca6e9aed0f4c09efb4082502be292"}, {"id": "fls_bndpd66973ev", "number": "6.5.5:46", "link": "expressions.html#fls_bndpd66973ev", "checksum": "cafca8e7b36d756680e784bde8ddc838c4cd8196bd1331ba9e9d82dcaf5944d9"}, {"id": "fls_izmfimd4yg27", "number": "6.5.5:47", "link": "expressions.html#fls_izmfimd4yg27", "checksum": "a133ac246b8483e2376fb2e7ff45933a4d073cc42b2f5b2693c18610ab982cb6"}, {"id": "fls_ad9tc6ki8vcq", "number": "6.5.5:48", "link": "expressions.html#fls_ad9tc6ki8vcq", "checksum": "1bab9420ecb10646e486e92a21e7c194eff5c4c1351ae11ba919d46aa9e8a427"}, {"id": "fls_vy0dyzqfy7iv", "number": "6.5.5:49", "link": "expressions.html#fls_vy0dyzqfy7iv", "checksum": "df45cf4e04324577c2dcfa776a8bf7431fe98c041a2defa2c83564f63f38542c"}, {"id": "fls_b9g0r9vc4rou", "number": "6.5.5:50", "link": "expressions.html#fls_b9g0r9vc4rou", "checksum": "5ab58ebe71cc5ede6b8c87248178f2659e27187f857007d8c683d25510b4c2b6"}], "informational": false}, {"id": "fls_abp6tjbz8tpn", "number": "6.5.6", "title": "Bit Expressions", "link": "expressions.html#bit-expressions", "paragraphs": [{"id": "fls_3zd59yuywz6l", "number": "6.5.6:1", "link": "expressions.html#fls_3zd59yuywz6l", "checksum": "84a0bfe9ca4706b367c7fc61ce97d41de1f5b9c8fa6d17d06583fd15bddd1fd3"}, {"id": "fls_f6mmva3lbj1i", "number": "6.5.6:2", "link": "expressions.html#fls_f6mmva3lbj1i", "checksum": "2818a1e523dc8c69e39862ea386fbbab5b2558456ad985671a97f66bd39587ca"}, {"id": "fls_cmowpfrcelke", "number": "6.5.6:3", "link": "expressions.html#fls_cmowpfrcelke", "checksum": "05fc18fab6da50fb7b2ec1ed8dbdef6ab1d54584dd67eb283424ad2fdd5b1d8d"}, {"id": "fls_kchprk9z6xun", "number": "6.5.6:4", "link": "expressions.html#fls_kchprk9z6xun", "checksum": "170079796be6e0d966919640fafbf7d613f2a3d98177e61149106bfbff315c2b"}, {"id": "fls_dimu987fw4kg", "number": "6.5.6:5", "link": "expressions.html#fls_dimu987fw4kg", "checksum": "053daf5a48155d9e3cc897400be3ef219ceba7963682f22e7aab2a9aa6831550"}, {"id": "fls_3136k1y6x3cu", "number": "6.5.6:6", "link": "expressions.html#fls_3136k1y6x3cu", "checksum": "303e9f2d1f84be7d40c47e5d8f5742d86856b0d3b15cc3324195a698e9ee7c0f"}, {"id": "fls_oo2ynd8e1ys6", "number": "6.5.6:7", "link": "expressions.html#fls_oo2ynd8e1ys6", "checksum": "952cc40d099771b8eed28464bba01b8eb07d87d3aefd4d8e2615dcb9e0cffe8e"}, {"id": "fls_s6hkt5fg598y", "number": "6.5.6:8", "link": "expressions.html#fls_s6hkt5fg598y", "checksum": "ba39428a77c8298ec6d00dde55b54582b28fe2b591511d210c070eeead4f4703"}, {"id": "fls_osfse0t6ua8a", "number": "6.5.6:9", "link": "expressions.html#fls_osfse0t6ua8a", "checksum": "9dc068ab4f8ff1b86dee141016ae1c63df167f7b1a49de56303ace2d27e01480"}, {"id": "fls_j7ujcuthga1i", "number": "6.5.6:10", "link": "expressions.html#fls_j7ujcuthga1i", "checksum": "c0cf0a0884aaca56ec02fa11b697bba3c0be007b60befe09c8aebf753f176f71"}, {"id": "fls_fnywefl9nty2", "number": "6.5.6:11", "link": "expressions.html#fls_fnywefl9nty2", "checksum": "da193f8b1e127e029668399614ca332e6b587d0a8f272fb73bbf8edfc6cb0d1e"}, {"id": "fls_4f24nyx0ix0j", "number": "6.5.6:12", "link": "expressions.html#fls_4f24nyx0ix0j", "checksum": "b7308da6bd3cbce68c8acf223b36da8dd80bd6349300ea6f5c635c5ab44eb79c"}, {"id": "fls_8tb22c6zbp3", "number": "6.5.6:13", "link": "expressions.html#fls_8tb22c6zbp3", "checksum": "81582d3dd591be4afd63d14a8950ba0a7886253bc28a6ebdc004af9fda39ce65"}, {"id": "fls_caxn774ij8lk", "number": "6.5.6:14", "link": "expressions.html#fls_caxn774ij8lk", "checksum": "8493aa842fe4a83a4314ce4c5cfdcbc4004dbede23f86bc0726b3cbdce0eea6a"}, {"id": "fls_1f4pc612f2a8", "number": "6.5.6:15", "link": "expressions.html#fls_1f4pc612f2a8", "checksum": "5b928c6c679fee56921ceea7439472b9fab36f828c42e529bf0fc44e4a8b12f5"}, {"id": "fls_8trozue35xe4", "number": "6.5.6:16", "link": "expressions.html#fls_8trozue35xe4", "checksum": "ad2526669f50751a7b918a4cddeb2300641acf4b2395f4a1a01df29469e7da7f"}, {"id": "fls_kqntxbwnc58v", "number": "6.5.6:17", "link": "expressions.html#fls_kqntxbwnc58v", "checksum": "dc895b6a59e6aa619431f0f93958d1527008c560c57242167f44385670ac0774"}, {"id": "fls_t709sl4co3al", "number": "6.5.6:18", "link": "expressions.html#fls_t709sl4co3al", "checksum": "426a9a0ea02cbdf9f6ab017e8d01561de18f041ef2783074463ed902da9419a1"}, {"id": "fls_onutb0b9p9zj", "number": "6.5.6:19", "link": "expressions.html#fls_onutb0b9p9zj", "checksum": "8086917758b14703edbbbf5a445239563fb866350442477479028fab06da0367"}, {"id": "fls_yq8rtwfp3nv0", "number": "6.5.6:20", "link": "expressions.html#fls_yq8rtwfp3nv0", "checksum": "bd305b6ab372b8e874fac3c5a5d7d59ba805cda093af356e1d23ed3bfd23eca5"}, {"id": "fls_fbazfgd5m1ot", "number": "6.5.6:21", "link": "expressions.html#fls_fbazfgd5m1ot", "checksum": "2a93c4b43a488a8715a6346277d3a51967273030d0229e7fec4dbbe3e22cc0b0"}, {"id": "fls_f4o8xlu67okn", "number": "6.5.6:22", "link": "expressions.html#fls_f4o8xlu67okn", "checksum": "94ec1672b5572a206805a5f17f131b2a11dd24534874144bc815364ac11611a3"}, {"id": "fls_kp747xqekyrr", "number": "6.5.6:23", "link": "expressions.html#fls_kp747xqekyrr", "checksum": "53b4736dd567176d0f358e1d043c68e4e7b7ba30fdd04e2c5d27f0cbbf2bbd7a"}, {"id": "fls_m0pdk78dah6n", "number": "6.5.6:24", "link": "expressions.html#fls_m0pdk78dah6n", "checksum": "1651f680538ff44533e1024e0f14e3ad9c52d51916584a4901382c966fe46187"}, {"id": "fls_m2hsk41hwm2j", "number": "6.5.6:25", "link": "expressions.html#fls_m2hsk41hwm2j", "checksum": "15ed30a8258ed67352118ef07799071f10a8c36492ecfb2f87f7309bbece175c"}, {"id": "fls_p9rlmjhbnbao", "number": "6.5.6:26", "link": "expressions.html#fls_p9rlmjhbnbao", "checksum": "c598c63b8ad76764d80ce8990c8e92a0a204169649bbe024ea2823b4bbe90baf"}, {"id": "fls_vprp53kv64q6", "number": "6.5.6:27", "link": "expressions.html#fls_vprp53kv64q6", "checksum": "fae86360a1b7d2d77fbbc4365c5e99fbf0ed4a4fcac2256690e7c3d50bbff467"}, {"id": "fls_d456ummq6vrk", "number": "6.5.6:28", "link": "expressions.html#fls_d456ummq6vrk", "checksum": "31252eaded45baa2ec5ff1465a0523416c26773b13a971aeca24c9f54a1ff1fa"}, {"id": "fls_n269ufyesndz", "number": "6.5.6:29", "link": "expressions.html#fls_n269ufyesndz", "checksum": "537cc3ef62eb6da99fd065eb8f9f9876eb47dfe3405d33c7b4e02a9dedc27559"}, {"id": "fls_i9iqtobheivu", "number": "6.5.6:30", "link": "expressions.html#fls_i9iqtobheivu", "checksum": "7c1f43885f0acb0412658c413bc3e27945ab92404fde60121712fc4b1b414a64"}, {"id": "fls_htw2tpujktwt", "number": "6.5.6:31", "link": "expressions.html#fls_htw2tpujktwt", "checksum": "4263fb211a3cf3f26ebc3048404cb784bfcdb6e89e7b8c3509d9bade52286fa2"}, {"id": "fls_gf9tyu1idpjk", "number": "6.5.6:32", "link": "expressions.html#fls_gf9tyu1idpjk", "checksum": "e23d86a834fd2dc7ebe1e6d37fc6932e7ecb671e5814d5513513d720e300795e"}, {"id": "fls_u5irwqswbsvu", "number": "6.5.6:33", "link": "expressions.html#fls_u5irwqswbsvu", "checksum": "94cf2ccd91455de09c6784e79c76de895f6d11481f8ba1d2c6343e06bfc3dc6b"}, {"id": "fls_2kkpr955i4lm", "number": "6.5.6:34", "link": "expressions.html#fls_2kkpr955i4lm", "checksum": "26b785a04cf74035de814d871a9df90c21744413f8775bf806fd138b7504702f"}, {"id": "fls_7p64lgnjxylz", "number": "6.5.6:35", "link": "expressions.html#fls_7p64lgnjxylz", "checksum": "8d85229b2eb69a1cb33e8b332567f95078b56f70367895493bb53b3da0931f5c"}, {"id": "fls_ieh1itrkcnf6", "number": "6.5.6:36", "link": "expressions.html#fls_ieh1itrkcnf6", "checksum": "a9e77d70b03d9ad5d13456e3b4ea3a9a40479bd0354018ceb716a20e5f0f6c29"}, {"id": "fls_f0p70y92k14f", "number": "6.5.6:37", "link": "expressions.html#fls_f0p70y92k14f", "checksum": "a8f62a13fd083f51c1a97aacc86e5c2ae2535fa2d41f0fe1aa07fdad41fc9654"}, {"id": "fls_303r0u6ug215", "number": "6.5.6:38", "link": "expressions.html#fls_303r0u6ug215", "checksum": "9ba04ea8d40c1a25a4642aed3c24bc53d56619c51958bd4387bf76dbd994ca14"}, {"id": "fls_4gxj18t6cnzq", "number": "6.5.6:39", "link": "expressions.html#fls_4gxj18t6cnzq", "checksum": "df76cca7b83071a4072c0bcd99560eedf1d831230c5514f371df536f276f60e9"}, {"id": "fls_gurl2ve58drz", "number": "6.5.6:40", "link": "expressions.html#fls_gurl2ve58drz", "checksum": "e5cdfefed3d182d5a193d06aa0c5b4d2b467c3186aa0cfba1bb680a1f789e7a7"}, {"id": "fls_xkyj83mcb9d5", "number": "6.5.6:41", "link": "expressions.html#fls_xkyj83mcb9d5", "checksum": "bd4c2c6af9a1f85023152aba188338a4a680bbc0411316984bea4e286394de58"}], "informational": false}, {"id": "fls_nsvzzbldhq53", "number": "6.5.7", "title": "Comparison Expressions", "link": "expressions.html#comparison-expressions", "paragraphs": [{"id": "fls_yzuceqx6nxwa", "number": "6.5.7:1", "link": "expressions.html#fls_yzuceqx6nxwa", "checksum": "9d05d4defa794088d8cb55f8f3dc1300dc4a1e8881df85cc8431e6b4bc9c6491"}, {"id": "fls_asfrqemqviad", "number": "6.5.7:2", "link": "expressions.html#fls_asfrqemqviad", "checksum": "2a968cd3870a6603c37177067762adc544e4e07ad6b804a2c2aab38ae902eccf"}, {"id": "fls_9s4re3ujnfis", "number": "6.5.7:3", "link": "expressions.html#fls_9s4re3ujnfis", "checksum": "8026571732f9f6267928a67e769b7dd425f07122736917f16cee06caacc37f28"}, {"id": "fls_ruyho6cu7rxg", "number": "6.5.7:4", "link": "expressions.html#fls_ruyho6cu7rxg", "checksum": "f9b985b336990cc31ae368d531d7c4ea08e1aa780e9d702aeadd46e677aff9d9"}, {"id": "fls_8echqk9po1cf", "number": "6.5.7:5", "link": "expressions.html#fls_8echqk9po1cf", "checksum": "ce0053741951cdd2317168496b52090a75e5599bf46bb0b35ae36c85311c1ae9"}, {"id": "fls_d62qfloqk2ub", "number": "6.5.7:6", "link": "expressions.html#fls_d62qfloqk2ub", "checksum": "be7491a2b9729f338f90e0d71cdf9327852297b9681bdeb1fcdcbd07f3a42e9e"}, {"id": "fls_wapl0ir7uvbp", "number": "6.5.7:7", "link": "expressions.html#fls_wapl0ir7uvbp", "checksum": "d6831a752e2853991b540a6f71184363bd1495dcc4b3d792cc390c0e46566584"}, {"id": "fls_x2s6ydvj5zyd", "number": "6.5.7:8", "link": "expressions.html#fls_x2s6ydvj5zyd", "checksum": "a8d5305ac628e58fe4ccbd9c03c6a69b6c8fe5f5fb5849aca647efffba438ed3"}, {"id": "fls_pso38dowbk91", "number": "6.5.7:9", "link": "expressions.html#fls_pso38dowbk91", "checksum": "75c0bf567470cc284caa31e9a7cedafdab95750ec0c3d4493082eb5ae7390ec4"}, {"id": "fls_7n5gol6a8lod", "number": "6.5.7:10", "link": "expressions.html#fls_7n5gol6a8lod", "checksum": "ef1a2911b0a4a2bd1fc9f0ead5a226ba5699ae02b2dcd42ecabdf631202d784e"}, {"id": "fls_hholzcbp5u3n", "number": "6.5.7:11", "link": "expressions.html#fls_hholzcbp5u3n", "checksum": "0c6bb79a3001d63bf961a7f98a2b350801a2eee43c89c0af2af810b535fee371"}, {"id": "fls_wytygse41vzm", "number": "6.5.7:12", "link": "expressions.html#fls_wytygse41vzm", "checksum": "710411bab59ddc74d93bd9ff61bb2d8646a61f62f3bde811cf3d41bd58366173"}, {"id": "fls_yd4qqi39w248", "number": "6.5.7:13", "link": "expressions.html#fls_yd4qqi39w248", "checksum": "13bbc37a51d96873f70deac55cdbabc1b905394b23a3972b2c0551da7e10a040"}, {"id": "fls_ynibdcke3etb", "number": "6.5.7:14", "link": "expressions.html#fls_ynibdcke3etb", "checksum": "b2fe01f1e7bd73ec40381b1feffe64d54c4a73adf9833a8973e8545b4a22735a"}, {"id": "fls_xmtxkit3qpw7", "number": "6.5.7:15", "link": "expressions.html#fls_xmtxkit3qpw7", "checksum": "5c1c6dbb92fa6d031c159a452bc02516ab56200edd7b1829912ab9e1dedf582c"}, {"id": "fls_yxwe1o27u6ns", "number": "6.5.7:16", "link": "expressions.html#fls_yxwe1o27u6ns", "checksum": "aa2489e740ac7fa0927e1ebf58ee7859f6c7fcb1c27a1fed065269e34d58945b"}, {"id": "fls_6dgfieyxdan0", "number": "6.5.7:17", "link": "expressions.html#fls_6dgfieyxdan0", "checksum": "4246d899aae58ccec5761931073223131d6bb1fdfbead0fe71e27bac795785dd"}, {"id": "fls_7pfsqby2saag", "number": "6.5.7:18", "link": "expressions.html#fls_7pfsqby2saag", "checksum": "71f44b658d5f60358888166477d893099556625a56856efc9601af1b23ee44da"}, {"id": "fls_w71j7i3n1kit", "number": "6.5.7:19", "link": "expressions.html#fls_w71j7i3n1kit", "checksum": "8974278dc5b60a16754de7eb076364e82284313e621b4c49992c20c6a9c63ae1"}, {"id": "fls_qzo1torhv5i3", "number": "6.5.7:20", "link": "expressions.html#fls_qzo1torhv5i3", "checksum": "8aa4fbe8cdd3993316bc9797d2e9c0eae2606dcf347454c5e8420d364eb6db51"}, {"id": "fls_kodwkh58hmdv", "number": "6.5.7:21", "link": "expressions.html#fls_kodwkh58hmdv", "checksum": "61a081ab60d564acf7dac7b48da5bf545566ae3c1c82613770c74aa2155c8be7"}, {"id": "fls_ydt9zvh0h5ex", "number": "6.5.7:22", "link": "expressions.html#fls_ydt9zvh0h5ex", "checksum": "0881ded68a87d9c91315127f344b19aa1c1ba7a415be695e64255be1cd5f14dd"}, {"id": "fls_4vbrc31r0o60", "number": "6.5.7:23", "link": "expressions.html#fls_4vbrc31r0o60", "checksum": "e9d81054725f03fed4f879928978ad1c981033f08f7d0018ee97c430cd1526ed"}, {"id": "fls_hyy974ksbbrq", "number": "6.5.7:24", "link": "expressions.html#fls_hyy974ksbbrq", "checksum": "dcc537a9126843947883cb7463f2aa089ffdb70c3ce806d15282d128254e00ce"}, {"id": "fls_htrjqxiv3avh", "number": "6.5.7:25", "link": "expressions.html#fls_htrjqxiv3avh", "checksum": "790b5f2286f9006f773c5cee8a79277c939604dbc045305f68dba735d4a8fab3"}, {"id": "fls_1udbc4aom6ok", "number": "6.5.7:26", "link": "expressions.html#fls_1udbc4aom6ok", "checksum": "ffdd939b68f5c1dc9c76bb481300346a0b76d4c1af150b24ba7a6ca40f85db37"}, {"id": "fls_96mt7gx5ogo0", "number": "6.5.7:27", "link": "expressions.html#fls_96mt7gx5ogo0", "checksum": "9c5002f8931d3abbba38e2af25c9e26fde9574a782a54098d5c7b21336a27cd7"}, {"id": "fls_or0i2cqxwl8o", "number": "6.5.7:28", "link": "expressions.html#fls_or0i2cqxwl8o", "checksum": "1f09a7d5f20dfa920da6816904f1d9a952d7223cadcbd1a2e02bc92e2eb8b6e5"}, {"id": "fls_udnhkbxpk83m", "number": "6.5.7:29", "link": "expressions.html#fls_udnhkbxpk83m", "checksum": "b26f1ae4bb9ca5706067a0dc7fcc96ff7d0a837066c3103acdef5036c0c54662"}, {"id": "fls_mab6yirx77zl", "number": "6.5.7:30", "link": "expressions.html#fls_mab6yirx77zl", "checksum": "d7ad85bcfcd0d633bf1608e3af7008ca9e2f70b1bb1f98771a1ec739acb3b24f"}, {"id": "fls_2ggb7a7nhrk9", "number": "6.5.7:31", "link": "expressions.html#fls_2ggb7a7nhrk9", "checksum": "0575886e7dc22f4c493b7d181fe07b8cadec4b14adea5fce90f5cded24a50f61"}, {"id": "fls_ukm97arfzsk1", "number": "6.5.7:32", "link": "expressions.html#fls_ukm97arfzsk1", "checksum": "227845ddcd0a132d50d7dd61e7a564d46335b6a22d2ce74a288f7d9200ae7c54"}, {"id": "fls_wrftg7onlkmm", "number": "6.5.7:33", "link": "expressions.html#fls_wrftg7onlkmm", "checksum": "0ea88b20932e8a1ac321f37c0f71648e487ba64d4a8a174357f45c0a361a030b"}, {"id": "fls_irlqykpbtvd", "number": "6.5.7:34", "link": "expressions.html#fls_irlqykpbtvd", "checksum": "fc5c6a6f5d2c2fbd69a96faa707b88b69a02ec46f571e54abbba5b94262db700"}, {"id": "fls_udonl4c7f6pz", "number": "6.5.7:35", "link": "expressions.html#fls_udonl4c7f6pz", "checksum": "5db519b4a3862ea81b67712e174ac1e631a8afb3913654c28c367cc6e4a717bc"}, {"id": "fls_ebvyhqbb921g", "number": "6.5.7:36", "link": "expressions.html#fls_ebvyhqbb921g", "checksum": "26071802062bc2b37291010d1f9f8dee33a117f0cec69c457650ba59560c6743"}, {"id": "fls_rfomib80bnn2", "number": "6.5.7:37", "link": "expressions.html#fls_rfomib80bnn2", "checksum": "3f1dc50e13776facbc3ca274a5ef46f7a078bc0e1d73003d0eb034fbe9ae7e33"}, {"id": "fls_6cb4wg59wmef", "number": "6.5.7:38", "link": "expressions.html#fls_6cb4wg59wmef", "checksum": "9047368a8239de0933ecc3949594279fa3de51e000bd4842cb09bdbb2abea448"}, {"id": "fls_dkbjn7noq8n2", "number": "6.5.7:39", "link": "expressions.html#fls_dkbjn7noq8n2", "checksum": "2d9093eb49a4246b73dd600878aa12b7b93aa41605f6119cd2763faaa323dc9a"}, {"id": "fls_kezynx2xc1q7", "number": "6.5.7:40", "link": "expressions.html#fls_kezynx2xc1q7", "checksum": "15967dc98aa0ed7f84bf158358e5aadd9b853a956daa8e9c622ee666a262302a"}, {"id": "fls_8luq5sellcaq", "number": "6.5.7:41", "link": "expressions.html#fls_8luq5sellcaq", "checksum": "b01336b9511f2f0bcdd400438da1f991279c25423b3694339c0c2a56de3297cc"}, {"id": "fls_c93pacid548a", "number": "6.5.7:42", "link": "expressions.html#fls_c93pacid548a", "checksum": "b47d020a4bf52e4092fc90d68fef4ef1a455a67b8988333b6f7ef74fcd608744"}, {"id": "fls_gqy6uuowij9e", "number": "6.5.7:43", "link": "expressions.html#fls_gqy6uuowij9e", "checksum": "b1d67e27cd64bff665fa4abe27d7bb3ffa248e472df78975e3e9b414d3abc215"}, {"id": "fls_s6sq6p8th5nt", "number": "6.5.7:44", "link": "expressions.html#fls_s6sq6p8th5nt", "checksum": "74d5290848e5b132492e37c5a878b393585ab57f6861801568b33dd97e99350e"}, {"id": "fls_kdga59xx4nx3", "number": "6.5.7:45", "link": "expressions.html#fls_kdga59xx4nx3", "checksum": "e8c6085c7317b0b22333a5e89d1757cb4024590c46e44ba9d2e121f9f7c30b94"}], "informational": false}, {"id": "fls_lstusiu2c8lu", "number": "6.5.8", "title": "Lazy Boolean Expressions", "link": "expressions.html#lazy-boolean-expressions", "paragraphs": [{"id": "fls_gpbvus89iy4c", "number": "6.5.8:1", "link": "expressions.html#fls_gpbvus89iy4c", "checksum": "d083fa2a4b23d69ebf79cb39b3b435aecaa477f6e2bcddfaa6e8f2cad7ef9fcf"}, {"id": "fls_40jya46h62yi", "number": "6.5.8:2", "link": "expressions.html#fls_40jya46h62yi", "checksum": "d94febcd9c5097860d17e1a524ae04bbe93e6476a617726293f8e7d45f048f81"}, {"id": "fls_k8u77ow5bb6c", "number": "6.5.8:3", "link": "expressions.html#fls_k8u77ow5bb6c", "checksum": "1c05b5e8f145c2821e9391efa0203c3fbde926b15242438460e0cdf1976780b1"}, {"id": "fls_u0gwo0s2l0tn", "number": "6.5.8:4", "link": "expressions.html#fls_u0gwo0s2l0tn", "checksum": "fdd6553d09d1a0c51cd9641afb80879d25d7066040d8a352725884773f92d2a9"}, {"id": "fls_zas0lizgq2hn", "number": "6.5.8:5", "link": "expressions.html#fls_zas0lizgq2hn", "checksum": "ddd627fc1c34fe282518e5540e51987966234a13145ad8bae553177ac3d8dfaa"}, {"id": "fls_xdgvrd58nkoa", "number": "6.5.8:6", "link": "expressions.html#fls_xdgvrd58nkoa", "checksum": "5fedecca69f448e516ad8fdd4b22e1d9538dabd703fdf0c4881e56e12b0ffd02"}, {"id": "fls_ufre0ko2cwh2", "number": "6.5.8:7", "link": "expressions.html#fls_ufre0ko2cwh2", "checksum": "b099b2fe899cf3d319f0a36dd5af2427e1c29cc5f8afbe3e514a07bb160b21a6"}, {"id": "fls_jugckad775kq", "number": "6.5.8:8", "link": "expressions.html#fls_jugckad775kq", "checksum": "5e0c86a6b40357d25e18747cafd06d04626afc595a9d1d43986abadb34f378cc"}, {"id": "fls_tmfmu3syxp2q", "number": "6.5.8:9", "link": "expressions.html#fls_tmfmu3syxp2q", "checksum": "2c38f5ee0dee81eba992210bde3a9c3e5e17845a49afa11bf5ecb756e07b012d"}, {"id": "fls_srfv1d4idxy9", "number": "6.5.8:10", "link": "expressions.html#fls_srfv1d4idxy9", "checksum": "e16cc48f8ee8a84751ce4195d3680e9168f423ceac46d85cb7d9ade46e838061"}, {"id": "fls_tflikh8cmxvc", "number": "6.5.8:11", "link": "expressions.html#fls_tflikh8cmxvc", "checksum": "8aa3b1677686a272d98a21454e1e94aea43ab1745f3b214fe1d274e1b1d44913"}, {"id": "fls_p0rafjsridre", "number": "6.5.8:12", "link": "expressions.html#fls_p0rafjsridre", "checksum": "081904a7612047457f00462adab410432028cf313a537c7d3eb899885660028b"}, {"id": "fls_yg1348rlziw3", "number": "6.5.8:13", "link": "expressions.html#fls_yg1348rlziw3", "checksum": "a7e87563c4a367cf52d29f70b5299ee79561d872ffbcb53680929c57d329ac75"}, {"id": "fls_yffozo2vq5xz", "number": "6.5.8:14", "link": "expressions.html#fls_yffozo2vq5xz", "checksum": "53ea72e1adfc38c6b9633432eff3b00824a954e6db484fb79fe14639eacc879d"}], "informational": false}, {"id": "fls_1qhsun1vyarz", "number": "6.5.9", "title": "Type Cast Expressions", "link": "expressions.html#type-cast-expressions", "paragraphs": [{"id": "fls_ltioqbhl14g0", "number": "6.5.9:1", "link": "expressions.html#fls_ltioqbhl14g0", "checksum": "08dfcbf5c91d7b12196ce6c1a1bc3f599df54bfa79c5adf69545a87cf36d4b92"}, {"id": "fls_99kvyh4puy57", "number": "6.5.9:2", "link": "expressions.html#fls_99kvyh4puy57", "checksum": "27ca11dd40c94f7e33d729cb9e58a859e505bbeb187054989f68f076c0d0dfe4"}, {"id": "fls_a6midh2m0w0b", "number": "6.5.9:3", "link": "expressions.html#fls_a6midh2m0w0b", "checksum": "47b8697be7c9a888bdf4d722617a7445c91071918926fd1d7b0dc5ec7759dc1b"}, {"id": "fls_otaxe9okhdr1", "number": "6.5.9:4", "link": "expressions.html#fls_otaxe9okhdr1", "checksum": "a318a86acd9c3f9af9c3f696b3b9c2c76a76f36d115e7f89219fb26ae40f8fbd"}, {"id": "fls_4s69s9pcvbn7", "number": "6.5.9:5", "link": "expressions.html#fls_4s69s9pcvbn7", "checksum": "1b349b69479fd61dce438f778290ce16b45e72d4c44dd1a9f605af212796f764"}, {"id": "fls_le6bchl25ewz", "number": "6.5.9:6", "link": "expressions.html#fls_le6bchl25ewz", "checksum": "c4a4ce7844b954c2f4754e622f645440f63e4c074ab334ac61c61ee16234e647"}, {"id": "fls_pcromhosmnf0", "number": "6.5.9:7", "link": "expressions.html#fls_pcromhosmnf0", "checksum": "1b9291b98300943b6a4f9a35b2f0293eb26ad4edecb86117155dd7f868c02ecf"}, {"id": "fls_al9f1t7vlsxi", "number": "6.5.9:8", "link": "expressions.html#fls_al9f1t7vlsxi", "checksum": "9a0b5c658e0818b0f365f2045de56630f28336ed84a1b9a7032e4eeb196094f1"}, {"id": "fls_jea17f39fmsg", "number": "6.5.9:9", "link": "expressions.html#fls_jea17f39fmsg", "checksum": "cd1cc473310dc5109e4b04c361ebc5387d25791159b28eac762db631a59080dd"}, {"id": "fls_eb00s8fxlvjb", "number": "6.5.9:10", "link": "expressions.html#fls_eb00s8fxlvjb", "checksum": "ed29ba4f4f0bf4e798b92e1808da08a9f7dde2636d2717f9bb76f606b0612f27"}, {"id": "fls_qk5trk8wkvxb", "number": "6.5.9:11", "link": "expressions.html#fls_qk5trk8wkvxb", "checksum": "77cbef9219a40b23a7018ebc71f71991f269b206f6ac09ca02d6374e08d34143"}, {"id": "fls_t16yzaxro5ew", "number": "6.5.9:12", "link": "expressions.html#fls_t16yzaxro5ew", "checksum": "d8874d42acca88b1af3b118dff17f93995f48354579b562d80c5f2f70e7ca231"}, {"id": "fls_i4zsbbmfa2fl", "number": "6.5.9:13", "link": "expressions.html#fls_i4zsbbmfa2fl", "checksum": "34d4e2c24f03d923c5c554f7d83dc05b68fafde68dfcdec0b202bdd7f9e1b8c6"}, {"id": "fls_59mpteeczzo", "number": "6.5.9:14", "link": "expressions.html#fls_59mpteeczzo", "checksum": "818a6891c0695d400a9db754d972f1d65cd093ada81f3bd44f277b2b0e5234a6"}, {"id": "fls_8ccwlliqw9jx", "number": "6.5.9:15", "link": "expressions.html#fls_8ccwlliqw9jx", "checksum": "61b4ed849409d7a1da6040af55c628c8bed21fba1448c97a30cf7b6e1edef1c3"}, {"id": "fls_i8txki3htx92", "number": "6.5.9:16", "link": "expressions.html#fls_i8txki3htx92", "checksum": "3fd45f40c5530a4e28c7590e27b7f1d1b5b076ba4a56b93a62badb572fd34f37"}, {"id": "fls_6hbkvbb1c8aj", "number": "6.5.9:17", "link": "expressions.html#fls_6hbkvbb1c8aj", "checksum": "edc3242e28a7c7e5671e8adbfab3bddbe1e8257ccc33dc32169afef9f7c9bf40"}, {"id": "fls_133j6xw8k4qe", "number": "6.5.9:18", "link": "expressions.html#fls_133j6xw8k4qe", "checksum": "396f1dee7838cc8110a77448ca183590ed2da360fcdd48a9599d4e23f138ce39"}, {"id": "fls_bhw2j9wjpf2x", "number": "6.5.9:19", "link": "expressions.html#fls_bhw2j9wjpf2x", "checksum": "70cde08edc51a89343f1641793a1fc500d46e25ce677ed83e47cb308f673c9fc"}, {"id": "fls_3ww5gbk9w4ys", "number": "6.5.9:20", "link": "expressions.html#fls_3ww5gbk9w4ys", "checksum": "d8ec489d2055064a9c810698a96bc12deed753405290de3c55392e43eff72d30"}, {"id": "fls_hhxawo12cndy", "number": "6.5.9:21", "link": "expressions.html#fls_hhxawo12cndy", "checksum": "79ebe8f0e779f6f47a24d5556c49d46d5984dfda2c4e434b1853207bae1661da"}, {"id": "fls_uuayaksl8059", "number": "6.5.9:22", "link": "expressions.html#fls_uuayaksl8059", "checksum": "d0224097db7f57afffa5809d8b5506189c8780f6d8698c1db3fb3c311b1c9ef8"}, {"id": "fls_syk2li8ft3rx", "number": "6.5.9:23", "link": "expressions.html#fls_syk2li8ft3rx", "checksum": "cfbbe48907bff6889c84b93a92f9aca7b25b8f23ef9d15329209cc8192873a93"}, {"id": "fls_uqv32nthva6y", "number": "6.5.9:24", "link": "expressions.html#fls_uqv32nthva6y", "checksum": "f4db800db3afa6225779fdc78b37b92b56513096372223f38dfedf62c62ebbdf"}, {"id": "fls_kc3gwj9x3jnr", "number": "6.5.9:25", "link": "expressions.html#fls_kc3gwj9x3jnr", "checksum": "f92fbbbb0d0f93d8a96769e4bdafb81208bbea4de660ed93f5a0c2c25bc315f4"}, {"id": "fls_76eq3bd6birr", "number": "6.5.9:26", "link": "expressions.html#fls_76eq3bd6birr", "checksum": "dc2cd23340592788e2b33f874af0be578ab9dc5ec8fe551abef6c4946b0c2607"}, {"id": "fls_ldiritt32h2w", "number": "6.5.9:27", "link": "expressions.html#fls_ldiritt32h2w", "checksum": "2675b576835d6946c6d9375780b8b55f46ece14c3de9b64c8968d19af5d44e60"}, {"id": "fls_h9sxg3pxn7i2", "number": "6.5.9:28", "link": "expressions.html#fls_h9sxg3pxn7i2", "checksum": "639df060c4399f91e08022f57836782fad21b3ee5016cbd58d43e8ac47373417"}, {"id": "fls_shy6e0e30bco", "number": "6.5.9:29", "link": "expressions.html#fls_shy6e0e30bco", "checksum": "96a976177a350ed96c70bbf5e1fc3c212be4f43da60a95cb1bddf43edd073027"}, {"id": "fls_4xldaoj5ac6t", "number": "6.5.9:30", "link": "expressions.html#fls_4xldaoj5ac6t", "checksum": "c47cb1a6295e9bfd6516ee9f54f81aafec671f38da5ad88d0c01a2743ab90e9b"}, {"id": "fls_50714cvaqkfv", "number": "6.5.9:31", "link": "expressions.html#fls_50714cvaqkfv", "checksum": "f8e6dfe7b18b50b332b93228d1d885af358ace7b20fece76abe84f5660f81caf"}, {"id": "fls_g3xbmp8zx1yh", "number": "6.5.9:32", "link": "expressions.html#fls_g3xbmp8zx1yh", "checksum": "362784273f3bf8ec2f5c6418248dc73d886a72024b899a6073cb6a8ad7940fea"}, {"id": "fls_hcc5odh52bk7", "number": "6.5.9:33", "link": "expressions.html#fls_hcc5odh52bk7", "checksum": "dab8f627a03b7d22da6d0a9ef0d715729e41f721ea373e2972b24eb59c90433f"}, {"id": "fls_o2ep4b6t287z", "number": "6.5.9:34", "link": "expressions.html#fls_o2ep4b6t287z", "checksum": "4b36e49520e535d2feb4673f98d756faf98a4db9b6c8491190a61d55c0e4e7f7"}, {"id": "fls_vfofk2aagsj5", "number": "6.5.9:35", "link": "expressions.html#fls_vfofk2aagsj5", "checksum": "2ac5953b5fbd06573be6f3e9d6a86261d774fe99356391aac1757ac4313d4ecc"}, {"id": "fls_cx86k8yfjhht", "number": "6.5.9:36", "link": "expressions.html#fls_cx86k8yfjhht", "checksum": "6b0621264b3a532012193e8e8fa631c7176d6cfddcc1e69d99553f045cf235c5"}, {"id": "fls_gzmdwibl5s4w", "number": "6.5.9:37", "link": "expressions.html#fls_gzmdwibl5s4w", "checksum": "6df51e5d36c7390d867779913759bab661984ee0871d432711aa97a2cb0a739e"}, {"id": "fls_mjqvjt7v8a25", "number": "6.5.9:38", "link": "expressions.html#fls_mjqvjt7v8a25", "checksum": "50d14939f0af728c40900fbf0d6eb82adfaf73d5546b91f7fd0ab5ed57192d3c"}, {"id": "fls_4fd5vkh0jt4", "number": "6.5.9:39", "link": "expressions.html#fls_4fd5vkh0jt4", "checksum": "cf0883805fa9cbc536249406066344fd3512a61fe348e9ec8f75c8e8cbbc8eed"}, {"id": "fls_2etd73f8jg2n", "number": "6.5.9:40", "link": "expressions.html#fls_2etd73f8jg2n", "checksum": "9a2b0468c8e7cdc699fcfa7a332ef5975090219a757acb354082c5759aa87e60"}, {"id": "fls_vdxkpvmpwl3s", "number": "6.5.9:41", "link": "expressions.html#fls_vdxkpvmpwl3s", "checksum": "812a1f24961f1a44cbc165897dede0820f61dbeb12e67dd76d903d192bba21b7"}], "informational": false}, {"id": "fls_y4by2i8dl05o", "number": "6.5.10", "title": "Assignment Expressions", "link": "expressions.html#assignment-expressions", "paragraphs": [{"id": "fls_nhgexeu2h6wi", "number": "6.5.10:1", "link": "expressions.html#fls_nhgexeu2h6wi", "checksum": "4304d0485281b3209ed00f106195484fe480a77a8493087e16b0c436448b383d"}, {"id": "fls_bsjw6f4a3wol", "number": "6.5.10:2", "link": "expressions.html#fls_bsjw6f4a3wol", "checksum": "f65275a0a091337596ea0d2d0452cd99919c500d44f9024dcc3dc0accc16f35c"}, {"id": "fls_uinh05sslxeo", "number": "6.5.10:3", "link": "expressions.html#fls_uinh05sslxeo", "checksum": "583ba1d1d9e8f8d1df72de286c88866da9343d7c34bf5f3ed16b880b4b1e054b"}, {"id": "fls_qengy157fa4a", "number": "6.5.10:4", "link": "expressions.html#fls_qengy157fa4a", "checksum": "0591676f83b5050127846b1d974697123e818f7c6e564f025c468cf178fee8de"}, {"id": "fls_bwwtgqprbxrm", "number": "6.5.10:5", "link": "expressions.html#fls_bwwtgqprbxrm", "checksum": "542e43dc718b5bdd7f38a403c460e2630f2aa29c7efb6070ec1048ca684c11ae"}], "informational": false}, {"id": "fls_nnqlae9zp80s", "number": "6.5.10.1", "title": "Basic Assignment", "link": "expressions.html#basic-assignment", "paragraphs": [{"id": "fls_uhcodvq75nlr", "number": "6.5.10.1:1", "link": "expressions.html#fls_uhcodvq75nlr", "checksum": "63dad52c617e3ee41bf8bdd92adc2ef8b74de581ac2dd9eff2d4ae7a9d79e71b"}, {"id": "fls_esn5ceoldta", "number": "6.5.10.1:2", "link": "expressions.html#fls_esn5ceoldta", "checksum": "7178659e8d13267c6d2cace3f92c866bde8b3c7f20b6284b91d1813f23ab2b48"}, {"id": "fls_t8eqzc64ivin", "number": "6.5.10.1:3", "link": "expressions.html#fls_t8eqzc64ivin", "checksum": "f899cb72136ebd3d961dc27d192d55c7b2c0be9c5ddb36fcac37dfc24b7f38b7"}, {"id": "fls_b0mqcn5fejhk", "number": "6.5.10.1:4", "link": "expressions.html#fls_b0mqcn5fejhk", "checksum": "2a9810e20da91ce5a1634df073730e215ba4b469e104c426c9270f979aa97c01"}, {"id": "fls_9i0ctuo099bp", "number": "6.5.10.1:5", "link": "expressions.html#fls_9i0ctuo099bp", "checksum": "562d40caca29e42fd9e6720706fed8695f5caea2e545f287ae8c03e6ee6db2ea"}, {"id": "fls_hc01gtvlxba", "number": "6.5.10.1:6", "link": "expressions.html#fls_hc01gtvlxba", "checksum": "a334732322599082a903e3f83305caf0f889eec5caf952a203bf92469d3a7ebc"}], "informational": false}, {"id": "fls_9beohh5475s2", "number": "6.5.10.2", "title": "Destructuring Assignment", "link": "expressions.html#destructuring-assignment", "paragraphs": [{"id": "fls_2eheo4yo2orm", "number": "6.5.10.2:1", "link": "expressions.html#fls_2eheo4yo2orm", "checksum": "1bb5b885646bba801baad9691ebaddf623dd4aaa4261744f0fb83b8b026b635b"}, {"id": "fls_z8c3b9s9de3x", "number": "6.5.10.2:2", "link": "expressions.html#fls_z8c3b9s9de3x", "checksum": "7bf58363b94e40971985a05b3232d9315c7404e7587a09a94399d1a424725557"}, {"id": "fls_vqb89rkkjw81", "number": "6.5.10.2:3", "link": "expressions.html#fls_vqb89rkkjw81", "checksum": "51a40a20e8b5e9e446c016a0c4b190ac02f0b1693e12a79e14c1eb0265f19dbc"}, {"id": "fls_vqj7ljrrd7wi", "number": "6.5.10.2:4", "link": "expressions.html#fls_vqj7ljrrd7wi", "checksum": "7bf354d6273ccc3c800c65f0c583c41706d2028f00ef46c96172bd6442282ba5"}, {"id": "fls_du5eybf8mocy", "number": "6.5.10.2:5", "link": "expressions.html#fls_du5eybf8mocy", "checksum": "243a77cae715bb740c108cb3cf10510655383e55689af1201db4edc1017ecb52"}, {"id": "fls_hj6srmzbobid", "number": "6.5.10.2:6", "link": "expressions.html#fls_hj6srmzbobid", "checksum": "2a3a9a4116094d25733de0cab8310e4330e09ce09ef7e57f0514cbd22b7da44f"}, {"id": "fls_uydzlfc4hjbx", "number": "6.5.10.2:7", "link": "expressions.html#fls_uydzlfc4hjbx", "checksum": "35df6c0e03bf68532c179009e4096b702f74a652fc496ed46f7ff46c2f66543b"}, {"id": "fls_fa14yfvxsbx3", "number": "6.5.10.2:8", "link": "expressions.html#fls_fa14yfvxsbx3", "checksum": "d7fce64f27e5e966da37da7025ecb83935790a56516a53756543ad92bf4ed4d2"}, {"id": "fls_q90ikfi7ewoi", "number": "6.5.10.2:9", "link": "expressions.html#fls_q90ikfi7ewoi", "checksum": "00243d283fa4c9c0a35d15022e20300d26b61ece13bc0541fb6abbdc62083508"}, {"id": "fls_4bb07tn28ivw", "number": "6.5.10.2:10", "link": "expressions.html#fls_4bb07tn28ivw", "checksum": "aa1553b4d77d65e20c4f21c81f7f481f61757cd3a2e996c6cdb03b04d102e93f"}, {"id": "fls_g80a92tr2ser", "number": "6.5.10.2:11", "link": "expressions.html#fls_g80a92tr2ser", "checksum": "b68bcc8992526aa0a831e5dcbb9b1792ad9a389fb52b6f314b1118753322841c"}, {"id": "fls_u0iqhbw37xvq", "number": "6.5.10.2:12", "link": "expressions.html#fls_u0iqhbw37xvq", "checksum": "a834153c99b871fe9e977b743df601c1c87e148ffa80105b101da6fab4145491"}, {"id": "fls_wsfhd3udt6fq", "number": "6.5.10.2:13", "link": "expressions.html#fls_wsfhd3udt6fq", "checksum": "9d43daaf0511fffc8a32f8ac5b4ad06460cd1377cdaf72b00b2c07c7e9f1c45f"}, {"id": "fls_ll6h6qcaos65", "number": "6.5.10.2:14", "link": "expressions.html#fls_ll6h6qcaos65", "checksum": "54b18adecbfa6f101f756b60fda6240a68c94d6181b080c20c1fcbbe1e2b319a"}, {"id": "fls_ajbdn54qe6wc", "number": "6.5.10.2:15", "link": "expressions.html#fls_ajbdn54qe6wc", "checksum": "d5cac296c4841b11d032f3f8c436aae5e3196e6c8b1ac76278a96a0d9713b852"}, {"id": "fls_l4u5hhw8tnvs", "number": "6.5.10.2:16", "link": "expressions.html#fls_l4u5hhw8tnvs", "checksum": "8bc627e3bf0f027c3c06ec7c4a610c3cae859ce1cc52705452b6a2b18e6245a8"}, {"id": "fls_dd62w8c9n9sd", "number": "6.5.10.2:17", "link": "expressions.html#fls_dd62w8c9n9sd", "checksum": "d7fc919d5ec540ac0eef14fa6ea2b5d26ca87b8a8dd1204ed7f5526c7c669f43"}, {"id": "fls_jqu2u6mdccgi", "number": "6.5.10.2:18", "link": "expressions.html#fls_jqu2u6mdccgi", "checksum": "53ec6be8b47c6be5b010eea7546935286e1827c719d139f77363a74e1e7a7220"}, {"id": "fls_n7nuj1lvpspc", "number": "6.5.10.2:19", "link": "expressions.html#fls_n7nuj1lvpspc", "checksum": "c7335948424f81e31b96930ee1dc2ecdeaf3b3a9deebd55825c5a52ff484e337"}, {"id": "fls_qb8u5skn8bc4", "number": "6.5.10.2:20", "link": "expressions.html#fls_qb8u5skn8bc4", "checksum": "49260bff9918873b5d8535276a39574ffd2b3a81c0ef8739ba1315dd51b7246e"}], "informational": false}, {"id": "fls_290jmzfh7x4e", "number": "6.5.11", "title": "Compound Assignment Expressions", "link": "expressions.html#compound-assignment-expressions", "paragraphs": [{"id": "fls_3bu3g8o5nopc", "number": "6.5.11:1", "link": "expressions.html#fls_3bu3g8o5nopc", "checksum": "70304690f3abce9b70d5806e3646fd86c7c669ed6507cbc1f0f0b1d1983dd3f7"}, {"id": "fls_w2hbhb989yr4", "number": "6.5.11:2", "link": "expressions.html#fls_w2hbhb989yr4", "checksum": "d6a2d58614610b6925bb6d9240e3cefe07479565323dabe03c90461b8c5e6ef9"}, {"id": "fls_ak4g5112jkl", "number": "6.5.11:3", "link": "expressions.html#fls_ak4g5112jkl", "checksum": "6ba92b86bf853f095dc7e5a3710b658e32b00a7dc05a5a95d43121059f50f10c"}, {"id": "fls_lkjwyy78m2vx", "number": "6.5.11:4", "link": "expressions.html#fls_lkjwyy78m2vx", "checksum": "4ae0b14054f07ae1b39e78df52b07c317b58a3f9f809a8718873aa55f027b3cc"}, {"id": "fls_pkzj0uigfcgm", "number": "6.5.11:5", "link": "expressions.html#fls_pkzj0uigfcgm", "checksum": "136277e741015a5230de8f60eb4096bf0b58ad7c638b2115efdabc0d44400c59"}, {"id": "fls_ndlv3k9uclz2", "number": "6.5.11:6", "link": "expressions.html#fls_ndlv3k9uclz2", "checksum": "d2555608ba3de34e55980372a66a2a9d4d54ddee1e2a156da6a307bd61404d6d"}, {"id": "fls_fbp5dojti27r", "number": "6.5.11:7", "link": "expressions.html#fls_fbp5dojti27r", "checksum": "ea908393ac3ed6b06a8100763ed23f0bce1b23383dbb6018f7b2a9f28fe2c027"}, {"id": "fls_oy9ur11k78t", "number": "6.5.11:8", "link": "expressions.html#fls_oy9ur11k78t", "checksum": "f32d982e951a64a5ae23f39b6f896be6b823bf75a1402bb7f482c69b8c5f72bf"}, {"id": "fls_s7rey2bndfei", "number": "6.5.11:9", "link": "expressions.html#fls_s7rey2bndfei", "checksum": "a8f5728efeb8d521b310ca0018217930b4db9dc326d731f4b7f928ceb5551466"}, {"id": "fls_7l7v7vigw3fu", "number": "6.5.11:10", "link": "expressions.html#fls_7l7v7vigw3fu", "checksum": "0bacfa691cf9b02adb71480b6b81ae0b5fcb9955635d761f806644b2dd7089a4"}, {"id": "fls_dvy201zd6oym", "number": "6.5.11:11", "link": "expressions.html#fls_dvy201zd6oym", "checksum": "3c8f98ad5df4fbb4fc9495db0937e079c92705d874f42bb18c7ba5ec55b24f25"}, {"id": "fls_9v09ayi2azpe", "number": "6.5.11:12", "link": "expressions.html#fls_9v09ayi2azpe", "checksum": "c927d4db9296e304c75ea935ba940d05a54420ee651d15b81fcad4aaaa1bcc23"}, {"id": "fls_row7saf53vwd", "number": "6.5.11:13", "link": "expressions.html#fls_row7saf53vwd", "checksum": "53d2315ff692eedbb4a02576f3552f5fc7e273249f214bb24cfcd24028715bd6"}, {"id": "fls_xmgcdw9yhb55", "number": "6.5.11:14", "link": "expressions.html#fls_xmgcdw9yhb55", "checksum": "f409b5315ca308b8335b0a02dbbb76577c93d33536ca7a97c9df8a48215a4b15"}, {"id": "fls_yeh6mvyvb4dp", "number": "6.5.11:15", "link": "expressions.html#fls_yeh6mvyvb4dp", "checksum": "f8e24d8041063b9aeff11b22e4199433af8a1eb8a19d83a6bbaa6cb259939ef4"}, {"id": "fls_657knnsobdyu", "number": "6.5.11:16", "link": "expressions.html#fls_657knnsobdyu", "checksum": "8a1c5e8aff333bdd76805412a401b56a8739e72e836998f4afa79603949e1a38"}, {"id": "fls_m942dwwmr2cl", "number": "6.5.11:17", "link": "expressions.html#fls_m942dwwmr2cl", "checksum": "7e62f17ce3701a1aff0387ca92ffd578fcb6945d06d5684d51461077a3dfdb44"}, {"id": "fls_np33oqrz33mp", "number": "6.5.11:18", "link": "expressions.html#fls_np33oqrz33mp", "checksum": "0a96b074b6c309f365d46e4d340f40e8137d15a81a2628d015d5a38b87545496"}, {"id": "fls_atdpr8be2o2r", "number": "6.5.11:19", "link": "expressions.html#fls_atdpr8be2o2r", "checksum": "39b15a4da847904cd5adcbfa2541f35399dd7eae844e25492a6b28134997c44b"}, {"id": "fls_fbgwb3pdfgz", "number": "6.5.11:20", "link": "expressions.html#fls_fbgwb3pdfgz", "checksum": "bb68222b337dae8c4e07199340ae967e2beab8cdb28c86b0c31bf23155c048cb"}, {"id": "fls_8tbxq95x06yt", "number": "6.5.11:21", "link": "expressions.html#fls_8tbxq95x06yt", "checksum": "f07f914b9816a47a3803a8a0e4617448cf1e87a3d9879638af434fb4bbb87f11"}, {"id": "fls_9oy9zo3x3fy3", "number": "6.5.11:22", "link": "expressions.html#fls_9oy9zo3x3fy3", "checksum": "c4387fe4f484f537a0bec808fdd45374c5ad2a94dd7cd9891b3acd6955055456"}, {"id": "fls_pdgj2xekdead", "number": "6.5.11:23", "link": "expressions.html#fls_pdgj2xekdead", "checksum": "5d8e7013a9e2890192910cd44abe74ed6f54b4b3d4e3eebf85b772cd83ecca64"}, {"id": "fls_4uoi6k8r7mvc", "number": "6.5.11:24", "link": "expressions.html#fls_4uoi6k8r7mvc", "checksum": "065720bf3f5046e1a242276446af69db0ba393444e5344baaeb4cd2e1088e8b0"}, {"id": "fls_fjaz4m90cagr", "number": "6.5.11:25", "link": "expressions.html#fls_fjaz4m90cagr", "checksum": "6c3272702958207aa4819daeb158571ee7f953f56238a82b24462ac32f7161ee"}, {"id": "fls_eesn9kuylim", "number": "6.5.11:26", "link": "expressions.html#fls_eesn9kuylim", "checksum": "e31b4581f5c14180a6a1a8eddc70ceb2966929c532efcd1bb047761060d24027"}, {"id": "fls_4nnqz4etisgw", "number": "6.5.11:27", "link": "expressions.html#fls_4nnqz4etisgw", "checksum": "1fd0c33fcf586183d361b779dea413543663438cc02e17959b72a5b104af731e"}, {"id": "fls_a2g4hs15jpiu", "number": "6.5.11:28", "link": "expressions.html#fls_a2g4hs15jpiu", "checksum": "1bf2eb3fddc1bda35cce5c0668c463f880b7275bd885b03616e2d50acdc71975"}, {"id": "fls_kuet16jp6ps9", "number": "6.5.11:29", "link": "expressions.html#fls_kuet16jp6ps9", "checksum": "b2b36c7f8e91b90fb29e61587d53edc27026c2f4612ae0ba4f363a6d5be91292"}, {"id": "fls_hovju0sni9gr", "number": "6.5.11:30", "link": "expressions.html#fls_hovju0sni9gr", "checksum": "b102bf14ec0db1c14b2f2ab3aca382a3187d2c4042728a7fc47bfee75e767210"}, {"id": "fls_ngimpabunzis", "number": "6.5.11:31", "link": "expressions.html#fls_ngimpabunzis", "checksum": "05076af1f4d61f0b6baee0ecee29a81adafb0a5a38fbcbdb68d18da0a27b22c7"}, {"id": "fls_4sbpfi12frwe", "number": "6.5.11:32", "link": "expressions.html#fls_4sbpfi12frwe", "checksum": "6ba71a563b4c7010ec0c5df34108f6d4be2d539e8294c8a15ed716d562e407e6"}, {"id": "fls_n5ds6ydgckvo", "number": "6.5.11:33", "link": "expressions.html#fls_n5ds6ydgckvo", "checksum": "6a1e80e1e25a1830cf8a13e06a7ee8f0932497734f65d5dac7e8bcd2eb12b75e"}, {"id": "fls_xjdu0y1slsg9", "number": "6.5.11:34", "link": "expressions.html#fls_xjdu0y1slsg9", "checksum": "442e7816616309d222742e16b9e6f02a781a2e4782c149409e796c8f69b72b7d"}, {"id": "fls_ijfmnnrdlu8n", "number": "6.5.11:35", "link": "expressions.html#fls_ijfmnnrdlu8n", "checksum": "98a271aaa7faf59283854dfdf7bbcd0ba056cd59f558249a1382495825b750cb"}, {"id": "fls_6x7j9x354pkb", "number": "6.5.11:36", "link": "expressions.html#fls_6x7j9x354pkb", "checksum": "bfddbb63f9a240dbc5964993135fe01a4dfb1607c75a64ff2ca7950a0555e74d"}, {"id": "fls_h2cpbz2t74hy", "number": "6.5.11:37", "link": "expressions.html#fls_h2cpbz2t74hy", "checksum": "ece515541769464e97d750a9e5e9ce02a8b6519f896abff730bbd292e44e473f"}, {"id": "fls_whj50spxz3bh", "number": "6.5.11:38", "link": "expressions.html#fls_whj50spxz3bh", "checksum": "c4a1816e02fe88f0e2f326223f92521478faeba2af43bd13fe94c439624e163f"}, {"id": "fls_d1cxq1zbt5fq", "number": "6.5.11:39", "link": "expressions.html#fls_d1cxq1zbt5fq", "checksum": "96b2470f5ad765c1e4f0b346e361780734a20847e8d7264e5c2076c95bc9ba46"}, {"id": "fls_48i245an2449", "number": "6.5.11:40", "link": "expressions.html#fls_48i245an2449", "checksum": "0806ce2c7ef3707033cfa5b0c4f583a19e24558b3c3b42048aca9c6e131fef0c"}, {"id": "fls_69wr03rt0ali", "number": "6.5.11:41", "link": "expressions.html#fls_69wr03rt0ali", "checksum": "c08b0dd87b65f9c8d1e7245b1b012c81c36b63b6cfb73c7bf7358d25c8f631d1"}, {"id": "fls_9d970yfwmj2d", "number": "6.5.11:42", "link": "expressions.html#fls_9d970yfwmj2d", "checksum": "cc05bf582d5c4319a4456bc8b6c64f1e1efb92b83ce5a86e80486c70cff4b6c5"}, {"id": "fls_p9687v3xckps", "number": "6.5.11:43", "link": "expressions.html#fls_p9687v3xckps", "checksum": "4274ecd1896eafd9510d63f0a215a49551f8821292f73f5d7af417d77511b0c5"}, {"id": "fls_8j408kckzzud", "number": "6.5.11:44", "link": "expressions.html#fls_8j408kckzzud", "checksum": "63c48dade2d45f58c29209b7fd62427f7408e9be1b34777e67229aa7e083838f"}], "informational": false}, {"id": "fls_tpwp86mronn2", "number": "6.6", "title": "Underscore Expressions", "link": "expressions.html#underscore-expressions", "paragraphs": [{"id": "fls_pydmv629vfuu", "number": "6.6:1", "link": "expressions.html#fls_pydmv629vfuu", "checksum": "5ef7618ba1c0e1c7eb57702380cfe32fd40a101012baae722cc5017d09e187e2"}, {"id": "fls_wms3dbwjwyu4", "number": "6.6:2", "link": "expressions.html#fls_wms3dbwjwyu4", "checksum": "1dac5db10a0607f25991daff12767344ccaeed3d4532c06f54c6f3daaaca117b"}], "informational": false}, {"id": "fls_g0uyl7qw4c7w", "number": "6.7", "title": "Parenthesized Expressions", "link": "expressions.html#parenthesized-expressions", "paragraphs": [{"id": "fls_jhazc75w5vj", "number": "6.7:1", "link": "expressions.html#fls_jhazc75w5vj", "checksum": "4b96644e63b3031bd589162d79d80f5f1f988db1395b4ea3cf2d135f2021ef07"}, {"id": "fls_5d66h7naoup6", "number": "6.7:2", "link": "expressions.html#fls_5d66h7naoup6", "checksum": "d879f43c9d83baea30fcff3023c3eb6e4cefd38b2329e84eefb22c3a38fd2490"}, {"id": "fls_xp9whcj2obk8", "number": "6.7:3", "link": "expressions.html#fls_xp9whcj2obk8", "checksum": "3140672dbfae920bc75f4d9c3c7ef03d41930b474be0b1df39c2574ac528c4a4"}, {"id": "fls_2po52gv0m021", "number": "6.7:4", "link": "expressions.html#fls_2po52gv0m021", "checksum": "4ceea157cc85755bb8711c51fb23271bbc1d673d4f2e6fd61d9356cda18af3c0"}], "informational": false}, {"id": "fls_xinykul167l", "number": "6.8", "title": "Array Expressions", "link": "expressions.html#array-expressions", "paragraphs": [{"id": "fls_ya9res33oxt6", "number": "6.8:1", "link": "expressions.html#fls_ya9res33oxt6", "checksum": "6d4f6471b2421cfcf0c6e94185848a12651a125d62316b31ecd723f993aaf11c"}, {"id": "fls_fwtd3b10veiw", "number": "6.8:2", "link": "expressions.html#fls_fwtd3b10veiw", "checksum": "743b62273b34b59350863d60be4496326d848680260ecd32e8129f1b8143053a"}, {"id": "fls_81jf78m5uga4", "number": "6.8:3", "link": "expressions.html#fls_81jf78m5uga4", "checksum": "2f031a9cfde2f485697c756e9fcc79b907cda43251bb209b3d1b959e0366ca58"}, {"id": "fls_3y69y9ga4at7", "number": "6.8:4", "link": "expressions.html#fls_3y69y9ga4at7", "checksum": "f0f0247ee1270ffdca37f2133a1d7f104e658c90aa0684f8028eb2b59c6bf74b"}, {"id": "fls_2l9objtb23zn", "number": "6.8:5", "link": "expressions.html#fls_2l9objtb23zn", "checksum": "7974b29d39e237f7b7019e8b023bc65e3ba22c2dd273ada7c3e6655264d52965"}, {"id": "fls_9gmnjvs83d8o", "number": "6.8:6", "link": "expressions.html#fls_9gmnjvs83d8o", "checksum": "cc40a14f407c81a044fd4575f51d913e8693f738ef40ad139534f46b9a19f039"}, {"id": "fls_by21pey7k423", "number": "6.8:7", "link": "expressions.html#fls_by21pey7k423", "checksum": "99ecdba025304ba811aebcc29e07845a140fc3ba41095e33a8d0ea50f068afc7"}, {"id": "fls_x2xu2pynxy1u", "number": "6.8:8", "link": "expressions.html#fls_x2xu2pynxy1u", "checksum": "00959a289e797eee5d2c26c92f851b2a5d78095f1c5c4ad231c077cf1a2b2218"}, {"id": "fls_qplsh3pdqitq", "number": "6.8:9", "link": "expressions.html#fls_qplsh3pdqitq", "checksum": "1dbe631dc10dcbcaa14182cbc7292325ac986dc37e6435c88e0c8e171530200b"}, {"id": "fls_wmsekin1gd2y", "number": "6.8:10", "link": "expressions.html#fls_wmsekin1gd2y", "checksum": "68a2f4607ef3ef9af408f82e1bcafcc5d132a928549d34922543e4a7e1eb4af9"}, {"id": "fls_2gto5kp9bjw8", "number": "6.8:11", "link": "expressions.html#fls_2gto5kp9bjw8", "checksum": "ae5a443a2738de9ba0838c345bf4816bf7cd9370acb2a7911197c6d480314a1c"}, {"id": "fls_guop34ayjw2", "number": "6.8:12", "link": "expressions.html#fls_guop34ayjw2", "checksum": "4f06417eb2b816c921050078ab93d2e2f81bbdc5682995739c56d6c2a428d828"}, {"id": "fls_aj6tbe54v5jl", "number": "6.8:13", "link": "expressions.html#fls_aj6tbe54v5jl", "checksum": "bbc8380a9bc21793c86fcd20a2b3fd8fa261fe3ac9374aed29e675bff88cbb01"}, {"id": "fls_t52in1kkyli3", "number": "6.8:14", "link": "expressions.html#fls_t52in1kkyli3", "checksum": "30d886a7d822a23c278b2dbadc243b7709b339b7ed687043bd8f5d2781178640"}, {"id": "fls_1kj8nlc5eb8a", "number": "6.8:15", "link": "expressions.html#fls_1kj8nlc5eb8a", "checksum": "5cd43e21073bfcf8cadcce1518960b036bfe89bc84c8649e85bc8774653c380b"}, {"id": "fls_f3izbkm8607z", "number": "6.8:16", "link": "expressions.html#fls_f3izbkm8607z", "checksum": "89234ce8ba73ca7e0688f892e1660c97f9dad740b312645882f0502e5a170b75"}, {"id": "fls_qbyysx30pjzs", "number": "6.8:17", "link": "expressions.html#fls_qbyysx30pjzs", "checksum": "6cd7a3e96790491d8967a32c4aa6c12e7bc265fb236219c2798543ac52c4d67a"}, {"id": "fls_1m0laldldh7j", "number": "6.8:18", "link": "expressions.html#fls_1m0laldldh7j", "checksum": "6ddcd54c076c63113862a4520f98cd2f8fce768efda1073f5f85a7809db098a4"}, {"id": "fls_5cs68nm54l31", "number": "6.8:19", "link": "expressions.html#fls_5cs68nm54l31", "checksum": "c151686dd6c86dcb91a93e83dc42259fff94d880d483a63df2c2065156f00daa"}, {"id": "fls_p7hcqryal5cm", "number": "6.8:20", "link": "expressions.html#fls_p7hcqryal5cm", "checksum": "66ac06814aa69e304c6e76a00971dbedf1387d5233cad520425e11f03d4c07fe"}, {"id": "fls_izlpt6100gvk", "number": "6.8:21", "link": "expressions.html#fls_izlpt6100gvk", "checksum": "30d959b0c05ae14096ec8a18e9ef45db9516e5df20444afd6789a6f06a342318"}], "informational": false}, {"id": "fls_sxcr4aa098i6", "number": "6.9", "title": "Indexing Expressions", "link": "expressions.html#indexing-expressions", "paragraphs": [{"id": "fls_x9kdeaptqsae", "number": "6.9:1", "link": "expressions.html#fls_x9kdeaptqsae", "checksum": "31490093979c511cc48f877705c29908857d10d31c22c513439cdd3e083e83e0"}, {"id": "fls_42ijvuqqqlvh", "number": "6.9:2", "link": "expressions.html#fls_42ijvuqqqlvh", "checksum": "85b9167ffe43e577abe2ffc662e3e62c0342ca688e1d20624dc5a39db1c988e5"}, {"id": "fls_pc0c22asgzvw", "number": "6.9:3", "link": "expressions.html#fls_pc0c22asgzvw", "checksum": "db2bc9cf0ff07c2d83f7c42c19f1f26b0299fb0961ef65f745ffcb2ad15b3f89"}, {"id": "fls_ff3sgpldn52o", "number": "6.9:4", "link": "expressions.html#fls_ff3sgpldn52o", "checksum": "7e6555ba354de0496e6c669f9e7a6741d4b492484dcfcc2dd698365fa7a60eb9"}, {"id": "fls_w96p9oyv5mqt", "number": "6.9:5", "link": "expressions.html#fls_w96p9oyv5mqt", "checksum": "42f40f05f0350dbd74aa64e56c42a4c06ba726fc7a8b35e5bb3368d06a26a8ad"}, {"id": "fls_u9sl7h4i8hqu", "number": "6.9:6", "link": "expressions.html#fls_u9sl7h4i8hqu", "checksum": "3c8bd13b0796e21dc66b5379e63653e3fcb5a781ce71acb007b57d31835d0f3a"}, {"id": "fls_98qeczwv7fmy", "number": "6.9:7", "link": "expressions.html#fls_98qeczwv7fmy", "checksum": "2e21eae4b3ccda229d79c4f4a4f86c4bd703e1aba8d1118c7d7716b41d2c2faf"}, {"id": "fls_sb2b8gszzaxq", "number": "6.9:8", "link": "expressions.html#fls_sb2b8gszzaxq", "checksum": "4399a6c70846584a158da4f90dd876e825ac9cacaec36e9597d7ad9314f9c1ad"}, {"id": "fls_issaykiuha75", "number": "6.9:9", "link": "expressions.html#fls_issaykiuha75", "checksum": "ca425abe5afef3fc3ff8c1fa8d087b47ff691c4e899e64f49add8e09dbe7f639"}, {"id": "fls_y3sduoma6q9v", "number": "6.9:10", "link": "expressions.html#fls_y3sduoma6q9v", "checksum": "3b4aa347cbd159f5838cbd0b0c14997b21a8cfc9acc3c4f85a283411186ff2b3"}, {"id": "fls_ld7lbvqms5i6", "number": "6.9:11", "link": "expressions.html#fls_ld7lbvqms5i6", "checksum": "ca104df5047d4dcf3d9d6018e314d70e108caa663258d7d4078735ca9d5ec371"}, {"id": "fls_nw705fpon79b", "number": "6.9:12", "link": "expressions.html#fls_nw705fpon79b", "checksum": "9604f4021f2759e85e5c5da7cde24c6dfee6185dcac528fb76a3dacf4e93e6d7"}, {"id": "fls_fouu0z3jwoad", "number": "6.9:13", "link": "expressions.html#fls_fouu0z3jwoad", "checksum": "6df13900857eadceabad33c0cb30734412f004ce22dd4ca7929db7825f12a320"}, {"id": "fls_6sgj0ltt21i", "number": "6.9:14", "link": "expressions.html#fls_6sgj0ltt21i", "checksum": "360d88c25da00aaea34444416884679e51030df7846dab9da0f094a535cce93d"}, {"id": "fls_e5l4y3dy69xi", "number": "6.9:15", "link": "expressions.html#fls_e5l4y3dy69xi", "checksum": "fa58196075f56ac52b8d01e9cb00cfdb9529af1c583a3480a55001154f045e3b"}, {"id": "fls_fza3omn8yw7s", "number": "6.9:16", "link": "expressions.html#fls_fza3omn8yw7s", "checksum": "6116e98e9979b81eab9a7ab0c7273d7762a8679a757f8533b345a57fb7e929fe"}, {"id": "fls_ehamppbq4gmg", "number": "6.9:17", "link": "expressions.html#fls_ehamppbq4gmg", "checksum": "b2c5fef9e306895e61c01a69f017386886e4f27a15ec910d892e2129c9f7711b"}, {"id": "fls_i68oxj659hc1", "number": "6.9:18", "link": "expressions.html#fls_i68oxj659hc1", "checksum": "39e66b9082ab41a3cb7bfe897f53ec7d894d3c0a2eedb848765d2d5b61f5f08b"}, {"id": "fls_esvpmh6razg3", "number": "6.9:19", "link": "expressions.html#fls_esvpmh6razg3", "checksum": "5dc619e3c7a42b3865b9e09a909cf74dd7733409a6dc676d5ce0776835ec2935"}], "informational": false}, {"id": "fls_k64tfywtn0g8", "number": "6.10", "title": "Tuple Expressions", "link": "expressions.html#tuple-expressions", "paragraphs": [{"id": "fls_87rp1hfwvjel", "number": "6.10:1", "link": "expressions.html#fls_87rp1hfwvjel", "checksum": "7399dc1df9b884285bce9a5b8c11dc84c4ac1a56dfa88377b1364cb87d4a0731"}, {"id": "fls_581y6jq1eyn8", "number": "6.10:2", "link": "expressions.html#fls_581y6jq1eyn8", "checksum": "f33b885ff1461bd9c3edce99af1025448f23b6f34719d2aada1b9371a66e3977"}, {"id": "fls_ljz3sxmfzflm", "number": "6.10:3", "link": "expressions.html#fls_ljz3sxmfzflm", "checksum": "c4ab6ee82caa1cd55dc2e28627611665855885cd1d29e62c1ca3ff00223e9259"}, {"id": "fls_k2aznqo9j49p", "number": "6.10:4", "link": "expressions.html#fls_k2aznqo9j49p", "checksum": "24ed5e86bd386394eabd8a2ac4b328e9898749be29d66dab722c00236101f333"}, {"id": "fls_waf55yd3mpsq", "number": "6.10:5", "link": "expressions.html#fls_waf55yd3mpsq", "checksum": "b7b413e86deaa80c42270b0e67a9b7769446e927a1b9757d51ef9ea1a7c0e35e"}], "informational": false}, {"id": "fls_8tsynkj2cufj", "number": "6.11", "title": "Struct Expressions", "link": "expressions.html#struct-expressions", "paragraphs": [{"id": "fls_ij8rebvupb85", "number": "6.11:1", "link": "expressions.html#fls_ij8rebvupb85", "checksum": "493abab9453382e96f95834b89c0e5369e4813f666ac2b6457d230ce1809142a"}, {"id": "fls_4z91ymz3ciup", "number": "6.11:2", "link": "expressions.html#fls_4z91ymz3ciup", "checksum": "ea9e8ef3107dbe17a3db35ec182c1fcbe8fc64d450389cd947e13fbba936159c"}, {"id": "fls_uib1ml41mfrn", "number": "6.11:3", "link": "expressions.html#fls_uib1ml41mfrn", "checksum": "8e351f1080c459129073d0d8530951b8e82226d27242d9a1ff82271bdce4843f"}, {"id": "fls_gfu267bpl9ql", "number": "6.11:4", "link": "expressions.html#fls_gfu267bpl9ql", "checksum": "7f822abacd536f4c7d392cf59a82a0070650471dfcc73a2f8de8eb09547bb5dd"}, {"id": "fls_ph7fsphbpbv4", "number": "6.11:5", "link": "expressions.html#fls_ph7fsphbpbv4", "checksum": "24f31221ee538a172dbd40ca7f70b47441f5d24619c0c7d71b11b60873ee1eca"}, {"id": "fls_y3p6rtm7ek3l", "number": "6.11:6", "link": "expressions.html#fls_y3p6rtm7ek3l", "checksum": "dfd9ce367d4bf290e7ae6dfdea3d576766c0e2190c615c7e1f1113f9305360f3"}, {"id": "fls_dfajs3xaxbv", "number": "6.11:7", "link": "expressions.html#fls_dfajs3xaxbv", "checksum": "f742d113591d2078b7ee2b2c7107d89b3550d51f804ad1c2d5d6a9907cc9890c"}, {"id": "fls_e5b9n910z1cp", "number": "6.11:8", "link": "expressions.html#fls_e5b9n910z1cp", "checksum": "3888cd4b2bf0b27090e97dedf37902806541ed4b1fe7499ab5d8f04942eeaa50"}, {"id": "fls_lwyq3vyc91rn", "number": "6.11:9", "link": "expressions.html#fls_lwyq3vyc91rn", "checksum": "28873afd657a39c226d5e6dfbe90eda2f198b5d2275e48d63d83fcff6666a437"}, {"id": "fls_qed1pps827dv", "number": "6.11:10", "link": "expressions.html#fls_qed1pps827dv", "checksum": "bc5511c2c2fac0ba4a2014c7549d26dc3b47e1efc45745a57b9270b9daf8717a"}, {"id": "fls_b60omrhc7t73", "number": "6.11:11", "link": "expressions.html#fls_b60omrhc7t73", "checksum": "05db74451ddd466b05e13f92f7002d1a5bbd98357e459d80505b0fc0192b5722"}, {"id": "fls_z3gj1v6g605r", "number": "6.11:12", "link": "expressions.html#fls_z3gj1v6g605r", "checksum": "abbd965676cc9c6c017509ca4f0db2bfac5d9703fadd03e8f5f4a98a4bd13e98"}, {"id": "fls_57t368kema7h", "number": "6.11:13", "link": "expressions.html#fls_57t368kema7h", "checksum": "fa8bbc2efa5ec7a8d906f785e3b77771dfd096c32b87c0a0b78d6e8dfa804e8f"}, {"id": "fls_sm2hx8sh4agb", "number": "6.11:14", "link": "expressions.html#fls_sm2hx8sh4agb", "checksum": "5f874feae7243e265174842c1705edb105460487394bbb55e89d57d48477007c"}, {"id": "fls_yjx1t3x6qpfg", "number": "6.11:15", "link": "expressions.html#fls_yjx1t3x6qpfg", "checksum": "7c1c7e161e1e23fa1376c0e49c44e13f336fab7729692b3a44d0eb2823eefdac"}, {"id": "fls_2dajkhq58cdp", "number": "6.11:16", "link": "expressions.html#fls_2dajkhq58cdp", "checksum": "756313e2a5d855cb3ea595bb56cc4dde2bb98f40796e46b678e768367ecd32e3"}, {"id": "fls_9s4znhi0u3ys", "number": "6.11:17", "link": "expressions.html#fls_9s4znhi0u3ys", "checksum": "eab8fece1cd805ef10af3d99fc4dd15162f528e0721ee3b0165f345c61c44e56"}, {"id": "fls_i31rodt42m0z", "number": "6.11:18", "link": "expressions.html#fls_i31rodt42m0z", "checksum": "4b9a135c41174a4d1b374036bec37ca58bc2dc1b5cdd02cfa29b818f6f6b5595"}, {"id": "fls_sjwd8o5mknjo", "number": "6.11:19", "link": "expressions.html#fls_sjwd8o5mknjo", "checksum": "e2fba67dc6e8362b2eb63f8630a99f82151d0ddf943e0be8719f2f2d15d1e3f6"}, {"id": "fls_ccqomsereni2", "number": "6.11:20", "link": "expressions.html#fls_ccqomsereni2", "checksum": "8e664ef278506ab961e1731480c81261ba08b7a02514217323708b4af6aff785"}, {"id": "fls_pivpdyr4seez", "number": "6.11:21", "link": "expressions.html#fls_pivpdyr4seez", "checksum": "0d739a4315b3634173f4630d2f989f3fda10c4cb81091788a44a982aeec6af27"}, {"id": "fls_bbmm5vir9xos", "number": "6.11:22", "link": "expressions.html#fls_bbmm5vir9xos", "checksum": "dfcb1ce2101411371aacdbb15a17031666e178ffa3a77ebe197897dda4775b78"}, {"id": "fls_9370n5xkkzce", "number": "6.11:23", "link": "expressions.html#fls_9370n5xkkzce", "checksum": "394483b6ad1f27b2f3dc2ac653fd29e231d3fb38e54f517704ba85054ada35c0"}, {"id": "fls_rclgwzdhfjj", "number": "6.11:24", "link": "expressions.html#fls_rclgwzdhfjj", "checksum": "6822f178e5b3aa34dc40d855f3a712775268565250bfb20b6a8a800342a31c2b"}, {"id": "fls_lmxz5768v5d8", "number": "6.11:25", "link": "expressions.html#fls_lmxz5768v5d8", "checksum": "699dc721a98b3b7c8991c04c5c3c9e87c9c461f7a9cd730d8456d351bbd31869"}, {"id": "fls_939cugbxju5e", "number": "6.11:26", "link": "expressions.html#fls_939cugbxju5e", "checksum": "e51a92569bbbf59fea10e1f41d637ae830e52f806ac58f8fa19556a53b6818d4"}, {"id": "fls_c34qwhaq2asm", "number": "6.11:27", "link": "expressions.html#fls_c34qwhaq2asm", "checksum": "a16846d9e33ce5a80d68efcb1d24f5c1e2e9934ba86b734882c989e20206c296"}, {"id": "fls_j2kmp1fee0g4", "number": "6.11:28", "link": "expressions.html#fls_j2kmp1fee0g4", "checksum": "89b109fa6381448c394ae86c65c245fc0e88e27972300ac7f167d84e0bbf79dd"}, {"id": "fls_90q7krxazc6u", "number": "6.11:29", "link": "expressions.html#fls_90q7krxazc6u", "checksum": "73b0b3da5ffde72edf46a99296ff66d8c09b58f4e2b1902d323d9f9cb6a1e935"}, {"id": "fls_qo05owpmtag0", "number": "6.11:30", "link": "expressions.html#fls_qo05owpmtag0", "checksum": "ef7b100b52af0f96f406949aff0b22634f64963355f13f1c1b95f8d9cba0b44b"}, {"id": "fls_ywh3nk6emwmw", "number": "6.11:31", "link": "expressions.html#fls_ywh3nk6emwmw", "checksum": "42afa78c852b518f88af6b77def436db4b5393c26983141a51e07dd6750eee0f"}, {"id": "fls_5w9lj5dc84p", "number": "6.11:32", "link": "expressions.html#fls_5w9lj5dc84p", "checksum": "de24271cf33bfa815864b5ebfcbc6988183405bef3c021b8e1b25580122ec11d"}, {"id": "fls_5zceer19mhdu", "number": "6.11:33", "link": "expressions.html#fls_5zceer19mhdu", "checksum": "e15958c4756b3bd003b782386a1a141722751eb4ce9fc36198479e4e13b251da"}, {"id": "fls_mq80i8fof7sx", "number": "6.11:34", "link": "expressions.html#fls_mq80i8fof7sx", "checksum": "4679e260d01f964df4c4854f527a55bc247efa22f9dc20b678ab35977531eb6e"}, {"id": "fls_raon1c1vrhx7", "number": "6.11:35", "link": "expressions.html#fls_raon1c1vrhx7", "checksum": "709cca2dab61298aa182e48d151ce7305ba30a57d6df86d251d6e2b35ddda241"}, {"id": "fls_njder5r7y5fg", "number": "6.11:36", "link": "expressions.html#fls_njder5r7y5fg", "checksum": "95098df352a5e120808aef809396f5698df829ca3a4454751786588593c411e8"}, {"id": "fls_w7x9wy6t0qcp", "number": "6.11:37", "link": "expressions.html#fls_w7x9wy6t0qcp", "checksum": "1d38c6679b821e525c76297aa8c0e49f1304aa0d4f31f22912785b2c0960a751"}, {"id": "fls_vsxsbqps64o", "number": "6.11:38", "link": "expressions.html#fls_vsxsbqps64o", "checksum": "1c87e5610628063b209d50888670d8fbf0c116de208f35b62acd64b1701ea6ab"}], "informational": false}, {"id": "fls_mjvxidqriazu", "number": "6.12", "title": "Invocation Expressions", "link": "expressions.html#invocation-expressions", "paragraphs": [], "informational": false}, {"id": "fls_xa4nbfas01cj", "number": "6.12.1", "title": "Call Expressions", "link": "expressions.html#call-expressions", "paragraphs": [{"id": "fls_fvgfx17ossd9", "number": "6.12.1:1", "link": "expressions.html#fls_fvgfx17ossd9", "checksum": "f8b54840ba0a9bb18d7f74ba88d9fb7a76db616cf3848b13c77fd6bc923701a0"}, {"id": "fls_jvz5z3eqxb39", "number": "6.12.1:2", "link": "expressions.html#fls_jvz5z3eqxb39", "checksum": "d99e0d245e03cdc2b926d8014cd2b42ff87a1095bd6dd4175f847952a046340e"}, {"id": "fls_7ql1c71eidg8", "number": "6.12.1:3", "link": "expressions.html#fls_7ql1c71eidg8", "checksum": "8d062365937975e8505f2c4e8e71c063108ae0722d02b6e99040c29ba6a8b853"}, {"id": "fls_qpbu34u6hxn9", "number": "6.12.1:4", "link": "expressions.html#fls_qpbu34u6hxn9", "checksum": "0b5c13f46066bd32a398d531e6264e5a6f809db983a611e3b694af48b4280a92"}, {"id": "fls_4t6imtiw6kzt", "number": "6.12.1:5", "link": "expressions.html#fls_4t6imtiw6kzt", "checksum": "61df60b38a66043dc01ecc6700a991327fa2f1ae0e9956c368653828fb4c6685"}, {"id": "fls_bu6i3mcvnbin", "number": "6.12.1:6", "link": "expressions.html#fls_bu6i3mcvnbin", "checksum": "3a26c47d58ffafc12d34d0e615b69f369100b0cf9292a10271dc8a2e63d46bbc"}, {"id": "fls_8ljrgdept7s8", "number": "6.12.1:7", "link": "expressions.html#fls_8ljrgdept7s8", "checksum": "5f9d8fc40d9881ee619a29f2d12ea46e15940dbea1dab46b859e16c018bdf547"}, {"id": "fls_7p6zrjbpj0kl", "number": "6.12.1:8", "link": "expressions.html#fls_7p6zrjbpj0kl", "checksum": "5333d55aedef513667c5227237c6c2a2adbd384fda536234b46d3238ddb494f8"}, {"id": "fls_yrr1s0tucgvh", "number": "6.12.1:9", "link": "expressions.html#fls_yrr1s0tucgvh", "checksum": "a2d1bdfa5553f148730d494403a917fe4ce046b63677f155ef67f743ee36cbcd"}, {"id": "fls_rzjfs9konok8", "number": "6.12.1:10", "link": "expressions.html#fls_rzjfs9konok8", "checksum": "b0ba0abc763fe3595f7902c3a252eac21df8a5f5bf2a14ef0b827112e4d41245"}, {"id": "fls_s3q3sej1hgho", "number": "6.12.1:11", "link": "expressions.html#fls_s3q3sej1hgho", "checksum": "74ee6d22351bd3883e14871ea5fc6ceb29be66276f677bc4fc2b0d3141e6b575"}, {"id": "fls_cu2ubdm3tfwb", "number": "6.12.1:12", "link": "expressions.html#fls_cu2ubdm3tfwb", "checksum": "e14331b5d1cbd3e0f3378e15c0cce322ecaa54746e2b6f14e67474f2bbf79690"}, {"id": "fls_9bbewx1l7h5h", "number": "6.12.1:13", "link": "expressions.html#fls_9bbewx1l7h5h", "checksum": "38706558f72979bd6e46834b20227eb0f154f24ae7c7fa6fccb6727f4278cb32"}, {"id": "fls_zskcro52q097", "number": "6.12.1:14", "link": "expressions.html#fls_zskcro52q097", "checksum": "aaafe3497cbeb87d20c2bce064dab71452f99fde846c3016a7adfde5bf68d2c6"}, {"id": "fls_ggr5i91vur0r", "number": "6.12.1:15", "link": "expressions.html#fls_ggr5i91vur0r", "checksum": "152ad98752862cbd3b4a4829db29e14e79ac33a18e63ea368a29290d48097015"}, {"id": "fls_hwalzgdidbfz", "number": "6.12.1:16", "link": "expressions.html#fls_hwalzgdidbfz", "checksum": "cd3a096fadfa9a4e5c2bf1ff1d1b22e0e9058b1df938efd918cd58c66c1af587"}, {"id": "fls_p52mfvpadu7w", "number": "6.12.1:17", "link": "expressions.html#fls_p52mfvpadu7w", "checksum": "7064baa76ad2b7cbe4bf45037a3d3a43376b5c398589deb730e98f37e190aaff"}, {"id": "fls_1cyo5qhbl1j9", "number": "6.12.1:18", "link": "expressions.html#fls_1cyo5qhbl1j9", "checksum": "aa1779e54177d30714ce6dae0a7fc956dc3b6e27c0f0422515c3d30df32a45bc"}, {"id": "fls_nb0eqky2akzt", "number": "6.12.1:19", "link": "expressions.html#fls_nb0eqky2akzt", "checksum": "1359026ad0e5317d916d695218c4b4f58af2d7ec820416374aeced27f0bba34c"}, {"id": "fls_9lt4wh9ql5ae", "number": "6.12.1:20", "link": "expressions.html#fls_9lt4wh9ql5ae", "checksum": "21e3d01dda11c45adff76b28fcfb3083d76d12ffc5536f575f6eaefd9962ae71"}, {"id": "fls_ixebnlcccmit", "number": "6.12.1:21", "link": "expressions.html#fls_ixebnlcccmit", "checksum": "7effb599da8a3c1baea1c8701cccf41ab42404559a391e8c14c3665b26623a7c"}, {"id": "fls_5yeq4oah58dl", "number": "6.12.1:22", "link": "expressions.html#fls_5yeq4oah58dl", "checksum": "19955cb453cc6cf5333d430e4649c62d88c743b44f789cba8886ce1f291ca495"}], "informational": false}, {"id": "fls_z7q8kbjwdc7g", "number": "6.12.2", "title": "Method Call Expressions", "link": "expressions.html#method-call-expressions", "paragraphs": [{"id": "fls_b7i26954j1hc", "number": "6.12.2:1", "link": "expressions.html#fls_b7i26954j1hc", "checksum": "a8dec600a3fcacac3a907b723f1e6e0ef585b3dbe889172b859c029da1de0581"}, {"id": "fls_jx3ryre0xs88", "number": "6.12.2:2", "link": "expressions.html#fls_jx3ryre0xs88", "checksum": "b1d01bd6bc611a104ed47aad0a7282f80b9aa5f9bb093b1e51119b4ff86dae42"}, {"id": "fls_3aquobo7akxu", "number": "6.12.2:3", "link": "expressions.html#fls_3aquobo7akxu", "checksum": "36804ef275767c0c846a921ac7826f0d024dc92fd5693a049479ead63e9490a6"}, {"id": "fls_11glzggtbgb3", "number": "6.12.2:4", "link": "expressions.html#fls_11glzggtbgb3", "checksum": "9ada46e3cc4d5e3179d0ad40beda5055f1e03a4f8731a1ecf6c42063c4503ee1"}, {"id": "fls_ljvj1f9fv085", "number": "6.12.2:5", "link": "expressions.html#fls_ljvj1f9fv085", "checksum": "d3f3ff24facae2599e2bfe9babbd32657f2c52c856044b7f244f1fe481811850"}, {"id": "fls_y7bj7y6davlh", "number": "6.12.2:6", "link": "expressions.html#fls_y7bj7y6davlh", "checksum": "a1dc6e9d768d9a58470a5b62a7f98741aebb317dd18c04561c5a42d074b864d6"}, {"id": "fls_oxxk3snd7ya0", "number": "6.12.2:7", "link": "expressions.html#fls_oxxk3snd7ya0", "checksum": "aaba36795e60e7bef85ccd9bf0d7e230e951f9c1837db93c32c16f9aef11c013"}, {"id": "fls_gmpq15g77o20", "number": "6.12.2:8", "link": "expressions.html#fls_gmpq15g77o20", "checksum": "54e3d591b1294cdbbf43cb074a59a53292fb8519cd37ac21987259502e5da2bf"}, {"id": "fls_pu0n9hakkym2", "number": "6.12.2:9", "link": "expressions.html#fls_pu0n9hakkym2", "checksum": "53271a5cc42f29777704b151c3231d90079f079f210d3dd483396e84a958bd3e"}, {"id": "fls_cawdkgvvd1x6", "number": "6.12.2:10", "link": "expressions.html#fls_cawdkgvvd1x6", "checksum": "9cdea4f035eb5b139ec0b8eceecfc6fa294487f2903175a7fd559ca0904fa094"}], "informational": false}, {"id": "fls_8gpcpvc99pxj", "number": "6.12.3", "title": "Call Conformance", "link": "expressions.html#call-conformance", "paragraphs": [{"id": "fls_tsn6suug9lvw", "number": "6.12.3:1", "link": "expressions.html#fls_tsn6suug9lvw", "checksum": "2f56593b719e88f913b2a91877bab40c8b6058fe2dc42ffa731142a4cc44b6b9"}, {"id": "fls_c40c6rg6rgv6", "number": "6.12.3:2", "link": "expressions.html#fls_c40c6rg6rgv6", "checksum": "777488d40bccbd5d4ec5c05ce041d775c3d195be15b1cd42fb0d35138547bc6a"}, {"id": "fls_gr1ixj9vfjum", "number": "6.12.3:3", "link": "expressions.html#fls_gr1ixj9vfjum", "checksum": "dca568771ca28709d249eaa1b082ab978e3cd7765e42472fb5c2b00252ae3012"}, {"id": "fls_jtmqa6ajsmpe", "number": "6.12.3:4", "link": "expressions.html#fls_jtmqa6ajsmpe", "checksum": "c72dd70b545db5369eb5c425b305a6a868aad21e7c1997c31e69af6975750d4f"}], "informational": false}, {"id": "fls_18k3uajrgq5f", "number": "6.13", "title": "Field Access Expressions", "link": "expressions.html#field-access-expressions", "paragraphs": [{"id": "fls_hr8qvwlhd9ts", "number": "6.13:1", "link": "expressions.html#fls_hr8qvwlhd9ts", "checksum": "0fff84454cb00168b6a6d5f137ffc3067c806ee13603a7b87dc82041c6cd2cb0"}, {"id": "fls_s2vpn4ihenpe", "number": "6.13:2", "link": "expressions.html#fls_s2vpn4ihenpe", "checksum": "9334aee9e081b26024fba1b5e854cbcddc4023c922bbb04a008c2af41f581151"}, {"id": "fls_yeuayil6uxzx", "number": "6.13:3", "link": "expressions.html#fls_yeuayil6uxzx", "checksum": "be3f919b0045750a0943ace11de2c5cc39ba2446dcb07439e06c395b68932bee"}, {"id": "fls_qqrconpa92i3", "number": "6.13:4", "link": "expressions.html#fls_qqrconpa92i3", "checksum": "51cac1aae8445b8f117fa167a6bd44ad5fe5127c2973a8a581fe8dfd3eb94ed7"}, {"id": "fls_fovs9il2h9xg", "number": "6.13:5", "link": "expressions.html#fls_fovs9il2h9xg", "checksum": "6f9439988b5641d2eaa940f1c522f3b9afac1b199078582b2c219d2205f2448a"}, {"id": "fls_r1b4n12i93pg", "number": "6.13:6", "link": "expressions.html#fls_r1b4n12i93pg", "checksum": "7d70af68eed186cc465c70dbd28390e81e61e14db425c5e779353bc99baebc47"}, {"id": "fls_kddnnz8uc15b", "number": "6.13:7", "link": "expressions.html#fls_kddnnz8uc15b", "checksum": "3cd41126945c5607334845bb4664bfe40264f046c0340a017472b82866f65a30"}, {"id": "fls_an3no949lvfw", "number": "6.13:8", "link": "expressions.html#fls_an3no949lvfw", "checksum": "c110b9dac7ab14f90979a9920f5617dd8da3a32b5807989a446a23ff0ac59bed"}, {"id": "fls_t6xmsm2nk1bc", "number": "6.13:9", "link": "expressions.html#fls_t6xmsm2nk1bc", "checksum": "840f48bd32143cc270de20c5fdb81ecce995e310ea1533781f30504f130c61fc"}, {"id": "fls_jjnyuu9kiagy", "number": "6.13:10", "link": "expressions.html#fls_jjnyuu9kiagy", "checksum": "d4fb708b3a1b8a51749778acb59d9fbf03034f9398ce5c216e9c8c1b4de9abe5"}, {"id": "fls_vani4665hijy", "number": "6.13:11", "link": "expressions.html#fls_vani4665hijy", "checksum": "54098cf568aea6d991b4f2f2937f77231043b31536d203e421fd0184f382a80a"}, {"id": "fls_6uzouesw2sod", "number": "6.13:12", "link": "expressions.html#fls_6uzouesw2sod", "checksum": "2de5624de002d9f4bb5a681605743df6efc7045c5bb8ed342cfbde01e76ae0e9"}, {"id": "fls_x27yayh4z787", "number": "6.13:13", "link": "expressions.html#fls_x27yayh4z787", "checksum": "3c17da1da1cc37beb254638ab4a54293270d991348e9aa7ce39f1e88d84c2f50"}, {"id": "fls_dimto84ifanr", "number": "6.13:14", "link": "expressions.html#fls_dimto84ifanr", "checksum": "d37495b7fca2741f3fed164400ece2dcb0653279c33efe30dbc3d17ab5fc1542"}], "informational": false}, {"id": "fls_tjyexqrx0fx5", "number": "6.14", "title": "Closure Expressions", "link": "expressions.html#closure-expressions", "paragraphs": [{"id": "fls_2d141c9a0yui", "number": "6.14:1", "link": "expressions.html#fls_2d141c9a0yui", "checksum": "258f763536cd569ba0b21eae81bcf3b4d9cfd0cafaa068416bbe158a28c94e9b"}, {"id": "fls_ugjgur0z6d4a", "number": "6.14:2", "link": "expressions.html#fls_ugjgur0z6d4a", "checksum": "db5d318ea65c25f370cc35cd9802f6a817162f3487fa20540a2640b35e34ca15"}, {"id": "fls_af1wl2mbkmfw", "number": "6.14:3", "link": "expressions.html#fls_af1wl2mbkmfw", "checksum": "07cb8bb8b2b5e0cdb6180c0299e313879b1505e490be99d8fa395a6b7e4528a3"}, {"id": "fls_wlvee6cng8oa", "number": "6.14:4", "link": "expressions.html#fls_wlvee6cng8oa", "checksum": "7c28fc0b7e17f3303465c055608659617c540771d11c39f7d3107392cddcb516"}, {"id": "fls_srbl7ptknjyk", "number": "6.14:5", "link": "expressions.html#fls_srbl7ptknjyk", "checksum": "5facc8962ddb8900252695d0175b7556877cfc69bc6d190d24f0f020b31d15f4"}, {"id": "fls_oey0ivaiu1l", "number": "6.14:6", "link": "expressions.html#fls_oey0ivaiu1l", "checksum": "d921449659c3716930839a61143720879c0a3bc9fa0aaaa3edd2467ad0ba54aa"}, {"id": "fls_fg8lx0yyt6oq", "number": "6.14:7", "link": "expressions.html#fls_fg8lx0yyt6oq", "checksum": "d81d41996d3332b44dfb6412c76f9014ca5e2783fe3b21f877ea56ca7cde0cd6"}, {"id": "fls_c3rzwuxjmbmy", "number": "6.14:8", "link": "expressions.html#fls_c3rzwuxjmbmy", "checksum": "7b4d34e53270867a1c6022c1d6c09dd73955dde1f5a9ccbf8f32155b641c84ce"}, {"id": "fls_81koexwps2hs", "number": "6.14:9", "link": "expressions.html#fls_81koexwps2hs", "checksum": "a1aa4159e3cc968865f3459c148216cbb93a1b4eb83afd051f72a91342e5a23f"}, {"id": "fls_xwj9sfggdveh", "number": "6.14:10", "link": "expressions.html#fls_xwj9sfggdveh", "checksum": "798f818850b1ef28b3bf2e11ecbf0a90593616d230f8b4ff5acb93f4a905c4c2"}, {"id": "fls_mpwkixtjerqx", "number": "6.14:11", "link": "expressions.html#fls_mpwkixtjerqx", "checksum": "7408f2001132dd253c673749440c7e0f86745254f7234df4df54f6145af92547"}, {"id": "fls_r6gwlonr7jmr", "number": "6.14:12", "link": "expressions.html#fls_r6gwlonr7jmr", "checksum": "5ff8aef954577166a2babd4efc99233e39df14747263949097875ebfd7d4d925"}, {"id": "fls_zsatk9snhxs0", "number": "6.14:13", "link": "expressions.html#fls_zsatk9snhxs0", "checksum": "aa94fe62eff62289c35a51ba23338de692f26985dad5f1e9a184a2206e1aec83"}, {"id": "fls_qpeol6zhxsgh", "number": "6.14:14", "link": "expressions.html#fls_qpeol6zhxsgh", "checksum": "2d7c48ba0c3b2b6c5741e38622fa55bef0f3d46a1b6a085b2e3c3126d21b9fe2"}, {"id": "fls_yn30xuejcfxo", "number": "6.14:15", "link": "expressions.html#fls_yn30xuejcfxo", "checksum": "ed12b9fbe4052a1ba7eb2fc4bd1f32703501bde79405e96d6c44baf94e90770f"}, {"id": "fls_sje6cdvifgv5", "number": "6.14:16", "link": "expressions.html#fls_sje6cdvifgv5", "checksum": "e8f3d28b8e350eebcca9318b8567852c70b42226ac7a6d2529996342e1771d0f"}, {"id": "fls_f59fw17gsasn", "number": "6.14:17", "link": "expressions.html#fls_f59fw17gsasn", "checksum": "96e2833e76ddface46f617de5b95f512ad2b35abd451f461327fe4fc0a76a7cb"}, {"id": "fls_7w15ccc1zzxl", "number": "6.14:18", "link": "expressions.html#fls_7w15ccc1zzxl", "checksum": "74db3a943063ecca182e015d816a2e8f7c71787f47f6aaa967357bb204ce2a59"}], "informational": false}, {"id": "fls_rr908hgunja7", "number": "6.15", "title": "Loop Expressions", "link": "expressions.html#loop-expressions", "paragraphs": [{"id": "fls_y1d8kd1bdlmx", "number": "6.15:1", "link": "expressions.html#fls_y1d8kd1bdlmx", "checksum": "09fcace93e1a1ae60500274dfd8e0a817f1b0a5f6c7a9328c5d114fd53a67ca7"}, {"id": "fls_bjzjuifnptfd", "number": "6.15:2", "link": "expressions.html#fls_bjzjuifnptfd", "checksum": "6b9aad456e20df8a4de1519c1ee093b2b3f13d98920642b1d2962cf4d410309d"}, {"id": "fls_xec0cikpkyzj", "number": "6.15:3", "link": "expressions.html#fls_xec0cikpkyzj", "checksum": "b64c37154896820db0ef51d026385ee987795486bfb5d7f65c754c9a8f52467e"}, {"id": "fls_eg93m93gvwal", "number": "6.15:4", "link": "expressions.html#fls_eg93m93gvwal", "checksum": "dad07b4b2c24254b39ee962868ba851da3abfb4e88fa4ce0fef314f085672d2e"}, {"id": "fls_phpoq9ho8f1v", "number": "6.15:5", "link": "expressions.html#fls_phpoq9ho8f1v", "checksum": "777120b3d2fc21a868a2ea042e873f59436b685b72a6032b485186ad442cc673"}, {"id": "fls_aw6qczl4zpko", "number": "6.15:6", "link": "expressions.html#fls_aw6qczl4zpko", "checksum": "df46281065aeae6add6395484b3498c5cc1f56c1b6a6ff85071d30c1c1967e51"}], "informational": false}, {"id": "fls_onfyolkcbeh3", "number": "6.15.1", "title": "For Loops", "link": "expressions.html#for-loops", "paragraphs": [{"id": "fls_1bh2alh37frz", "number": "6.15.1:1", "link": "expressions.html#fls_1bh2alh37frz", "checksum": "c28dc0d6919f99a8d5a9e3b50553301a0c76ab5eca3c73ad4880a6f00f5e3400"}, {"id": "fls_fkgbin6ydkm4", "number": "6.15.1:2", "link": "expressions.html#fls_fkgbin6ydkm4", "checksum": "d45c4e602e5fcc8e446a29995cac45076b42eccda45b5e42890bddcaa67ad409"}, {"id": "fls_fo6aa6td6rma", "number": "6.15.1:3", "link": "expressions.html#fls_fo6aa6td6rma", "checksum": "583f848b015193e3503778cb45bbdf89f53d1f9187871beb1ec436e304b6d588"}, {"id": "fls_bmtjhkdpfgcb", "number": "6.15.1:4", "link": "expressions.html#fls_bmtjhkdpfgcb", "checksum": "ffa6684591ed758c123bd99c97ac8f3c2b564c67286bc4143b4f6b7091c371b4"}, {"id": "fls_fkxlf91wkiio", "number": "6.15.1:5", "link": "expressions.html#fls_fkxlf91wkiio", "checksum": "7f491c33585f862cacf2ca8babd388b0f8535e316309b2ba3159cc723be6d9dc"}, {"id": "fls_kuxo0on3vit6", "number": "6.15.1:6", "link": "expressions.html#fls_kuxo0on3vit6", "checksum": "2ae7fbc17de06563bab4b5def815bb8c614a97ec994c1b366a97986b82bab1ef"}, {"id": "fls_2lrzrtjhsdes", "number": "6.15.1:7", "link": "expressions.html#fls_2lrzrtjhsdes", "checksum": "1f13dbaf54d9630e2e6a595b0759c2c4a8d57f34fe6cf3c0c0bec126fc90dc54"}], "informational": false}, {"id": "fls_sf4qnd43z2wc", "number": "6.15.2", "title": "Infinite Loops", "link": "expressions.html#infinite-loops", "paragraphs": [{"id": "fls_p11qw6mtxlda", "number": "6.15.2:1", "link": "expressions.html#fls_p11qw6mtxlda", "checksum": "d4c1d7e8e87bde117f7eef40c2ed32dc1c2a695289603f5334165e62e21ea011"}, {"id": "fls_b314wjbv0zwe", "number": "6.15.2:2", "link": "expressions.html#fls_b314wjbv0zwe", "checksum": "c2591bbd597199d589f0828cc9b6c1493be8833f9309a09c85898684cdd284d0"}, {"id": "fls_rpedapxnv8w3", "number": "6.15.2:3", "link": "expressions.html#fls_rpedapxnv8w3", "checksum": "5e1a9650f85ac94e1206998655ac484d49b8d873790fa1466b26090a9c4e31b7"}, {"id": "fls_wf11yp1jwf53", "number": "6.15.2:4", "link": "expressions.html#fls_wf11yp1jwf53", "checksum": "77829c689886c3f3bb6c1dfe3b0fa04247f0751c665b3e8ac112a26ee181502f"}, {"id": "fls_q3qpcf2fz7h", "number": "6.15.2:5", "link": "expressions.html#fls_q3qpcf2fz7h", "checksum": "e8f136a176cc0fe0f3606d8a8b17073dca041afb3be51dca7baad6ec757ed5e9"}, {"id": "fls_2ulbzmuuny3g", "number": "6.15.2:6", "link": "expressions.html#fls_2ulbzmuuny3g", "checksum": "465119bb7fd453dd324afa0a8dc4238f16a6d6f166a3f9af2f36323c1c79440f"}, {"id": "fls_99imks9hj3kp", "number": "6.15.2:7", "link": "expressions.html#fls_99imks9hj3kp", "checksum": "edd1dfa6e2152066f44d29878644b07b69562f0cb1ddaaa46687407cd656772f"}, {"id": "fls_w4tj5gofwih1", "number": "6.15.2:8", "link": "expressions.html#fls_w4tj5gofwih1", "checksum": "4d4e481fa82745916564f6987fc8a2b8f1810a95fff0051bbd458414e8de7eb4"}, {"id": "fls_pg3r6nyl865", "number": "6.15.2:9", "link": "expressions.html#fls_pg3r6nyl865", "checksum": "a424a37a558f279d3eb06289eca3e8149712a515006853466b2611ed10a46123"}, {"id": "fls_lp15ilkul2uv", "number": "6.15.2:10", "link": "expressions.html#fls_lp15ilkul2uv", "checksum": "0696a4a3b5ed6eb90e20ca85c60062772b02baa6d24ebae318d2095a18fb4fc8"}], "informational": false}, {"id": "fls_5jjm1kt43axd", "number": "6.15.3", "title": "While Loops", "link": "expressions.html#while-loops", "paragraphs": [{"id": "fls_ajby242tnu7c", "number": "6.15.3:1", "link": "expressions.html#fls_ajby242tnu7c", "checksum": "76c3f0d9cbc82b5cd26d8e303f802a79c3cac14ee906d37fa08f3f82d738d214"}, {"id": "fls_13hmhzqz82v6", "number": "6.15.3:2", "link": "expressions.html#fls_13hmhzqz82v6", "checksum": "dfc103919303cee91ca86794643ffd9901aa77325778c63ba280365f9d864217"}, {"id": "fls_d7ofrq3777kq", "number": "6.15.3:3", "link": "expressions.html#fls_d7ofrq3777kq", "checksum": "caa1e7db03706c0b574634ae9a32416e067db8cda6a47d5adbd5164ff8d0814e"}, {"id": "fls_p8iytn6kzcva", "number": "6.15.3:4", "link": "expressions.html#fls_p8iytn6kzcva", "checksum": "e77b64bb75965059fee8ba69865a044c98d24a10f4ff9b87845e4bf0c5be37ec"}, {"id": "fls_s6hra5spz64w", "number": "6.15.3:5", "link": "expressions.html#fls_s6hra5spz64w", "checksum": "3e51cb18f2c75e888c4486c269a44ff5c2f930b7d852028948bddcd9c20b982a"}, {"id": "fls_1i7hm645h7ox", "number": "6.15.3:6", "link": "expressions.html#fls_1i7hm645h7ox", "checksum": "d3cdb9b835ebb3138befce2f6ff348e0b0070506326d99c7ecd043640a577567"}, {"id": "fls_5x0du3u1jwd3", "number": "6.15.3:7", "link": "expressions.html#fls_5x0du3u1jwd3", "checksum": "e8d6e37169c33a35638460e2519303331bb0a51968caf4db78f6bf0a423227cb"}, {"id": "fls_23uluvhhoct6", "number": "6.15.3:8", "link": "expressions.html#fls_23uluvhhoct6", "checksum": "06ba123f6bbe35320b7d84ef5d7e09b874731dd5b73c29660397c6fbff9ec26c"}, {"id": "fls_k7g4cac93617", "number": "6.15.3:9", "link": "expressions.html#fls_k7g4cac93617", "checksum": "5ad23b0907a29189fa1a74f8bf5476fb33b2fc896867ee05578a56cb100c6a62"}, {"id": "fls_j08k3brdpgno", "number": "6.15.3:10", "link": "expressions.html#fls_j08k3brdpgno", "checksum": "12585479c350e3e0843e2d87f37d3677d4633473dca2547f15f57202375818d7"}], "informational": false}, {"id": "fls_m6kd5i9dy8dx", "number": "6.15.4", "title": "While Let Loops", "link": "expressions.html#while-let-loops", "paragraphs": [{"id": "fls_fmdlyp9r9zl7", "number": "6.15.4:1", "link": "expressions.html#fls_fmdlyp9r9zl7", "checksum": "65769f4b7f0bf9a9fcbb5e6b26a1f58966bc356349e7c74d9ce48fc53a248d4e"}, {"id": "fls_bc60zsc9yuoi", "number": "6.15.4:2", "link": "expressions.html#fls_bc60zsc9yuoi", "checksum": "dfeefa3347cb093ba18b50bf4e870e07ca528fa460a0915b68b3804fa032a562"}, {"id": "fls_gtfslepwhtes", "number": "6.15.4:3", "link": "expressions.html#fls_gtfslepwhtes", "checksum": "dbcd55ded2490510583c761de4a78678e93ec14ed0ce9f217dac1a86f1afb55f"}, {"id": "fls_ptq4ligioatn", "number": "6.15.4:4", "link": "expressions.html#fls_ptq4ligioatn", "checksum": "d93a03586b9947d27de86fb8e62b6a156cb8bb2f62500dcd24c757171cc8eff7"}, {"id": "fls_z2ht5iaat5ag", "number": "6.15.4:5", "link": "expressions.html#fls_z2ht5iaat5ag", "checksum": "8591ccb83f7eceed6dcd5cc4e8fe84102a7018a1e95b2845425471f83a3d18ac"}, {"id": "fls_pacf1uavh1qt", "number": "6.15.4:6", "link": "expressions.html#fls_pacf1uavh1qt", "checksum": "8868caa2d82cf27983ef85d9c1fdef0ae951dce04f87c0b087973b7b2eee4c45"}], "informational": false}, {"id": "fls_uusi0zej55is", "number": "6.15.5", "title": "Loop Labels", "link": "expressions.html#loop-labels", "paragraphs": [{"id": "fls_tx5u743391h7", "number": "6.15.5:1", "link": "expressions.html#fls_tx5u743391h7", "checksum": "854fe727482c863a6ac68633f1b03cdb775d6fd369dfc1555967870c794666d0"}, {"id": "fls_7hc8yboeaho0", "number": "6.15.5:2", "link": "expressions.html#fls_7hc8yboeaho0", "checksum": "8e78060ed87d5bdc97d7a80f104d547001e75fe63dda373498822a1cea769cb1"}], "informational": false}, {"id": "fls_jr4tpuyksr75", "number": "6.15.6", "title": "Break Expressions", "link": "expressions.html#break-expressions", "paragraphs": [{"id": "fls_i5ko1t2wbgxe", "number": "6.15.6:1", "link": "expressions.html#fls_i5ko1t2wbgxe", "checksum": "76341e2e5ec7766dc0c0efeb173d69290676e7ddc2ae0dc881cc567505c9ab59"}, {"id": "fls_jiykbp51909f", "number": "6.15.6:2", "link": "expressions.html#fls_jiykbp51909f", "checksum": "3f63777511e3bf35174b31fe5c348a66c360584e8603e3ce47320961aba23159"}, {"id": "fls_gnuptkuafkni", "number": "6.15.6:3", "link": "expressions.html#fls_gnuptkuafkni", "checksum": "786c9c18c0260006c1dbd6e14962cec2fb012e6d4697db9bd8a075e5fe0f8f81"}, {"id": "fls_7frvr2nm2mcj", "number": "6.15.6:4", "link": "expressions.html#fls_7frvr2nm2mcj", "checksum": "22ee000894d4113f8cb1e254fee6f2cb6156c3c3705be34e97c6b7105051db59"}, {"id": "fls_54d5uydc87td", "number": "6.15.6:5", "link": "expressions.html#fls_54d5uydc87td", "checksum": "9f98b146f5e3f519d49c4a5cc27e5c636fc58009070d51a8cdba623f47fea788"}, {"id": "fls_ghxns2nggffj", "number": "6.15.6:6", "link": "expressions.html#fls_ghxns2nggffj", "checksum": "2294fcd2876d3e68ee5271da38ac8445007b7d3658522624e1ec58b99b815478"}, {"id": "fls_3hi7fu42svyx", "number": "6.15.6:7", "link": "expressions.html#fls_3hi7fu42svyx", "checksum": "ce00d8330f82a3349d3e60bcf3723d65a6615e7770383dd754ef0e99c593915c"}, {"id": "fls_dnnq1zym8ii0", "number": "6.15.6:8", "link": "expressions.html#fls_dnnq1zym8ii0", "checksum": "8be6b0876309d2276c585936c4a66f82b7a0f32e63bbfcbb8ebbb5e2c256835e"}, {"id": "fls_1wdybpfldj7q", "number": "6.15.6:9", "link": "expressions.html#fls_1wdybpfldj7q", "checksum": "35f41aebc07416037d09ff5a97c5253fce2de7df9e75c929d9de4fbe767e21d2"}, {"id": "fls_8yore99adr22", "number": "6.15.6:10", "link": "expressions.html#fls_8yore99adr22", "checksum": "4fd91645624561c1d1bbd9f575a8575e8b09aac121d44079892a624a618ab957"}, {"id": "fls_60imbzwg3e2x", "number": "6.15.6:11", "link": "expressions.html#fls_60imbzwg3e2x", "checksum": "321bd90dbdfcaa9c7b4ceb894803b3b97b0a87dfd90b12002b5478f31bedb011"}, {"id": "fls_l0c05wa9q97w", "number": "6.15.6:12", "link": "expressions.html#fls_l0c05wa9q97w", "checksum": "53c790e0a17baa1dcef15441e67d7fe84f88a8a02a1b883733d73bc34ce24cf8"}, {"id": "fls_bgd7d5q69q0g", "number": "6.15.6:13", "link": "expressions.html#fls_bgd7d5q69q0g", "checksum": "4b8008568153111179d64a9818853fd4ced12608e93c7cb391d3bebbca4d7e52"}, {"id": "fls_yb8jv4mkmki0", "number": "6.15.6:14", "link": "expressions.html#fls_yb8jv4mkmki0", "checksum": "ed86179c1505cf9edbac787d45ace6e323297724305d5a1ba5d37bd9159fec7a"}, {"id": "fls_d7l1y2qbe8br", "number": "6.15.6:15", "link": "expressions.html#fls_d7l1y2qbe8br", "checksum": "8bb044e8939f8436404c3d077d1c30ecf3eaf854fd9ca77d18ce884f8a527f43"}, {"id": "fls_56szfyilc06", "number": "6.15.6:16", "link": "expressions.html#fls_56szfyilc06", "checksum": "b4a2791affedd1510d06abce351328641e828c613c591847cc874cefa3bbd3b7"}, {"id": "fls_jnpx8mx1oa7n", "number": "6.15.6:17", "link": "expressions.html#fls_jnpx8mx1oa7n", "checksum": "78fd4e85f7ed2bdde136e635abab8b71e8bef862ab9d2f0e1298e80b8cd25b22"}, {"id": "fls_l2kp8mw6bjj0", "number": "6.15.6:18", "link": "expressions.html#fls_l2kp8mw6bjj0", "checksum": "cc7470153aa2f9c1f440ab45ce0dc158071c6ba5256ba0ccbf8803dc062ab353"}, {"id": "fls_2nmadhe3ismj", "number": "6.15.6:19", "link": "expressions.html#fls_2nmadhe3ismj", "checksum": "814a050d4fc9ee7f0bab1848c0223b4bd667b6757604dcae405c723fb3e9211e"}, {"id": "fls_xpflrl78qme1", "number": "6.15.6:20", "link": "expressions.html#fls_xpflrl78qme1", "checksum": "7b9921e75e5329e2cf5d41b41758b55590769f045e313e6ba78bfe34b35d3d0f"}, {"id": "fls_wfaw1pg1yxdm", "number": "6.15.6:21", "link": "expressions.html#fls_wfaw1pg1yxdm", "checksum": "3bb40dd59b9591b997eb61cb83d0183babede69184aca68aa875556213ae03ed"}, {"id": "fls_aurifmm8rpdp", "number": "6.15.6:22", "link": "expressions.html#fls_aurifmm8rpdp", "checksum": "683d5c1557155d46d5564039411fab17d251fd2aadf6db08e29702326f7126ac"}, {"id": "fls_32fwis9pxh77", "number": "6.15.6:23", "link": "expressions.html#fls_32fwis9pxh77", "checksum": "d88f1c75f863c6cbffa69c29657e1115c53a70912e3b63cf47add2713ee6a72a"}], "informational": false}, {"id": "fls_sjwrlwvpulp", "number": "6.15.7", "title": "Continue Expressions", "link": "expressions.html#continue-expressions", "paragraphs": [{"id": "fls_wzs6kz9ffqzt", "number": "6.15.7:1", "link": "expressions.html#fls_wzs6kz9ffqzt", "checksum": "49b3e7e14f92deb7aa014630cbd240f23c879f0e06215675083e2cc8e2ea0ca4"}, {"id": "fls_r5ke7b9n7k3s", "number": "6.15.7:2", "link": "expressions.html#fls_r5ke7b9n7k3s", "checksum": "74df3acc9f454cef49a7ba6430fa2714b9bdf1d480f791367943a7f0df8f90a8"}, {"id": "fls_ckm6i9c3s6j8", "number": "6.15.7:3", "link": "expressions.html#fls_ckm6i9c3s6j8", "checksum": "377ef19ecd70653a9346c61d53ea2bcb592cba726b2701fec87e85c80391b5ba"}, {"id": "fls_d0bmw8xiw5nk", "number": "6.15.7:4", "link": "expressions.html#fls_d0bmw8xiw5nk", "checksum": "ff54a914ac772400ab7f8e1137740ab8ed4cb109a88eac4469cd396aaa3b0ee4"}, {"id": "fls_vmyuuptfnwek", "number": "6.15.7:5", "link": "expressions.html#fls_vmyuuptfnwek", "checksum": "09b36c35bd51fddd17ca377ef398ff6638506a4ae181b94585b82c3ce0acdadf"}, {"id": "fls_gm74eo754rq9", "number": "6.15.7:6", "link": "expressions.html#fls_gm74eo754rq9", "checksum": "fabfe690b8b6598067a744cd77a4d7aa3fc628d1441118ac4233532e401ee3b7"}, {"id": "fls_gvuesa5ekeif", "number": "6.15.7:7", "link": "expressions.html#fls_gvuesa5ekeif", "checksum": "361c2bfd385803a13b6a123bc7e35986a8fbfb5c166507aad04479bd53e8c545"}, {"id": "fls_767gv7zhqamh", "number": "6.15.7:8", "link": "expressions.html#fls_767gv7zhqamh", "checksum": "6c2dd73a6b8b4a5e78015a12ab14a9efbd1519d9a162ef5db39c49d16fa51aca"}], "informational": false}, {"id": "fls_18swodqqzadj", "number": "6.16", "title": "Range Expressions", "link": "expressions.html#range-expressions", "paragraphs": [{"id": "fls_bi82rusji8g0", "number": "6.16:1", "link": "expressions.html#fls_bi82rusji8g0", "checksum": "c091d4ede2953dfdbd93f7b66ba436e8700318eb591a6906daa25ebbe45b07fc"}, {"id": "fls_msyv4oyk5zp9", "number": "6.16:2", "link": "expressions.html#fls_msyv4oyk5zp9", "checksum": "e98911288d83977a62fecbf208cd7217898c4496c84ba45a3b8a8d01581665b7"}, {"id": "fls_f648uuxxh4vk", "number": "6.16:3", "link": "expressions.html#fls_f648uuxxh4vk", "checksum": "7fc1ef96655d5961f2ac73c23730598d903635928712a8149267cdcf8ce0fc34"}, {"id": "fls_9pl4629t54yq", "number": "6.16:4", "link": "expressions.html#fls_9pl4629t54yq", "checksum": "0c208741e7e3e75e8bd5586585edc747be3a9ef33c4a6fb340425fb7d92612fb"}, {"id": "fls_xaumwogwbv3g", "number": "6.16:5", "link": "expressions.html#fls_xaumwogwbv3g", "checksum": "4ef87517cf959f7fcbd556c7ec5b3bc137bc9084aa1cc12a22c2660c1a2ba0f5"}, {"id": "fls_exa2ufugnpgc", "number": "6.16:6", "link": "expressions.html#fls_exa2ufugnpgc", "checksum": "12ba48b3f294024fc43fdd49467a28d82ac7c2a6e6e852a9bf8a9201823d0f62"}, {"id": "fls_jqy0p155btca", "number": "6.16:7", "link": "expressions.html#fls_jqy0p155btca", "checksum": "bf443cd1c50e8fa7043e4b3aea7c4fc63e0aabd2860454a6ce5f04b4a01c2d84"}, {"id": "fls_ppustuqdji7b", "number": "6.16:8", "link": "expressions.html#fls_ppustuqdji7b", "checksum": "a794ca0dde4e9941ed5ae749e6b790ce7034083245dfd6d450ff1081510c71c6"}, {"id": "fls_ke2fpgodq84u", "number": "6.16:9", "link": "expressions.html#fls_ke2fpgodq84u", "checksum": "d1e65f1155e1acd346f47a814a51eeb8a7c9207a8e5936b4b1a1bd7d1f3adb7f"}, {"id": "fls_zb6jk6qykun6", "number": "6.16:10", "link": "expressions.html#fls_zb6jk6qykun6", "checksum": "6ba6fc0058159bd884a7dd7c3744da344c3e7870545e9954e409937d1c674fe8"}, {"id": "fls_x67xo25n0qlz", "number": "6.16:11", "link": "expressions.html#fls_x67xo25n0qlz", "checksum": "afd95e25d1673ff3ff51f1aa419a774d75c988e1c753d9735a8a1559c15f20df"}, {"id": "fls_m6n0gvg3ct1b", "number": "6.16:12", "link": "expressions.html#fls_m6n0gvg3ct1b", "checksum": "f1e8b3694025f031c332d8b550a1ba567b40e183315963898b053e00bd60cdf7"}, {"id": "fls_yvh5cdgzevni", "number": "6.16:13", "link": "expressions.html#fls_yvh5cdgzevni", "checksum": "a8670d453f14933a28fe2abe58141e9f74e15c9c8adb968d2b14fb70bb3f5503"}, {"id": "fls_lh9my7g8oflq", "number": "6.16:14", "link": "expressions.html#fls_lh9my7g8oflq", "checksum": "b17a0ece3cf29a9af5df5c9a8b2301406bb89adbee4bda56aa4d0fa47658b5d6"}, {"id": "fls_livflk52xaj9", "number": "6.16:15", "link": "expressions.html#fls_livflk52xaj9", "checksum": "06d23443cbb3466875381e861eeb4acdcd6caddc9e7cbee7fab979d4b33863c1"}, {"id": "fls_vj213j9bj61y", "number": "6.16:16", "link": "expressions.html#fls_vj213j9bj61y", "checksum": "579a72c0c0f0bd83e5d75ab49631dcb0a8276f928990bcc059a11b0d30d3a98c"}, {"id": "fls_5a1uivj19kob", "number": "6.16:17", "link": "expressions.html#fls_5a1uivj19kob", "checksum": "3415e8d798ccb3986f3e21b2a1386f9cd327b61eb654ef6db8275472983bf2a9"}, {"id": "fls_k611yoc8hk0n", "number": "6.16:18", "link": "expressions.html#fls_k611yoc8hk0n", "checksum": "50f2d043bd7c1a6899cf0ac4004941ea2652c098001ea93bdf7dbce10b4719cf"}, {"id": "fls_m0slikrulnvd", "number": "6.16:19", "link": "expressions.html#fls_m0slikrulnvd", "checksum": "103de571717eea1f829b13cceed6230de05a7fa91e9c10b005e055f1db42a0a6"}, {"id": "fls_1gc436ee1nzm", "number": "6.16:20", "link": "expressions.html#fls_1gc436ee1nzm", "checksum": "d30a7c9cf59ba8eee1317e7315939208349cb11f6cbb39fdb58a660731dbf7ec"}, {"id": "fls_8sfjw83irpre", "number": "6.16:21", "link": "expressions.html#fls_8sfjw83irpre", "checksum": "ee1a6d56abdc0108429b4b67cd0d856c84167a672c4536ab6341f97d4f6458cd"}, {"id": "fls_5xw4opkbxhsc", "number": "6.16:22", "link": "expressions.html#fls_5xw4opkbxhsc", "checksum": "33c5a2d77620d604b76dfc94b43df1deba183b280e340cefcc72574e4464f421"}, {"id": "fls_ehseim1p479z", "number": "6.16:23", "link": "expressions.html#fls_ehseim1p479z", "checksum": "d1fffaa1ad08e71849e32997524e5b534b53af3d4269c127b794d379f3bc2129"}], "informational": false}, {"id": "fls_nlzksiu8y3z9", "number": "6.17", "title": "If and If Let Expressions", "link": "expressions.html#if-and-if-let-expressions", "paragraphs": [], "informational": false}, {"id": "fls_mkut7gut49gi", "number": "6.17.1", "title": "If Expressions", "link": "expressions.html#if-expressions", "paragraphs": [{"id": "fls_2i4fbxbbvpf1", "number": "6.17.1:1", "link": "expressions.html#fls_2i4fbxbbvpf1", "checksum": "fed2673ffa3a36e3d8eea0ff13a1313ace5bd91f22d1a6589ae9660c512118e8"}, {"id": "fls_5azwlk7hav1k", "number": "6.17.1:2", "link": "expressions.html#fls_5azwlk7hav1k", "checksum": "712169ee265f92b134c3f6fb57963cd9759c2cd5683f0424988fe3bb68bb64e7"}, {"id": "fls_r7gzxo16esri", "number": "6.17.1:3", "link": "expressions.html#fls_r7gzxo16esri", "checksum": "24d6b64329dc27dfdf593e76d519f5ae054d199e4518e0738c4de51bf51a4e94"}, {"id": "fls_iv9t4nfs4f6w", "number": "6.17.1:4", "link": "expressions.html#fls_iv9t4nfs4f6w", "checksum": "0850025c14ab883b37fa1861427a418f09ca3b6e0847d51a890ffaa2652452e7"}, {"id": "fls_i9sxf2q5jjqt", "number": "6.17.1:5", "link": "expressions.html#fls_i9sxf2q5jjqt", "checksum": "d43533dc4e30c579c4621913ade291f4b6ce36cb6a11a56fe5604995829745cd"}, {"id": "fls_1e8qer6bh2f3", "number": "6.17.1:6", "link": "expressions.html#fls_1e8qer6bh2f3", "checksum": "14a5fdd342f43c1ff636462e60afe9fe909a5f38112627348b199ae2ee002edc"}, {"id": "fls_p5pjxk5xfcbx", "number": "6.17.1:7", "link": "expressions.html#fls_p5pjxk5xfcbx", "checksum": "e99f63a7d1d8d378bdcd5535ffac111aa7ed9148da25a75e8dab381f952ed846"}, {"id": "fls_mpq7gicosgkt", "number": "6.17.1:8", "link": "expressions.html#fls_mpq7gicosgkt", "checksum": "6c50b2d33d2418fa51153578714c4068528621dd3a445810a81473047b4a5d5b"}, {"id": "fls_yhlyzef9h97q", "number": "6.17.1:9", "link": "expressions.html#fls_yhlyzef9h97q", "checksum": "8c2fd758de86a4133bb6563e754fa800418e8e439e99df337ded2a469af6527b"}, {"id": "fls_w7lq4dkoyuf7", "number": "6.17.1:10", "link": "expressions.html#fls_w7lq4dkoyuf7", "checksum": "5fdcd07260c9fbc40cbe285b674e158c7bf751f43e92b01e3880bcc6aba59521"}, {"id": "fls_5udx9zyeg5ga", "number": "6.17.1:11", "link": "expressions.html#fls_5udx9zyeg5ga", "checksum": "56c965d3891816793bf7330f4c08c63924c6a0b54ca2b9eeb47ea59f3ccfc2ae"}, {"id": "fls_67l4j48n6p7o", "number": "6.17.1:12", "link": "expressions.html#fls_67l4j48n6p7o", "checksum": "63a306e9f8570a302ee746010c5e0e69b20d7386957aff9338e0f773e20d22f3"}, {"id": "fls_e8gd5lzcaifw", "number": "6.17.1:13", "link": "expressions.html#fls_e8gd5lzcaifw", "checksum": "20d907a5cbe82489d0014d547facc267d3c0c97e818349083a6b2185fd51dbc6"}], "informational": false}, {"id": "fls_p0t1ch115tra", "number": "6.17.2", "title": "If Let Expressions", "link": "expressions.html#if-let-expressions", "paragraphs": [{"id": "fls_dsrjup2umr9", "number": "6.17.2:1", "link": "expressions.html#fls_dsrjup2umr9", "checksum": "89d8336661af98acfc92ac73c9a7646d5685ad8fb9a9c7ee727522c13e40f937"}, {"id": "fls_okvoyztt6fbk", "number": "6.17.2:2", "link": "expressions.html#fls_okvoyztt6fbk", "checksum": "96787d1f2f03b1bcd23cb76fa0744a90d8a5b2378657d0cdd8620ae8852855e4"}, {"id": "fls_4vyrufo4qdeg", "number": "6.17.2:3", "link": "expressions.html#fls_4vyrufo4qdeg", "checksum": "cb91721c2c002487d3e82e8dceacd7595beb7cd8fe5de78218f6db9ec3b5ae27"}, {"id": "fls_qfnwwvzxsl3", "number": "6.17.2:4", "link": "expressions.html#fls_qfnwwvzxsl3", "checksum": "bc1bd4a44da1387d7a93190dd68ebc0396e1ecd754b7f47c469dcfee25264ce1"}, {"id": "fls_ler4iqwdbcba", "number": "6.17.2:5", "link": "expressions.html#fls_ler4iqwdbcba", "checksum": "ab6b81b2725ca076df34546e9b8460637727d1373cf69dd411daa57b1dca9eb1"}, {"id": "fls_ijo73wtz1sy", "number": "6.17.2:6", "link": "expressions.html#fls_ijo73wtz1sy", "checksum": "3c569b4b1a7dad55b309e8e602764e8a557ccf8b0ee06a5f865bb3ef7d1eb28d"}, {"id": "fls_qeho5iqiy59", "number": "6.17.2:7", "link": "expressions.html#fls_qeho5iqiy59", "checksum": "d30896d56b0bcbc14b8bd25c419011f7f60c59d2d837f98326500728db352704"}, {"id": "fls_nhngr8y850dt", "number": "6.17.2:8", "link": "expressions.html#fls_nhngr8y850dt", "checksum": "c6e6c37f75c0e92c4b7ad3bed59c5bc6e8cbbaa12fbb531e90c5623ffc57d20d"}, {"id": "fls_8fg2ufaxjkv5", "number": "6.17.2:9", "link": "expressions.html#fls_8fg2ufaxjkv5", "checksum": "61a7161cbd8deb105732aa6f31fec380f4a218fb64f1a62dcf0a5596974f4a48"}], "informational": false}, {"id": "fls_e5td0fa92fay", "number": "6.18", "title": "Match Expressions", "link": "expressions.html#match-expressions", "paragraphs": [{"id": "fls_ei4pbeksd1v8", "number": "6.18:1", "link": "expressions.html#fls_ei4pbeksd1v8", "checksum": "7197f8e20c7dfa8c46878c8428779c2e06d872e3b47815cd767d14f1eb71d39b"}, {"id": "fls_l45i24ikfavm", "number": "6.18:2", "link": "expressions.html#fls_l45i24ikfavm", "checksum": "530646a0bfd42c27bfaf45748d4f0b8c089e6d313d3c67905017587926ce9d17"}, {"id": "fls_d9gerg12hm2d", "number": "6.18:3", "link": "expressions.html#fls_d9gerg12hm2d", "checksum": "65fd317e7555f0c5f1f52698ac1bd1429fe681957715153a930e9020fb092c9b"}, {"id": "fls_oj8dg28xw5yp", "number": "6.18:4", "link": "expressions.html#fls_oj8dg28xw5yp", "checksum": "414ff72de304b8d5f51ed55fa6648080dce6821de269cd8d7f5a6927216e20ce"}, {"id": "fls_lrdrtedyz28i", "number": "6.18:5", "link": "expressions.html#fls_lrdrtedyz28i", "checksum": "9d8569c641c0d6d974ec123f03529ea557e3c78043b29ba6ed204b727c336170"}, {"id": "fls_zjq4lect1hyd", "number": "6.18:6", "link": "expressions.html#fls_zjq4lect1hyd", "checksum": "e6e31ca865a9b72286d7654782d65467d18a2cb625795e076e6086c41eda660d"}, {"id": "fls_8wjdichfxp0y", "number": "6.18:7", "link": "expressions.html#fls_8wjdichfxp0y", "checksum": "da5e7dad20db12da8235313f12dfaa6c7c4fee255e9067d80e1e54a475a9c70a"}, {"id": "fls_hs1rr54hu18w", "number": "6.18:8", "link": "expressions.html#fls_hs1rr54hu18w", "checksum": "7e6b4209512d832728f5d5b5fd8f06c27031fa1e50806d1bbd587358cf9c5acc"}, {"id": "fls_rpmoaaz6lfli", "number": "6.18:9", "link": "expressions.html#fls_rpmoaaz6lfli", "checksum": "6790ea54211b198f819b8d618322dc387a7add951a7e9732ae8e44ba732b6557"}, {"id": "fls_knv1affr2o8t", "number": "6.18:10", "link": "expressions.html#fls_knv1affr2o8t", "checksum": "48a640f2c735c124058c84096328af56fa56e10d68c3f4ba796121091e68e732"}, {"id": "fls_bzhz5wjd90ii", "number": "6.18:11", "link": "expressions.html#fls_bzhz5wjd90ii", "checksum": "25b69156c5ec7a484b25307fd4c216b80ecdd701ee88b542bb71ec625018c38f"}, {"id": "fls_17ag0wzdbxv6", "number": "6.18:12", "link": "expressions.html#fls_17ag0wzdbxv6", "checksum": "d4a039ef3435b02a470dc1d412a131b96b9fac9aca97389cfcc27e0fed17b2ba"}, {"id": "fls_5w964phrru82", "number": "6.18:13", "link": "expressions.html#fls_5w964phrru82", "checksum": "5dcf378849bb441ddeaea2ae698f7a8fd5453cd13880145ac1656711d46c7d52"}, {"id": "fls_g6xyz0beps3o", "number": "6.18:14", "link": "expressions.html#fls_g6xyz0beps3o", "checksum": "77c75227aede40369c8e2fd1b338a09aa0ddc23971005f236a974a3d77d8fb64"}, {"id": "fls_8dba4o5qg8js", "number": "6.18:15", "link": "expressions.html#fls_8dba4o5qg8js", "checksum": "a8bcecdd608b33d4545878847b9586532fdf5d59d7e323bbaf48e998335caa68"}, {"id": "fls_e02um1gb89d0", "number": "6.18:16", "link": "expressions.html#fls_e02um1gb89d0", "checksum": "48fe049c281a0532117b572c686a901f7a8fc2c108c67e1b42e1cf588a70d507"}, {"id": "fls_4sh2yrslszvb", "number": "6.18:17", "link": "expressions.html#fls_4sh2yrslszvb", "checksum": "6b2ccfaf6dbf738498a359ba99443b962f7e4e3e4acf6e47eb23204ddaaec6e2"}, {"id": "fls_g551l8r8yh6d", "number": "6.18:18", "link": "expressions.html#fls_g551l8r8yh6d", "checksum": "1e2c82e1db38f740afc388f53a6718916315308d08a8fcf7b6bc4b1778b36f41"}, {"id": "fls_y44jzkbv74bv", "number": "6.18:19", "link": "expressions.html#fls_y44jzkbv74bv", "checksum": "d945d5ada6e85b123bd526bb61b64748fcc3ecca5d7eb4f7ea549d5c8594c855"}, {"id": "fls_jwxykea99psw", "number": "6.18:20", "link": "expressions.html#fls_jwxykea99psw", "checksum": "315118e0f1a4b887efdc0b64182a55a6ae9a277af6fd11311f66dbfab8e42370"}, {"id": "fls_pgulnjeoxwtj", "number": "6.18:21", "link": "expressions.html#fls_pgulnjeoxwtj", "checksum": "0f64f2e263255b0282cbd9f8bc2ec5df5d5f04cd1fe151353a3f58dd762a6350"}, {"id": "fls_2dg7wl68z7ar", "number": "6.18:22", "link": "expressions.html#fls_2dg7wl68z7ar", "checksum": "d845839ee3d13f10e6350246fd7aea5117dc3017658e097bb9822c40ab453f89"}, {"id": "fls_yv11febo0kyb", "number": "6.18:23", "link": "expressions.html#fls_yv11febo0kyb", "checksum": "f16151a0a73fadcca22c40f8de991f4579a338f3bb1885e582c86f8995bb90ad"}, {"id": "fls_mvi9z1x836qu", "number": "6.18:24", "link": "expressions.html#fls_mvi9z1x836qu", "checksum": "a51004381cd393164fff1a2ba32606870a9d6064cce8fe9cf04d85b20f1857be"}, {"id": "fls_81nnizrxgrsm", "number": "6.18:25", "link": "expressions.html#fls_81nnizrxgrsm", "checksum": "b7e2794864f886686ee1f2c3393a36af7d0ad00b8d9d342bd6712091b6f1bc52"}, {"id": "fls_4dv7x9nh2h4e", "number": "6.18:26", "link": "expressions.html#fls_4dv7x9nh2h4e", "checksum": "b5b06a8ec68f8cc404232c87395c66a7634550ebcfb41fe026f61ec8e7785720"}, {"id": "fls_k7kliy101m0f", "number": "6.18:27", "link": "expressions.html#fls_k7kliy101m0f", "checksum": "cd34050016c198eb7459bc1f8a89363f0daf54e667d2277770bcf88a43796ec2"}, {"id": "fls_k68zkb6jv0vz", "number": "6.18:28", "link": "expressions.html#fls_k68zkb6jv0vz", "checksum": "2eb26463fe93f6076fcf3752bb63be428ff5539a4061bee87dac732ca6182161"}, {"id": "fls_gbb6wbmher5z", "number": "6.18:29", "link": "expressions.html#fls_gbb6wbmher5z", "checksum": "bf133e4ef0b4ff6e039b8a1ac30b2ea24adf705af5cf2a92af6a46b0542ab704"}, {"id": "fls_jl4av757yx8j", "number": "6.18:30", "link": "expressions.html#fls_jl4av757yx8j", "checksum": "3a2f280736c3d305d7ca9e0547ba1b7b7f219322813aed47634cfef729fbace8"}, {"id": "fls_wkh5wztauwhu", "number": "6.18:31", "link": "expressions.html#fls_wkh5wztauwhu", "checksum": "99aeee8cae96d8f5aa2d485ff74576d7b559450872e3932b835df6d75692561f"}, {"id": "fls_f5f0x8jstp1g", "number": "6.18:32", "link": "expressions.html#fls_f5f0x8jstp1g", "checksum": "c442e637a527c65b19b05ec6346d50fbb5605aa1befe1daf2e9621e1e659e9c9"}, {"id": "fls_yk8l9zjh7i0d", "number": "6.18:33", "link": "expressions.html#fls_yk8l9zjh7i0d", "checksum": "899b935a103f2e7391edfc0e0faf91cfe3c37b0aa755206025dc4706142bafa9"}, {"id": "fls_sbtx1l6n2tp2", "number": "6.18:34", "link": "expressions.html#fls_sbtx1l6n2tp2", "checksum": "f6ce6b0fca0ca80890c4285bd94cb537a986b8329e5ec02e54434f4244ebad3e"}], "informational": false}, {"id": "fls_8l74abhlxzdl", "number": "6.19", "title": "Return Expressions", "link": "expressions.html#return-expressions", "paragraphs": [{"id": "fls_u7jk4j8gkho", "number": "6.19:1", "link": "expressions.html#fls_u7jk4j8gkho", "checksum": "fad4d074aede9aaedebde1631b2540a5e4229618040f881747a66eafcb2621c5"}, {"id": "fls_5v3j5ghhw8j8", "number": "6.19:2", "link": "expressions.html#fls_5v3j5ghhw8j8", "checksum": "964cb17edce65bff3f21bcace0a60f5cbf1e555dc894ff6898a12192e60e13e2"}, {"id": "fls_7ck4lmqmeqcv", "number": "6.19:3", "link": "expressions.html#fls_7ck4lmqmeqcv", "checksum": "0c8a79c75b5842528b1f28d6c36a9a0d505ef82b505c04410cf965ec63e3bbd6"}, {"id": "fls_r610t5vsi7bx", "number": "6.19:4", "link": "expressions.html#fls_r610t5vsi7bx", "checksum": "204b8d5c44f33462360cd6b1c4d32ec43476cc7fae9fbe3cdb7d202370669fb3"}, {"id": "fls_njndlx2rps2k", "number": "6.19:5", "link": "expressions.html#fls_njndlx2rps2k", "checksum": "76736f845693590923018fe78dbca8a616a3c75e4a360a8019e96c968ce1310d"}, {"id": "fls_tjksia7prao1", "number": "6.19:6", "link": "expressions.html#fls_tjksia7prao1", "checksum": "340f5b5067fddff442d4f14b2fce354729a502a270245f8ee85a36b47cb19b17"}, {"id": "fls_bqmwlona6l5w", "number": "6.19:7", "link": "expressions.html#fls_bqmwlona6l5w", "checksum": "46b2bd419c605d57349d4c78e88591ca5c51aff04b69be70ec3b65f872c907c0"}, {"id": "fls_d9avvfi548t7", "number": "6.19:8", "link": "expressions.html#fls_d9avvfi548t7", "checksum": "edb148b4cf98d6f392c6839fd5d5421e348cd7de544dcc6543eafdbaa13e951b"}, {"id": "fls_o3fc1z2mn8zc", "number": "6.19:9", "link": "expressions.html#fls_o3fc1z2mn8zc", "checksum": "81ed732b837640d66610e42b451cd80d4596a9dac8492f30919573a8be46d259"}, {"id": "fls_bbf54ukld7j9", "number": "6.19:10", "link": "expressions.html#fls_bbf54ukld7j9", "checksum": "082696c41973e38a1a35b25a89b46c05432f17d4e2bbeb5d917eba586f81cb5e"}, {"id": "fls_99ea30a5mulj", "number": "6.19:11", "link": "expressions.html#fls_99ea30a5mulj", "checksum": "efaafe3c78f2478146953b5fc46f3627c854266fc0a4fe741a9a548c03877473"}, {"id": "fls_ubwj8uj6sbgt", "number": "6.19:12", "link": "expressions.html#fls_ubwj8uj6sbgt", "checksum": "e96c5c840968268932035da7dcdb11c1400fbac1564ceab31a811ecba499ec4d"}], "informational": false}, {"id": "fls_hyrbmfmf6r8g", "number": "6.20", "title": "Await Expressions", "link": "expressions.html#await-expressions", "paragraphs": [{"id": "fls_sjz5s71hwm7l", "number": "6.20:1", "link": "expressions.html#fls_sjz5s71hwm7l", "checksum": "da4e5da6a4bdb42745c483a169cbf0174bac069a47d8e4fc4547d8a4c192dac7"}, {"id": "fls_vhchgab59jvd", "number": "6.20:2", "link": "expressions.html#fls_vhchgab59jvd", "checksum": "59ff4e3c6717c818b5ec41ac9bcdfc6f396a1d404c481e8b6bb7071eb4407a17"}, {"id": "fls_k9pncajmhgk1", "number": "6.20:3", "link": "expressions.html#fls_k9pncajmhgk1", "checksum": "5f2dae4da2ea9520c29d1330b7448bfef4cf69e81cd8680d13349b19bb4da376"}, {"id": "fls_9uw5pd7kbrx3", "number": "6.20:4", "link": "expressions.html#fls_9uw5pd7kbrx3", "checksum": "49758fd689272c0392826f2a3732543b6bdde8cbe5c4db2b2a7545c857ff396e"}, {"id": "fls_c6mxfzef2qop", "number": "6.20:5", "link": "expressions.html#fls_c6mxfzef2qop", "checksum": "836feebddf1240d8e4bfc2f5c2321b55c5b9e2e2eeb8c866ceb852681424062d"}, {"id": "fls_l396mo6k9ox7", "number": "6.20:6", "link": "expressions.html#fls_l396mo6k9ox7", "checksum": "782eb091e16c3a6b5052222092300db02c04546faa0f8edc38766ace20d67692"}, {"id": "fls_1ppywe40s62c", "number": "6.20:7", "link": "expressions.html#fls_1ppywe40s62c", "checksum": "2bf24d8fa80ee0ffbea4bdab95ebf3e5bb8548ab9232916dde504fff506a692c"}, {"id": "fls_eymcs2rgv3qw", "number": "6.20:8", "link": "expressions.html#fls_eymcs2rgv3qw", "checksum": "f748d724dc5d08a0afc5bca74cc6310d8f2d73e36fd9708085c26c5e57b614d7"}, {"id": "fls_qshnnpirkasz", "number": "6.20:9", "link": "expressions.html#fls_qshnnpirkasz", "checksum": "5b915ead9f543983fe6a1f6d4411aa0121d6725d22add9b0211eca93213eba88"}, {"id": "fls_umevprl99y6c", "number": "6.20:10", "link": "expressions.html#fls_umevprl99y6c", "checksum": "da18e7ef8881f3083b4c558241950574caa792c33598bd92c716e41a8cc53b46"}, {"id": "fls_k76d8ady623m", "number": "6.20:11", "link": "expressions.html#fls_k76d8ady623m", "checksum": "fa34ee0051e0acccdf51347f463313b897b4227b5ea13766255ff2b0066a1512"}, {"id": "fls_frwtufwe8dya", "number": "6.20:12", "link": "expressions.html#fls_frwtufwe8dya", "checksum": "3a5e5763d187255a3ef457d3d46891e92783bc092c11c66c526a00876064f2e6"}, {"id": "fls_u72ylhlmqge3", "number": "6.20:13", "link": "expressions.html#fls_u72ylhlmqge3", "checksum": "efc0c00d248bd8cc51172623500bea993674403271c5e88d20e852c773d7e905"}, {"id": "fls_tn3vwidct3ks", "number": "6.20:14", "link": "expressions.html#fls_tn3vwidct3ks", "checksum": "cc27da507126827f604fb160d118c199f79068f517609771fb231e681e94a615"}], "informational": false}, {"id": "fls_kw25194gpael", "number": "6.21", "title": "Expression Precedence", "link": "expressions.html#expression-precedence", "paragraphs": [{"id": "fls_cwt7afsbgs7w", "number": "6.21:1", "link": "expressions.html#fls_cwt7afsbgs7w", "checksum": "1ea58ec9460ef7859bdc28de3d2454bfd5f0d89fad0774e3f0dccf59d4c2fa44"}, {"id": "fls_ya23jjg5wjl", "number": "6.21:2", "link": "expressions.html#fls_ya23jjg5wjl", "checksum": "55370b10da3b56c04b08da6b32c4c027699ea6cc687589a7849a699dde6308f0"}, {"id": "fls_bezkcuwp5qol", "number": "6.21:3", "link": "expressions.html#fls_bezkcuwp5qol", "checksum": "dfda6e0c52f46c00d66221d8827d93115b0cdcad8ad51d9062a06e2b14f39d17"}, {"id": "fls_48br7odx6nke", "number": "6.21:4", "link": "expressions.html#fls_48br7odx6nke", "checksum": "baa1cbc6ae96be8a8f4f047cc34af1e02542d64fa59a86860132f4126849ee7c"}, {"id": "fls_mk2yk99p6nvp", "number": "6.21:5", "link": "expressions.html#fls_mk2yk99p6nvp", "checksum": "54aa2b80e6e76176f6c52aa25cc2b16b73a0526ec6aceeb71f1376bca1b8d23d"}, {"id": "fls_jtdnf0vmn6xt", "number": "6.21:6", "link": "expressions.html#fls_jtdnf0vmn6xt", "checksum": "183754bda3a68ac29333a9920b7213129284f5d324afe718d3e7e1acc39ea78c"}, {"id": "fls_qurz25skmryg", "number": "6.21:7", "link": "expressions.html#fls_qurz25skmryg", "checksum": "6b34617657c79788671be78815e6993bb19baa7e0fe35adcdcc2b21eda22dc46"}, {"id": "fls_ywqn5nixelkz", "number": "6.21:8", "link": "expressions.html#fls_ywqn5nixelkz", "checksum": "39290d972682eb3439b41a650ce8dc55cc5618eb221b6539b1643da301f1e2fa"}, {"id": "fls_k3ohh8k888c", "number": "6.21:9", "link": "expressions.html#fls_k3ohh8k888c", "checksum": "a647dca3b224f2d82d63601390ff21febbf63c97e21b422fce1223a55d8cfbc6"}, {"id": "fls_41n6z85h1z47", "number": "6.21:10", "link": "expressions.html#fls_41n6z85h1z47", "checksum": "d6574d428b039bfa87429f66a994d89b9473576339d111783dc6a3fdb46b4a36"}, {"id": "fls_f39rzauxrlcl", "number": "6.21:11", "link": "expressions.html#fls_f39rzauxrlcl", "checksum": "b1709454bd018cc25d9bb554a671bb3bd23206e58c426368771eb33c8b1902f9"}, {"id": "fls_djphr5mk0t6f", "number": "6.21:12", "link": "expressions.html#fls_djphr5mk0t6f", "checksum": "3ea4a68b843a23a1cdc9b81e4f0174f9c76a5ad73a060891279a41d78fc7c6bf"}, {"id": "fls_sif2aqky96j6", "number": "6.21:13", "link": "expressions.html#fls_sif2aqky96j6", "checksum": "26b534c9a0f23c8b9f12703a3170ddd07a657404cb64f1486d8bb2a193768a7a"}, {"id": "fls_d7x817v8xzea", "number": "6.21:14", "link": "expressions.html#fls_d7x817v8xzea", "checksum": "e33ebfed7ce388a0cf0033407562b3b4a63e5d7b6df56cb445f069b1d6196f73"}, {"id": "fls_1f5ibdkz3l51", "number": "6.21:15", "link": "expressions.html#fls_1f5ibdkz3l51", "checksum": "70a39a1ca925fa68f61fe74478f904cf31ca13be09d7db398c5c16fbca0ad80b"}, {"id": "fls_t1zqnab8a752", "number": "6.21:16", "link": "expressions.html#fls_t1zqnab8a752", "checksum": "3fd86a70e1d6ed044f78bae2520252946967ec4c75eb8cf66cdf99feaa4fe4a2"}, {"id": "fls_f6in3h5cj8i6", "number": "6.21:17", "link": "expressions.html#fls_f6in3h5cj8i6", "checksum": "00e7566e07ad29ae66ca966af236f682cd8a53c4e6da84b618dd37ccd7f1a423"}, {"id": "fls_hxa1avitfvrq", "number": "6.21:18", "link": "expressions.html#fls_hxa1avitfvrq", "checksum": "398e12725f85d87fa51611c3ac78a9d489a257b0cd22f99296f4274a18115ba2"}, {"id": "fls_sy2xzzq06i0x", "number": "6.21:19", "link": "expressions.html#fls_sy2xzzq06i0x", "checksum": "2584e4c6218c7323c2bf24a2c0de7ae1caa256e05729adc630a7fe2b1e0f83eb"}, {"id": "fls_hish3qfmawd", "number": "6.21:20", "link": "expressions.html#fls_hish3qfmawd", "checksum": "ae319c9de59e01cef1c5875cf66e1bea865c095788ad753c61b22138fbb7d086"}, {"id": "fls_ruy7e6yccsqk", "number": "6.21:21", "link": "expressions.html#fls_ruy7e6yccsqk", "checksum": "21814dc22378c585902121bfab807c007ddcb24268ba57759726bf98b266470c"}, {"id": "fls_9qcm0dx9rolw", "number": "6.21:22", "link": "expressions.html#fls_9qcm0dx9rolw", "checksum": "c176fa58196e3b9169a21354de2d4e35cdc7ad169688eadce01d604523799017"}, {"id": "fls_1l3rgtm6o54s", "number": "6.21:23", "link": "expressions.html#fls_1l3rgtm6o54s", "checksum": "6741ee5a44150ad2ec0c321b36747b2dd1066afa038ef8480b92ab126215ed43"}, {"id": "fls_hr4kokysrjop", "number": "6.21:24", "link": "expressions.html#fls_hr4kokysrjop", "checksum": "e6544a9cd735fed1a4c5bf7dcbad5842d1a2911275d4625c2dde41f91050d96a"}], "informational": false}, {"id": "fls_jmjn8jkbzujm", "number": "6.22", "title": "Capturing", "link": "expressions.html#capturing", "paragraphs": [{"id": "fls_iamnzlm430ef", "number": "6.22:1", "link": "expressions.html#fls_iamnzlm430ef", "checksum": "2d70f775bd55dcedee227416f24a3bc37fb9d5409b96077d535f6a5186688494"}, {"id": "fls_eca6tl7j0afx", "number": "6.22:2", "link": "expressions.html#fls_eca6tl7j0afx", "checksum": "97f165b9e62eea93d9961a8cd997dc9479497af6d7a188e181edf2788466461e"}, {"id": "fls_e70ywb8191h", "number": "6.22:3", "link": "expressions.html#fls_e70ywb8191h", "checksum": "8da2358d8b54cfb271d4ef4ceed3480cf7703b2365a20b42d5cdf3522788d478"}, {"id": "fls_1y2ttb466m9c", "number": "6.22:4", "link": "expressions.html#fls_1y2ttb466m9c", "checksum": "df4483a0be687983a2f80e3a045c06692286121f4abd3c85b8b56914a4baaa27"}, {"id": "fls_ip81lt2mm940", "number": "6.22:5", "link": "expressions.html#fls_ip81lt2mm940", "checksum": "51b0d76f3369e3a5e62f5bf6b2365f97b322c4c2f6dfcbba47616d7ed963695d"}, {"id": "fls_y9n1i4hbq8sf", "number": "6.22:6", "link": "expressions.html#fls_y9n1i4hbq8sf", "checksum": "c5b1fde32b8f99342d49cd808e66462771d3c867e9e69074ec8d142325384c15"}, {"id": "fls_o6wyl8auypje", "number": "6.22:7", "link": "expressions.html#fls_o6wyl8auypje", "checksum": "9aadea1792e4d8b3cf759598520f2d8a446a34c2dfafb731ff85a1f69dd3ad47"}, {"id": "fls_acxt2ovmb5he", "number": "6.22:8", "link": "expressions.html#fls_acxt2ovmb5he", "checksum": "404ff264bbc3d98e0e0a537c1425f627b4fb7dc95b09f1d87c4e1f6bbbeba652"}, {"id": "fls_xtnffkxhm5yy", "number": "6.22:9", "link": "expressions.html#fls_xtnffkxhm5yy", "checksum": "1e4ed51853e5ecdc3b5084f8952088bdef2a10260258bafb3579524a407b16d5"}, {"id": "fls_8hlalaizgyfs", "number": "6.22:10", "link": "expressions.html#fls_8hlalaizgyfs", "checksum": "ded68234e7ac8294cc13fb4d7aa6c754b45225dc76318b1142da37ba53c73f84"}, {"id": "fls_t695ps4lfh6z", "number": "6.22:11", "link": "expressions.html#fls_t695ps4lfh6z", "checksum": "d49deed6d7344732b4b411d505da072749b5d33f69d71338411aa9f726ebdb5e"}, {"id": "fls_6j8cr7d5zs1l", "number": "6.22:12", "link": "expressions.html#fls_6j8cr7d5zs1l", "checksum": "31629d554e45355987d9a6d7c86bea4c88d35643ca4bf88b451169a356baeb00"}, {"id": "fls_l8e98pyhm08g", "number": "6.22:13", "link": "expressions.html#fls_l8e98pyhm08g", "checksum": "7017351a551f3038618b2d0fb7ab087e7f50230db15c87a1cfded0443d6c3796"}, {"id": "fls_33hfay24hx8u", "number": "6.22:14", "link": "expressions.html#fls_33hfay24hx8u", "checksum": "0a845d30d4b029ed8ec0bda918aa521f9b9d0d65329349b73da593e609a49242"}, {"id": "fls_wmxsd0i2yemf", "number": "6.22:15", "link": "expressions.html#fls_wmxsd0i2yemf", "checksum": "2e9e24c1c65541c1f32df09a23b6947210f9071eca8be770b14640cc78cb06fc"}, {"id": "fls_lu779ufqhggl", "number": "6.22:16", "link": "expressions.html#fls_lu779ufqhggl", "checksum": "83dbe39f34ed5bb73bbfdc199bd2ef586623652688f98e05048c57e74c582d54"}, {"id": "fls_uqy5w9uc8gla", "number": "6.22:17", "link": "expressions.html#fls_uqy5w9uc8gla", "checksum": "dbd28fc0d3ac8f76794edf422630af90e6c9801240cdda5a744ddd50a300e7af"}, {"id": "fls_wvob7114tfat", "number": "6.22:18", "link": "expressions.html#fls_wvob7114tfat", "checksum": "face359b764fc93328e325d67bde1b99c94e96a550bc044d9a5b7784a7742946"}], "informational": false}, {"id": "fls_zfibijmf8qe1", "number": "6.23", "title": "Arithmetic Overflow", "link": "expressions.html#arithmetic-overflow", "paragraphs": [{"id": "fls_ofirxbpxu6zv", "number": "6.23:1", "link": "expressions.html#fls_ofirxbpxu6zv", "checksum": "5274391e12b7710b6f28a7ef79233dceaf69cef0a033e9d2a7f441e6fa3a33ee"}, {"id": "fls_8fu3h8plasqa", "number": "6.23:2", "link": "expressions.html#fls_8fu3h8plasqa", "checksum": "77c956644d235f20f56388e677b4d8beaaa57ed404080d89c723d92a8c7bf9d1"}, {"id": "fls_r48vkceibfxc", "number": "6.23:3", "link": "expressions.html#fls_r48vkceibfxc", "checksum": "60b290c542ed976d056a274718878486258854ee4ad3902874547ab7e6f85f8d"}, {"id": "fls_qmpi8k43k2yu", "number": "6.23:4", "link": "expressions.html#fls_qmpi8k43k2yu", "checksum": "1ca56587481d720bd3655179adbe50c36370fe9b71c832a1a6271ad20e82145b"}], "informational": false}], "informational": false}, {"title": "Associated Items", "link": "associated-items.html", "sections": [{"id": "fls_l21tjqjkkaa0", "number": "10", "title": "Associated Items", "link": "associated-items.html", "paragraphs": [{"id": "fls_ckzd25qd213t", "number": "10:1", "link": "associated-items.html#fls_ckzd25qd213t", "checksum": "c48bd96544b685d7b7a7e8a2e676eb1c8ed2066a485c20a48faa1c660ef8bdb7"}, {"id": "fls_5y6ae0xqux57", "number": "10:2", "link": "associated-items.html#fls_5y6ae0xqux57", "checksum": "fd7bf7d0a40ad75d0809a98d1bd273b94708f4a26b1a3be16f7e8dbffbe638ec"}, {"id": "fls_lj7492aq7fzo", "number": "10:3", "link": "associated-items.html#fls_lj7492aq7fzo", "checksum": "fda609cdbb71ae52c820019783b3b6858d633fdd6de601cfae585217aeb034aa"}, {"id": "fls_8cz4rdrklaj4", "number": "10:4", "link": "associated-items.html#fls_8cz4rdrklaj4", "checksum": "d0a97d55dc69fb14de940c4597c8ec6cc4d1bdea2efef1f262ca235d4380a078"}, {"id": "fls_w8nu8suy7t5", "number": "10:5", "link": "associated-items.html#fls_w8nu8suy7t5", "checksum": "a21d4472dc9edff52ba6084426735486e96547a9916ebbf6041810119a4ca7aa"}, {"id": "fls_wasocqdnuzd1", "number": "10:6", "link": "associated-items.html#fls_wasocqdnuzd1", "checksum": "a5074f92b70f64ed6d002c08f65bfa91a814cf5b80b19137743ca62a12bda2b6"}, {"id": "fls_ped0dzjk57be", "number": "10:7", "link": "associated-items.html#fls_ped0dzjk57be", "checksum": "61134011658677b475c3f8e65ac36ab5b479e0746afd064ac6d0084c0441fbb6"}, {"id": "fls_3foyuch29ztf", "number": "10:8", "link": "associated-items.html#fls_3foyuch29ztf", "checksum": "0dd68e90f7962b7f3ab0d020e22ee6db5fde4efa6ae628af968af3fe3d76baa8"}, {"id": "fls_snqc0zzs57cz", "number": "10:9", "link": "associated-items.html#fls_snqc0zzs57cz", "checksum": "6f1791ecd8b47dfbf50561704cc838d8b0e544cf7c69b576dd48120715a47166"}, {"id": "fls_6z05bk2jszpp", "number": "10:10", "link": "associated-items.html#fls_6z05bk2jszpp", "checksum": "cd830a794d7188143f156c01744b2ee904e28c51699fff975168e027ba4793c0"}, {"id": "fls_atitgs1uvwix", "number": "10:11", "link": "associated-items.html#fls_atitgs1uvwix", "checksum": "1a672e4e07310314b3ed72804595330ecf46d9177808d67beee1497db38edc76"}, {"id": "fls_l3iwn56n1uz8", "number": "10:12", "link": "associated-items.html#fls_l3iwn56n1uz8", "checksum": "f83c7a08c44f0dc091a19c1014f202ab5538474a3d818f1583bd138daef33ecf"}, {"id": "fls_4ftfefcotb4g", "number": "10:13", "link": "associated-items.html#fls_4ftfefcotb4g", "checksum": "41db8d1e89a48299f2506f2fd5b398d24cc65ebba4aced317857a727822d1c4e"}, {"id": "fls_qb5qpfe0uwk", "number": "10:14", "link": "associated-items.html#fls_qb5qpfe0uwk", "checksum": "66b5d7677a5542109bcd8f36408c3ed7ec1aca313c4c747fc28557fb2dd3c6c0"}, {"id": "fls_1zlkeb6fz10j", "number": "10:15", "link": "associated-items.html#fls_1zlkeb6fz10j", "checksum": "96a142348655f7c0d311daed418fc24259286e2108efc574894af02cf2471c36"}, {"id": "fls_tw8u0cc5867l", "number": "10:16", "link": "associated-items.html#fls_tw8u0cc5867l", "checksum": "b5024c3cf8ba9c9ff0e7a6bd05ae96c8f7c64599e2eaec349fae2ca6767f4bab"}, {"id": "fls_bx7931x4155h", "number": "10:17", "link": "associated-items.html#fls_bx7931x4155h", "checksum": "a13634951f7946c3028793e284d6d7899f718840e70e5b30992ad30aa0b28a82"}, {"id": "fls_bntccbdvdp94", "number": "10:18", "link": "associated-items.html#fls_bntccbdvdp94", "checksum": "8fb89c0b3f9ad0065b86652933686cc127a11676e7b59759588bf35bbe56a204"}, {"id": "fls_n3cdn4lcz2bf", "number": "10:19", "link": "associated-items.html#fls_n3cdn4lcz2bf", "checksum": "22be2f18e00bb9e898293564455031809a4ffbdba44f030bff8af6c23ada5048"}, {"id": "fls_x564isbhobym", "number": "10:20", "link": "associated-items.html#fls_x564isbhobym", "checksum": "9647e6f192f7a123a465887f651e66f32b17c903edd98aa87c48510b16acd40f"}, {"id": "fls_b6nns7oqvdpm", "number": "10:21", "link": "associated-items.html#fls_b6nns7oqvdpm", "checksum": "d7e3897e8d4d866fe24ed708a542d480dd49b7432f4e1ab2b6e9f83e66beb79c"}, {"id": "fls_2trwcz38kurz", "number": "10:22", "link": "associated-items.html#fls_2trwcz38kurz", "checksum": "f6efbcd47f77fb69c490956047b8fa92ddd13a1a56c2c82483cd10efd9f4abc8"}, {"id": "fls_wnsvatjvudza", "number": "10:23", "link": "associated-items.html#fls_wnsvatjvudza", "checksum": "ef01e780fac2b6784fa9e17636be1c17d599f8831949c44ad35251b17052c1a3"}, {"id": "fls_yyhebj4qyk34", "number": "10:24", "link": "associated-items.html#fls_yyhebj4qyk34", "checksum": "3b7142bcde18f322ffa41b2c57c18446ab40aa8a6612d601b48ec17273ad3d94"}, {"id": "fls_kl9p3ycl5mzf", "number": "10:25", "link": "associated-items.html#fls_kl9p3ycl5mzf", "checksum": "53bc991f032b9bfaab3cb72189a8ae6d8772250cc7fbaefa3b80bbd25679141f"}, {"id": "fls_a5prbmuruma4", "number": "10:26", "link": "associated-items.html#fls_a5prbmuruma4", "checksum": "6e869fbccfae9516ee3421a1571bd880ea5ec5dc5aedb65e32f5a6d2977b7955"}, {"id": "fls_vp2ov6ykueue", "number": "10:27", "link": "associated-items.html#fls_vp2ov6ykueue", "checksum": "915d230d994ce8e745b1083bb75cb58b37ac8537af7fd5486a86d1314cb353d0"}, {"id": "fls_5uf74nvdm64o", "number": "10:28", "link": "associated-items.html#fls_5uf74nvdm64o", "checksum": "338988e157f9ff9c04c5a8163cf72e90c0400a0e6ccb6b45e6f105a1b75ac855"}, {"id": "fls_amwts80fptza", "number": "10:29", "link": "associated-items.html#fls_amwts80fptza", "checksum": "4e9d22ccfb80acfdb452f21eaa41d99e8b68d03dbf8ffcaca69016ad6b224e0c"}, {"id": "fls_cu8fwrisrqz1", "number": "10:30", "link": "associated-items.html#fls_cu8fwrisrqz1", "checksum": "6b3108c40f22ac87f1e375b4907dc7e2565fc0fdb570d5e8e87d35f36da764fb"}, {"id": "fls_oy92gzxgc273", "number": "10:31", "link": "associated-items.html#fls_oy92gzxgc273", "checksum": "c67bd6dc496b87f14e94eac06fb1dd53a785b33748660d90a3455b63b8f15dea"}, {"id": "fls_wxncwfjgoqx3", "number": "10:32", "link": "associated-items.html#fls_wxncwfjgoqx3", "checksum": "1d3e0acf8e8b25427b6a4179ef6f36b9c9be2060806f8a4532c85d38970a854f"}, {"id": "fls_oaszuw4ifobz", "number": "10:33", "link": "associated-items.html#fls_oaszuw4ifobz", "checksum": "f1864701261d89610bc085bf20379aabb9a7f867190c51deee3b5ab4e0731ab4"}, {"id": "fls_wd2fzromb5yn", "number": "10:34", "link": "associated-items.html#fls_wd2fzromb5yn", "checksum": "a56737ff1c2a54b21dd0325776e037cb33b634928cad055fc83c168e8513e490"}, {"id": "fls_lceytoyilcmf", "number": "10:35", "link": "associated-items.html#fls_lceytoyilcmf", "checksum": "8c0ecdddfa88a992b09009b5167f4dc68b5f53f241a872c2a1e85f8eb610f1e5"}, {"id": "fls_ikspr7zqmeru", "number": "10:36", "link": "associated-items.html#fls_ikspr7zqmeru", "checksum": "9133604a8bdbc61f47a33829fc49829d94f9bb5749c0b6d99dbd05856ecee674"}, {"id": "fls_ohxzyait7qm6", "number": "10:37", "link": "associated-items.html#fls_ohxzyait7qm6", "checksum": "a9ddbf6bc0c06113d12f75ca1fe4401527ac5ff2a0384f375f53b2b7eedc084d"}, {"id": "fls_znfadveovxhd", "number": "10:38", "link": "associated-items.html#fls_znfadveovxhd", "checksum": "17b593b8d0cb4dacc6eb9d143a7e49048a6708d07c811e2595e8cfbb89483827"}], "informational": false}], "informational": false}]} diff --git a/patterns.html b/patterns.html new file mode 100644 index 00000000..eeaf4f60 --- /dev/null +++ b/patterns.html @@ -0,0 +1,1339 @@ + + + + + + + + + + + + 5. Patterns — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    5. Patterns

    +

    Syntax

    +
    Pattern ::=
    +    |? PatternWithoutAlternation (| PatternWithoutAlternation)*
    +
    +PatternList ::=
    +    Pattern (, Pattern)* ,?
    +
    +PatternWithoutAlternation ::=
    +    PatternWithoutRange
    +  | RangePattern
    +
    +PatternWithoutRange ::=
    +    IdentifierPattern
    +  | LiteralPattern
    +  | MacroInvocation
    +  | ParenthesizedPattern
    +  | PathPattern
    +  | ReferencePattern
    +  | RestPattern
    +  | SlicePattern
    +  | StructPattern
    +  | TuplePattern
    +  | UnderscorePattern
    +

    Legality Rules

    +

    5:1 +A pattern is a construct that matches a value which satisfies all +the criteria of the pattern.

    +

    5:2 +A pattern-without-alternation is a pattern that cannot be alternated.

    +

    5:3 +A pattern-without-range is a pattern-without-alternation that +excludes range patterns.

    +

    5:4 +A subpattern is a pattern nested within another pattern.

    +

    5:5 +A pattern has a type, with the exception of the rest pattern if +it is not the inner pattern of a slice pattern or the pattern of +a possibly nested identifier pattern of a slice pattern.

    +

    5:6 +The expected type of a pattern is the type the pattern is being matched against.

    +

    5:7 +It is a static error when lexical elements match multiple alternations +of a pattern-without-range, except for when the pattern is &mut +Identifier. Such a pattern is interpreted as a reference pattern +with keyword mut containing an identifier pattern.

    +

    5:8 +Any two pattern-without-alternations that are or-ed using character 0x7C +(vertical line) are subject to the following restrictions:

    + +
    +

    5.1. Refutability

    +

    Legality Rules

    +

    5.1:1 +Refutability is a property of patterns that expresses the ability to +match all possible values of a type.

    +

    5.1:2 +An irrefutable pattern is a pattern that always matches the value +it is being matched against.

    +

    5.1:3 +A refutable pattern is a pattern that has a possibility of not +matching the value it is being matched against.

    +

    5.1:4 +A pattern that is not an irrefutable pattern is a +refutable pattern.

    +

    5.1:5 +An irrefutable constant is a constant of a type that has at most +one value.

    +

    5.1:6 +A refutable constant is a constant of a refutable type.

    +

    Examples

    +

    5.1:7 +x is an irrefutable pattern because it always matches 42.

    +
    let x = 42;
    +
    +
    +

    5.1:8 +y is a refutable pattern because it does not match value when +value denotes core::option::Option::None.

    +
    if let core::option::Option::Some(y) = value {
    +
    +
    +
    +

    5.1.1. Identifier Patterns

    +

    Syntax

    +
    IdentifierPattern ::=
    +    ref? mut? Binding BoundPattern?
    +
    +BoundPattern ::=
    +    @ Pattern
    +

    Legality Rules

    +

    5.1.1:1 +An identifier pattern is a pattern that binds the value it +matches to a binding.

    +

    5.1.1:2 +A bound pattern is a pattern that imposes a constraint on a related +identifier pattern.

    +

    5.1.1:3 +An identifier pattern yields a binding. An identifier pattern +with keyword mut yields a mutable binding.

    +

    5.1.1:4 +An identifier pattern with keyword ref is a +reference identifier pattern.

    +

    5.1.1:5 +The identifier pattern enters its binding into binding scope in +the value namespace if it does not resolve to a constant, a +unit struct constant or a unit enum variant.

    +

    5.1.1:6 +It is a static error if the identifier pattern consists of anything other +than a binding when the binding resolves to a constant, a +unit struct constant, or a unit enum variant.

    +

    5.1.1:7 +It is a static error if the binding of an identifier pattern resolves +to a tuple struct or a tuple enum variant.

    +

    5.1.1:8 +An identifier pattern is an irrefutable pattern when:

    + +

    5.1.1:12 +If the identifier pattern does not have a bound pattern, then the +type of its binding is determined as follows:

    + +

    5.1.1:16 +If the identifier pattern has a bound pattern, then the type of +its binding is determined as follows:

    + +

    Examples

    +

    5.1.1:20 +An identifier pattern in the context of a let expression.

    +
    let x = 42;
    +
    +
    +

    5.1.1:21 +An identifier pattern with a bound pattern in the context of a match expression.

    +
    match x {
    +    small @ 1 ..= 5 => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.2. Literal Patterns

    +

    Syntax

    +
    LiteralPattern ::=
    +    BooleanLiteral
    +  | ByteLiteral
    +  | ByteStringLiteral
    +  | CharacterLiteral
    +  | -? NumericLiteral
    +  | RawByteStringLiteral
    +  | RawStringLiteral
    +  | SimpleStringLiteral
    +

    Legality Rules

    +

    5.1.2:1 +A literal pattern is a pattern that matches a literal.

    +

    5.1.2:2 +The type of a literal pattern is the type of the specified +literal.

    +

    Examples

    +

    5.1.2:3 +Two literal patterns in the context of a match expression. See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    -2 => (),
    +    36 => (),
    +    _  => (),
    +}
    +
    +
    +
    +
    +

    5.1.3. Parenthesized Patterns

    +

    Syntax

    +
    ParenthesizedPattern ::=
    +    ( Pattern )
    +

    Legality Rules

    +

    5.1.3:1 +A parenthesized pattern is a pattern that controls the precedence of +its subpatterns.

    +

    5.1.3:2 +A parenthesized pattern is an irrefutable pattern when its nested +pattern is an irrefutable pattern.

    +

    5.1.3:3 +The type of a parenthesized pattern is the type of its nested +pattern.

    +

    Examples

    +

    5.1.3:4 +See Paragraph 5.1.1. for the declaration of x.

    +
    let ref_x = &x;
    +
    +
    +

    5.1.3:5 +A parenthesized pattern inside a reference pattern in the context of a match +expression.

    +
    match ref_x {
    +    &(1 ..= 5) => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.4. Path Patterns

    +

    Syntax

    +
    PathPattern ::=
    +    PathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    5.1.4:1 +A path pattern is a pattern that matches a constant, a +unit enum variant, or a unit struct constant indicated by a path.

    +

    5.1.4:2 +A path pattern expressed as a path expression shall refer to either +an associated constant, or a constant.

    +

    5.1.4:3 +When a path pattern refers to an associated constant or a +constant, the associated constant or constant shall not be of a +union type.

    +

    5.1.4:4 +When a path pattern refers to an associated constant or a +constant, the type of the associated constant or constant +shall be structurally equal.

    +

    5.1.4:5 +When the type of the path pattern is of an enum type or +struct type, then the enum type or struct type shall be subject +to attribute derive with arguments core::cmp::Eq and +core::cmp::PartialEq.

    +

    5.1.4:6 +A path pattern expressed as a qualified path expression shall refer +to an associated constant.

    +

    5.1.4:7 +A path pattern is an irrefutable pattern when it refers to:

    + +

    5.1.4:11 +The type of a path pattern is the type of the constant, +unit enum variant, or unit struct constant the path resolved to.

    +

    Examples

    +
    mod module {
    +     pub const ZERO: i32 = 0;
    +}
    +
    +enum Enum { Variant }
    +
    +
    +

    5.1.4:12 +See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    module::ZERO => (),
    +    Enum::Variant => (),
    +    _  => (),
    +}
    +
    +
    +
    +
    +

    5.1.5. Range Patterns

    +

    Syntax

    +
    RangePattern ::=
    +    HalfOpenRangePattern
    +  | InclusiveRangePattern
    +  | ObsoleteRangePattern
    +
    +HalfOpenRangePattern ::=
    +    RangePatternLowBound ..
    +
    +InclusiveRangePattern ::=
    +    RangePatternLowBound ..= RangePatternHighBound
    +
    +ObsoleteRangePattern ::=
    +    RangePatternLowBound ... RangePatternHighBound
    +
    +RangePatternLowBound ::=
    +    RangePatternBound
    +
    +RangePatternHighBound ::=
    +    RangePatternBound
    +
    +RangePatternBound ::=
    +    ByteLiteral
    +  | CharacterLiteral
    +  | -? NumericLiteral
    +  | PathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    5.1.5:1 +A range pattern is a pattern that matches values which fall +within a range.

    +

    5.1.5:2 +A half-open range pattern is a range pattern with only a +range pattern low bound.

    +

    5.1.5:3 +An inclusive range pattern is a range pattern with both a +range pattern low bound and a range pattern high bound.

    +

    5.1.5:4 +An obsolete range pattern is a range pattern that uses obsolete syntax +to express an inclusive range pattern.

    +

    5.1.5:5 +A range pattern bound is a constraint on the range of a range pattern.

    +

    5.1.5:6 +A range pattern low bound is a range pattern bound that specifies the +start of a range.

    +

    5.1.5:7 +A range pattern high bound is a range pattern bound that specifies the +end of a range.

    +

    5.1.5:8 +A half-open range pattern shall appear within a parenthesized pattern +when the context is a slice pattern.

    +

    5.1.5:9 +The range pattern low bound of an inclusive range pattern shall be +less than or equal to its range pattern high bound.

    +

    5.1.5:10 +An obsolete range pattern is equivalent to an inclusive range pattern.

    +

    5.1.5:11 +A range pattern is an irrefutable pattern only when it spans the +entire set of possible values of a type.

    +

    5.1.5:12 +The types of the range pattern low bound and the +range pattern high bound of a range pattern shall be unifiable.

    +

    5.1.5:13 +The type of a range pattern is determined as follows:

    + +

    5.1.5:16 +A path expression of a range pattern shall refer to a constant +of a scalar type.

    +

    5.1.5:17 +A qualified path expression of a range pattern shall refer to an +associated constant of a scalar type.

    +

    Examples

    +

    5.1.5:18 +Two range patterns in the context of a match expression. See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    -30 ..= 2 => (),
    +    57 .. => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.6. Reference Patterns

    +

    Syntax

    +
    ReferencePattern ::=
    +    & mut? PatternWithoutRange
    +

    Legality Rules

    +

    5.1.6:1 +A reference pattern is a pattern that dereferences a pointer that +is being matched.

    +

    5.1.6:2 +A reference pattern is an irrefutable pattern.

    +

    5.1.6:3 +The type of a reference pattern is determined as follows:

    + +

    Examples

    +

    5.1.6:6 +A reference pattern in the context of a match expression. See Paragraph 5.1.3. for the declaration of ref_x.

    +
    match ref_x {
    +    &23 => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.7. Rest Patterns

    +

    Syntax

    +
    RestPattern ::=
    +    ..
    +

    Legality Rules

    +

    5.1.7:1 +A rest pattern is a pattern that matches zero or more elements that +have not already been matched.

    +

    5.1.7:2 +A rest pattern shall appear at most once within a slice pattern, an +identifier pattern of a slice pattern, a tuple pattern, and a +tuple struct pattern.

    +

    5.1.7:3 +A rest pattern is an irrefutable pattern.

    +

    5.1.7:4 +If a rest pattern appears within a slice pattern or the +identifier pattern of a slice pattern, then the type of the +rest pattern is determined as follows:

    + +

    Examples

    +

    5.1.7:7 +A rest pattern in an identifier pattern of a slice pattern, followed by a rest +pattern in a slice pattern.

    +
    match slice {
    +    [1, 5, .., 7] => (),
    +    [start, end @ ..] => (),
    +}
    +
    +
    +

    5.1.7:8 +Rest patterns in tuple patterns.

    +
    match tuple {
    +    (1, .., y) => (),
    +    (.., 5) => (),
    +    (..) => (),
    +}
    +
    +
    +

    5.1.8. Slice Patterns

    +

    Syntax

    +
    SlicePattern ::=
    +    [ PatternList? ]
    +

    Legality Rules

    +

    5.1.8:1 +A slice pattern is a pattern that matches arrays of fixed size +and slices of dynamic size.

    +

    5.1.8:2 +A slice pattern is an irrefutable pattern when it refers to:

    + +

    5.1.8:5 +The type of a slice pattern is the same as the expected type.

    +

    Examples

    +
    let v = vec![1, 2, 3];
    +

    5.1.8:6 +A slice pattern in the context of a match expression.

    +
    match v {
    +    [a, b, c] => (),
    +    _ => ()
    +}
    +
    +
    +
    +

    5.2. Struct Patterns

    +

    Syntax

    +
    StructPattern ::=
    +    RecordStructPattern
    +  | TupleStructPattern
    +
    +Deconstructee ::=
    +    PathExpression
    +

    Legality Rules

    +

    5.2:1 +A struct pattern is a pattern that matches an enum value, a +struct value, or a union value.

    +

    5.2:2 +A deconstructee indicates the enum variant or type that is being +deconstructed by a struct pattern.

    +

    5.2:3 +A struct pattern is interpreted based on the deconstructee. It is a +static error if a struct pattern cannot be interpreted.

    +

    5.2:4 +A struct pattern is an irrefutable pattern if

    + +
    +

    5.2.1. Record Struct Patterns

    +

    Syntax

    +
    RecordStructPattern ::=
    +    Deconstructee { RecordStructPatternContent? }
    +
    +RecordStructPatternContent ::=
    +    RecordStructRestPattern
    +  | FieldDeconstructorList (, RecordStructRestPattern | ,?)
    +
    +RecordStructRestPattern ::=
    +    OuterAttributeOrDoc* RestPattern
    +
    +FieldDeconstructorList ::=
    +    FieldDeconstructor (, FieldDeconstructor)*
    +
    +FieldDeconstructor ::=
    +    OuterAttributeOrDoc* (
    +        IndexedDeconstructor
    +      | NamedDeconstructor
    +      | ShorthandDeconstructor
    +    )
    +
    +IndexedDeconstructor ::=
    +    FieldIndex : Pattern
    +
    +NamedDeconstructor ::=
    +    Identifier : Pattern
    +
    +ShorthandDeconstructor ::=
    +    ref? mut? Binding
    +
    +FieldIndex ::=
    +    DecimalLiteral
    +

    Legality Rules

    +

    5.2.1:1 +A record struct pattern is a pattern that matches a +enum variant value, a struct value, or a union value.

    +

    5.2.1:2 +The deconstructee of a record struct pattern shall resolve to an +enum variant, a struct type, or a union type.

    +

    5.2.1:3 +An indexed deconstructor is a construct that matches the position of +a field.

    +

    5.2.1:4 +An indexed deconstructor matches a field of the deconstructee +when its field index and the position of the field in the +deconstructee are the same. Such an indexed deconstructor is a +matched indexed deconstructor.

    +

    5.2.1:5 +The type of a matched indexed deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:6 +A named deconstructor is a construct that matches the name of +a field.

    +

    5.2.1:7 +A named deconstructor matches a field of the deconstructee when +its identifier and the name of the field are the same. Such a +named deconstructor is a matched named deconstructor.

    +

    5.2.1:8 +The type of a matched named deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:9 +A shorthand deconstructor is a construct that matches the name +of a field and binds the value of the matched field to a +binding.

    +

    5.2.1:10 +A shorthand deconstructor with keyword mut yields a +mutable binding.

    +

    5.2.1:11 +It is a static error if a shorthand deconstructor has only keyword +ref or keywords ref mut, and its binding shadows a +constant, a unit enum variant, or a unit struct constant.

    +

    5.2.1:12 +A shorthand deconstructor is equivalent to a named deconstructor where +the name of the shorthand deconstructor denotes the identifier +of the named deconstructor and the entire content of the shorthand +deconstructor denotes the pattern of the named deconstructor.

    +

    5.2.1:13 +A shorthand deconstructor matches a field of the deconstructee +when its name and the name of the field are the same. Such a +shorthand deconstructor is a matched shorthand deconstructor.

    +

    5.2.1:14 +The type of a matched shorthand deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:15 +If the deconstructee of a record struct pattern is a +record enum variant or a record struct, then

    + +

    5.2.1:21 +If the deconstructee of a record struct pattern is a +tuple enum variant or a tuple struct type, then

    + +

    5.2.1:26 +If the deconstructee of a record struct pattern is a union type, +then

    + +

    5.2.1:33 +If the deconstructee of a record struct pattern is a +unit enum variant or a unit struct, then the +record struct pattern shall have at most one RecordStructRestPattern.

    +

    Undefined Behavior

    +

    5.2.1:34 +It is undefined behavior reading the field of a deconstructee that is +a union type when the field contains data that is invalid for the +field‘s type.

    +

    Examples

    +
    struct RecordStruct {
    +    first : u32,
    +    second: u32,
    +}
    +
    +let record_struct_value = RecordStruct { first: 11, second: 22 };
    +
    +match record_struct_value {
    +    RecordStruct { second: 33, ref first } => (),
    +    RecordStruct { first: 44, .. } => (),
    +    RecordStruct { .. } => (),
    +}
    +
    +struct TupleStruct (
    +    u32,
    +    u32,
    +);
    +
    +let tuple_struct_value = TupleStruct { 0: 11, 1: 22 };
    +
    +match tuple_struct_value {
    +    TupleStruct { 1: 33, 0: 44 } => (),
    +    TupleStruct { 0: 55, .. } => (),
    +    TupleStruct { .. } => (),
    +}
    +
    +union Union {
    +    first : u32,
    +    second: u32,
    +}
    +
    +let union_value = Union { second: 11 };
    +
    +unsafe {
    +    match union_value {
    +        Union { first: 22 } => (),
    +        Union { second: 33 } => (),
    +        _ => (),
    +    }
    +}
    +
    +
    +
    +
    +

    5.2.2. Tuple Struct Patterns

    +

    Syntax

    +
    TupleStructPattern ::=
    +    Deconstructee ( PatternList? )
    +

    Legality Rules

    +

    5.2.2:1 +A tuple struct pattern is a pattern that matches a +tuple enum variant value, or a tuple struct value.

    +

    5.2.2:2 +The deconstructee of a tuple struct pattern shall resolve to a +tuple enum variant or a tuple struct type.

    +

    5.2.2:3 +A subpattern of a tuple struct pattern matches a field of the +deconstructee when its position and the position of the field in +the deconstructee are the same. Such a subpattern is a +matched tuple struct subpattern.

    +

    5.2.2:4 +The position of a subpattern is determined as follows:

    + +

    5.2.2:9 +The type of the subpattern of a tuple struct pattern and the +type of the matched field shall be unifiable.

    +

    5.2.2:10 +For each field of the deconstructee, the tuple struct pattern +shall either:

    + +

    5.2.2:13 +A RecordStructRestPattern is allowed even if all fields of the +deconstructee have been matched.

    +

    Examples

    +

    5.2.2:14 +See Paragraph 5.1.9.1. for the declarations of TupleStruct and +tuple_struct_value.

    +
    match tuple_struct_value {
    +    TupleStruct ( 11, 22 ) => (),
    +    TupleStruct ( 33, .., 44 ) => (),
    +    TupleStruct ( .., 55 ) => (),
    +    TupleStruct ( 66, .. ) => (),
    +    TupleStruct ( .. ) => (),
    +}
    +
    +
    +
    +
    +

    5.2.3. Tuple Patterns

    +

    Syntax

    +
    TuplePattern ::=
    +    ( PatternList? )
    +

    Legality Rules

    +

    5.2.3:1 +A tuple pattern is a pattern that matches a tuple which satisfies +all criteria defined by its subpatterns.

    +

    5.2.3:2 +A tuple pattern is an irrefutable pattern when all of its +subpatterns are irrefutable patterns.

    +

    5.2.3:3 +The type of a tuple pattern is the type of the tuple being +destructured.

    +

    5.2.3:4 +A subpattern of a tuple pattern matches a tuple field of the +tuple type when its position and the position of the tuple field in +the tuple type are the same. Such a subpattern is a +matched tuple subpattern.

    +

    5.2.3:5 +The position of a subpattern is determined as follows:

    + +

    5.2.3:10 +The type of the subpattern of a tuple pattern and the +type of the matched tuple field shall be unifiable.

    +

    5.2.3:11 +For each tuple field of the tuple type, the tuple pattern shall +either:

    + +

    5.2.3:14 +A RestPattern is allowed even if all tuple fields of the +tuple type have been matched.

    +

    Examples

    +

    5.2.3:15 +A tuple pattern in the context of a let statement.

    +
    let pair = (1, "two");
    +let (first, second) = pair;
    +
    +
    +
    +
    +

    5.2.4. Underscore Patterns

    +

    Syntax

    +
    UnderscorePattern ::=
    +    _
    +

    Legality Rules

    +

    5.2.4:1 +An underscore pattern is a pattern that matches any single value.

    +

    5.2.4:2 +An underscore pattern is an irrefutable pattern.

    +

    5.2.4:3 +The type of an underscore pattern is the type of the value +it matches.

    +

    Examples

    +

    5.2.4:4 +An underscore pattern in the context of a let statement. See Paragraph 5.1.10. for the declaration of pair.

    +
    let (first, _) = pair;
    +
    +
    +
    +
    +
    +

    5.3. Binding Modes

    +

    Syntax

    +
    Binding ::=
    +    Name
    +

    Legality Rules

    +

    5.3:1 +A binding pattern is either an identifier pattern or a +shorthand deconstructor.

    +

    5.3:2 +A binding of a binding pattern binds a matched value to a +name.

    +

    5.3:3 +A binding with binding mode by value binds the matched +value by passing the value to the place +indicated by the name.

    +

    5.3:4 +A binding with binding mode by reference binds an +immutable reference to the matched value to the name.

    +

    5.3:5 +A binding with binding mode by mutable reference binds a +mutable reference to the matched value to the name.

    +

    5.3:6 +A non-reference pattern is any pattern except +non-binding patterns, path patterns, reference patterns, +and underscore patterns.

    +

    5.3:7 +If a binding pattern does not explicitly specify keyword ref, +keyword mut, or keywords ref mut, then its binding mode +uses the current binding mode of pattern matching.

    +

    5.3:8 +Initially, the binding mode of a binding is by value.

    +

    5.3:9 +During the process of pattern matching, each time a reference +is matched against a non-reference pattern, the reference is +dereferenced and the binding mode is updated as follows:

    + +

    5.3:12 +The process repeats if the dereferenced value is a reference.

    +

    Dynamic Semantics

    +

    5.3:13 +A binding patterns binds its binding to a matched value as +follows:

    + +
    +
    +

    5.4. Pattern Matching

    +

    Legality Rules

    +

    5.4:1 +Pattern matching that involves a pattern and a context value +proceeds as follows:

    +
      +
    1. 5.4:2 +For each pattern-without-alternation of the pattern:

      +
        +
      1. 5.4:3 +If the pattern-without-alternation is an identifier pattern, +then perform identifier pattern matching.

      2. +
      3. 5.4:4 +If the pattern-without-alternation is a literal pattern, then +perform literal pattern matching.

      4. +
      5. 5.4:5 +If the pattern-without-alternation is a parenthesized pattern, +then perform parenthesized pattern matching.

      6. +
      7. 5.4:6 +If the pattern-without-alternation is a path pattern, then +perform path pattern matching.

      8. +
      9. 5.4:7 +If the pattern-without-alternation is a range pattern, then +perform range pattern matching.

      10. +
      11. 5.4:8 +If the pattern-without-alternation is a reference pattern, then +perform reference pattern matching.

      12. +
      13. 5.4:9 +If the pattern-without-alternation is a slice pattern, then +perform slice pattern matching.

      14. +
      15. 5.4:10 +If the pattern-without-alternation is a record struct pattern, +then perform record struct pattern matching.

      16. +
      17. 5.4:11 +If the pattern-without-alternation is a tuple struct pattern, +then perform tuple struct pattern matching.

      18. +
      19. 5.4:12 +If the pattern-without-alternation is a tuple pattern, then +perform tuple pattern matching.

      20. +
      21. 5.4:13 +If the pattern-without-alternation is an underscore pattern, +then perform underscore pattern matching.

      22. +
      23. 5.4:14 +Otherwise pattern matching fails.

      24. +
      +
    2. +
    +

    5.4:15 +Only the bindings of a matched pattern-without-alternation are +introduced into a binding scope.

    +
    +

    5.4.1. Identifier Pattern Matching

    +

    Legality Rules

    +

    5.4.1:1 +An identifier pattern with keyword mut shall require that the +context value is a mutable place expression.

    +

    Dynamic Semantics

    +

    5.4.1:2 +Identifier pattern matching proceeds as follows:

    +
      +
    1. 5.4.1:3 +If the identifier pattern has a bound pattern, then

      +
        +
      1. 5.4.1:4 +Performed pattern matching with the bound pattern and the same +context value.

      2. +
      3. 5.4.1:5 +If matching the bound pattern fails, then matching fails.

      4. +
      +
    2. +
    3. 5.4.1:6 +The context value is bound to the binding of the +identifier pattern according to the binding mode.

    4. +
    5. 5.4.1:7 +Matching succeeds.

    6. +
    +
    +
    +

    5.4.2. Literal Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.2:1 +Literal pattern matching proceeds as follows:

    +
      +
    1. 5.4.2:2 +If the literal of the literal pattern and the context value +are equal, then matching succeeds.

    2. +
    3. 5.4.2:3 +Otherwise matching fails.

    4. +
    +
    +
    +

    5.4.3. Parenthesized Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.3:1 +Parenthesized pattern matching performs pattern matching with its +subpattern and the same context value.

    +
    +
    +

    5.4.4. Path Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.4:1 +Path pattern matching proceeds as follows:

    +
      +
    1. 5.4.4:2 +If the constant, unit enum variant or unit struct the +path of the path pattern resolved to and the context value +are equal, then matching succeeds.

    2. +
    3. 5.4.4:3 +Otherwise matching fails.

    4. +
    +
    +
    +

    5.4.5. Range Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.5:1 +Range pattern matching proceeds as follows:

    +
      +
    1. 5.4.5:2 +If the range pattern is expressed as a half-open range pattern and +the context value is in the inclusive range from the +range pattern low bound to the maximum value of the +range pattern low bound‘s type, then matching succeeds.

    2. +
    3. 5.4.5:3 +If the range pattern is expressed as either an inclusive range +pattern or an obsolete range pattern and the context value is in +the inclusive range from the range pattern low bound to the +range pattern high bound, then matching succeeds.

    4. +
    5. 5.4.5:4 +Otherwise matching fails.

    6. +
    +
    +
    +

    5.4.6. Reference Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.6:1 +Reference pattern matching proceeds as follows:

    +
      +
    1. 5.4.6:2 +Dereference the context value.

    2. +
    3. 5.4.6:3 +Perform pattern matching with its subpattern and the dereferenced +value.

    4. +
    +
    +
    +

    5.4.7. Slice Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.7:1 +Slice pattern matching proceeds as follows:

    +
      +
    1. 5.4.7:2 +If the expected type is a slice type then,

      +
        +
      1. 5.4.7:3 +If the number of subpatterns of the slice pattern is greater +than the length of the context value, then matching fails.

      2. +
      3. 5.4.7:4 +If the number of subpatterns of the slice pattern is less than +the size of the context value and one of those subpatterns is +not a rest pattern, then matching fails.

      4. +
      5. 5.4.7:5 +For each subpattern of the slice pattern:

        +
          +
        1. 5.4.7:6 +Perform pattern matching with the subpattern and the +corresponding value from the context value, ignoring +rest patterns.

        2. +
        3. 5.4.7:7 +If matching the subpattern fails, then matching fails.

        4. +
        +
      6. +
      +
    2. +
    3. 5.4.7:8 +Otherwise, if the expected type is an array type, then

      +
        +
      1. 5.4.7:9 +For each subpattern of the slice pattern:

        +
          +
        1. 5.4.7:10 +Perform pattern matching with the subpattern and the +corresponding value from the context value, ignoring +rest patterns.

        2. +
        3. 5.4.7:11 +If matching the subpattern fails, then matching fails.

        4. +
        +
      2. +
      +
    4. +
    +
    +
    +

    5.4.8. Record Struct Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.8:1 +Record struct pattern matching proceeds as follows:

    +
      +
    1. 5.4.8:2 +If the number of subpatterns of the record struct pattern is less +than the number of fields of the context value and one of those +subpatterns is not a rest pattern, then matching fails.

    2. +
    3. 5.4.8:3 +For each subpattern of the struct pattern

      +
        +
      1. 5.4.8:4 +If the subpattern is a shorthand deconstructor, then the +corresponding field of the context value is bound to the +binding of the shorthand deconstructor according to the +binding mode.

      2. +
      3. 5.4.8:5 +Otherwise perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring rest +patterns.

      4. +
      5. 5.4.8:6 +If matching the subpattern fails, then matching fails.

      6. +
      +
    4. +
    +
    +
    +

    5.4.9. Tuple Struct Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.9:1 +Tuple struct pattern matching proceeds as follows:

    +
      +
    1. 5.4.9:2 +For each subpattern of the tuple struct pattern

      +
        +
      1. 5.4.9:3 +Otherwise perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring +rest patterns.

      2. +
      3. 5.4.9:4 +If matching the subpattern fails, then matching fails.

      4. +
      +
    2. +
    +
    +
    +

    5.4.10. Tuple Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.10:1 +Tuple pattern matching proceeds as follows:

    +
      +
    1. 5.4.10:2 +For each subpattern of the tuple pattern

      +
        +
      1. 5.4.10:3 +Perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring +rest patterns.

      2. +
      3. 5.4.10:4 +If matching the subpattern fails, then matching fails.

      4. +
      +
    2. +
    +
    +
    +

    5.4.11. Underscore Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.11:1 +Underscore pattern matching proceeds as follows:

    +
      +
    1. 5.4.11:2 +The context value is matched unconditionally.

    2. +
    3. 5.4.11:3 +Matching succeeds.

    4. +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/program-structure-and-compilation.html b/program-structure-and-compilation.html new file mode 100644 index 00000000..ae1b8b98 --- /dev/null +++ b/program-structure-and-compilation.html @@ -0,0 +1,264 @@ + + + + + + + + + + + + 18. Program Structure and Compilation — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    18. Program Structure and Compilation

    +
    +

    18.1. Source Files

    +

    Syntax

    +
    SourceFile ::=
    +    ZeroWidthNoBreakSpace?
    +    Shebang?
    +    InnerAttributeOrDoc*
    +    Item*
    +
    +ZeroWidthNoBreakSpace ::=
    +    \u{FEFF}
    +
    +Shebang ::=
    +    #! ~[NewLine]*
    +
    +NewLine ::=
    +    \n
    +

    Legality Rules

    +

    18.1:1 +A source file contains the program text consisting of inner +attributes, inner doc comments, and items. The location of a +source file is tool defined.

    +

    18.1:2 +A Shebang does not have an effect on the compilation.

    +
    +
    +

    18.2. Modules

    +

    Syntax

    +
    ModuleDeclaration ::=
    +    unsafe? mod Name ModuleSpecification
    +
    +ModuleSpecification ::=
    +    InlineModuleSpecification
    +  | OutlineModuleSpecification
    +
    +InlineModuleSpecification ::=
    +    {
    +      InnerAttributeOrDoc*
    +      Item*
    +    }
    +
    +OutlineModuleSpecification ::=
    +    ;
    +

    Legality Rules

    +

    18.2:1 +A module is a container for zero or more items.

    +

    18.2:2 +The unsafe keyword of an module is rejected, but may still +be consumed by macros.

    +

    18.2:3 +An inline module is a module with an InlineModuleSpecification.

    +

    18.2:4 +An outline module is a module with an OutlineModuleSpecification.

    +

    18.2:5 +An outline module loads a source file and considers the text of the +source file to be inlined within the context of the outline module.

    +

    18.2:6 +The location of a module source file can be specified using +attribute path.

    +

    Examples

    +
    #[path = "path/to/module"]
    +pub mod module {
    +     #![allow(dead_code)]
    +
    +     struct Struct;
    +     pub mod other;
    +}
    +
    +
    +
    +
    +

    18.3. Crates

    +

    Legality Rules

    +

    18.3:1 +A crate is a unit of compilation and linking that contains a tree of +nested modules.

    +

    18.3:2 +A binary crate is a crate that contains a main function. A tool +can compile a binary crate to an executable.

    +

    18.3:3 +A library crate is either a crate without a main function or a +crate subject to attribute no_main. A tool is free to compile a +library crate to a shared library.

    +

    18.3:4 +A proc-macro crate is a crate that contains procedural macros. +A tool is free to compile a proc-macro crate to a shared library.

    +

    18.3:5 +A proc-macro crate shall not declare items with +public visibility unless the item is a procedural macro.

    +

    18.3:6 +Only a proc-macro crate shall declare procedural macros.

    +
    +
    +

    18.4. Crate Imports

    +

    Syntax

    +
    ExternalCrateImport ::=
    +    extern crate CrateIndication Renaming? ;
    +
    +CrateIndication ::=
    +    Identifier
    +  | self
    +

    Legality Rules

    +

    18.4:1 +A crate import specifies a required dependency on an external crate.

    +

    18.4:2 +A crate indication is a construct that indicates a crate.

    +

    18.4:3 +A crate import binds an external crate to its crate indication.

    +

    18.4:4 +Crate indication self shall require a renaming.

    +

    18.4:5 +A crate import with a renaming with an identifier binds the +external crate to a local name and introduces the local name into +the enclosing scope.

    +

    18.4:6 +If a crate import appears at the crate root module, then the +crate indication is added to the external prelude.

    +

    18.4:7 +A crate indication shall resolve to an external crate. The process of +resolving a crate indication to an external crate is tool-defined.

    +
    +
    +

    18.5. Compilation Roots

    +

    Legality Rules

    +

    18.5:1 +A crate root module is the root of the nested module tree of a +crate.

    +

    18.5:2 +A tool can define a crate root module for a single crate.

    +

    18.5:3 +A compilation root is an input to a compilation performed by a tool. A +crate root module is a compilation root.

    +
    +
    +

    18.6. Conditional Compilation

    +

    Legality Rules

    +

    18.6:1 +Conditionally-compiled source code is source code that may or may +not be considered a part of a Rust program depending on +configuration predicates.

    +

    18.6:2 +Conditional compilation is the process of compiling +conditionally-compiled source code.

    +

    18.6:3 +A construct subject to attribute cfg where the related +configuration predicate evaluates to false is not considered part of a +Rust program.

    +

    18.6:4 +A crate root module subject to attribute cfg where the related +configuration predicate evaluates to false is considered empty except +for all attributes up to the invoked attribute cfg.

    +

    18.6:5 +An attribute cfg_attr where the related configuration predicate +evaluates to false is not considered part of a Rust program.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..cf0b7aa7 --- /dev/null +++ b/search.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + Search — Ferrocene Language Specification + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..17dcee9a --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["associated-items", "attributes", "concurrency", "entities-and-resolution", "exceptions-and-errors", "expressions", "ffi", "functions", "general", "generics", "glossary", "implementations", "index", "inline-assembly", "items", "lexical-elements", "licenses", "macros", "ownership-and-deconstruction", "patterns", "program-structure-and-compilation", "statements", "types-and-traits", "undefined-behavior", "unsafety", "values"], "filenames": ["associated-items.rst", "attributes.rst", "concurrency.rst", "entities-and-resolution.rst", "exceptions-and-errors.rst", "expressions.rst", "ffi.rst", "functions.rst", "general.rst", "generics.rst", "glossary.rst", "implementations.rst", "index.rst", "inline-assembly.rst", "items.rst", "lexical-elements.rst", "licenses.rst", "macros.rst", "ownership-and-deconstruction.rst", "patterns.rst", "program-structure-and-compilation.rst", "statements.rst", "types-and-traits.rst", "undefined-behavior.rst", "unsafety.rst", "values.rst"], "titles": ["10. Associated Items", "13. Attributes", "17. Concurrency", "14. Entities and Resolution", "16. Exceptions and Errors", "6. Expressions", "21. FFI", "9. Functions", "1. General", "12. Generics", "B. Glossary", "11. Implementations", "Ferrocene Language Specification", "22. Inline Assembly", "3. Items", "2. Lexical Elements", "A. Licenses", "20. Macros", "15. Ownership and Destruction", "5. Patterns", "18. Program Structure and Compilation", "8. Statements", "4. Types and Traits", "C. List of undefined behavior", "19. Unsafety", "7. Values"], "terms": {"syntax": [0, 1, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25], "associateditem": [0, 10, 11, 22], "outerattributeordoc": [0, 1, 5, 6, 7, 8, 9, 14, 19, 21, 22], "associateditemwithvis": 0, "terminatedmacroinvoc": [0, 6, 10, 14, 17, 21], "visibilitymodifi": [0, 3, 6, 14, 22], "constantdeclar": [0, 10, 14, 22, 25], "functiondeclar": [0, 6, 7, 10, 14, 22], "typealiasdeclar": [0, 10, 14, 22], "legal": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "rule": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25], "10": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "an": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "appear": [0, 1, 3, 5, 6, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22], "within": [0, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "implement": [0, 1, 2, 3, 5, 6, 8, 9, 12, 14, 17, 18, 19, 22, 24, 25], "trait": [0, 1, 2, 3, 5, 7, 9, 11, 12, 15, 18, 19, 23, 24, 25], "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "constant": [0, 3, 6, 7, 9, 11, 12, 13, 18, 19, 22], "3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "function": [0, 3, 4, 5, 8, 9, 11, 12, 13, 16, 18, 20, 23, 24, 25], "4": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "type": [0, 2, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 21, 23, 24, 25], "alia": [0, 3, 9, 11, 22], "5": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "shall": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "us": [0, 2, 4, 5, 6, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "path": [0, 9, 11, 12, 15, 17, 20, 22, 25], "express": [0, 1, 2, 7, 8, 9, 12, 13, 16, 17, 18, 19, 22, 23, 25], "struct": [0, 1, 3, 9, 11, 12, 15, 17, 18, 20, 23, 25], "6": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "typeboundlist": [0, 3, 9, 22], "onli": [0, 1, 3, 5, 6, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "7": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "A": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "gener": [0, 5, 7, 11, 12, 13, 16, 17, 22, 25], "paramet": [0, 1, 5, 6, 7, 11, 12, 17, 18], "8": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "lifetim": [0, 3, 9, 12, 17, 18, 25], "requir": [0, 1, 5, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 25], "bound": [0, 3, 5, 9, 11, 12, 13, 17, 19], "form": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16, 17, 22], "t": [0, 1, 2, 3, 5, 8, 9, 10, 13, 15, 16, 18, 19, 21, 22], "where": [0, 1, 2, 3, 5, 7, 12, 13, 15, 16, 17, 18, 19, 20, 22], "self": [0, 1, 5, 7, 8, 11, 15, 18, 20, 22], "when": [0, 1, 3, 5, 6, 9, 10, 11, 13, 15, 17, 18, 19, 22, 25], "9": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "same": [0, 3, 5, 6, 8, 10, 11, 13, 15, 16, 17, 18, 19, 22, 25], "correspond": [0, 5, 6, 9, 10, 17, 19, 22], "argument": [0, 3, 5, 8, 12, 17, 19, 22], "static": [0, 1, 3, 5, 9, 12, 13, 15, 17, 18, 19, 23, 24], "ha": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "either": [0, 1, 3, 4, 5, 9, 10, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "explicit": [0, 3, 6, 13, 15, 22], "implicit": [0, 5, 6, 9, 18, 22], "constrain": [0, 9, 15], "11": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "intersect": [0, 11], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20, 22, 25], "empti": [0, 3, 11, 13, 15, 17, 20, 21], "12": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "13": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "have": [0, 1, 2, 3, 5, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 22, 25], "initi": [0, 3, 5, 6, 9, 12, 13, 17, 19, 21, 22, 25], "14": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "15": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "bodi": [0, 1, 3, 5, 7, 9, 11, 18, 22], "16": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "17": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "18": [0, 1, 3, 5, 6, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 20, 21, 22], "19": [0, 1, 3, 5, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 22, 24], "20": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "21": [0, 1, 3, 5, 6, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 22], "22": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "subject": [0, 1, 3, 4, 5, 7, 9, 11, 13, 15, 16, 17, 18, 19, 20, 22, 25], "keyword": [0, 3, 5, 6, 7, 8, 11, 12, 17, 19, 20, 22, 25], "const": [0, 5, 6, 7, 9, 10, 11, 15, 19, 22, 25], "23": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "everi": [0, 3, 10, 17, 22], "occurr": [0, 3, 10], "impl": [0, 1, 3, 5, 7, 11, 15, 18], "return": [0, 1, 2, 7, 8, 9, 12, 13, 15, 17, 18, 22], "equival": [0, 3, 5, 7, 9, 10, 15, 17, 19, 22], "refer": [0, 1, 3, 5, 6, 8, 9, 11, 12, 15, 17, 23, 24, 25], "new": [0, 1, 5, 8, 10, 13, 15, 17, 18, 21, 22], "anonym": [0, 5, 22, 25], "24": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "25": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "26": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "core": [0, 1, 2, 3, 4, 5, 9, 10, 11, 13, 18, 19, 22, 24, 25], "marker": [0, 1, 2, 5, 9, 10, 11, 18, 19, 22, 25], "size": [0, 3, 5, 8, 9, 11, 13, 15, 18, 19, 22, 25], "27": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "x": [0, 7, 9, 13, 15, 18, 19, 22], "28": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "claus": [0, 1, 3, 7, 12, 22], "follow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 25], "29": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "30": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "31": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "method": [0, 7, 18, 22], "32": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "one": [0, 1, 2, 3, 5, 8, 9, 10, 11, 15, 16, 17, 18, 19, 22], "33": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 19, 22], "specif": [0, 3, 8, 11, 13, 15, 16, 17, 22, 23, 25], "resolv": [0, 3, 5, 10, 11, 17, 19, 20, 22], "relat": [0, 1, 2, 3, 9, 10, 13, 16, 17, 18, 19, 20, 22, 25], "34": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 19, 22], "list": [0, 1, 5, 8, 12, 13, 15, 16, 19, 22], "thi": [0, 1, 2, 3, 4, 5, 8, 9, 10, 13, 15, 16, 17, 18, 22, 23], "enumer": [0, 1], "35": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 22], "mut": [0, 2, 5, 6, 7, 10, 11, 13, 15, 18, 19, 21, 22, 25], "36": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 19, 22], "pin": [0, 5, 11], "37": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 22], "visibl": [0, 1, 12, 17, 20], "modifi": [0, 3, 5, 16, 17, 18, 22, 25], "reject": [0, 3, 6, 20, 22], "mai": [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 20, 22, 24, 25], "still": [0, 3, 6, 20, 22], "consum": [0, 3, 5, 6, 10, 17, 20, 22], "macro": [0, 4, 5, 6, 8, 12, 14, 15, 20, 21, 22, 24], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "greeter": 0, "max_greet": 0, "i32": [0, 1, 2, 3, 5, 13, 15, 18, 19, 22], "fn": [0, 1, 3, 5, 6, 7, 9, 10, 11, 13, 15, 17, 18, 22], "greet": 0, "messag": [0, 1, 8], "str": [0, 3, 15, 18, 23], "implementor": 0, "delivered_greet": 0, "42": [0, 1, 3, 5, 7, 9, 10, 13, 15, 17, 18, 19, 21, 22], "println": [0, 1, 3, 5, 17, 18], "38": [0, 1, 3, 5, 7, 9, 10, 13, 15, 22], "lendingiter": 0, "next": [0, 5, 10, 15, 22], "innerattributeordoc": [1, 5, 6, 11, 20, 22], "innerattribut": [1, 10], "innerbuiltinattribut": [1, 10], "innerblockdoc": [1, 10, 15], "innerlinedoc": [1, 10, 15], "attributecont": [1, 10], "outerattribut": [1, 10], "outerbuiltinattribut": [1, 10], "outerblockdoc": [1, 10, 15], "outerlinedoc": [1, 10, 15], "simplepath": [1, 3, 10, 17], "attributeinput": 1, "tokentre": [1, 10, 17], "attributecontentlist": 1, "free": [1, 8, 10, 13, 16, 20], "metadatum": [1, 10], "interpret": [1, 3, 5, 8, 10, 19, 22, 25], "base": [1, 3, 5, 13, 15, 16, 17, 18, 19, 25], "its": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25], "name": [1, 3, 7, 8, 9, 11, 13, 15, 16, 17, 19, 20, 22, 25], "convent": [1, 5, 6, 12], "languag": [1, 2, 3, 4, 6, 8, 10, 16, 22, 23], "tool": [1, 3, 5, 6, 8, 10, 13, 15, 20, 22], "inner": [1, 3, 5, 11, 15, 18, 19, 20, 22], "appli": [1, 3, 10, 13, 15, 16, 17, 22], "enclos": [1, 3, 5, 6, 10, 15, 16, 17, 18, 20], "item": [1, 5, 7, 8, 9, 11, 12, 15, 17, 18, 20, 21], "outer": [1, 3, 5, 15, 17, 18], "subsequ": [1, 10, 13, 15, 16, 17, 22], "content": [1, 8, 13, 15, 16, 17, 19, 22, 23], "construct": [1, 3, 5, 6, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 21, 22, 25], "provid": [1, 2, 3, 5, 6, 8, 9, 10, 13, 16, 17, 21, 22, 25], "target_o": 1, "linux": 1, "mod": [1, 3, 15, 19, 20, 22], "linux_only_modul": 1, "allow": [1, 2, 3, 5, 6, 10, 13, 17, 18, 19, 20, 22], "unused_vari": 1, "let": [1, 3, 7, 12, 13, 15, 18, 19, 22], "unus": 1, "activ": [1, 5, 18, 22], "remov": [1, 10, 21], "from": [1, 3, 5, 6, 7, 8, 9, 13, 15, 16, 17, 18, 19, 21, 22, 25], "decor": [1, 10], "inert": [1, 17], "remain": [1, 3, 5, 9, 10, 13, 16, 18, 22], "ar": [1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25], "purpos": [1, 8, 16], "otherwis": [1, 3, 5, 6, 7, 9, 10, 13, 16, 17, 18, 19, 21, 22], "builtinattributecont": 1, "automaticallyderivedcont": 1, "cfgattrcont": 1, "cfgcontent": 1, "coldcont": 1, "cratenamecont": 1, "cratetypecont": 1, "derivecont": 1, "doccont": 1, "exportnamecont": 1, "globalallocatorcont": 1, "inlinecont": 1, "ignorecont": 1, "linkcont": 1, "linknamecont": 1, "linksectioncont": 1, "linkordinalcont": 1, "macroexportcont": 1, "macrousecont": 1, "nobinutilscont": 1, "noimplicitpreludecont": 1, "nolinkcont": 1, "nomaincont": 1, "nomanglecont": 1, "nonexhaustivecont": 1, "nostdcont": 1, "panichandlercont": 1, "pathcont": 1, "procmacroattributecont": 1, "procmacrocont": 1, "procmacroderivecont": 1, "recursionlimitcont": 1, "reprcont": 1, "shouldpaniccont": 1, "targetfeaturecont": 1, "testcont": 1, "trackcallercont": 1, "typelengthlimitcont": 1, "usedcont": 1, "windowssubsystemcont": 1, "defin": [1, 2, 3, 5, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 25], "deni": 1, "deprec": 1, "forbid": 1, "must_us": 1, "warn": [1, 8], "39": [1, 3, 5, 7, 9, 10, 13, 15, 22], "40": [1, 5, 7, 9, 10, 13, 15, 22], "41": [1, 5, 7, 9, 10, 13, 15, 22], "43": [1, 5, 9, 10, 13, 15, 22], "44": [1, 5, 10, 13, 15, 19, 22], "45": [1, 5, 10, 13, 15, 22], "46": [1, 5, 10, 13, 15, 22], "47": [1, 5, 10, 13, 15, 22], "48": [1, 5, 10, 13, 15, 22], "49": [1, 5, 10, 13, 15, 22], "50": [1, 5, 10, 13, 15, 16, 22], "51": [1, 5, 10, 13, 15, 22], "52": [1, 5, 10, 13, 15, 22], "53": [1, 5, 10, 13, 15, 22], "54": [1, 5, 10, 13, 15, 22], "55": [1, 10, 13, 15, 19, 22], "56": [1, 10, 13, 15, 22], "57": [1, 10, 13, 15, 19, 22], "58": [1, 10, 13, 15, 22], "indic": [1, 4, 5, 6, 8, 13, 16, 17, 19, 20, 22], "unlik": 1, "call": [1, 7, 8, 13, 17, 18, 22, 23, 24], "rarely_called_funct": 1, "inlinehint": 1, "alwai": [1, 3, 10, 11, 15, 18, 19, 22, 25], "never": [1, 5, 21, 23], "closur": [1, 3, 7, 12, 18], "mark": [1, 8, 15, 16], "process": [1, 3, 5, 10, 13, 14, 17, 18, 19, 20, 21, 22, 25], "replac": [1, 10, 15, 16, 17, 18, 22, 25], "without": [1, 2, 3, 5, 6, 7, 9, 13, 15, 16, 17, 18, 19, 20, 21, 22], "suggest": 1, "should": [1, 16, 18], "perform": [1, 3, 5, 10, 13, 15, 16, 17, 18, 19, 20, 22], "oblig": [1, 16, 22], "suggests_inlin": 1, "requests_consistent_inlin": 1, "requests_suppressed_inlin": 1, "crate": [1, 3, 8, 11, 12, 15, 17, 22], "root": [1, 3, 12, 22], "prevent": [1, 2, 10, 13, 18, 22], "certain": [1, 3, 5, 10, 13, 18, 22], "pattern": [1, 5, 6, 7, 12, 17, 18, 21, 22, 23], "intrins": 1, "enabl": [1, 8], "featurelist": 1, "featur": [1, 2, 13], "adx": 1, "ae": 1, "avx": [1, 13], "avx2": 1, "bmi1": 1, "bmi2": 1, "fma": 1, "fxsr": 1, "lzcnt": 1, "pclmulqdq": 1, "popcnt": 1, "rdrand": 1, "rdseed": 1, "sha": 1, "sse": [1, 13], "sse2": 1, "sse3": 1, "sse4": 1, "ssse3": 1, "xsave": 1, "xsavec": 1, "xsaveopt": 1, "unsaf": [1, 6, 7, 11, 13, 15, 18, 19, 20, 22, 24, 25], "target": [1, 3, 5, 13, 18, 22], "architectur": [1, 13], "implicitli": [1, 3, 5, 8, 18, 22], "descript": [1, 16], "intel": 1, "multi": [1, 3, 15, 22], "precis": 1, "add": [1, 5, 10, 11, 13, 16, 17, 22], "cari": 1, "instruct": [1, 12, 23], "extens": [1, 13], "advanc": 1, "encrypt": 1, "standard": [1, 3, 10, 15], "vector": [1, 13, 21], "bit": [1, 13, 22], "manipul": 1, "set": [1, 3, 5, 6, 7, 8, 9, 10, 12, 13, 17, 19, 22], "three": [1, 5], "operand": [1, 3, 5, 8, 18, 21, 22, 25], "fuse": 1, "multipli": 1, "save": [1, 5, 10, 13], "restor": [1, 13], "x87": [1, 13], "fpu": 1, "mmx": 1, "technologi": 1, "state": [1, 4, 5, 8, 10, 13, 16], "lead": [1, 3, 10, 15], "zero": [1, 5, 8, 13, 14, 15, 17, 19, 20, 22, 25], "count": 1, "pack": 1, "carri": [1, 16], "less": [1, 5, 15, 19], "multipl": [1, 2, 5, 13, 15, 17, 18, 19, 22], "quadword": 1, "read": [1, 5, 10, 13, 19, 24, 25], "random": 1, "number": [1, 3, 5, 8, 10, 15, 17, 19, 22], "seed": 1, "secur": 1, "hash": 1, "algorithm": [1, 22], "stream": [1, 10, 17], "simd": 1, "supplement": [1, 10, 11], "processor": [1, 8], "extend": [1, 3, 5, 10, 11, 15, 17, 18], "statu": [1, 13], "compact": 1, "optim": 1, "supervizor": 1, "undefin": [1, 2, 5, 6, 8, 12, 13, 18, 19, 22, 24, 25], "behavior": [1, 2, 4, 5, 6, 7, 8, 12, 13, 18, 19, 22, 24, 25], "It": [1, 2, 3, 5, 6, 7, 8, 9, 13, 15, 17, 18, 19, 22, 25], "execut": [1, 4, 5, 6, 8, 13, 16, 17, 20, 21, 25], "program": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 15, 18, 22, 24], "support": [1, 6, 8, 16], "requires_target_architecture_featur": 1, "non": [1, 3, 5, 6, 11, 13, 15, 16, 19, 22], "main": [1, 7, 8, 20], "abi": [1, 5, 7, 12, 22, 23], "rust": [1, 2, 4, 6, 7, 8, 13, 15, 17, 18, 20, 24], "obtain": [1, 2, 5, 10, 16, 18, 22], "panic": [1, 5, 8, 12, 21, 22], "locat": [1, 2, 3, 5, 10, 13, 20, 25], "which": [1, 2, 3, 5, 8, 10, 13, 14, 15, 16, 17, 18, 19, 21, 22], "topmost": 1, "untrack": 1, "caller": [1, 3, 5, 8, 10], "ultim": 1, "led": 1, "invoc": [1, 3, 7, 12, 13, 14, 21, 22], "effect": [1, 3, 4, 5, 8, 10, 13, 14, 17, 18, 20, 21, 22], "manner": [1, 5, 8, 10], "associ": [1, 3, 5, 7, 8, 9, 11, 12, 16, 17, 18, 19, 22, 25], "If": [1, 3, 6, 7, 9, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22], "default": [1, 3, 5, 6, 9, 11, 22], "overrid": [1, 15], "extern": [1, 3, 5, 7, 8, 12, 13, 15, 17, 20, 22, 24, 25], "doe": [1, 3, 5, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "export": [1, 3, 8], "miss": 1, "who_called_m": 1, "configurationpred": [1, 8, 10], "configurationopt": 1, "configurationpredicateal": [1, 10], "configurationpredicateani": [1, 10], "configurationpredicatenot": [1, 10], "configurationoptionnam": 1, "configurationoptionvalu": 1, "identifi": [1, 3, 5, 6, 8, 9, 12, 13, 16, 17, 18, 20, 22], "stringliter": [1, 6, 10, 13, 15], "configurationpredicatelist": 1, "ani": [1, 2, 3, 5, 8, 9, 13, 15, 16, 17, 19, 22], "configur": [1, 13, 16, 20], "predic": [1, 3, 9, 20, 22], "evalu": [1, 5, 13, 20, 21, 25], "true": [1, 5, 9, 10, 15, 22], "fals": [1, 5, 10, 15, 20, 22], "control": [1, 4, 5, 7, 8, 13, 16, 18, 19, 25], "model": [1, 7, 10, 12, 18], "existenti": [1, 10], "quantifi": [1, 5, 10], "nest": [1, 3, 5, 15, 17, 18, 19, 20, 22], "negat": [1, 22], "boolean": [1, 3, 18, 22], "valu": [1, 2, 3, 4, 7, 8, 9, 11, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24], "option": [1, 3, 4, 5, 8, 9, 12, 17, 19, 21, 22, 23], "unix": 1, "target_pointer_width": 1, "on_32bit_unix": 1, "each": [1, 3, 5, 8, 11, 15, 16, 17, 18, 19, 21, 22], "": [1, 3, 5, 6, 8, 9, 10, 13, 16, 17, 19, 22, 25], "window": [1, 6, 13], "r": [1, 8, 13, 15, 22], "o": [1, 13], "automat": [1, 2, 3, 10, 22], "ad": [1, 3, 10, 20, 22], "creat": [1, 5, 9, 10, 18, 25], "simplepathlist": [1, 3], "abstract": [1, 2, 3, 5, 9, 12, 15, 17, 25], "data": [1, 2, 3, 5, 6, 9, 12, 13, 17, 19, 25], "partialeq": [1, 5, 19, 22], "field": [1, 2, 9, 12, 16, 18, 19, 22, 23, 24, 25], "caus": [1, 4, 5, 10, 13, 16], "cmp": [1, 5, 19, 22], "eq": [1, 5, 19, 22], "other": [1, 3, 5, 6, 8, 10, 12, 13, 16, 17, 18, 19, 20, 24, 25], "bool": [1, 2, 3, 5, 15, 23], "ne": [1, 5], "section": [1, 13, 15, 16, 22, 23], "inform": [1, 3, 8, 10, 13, 15, 16, 22, 23], "lint": 1, "docinput": 1, "macroinvoc": [1, 5, 10, 17, 19, 22], "comment": [1, 11, 12, 16, 20, 22], "written": [1, 8, 10, 13, 15, 16, 22], "specifi": [1, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22], "factori": 1, "cratetyp": 1, "bin": 1, "cdylib": 1, "dylib": 1, "lib": 1, "proc": [1, 17, 20], "rlib": 1, "staticlib": 1, "linkag": [1, 6, 10], "symbol": 1, "exported_symbol": 1, "pub": [1, 3, 15, 17, 19, 20], "rust_nam": 1, "linkopt": 1, "nativelibrarynam": 1, "nativelibrarynamewithkind": 1, "webassemblymodulenam": 1, "nativelibraykind": 1, "wasm_import_modul": 1, "kind": [1, 3, 5, 6, 16, 17], "nativelibraykindtyp": 1, "raw": [1, 5, 13, 24], "framework": 1, "block": [1, 3, 7, 9, 12, 13, 15, 17, 18, 21, 22, 24], "nativ": 1, "librari": [1, 3, 8, 20, 25], "avail": [1, 8, 13, 16, 22], "dynam": [1, 4, 5, 6, 8, 13, 14, 18, 19, 21, 22, 25], "maco": 1, "valid": [1, 5, 8, 9, 11, 22], "webassembli": 1, "env": 1, "suppli": [1, 3, 5, 8, 9, 10, 18], "must": [1, 8, 10, 13, 16, 17, 22], "includ": [1, 3, 5, 6, 8, 10, 15, 16, 17, 22], "file": [1, 12, 15, 16], "corefound": 1, "annot": [1, 10, 15, 16], "linking_symbol": 1, "object": [1, 5, 8, 16, 18], "place": [1, 8, 13, 16, 18, 19, 22, 25], "example_sect": 1, "the_answ": 1, "u32": [1, 2, 3, 5, 13, 15, 17, 19, 21, 22, 25], "decimalliter": [1, 5, 10, 15, 19], "ordin": 1, "dll": 1, "system": [1, 6, 13, 16], "import": [1, 6, 8, 12, 15, 16], "result": [1, 4, 5, 7, 8, 10, 16, 17, 21, 22, 24, 25], "binari": [1, 5, 6, 15, 20], "do_not_link": 1, "present": [1, 2, 4, 9, 10, 15, 18, 22], "than": [1, 3, 5, 6, 11, 13, 15, 19, 22, 24], "publicli": [1, 16], "produc": [1, 4, 5, 8, 10, 13, 17, 18, 21, 25], "symbol_nam": 1, "represent": [1, 5, 8, 12, 15, 17], "representationkind": 1, "align": [1, 13, 22], "primitiverepresent": 1, "c": [1, 6, 9, 13, 15, 16, 18, 19, 22, 23], "transpar": [1, 22], "alignmentdecreas": 1, "alignmentincreas": 1, "i8": [1, 2, 3, 13, 15, 22], "i16": [1, 2, 3, 13, 15, 22], "i64": [1, 2, 3, 13, 15, 22], "i128": [1, 3, 15, 22], "isiz": [1, 2, 3, 15, 22], "u8": [1, 2, 3, 5, 6, 15, 22], "u16": [1, 2, 3, 5, 15, 22], "u64": [1, 2, 3, 15, 22], "u128": [1, 3, 15, 22], "usiz": [1, 2, 3, 5, 9, 15, 22], "c_struct": 1, "first_field": 1, "second_field": 1, "forc": [1, 22], "keep": 1, "output": [1, 5, 7, 13, 17, 22, 25], "even": [1, 5, 13, 16, 19], "referenc": [1, 5, 6, 10, 17, 22], "maximum": [1, 5, 19, 22], "depth": [1, 17], "expans": [1, 8, 12, 14], "auto": [1, 22], "dereferenc": [1, 5, 10, 19, 24], "substitut": [1, 13, 22, 25], "concret": [1, 22], "declar": [1, 3, 5, 6, 7, 12, 13, 14, 15, 18, 19, 20, 22, 25], "chang": [1, 5, 10, 13, 16, 18, 22], "public": [1, 3, 20], "introduc": [1, 3, 5, 10, 18, 19, 20, 21, 22], "scope": [1, 12, 17, 19, 20], "macro_rul": [1, 15, 17], "m": [1, 3, 10, 13, 17], "importedmacrolist": 1, "identifierlist": [1, 15], "been": [1, 5, 8, 10, 11, 13, 16, 18, 19, 22, 25], "textual": 1, "first_macro": 1, "second_macro": 1, "turn": 1, "like": [1, 3, 5, 22], "make_answer_to_lif": [1, 17], "_item": [1, 17], "tokenstream": [1, 17], "answer_to_lif": [1, 17], "pars": [1, 5, 13, 17], "unwrap": [1, 5, 17], "output_and_return_item": [1, 17], "attr": [1, 17], "to_str": [1, 5, 17], "derivenam": 1, "helperattributelist": 1, "helper": [1, 17], "answer": [1, 5, 17], "derive_answer_to_lif": [1, 17], "respect": [1, 5, 13, 22], "string": [1, 5, 13, 22], "liter": [1, 8, 12, 13, 17, 25], "format": [1, 5, 10, 13, 16], "inline_modul": 1, "outline_modul": 1, "version": [1, 12, 15, 16], "whose": [1, 2, 3, 5, 8, 9, 10, 11, 13, 15, 17, 18, 19, 21, 22, 25], "alloc": [1, 10, 13, 15, 25], "globalalloc": 1, "global": [1, 3, 5, 13, 22, 25], "restrict": [1, 3, 5, 7, 10, 13, 15, 16, 17, 19], "lack": [1, 3, 4, 5, 7, 10, 13, 15, 17, 18, 21, 22], "qualifi": [1, 3, 5, 7, 8, 15, 17, 19], "Its": [1, 7, 22], "singl": [1, 3, 5, 9, 13, 15, 17, 19, 20, 22], "panicinfo": 1, "graph": 1, "contain": [1, 3, 5, 6, 8, 9, 13, 16, 17, 18, 19, 20, 22], "exactli": [1, 3, 5, 10, 13, 15, 19, 22], "info": [1, 13], "subsystemkind": 1, "consol": 1, "subsystem": 1, "ignorereason": 1, "yet": [1, 2, 10, 15], "unit_testing_funct": 1, "expectedpanicmessag": 1, "expect": [1, 5, 7, 10, 17, 19, 21, 22], "pass": [1, 5, 8, 12, 19], "did": [1, 13], "get": 1, "mean": [1, 3, 8, 10, 15, 16], "life": 1, "test_meaning_of_lif": 1, "assert_eq": 1, "meaning_of_lif": 1, "async": [1, 3, 7, 15], "unit": [1, 5, 7, 8, 19, 20, 21, 22], "termin": [1, 4, 5, 14, 16, 17, 21], "e": [1, 13, 15, 17], "ok": [1, 4], "fail": [1, 4, 5, 17, 19, 22], "accord": [1, 8, 13, 17, 19, 22], "test_the_th": 1, "input": [1, 5, 6, 7, 9, 13, 15, 20, 22], "create_input": 1, "do_the_th": 1, "enum": [1, 3, 4, 5, 9, 15, 18, 19, 23], "variant": [1, 3, 5, 8, 9, 18, 19, 22], "more": [1, 2, 3, 8, 10, 11, 13, 14, 15, 16, 17, 19, 20], "futur": [1, 2, 5, 7], "exhaust": [1, 5], "outsid": [1, 3, 5, 8, 10, 13, 17, 22], "match": [1, 3, 7, 12, 15, 18, 21, 22], "rest": [1, 5], "contribut": [1, 8, 16], "toward": [1, 5], "arm": [1, 3, 5, 6, 13, 18, 22], "enum_with_future_vari": 1, "enum_variants_with_future_field": 1, "send": [1, 12, 22], "quit": 1, "struct_with_future_field": 1, "race": 2, "chapter": [2, 8, 15], "scenario": [2, 10, 18, 22], "two": [2, 3, 5, 10, 11, 13, 15, 17, 19, 22, 25], "thread": [2, 4, 10], "access": [2, 3, 12, 18, 23, 24, 25], "share": [2, 5, 8, 16, 18, 20, 22], "memori": [2, 5, 10, 13, 18, 22, 25], "synchron": 2, "modif": [2, 16], "engag": 2, "level": [2, 10, 13], "safe": [2, 22], "transfer": [2, 5, 10, 16, 18], "across": [2, 6, 10, 22], "boundari": [2, 5, 6, 7], "given": [2, 3, 8, 10, 11, 17, 22], "time": [2, 5, 8, 10, 17, 19, 22], "incur": [2, 16], "modul": [2, 3, 8, 12, 13, 15, 17, 19], "primit": [2, 5, 22], "commun": [2, 16], "between": [2, 5, 8, 9, 10, 13, 15, 17, 18, 22], "atomicbool": 2, "atomici8": 2, "atomici16": 2, "atomici32": [2, 18], "atomici64": 2, "atomicis": 2, "atomicptr": 2, "atomicu8": 2, "atomicu16": 2, "atomicu32": 2, "atomicu64": 2, "atomicus": 2, "through": [2, 3, 8, 10, 16, 17, 18, 22, 25], "task": [2, 5], "repres": [2, 4, 5, 10, 13, 15, 16, 22], "finish": [2, 10], "await": [2, 12, 15], "invok": [2, 3, 4, 5, 6, 8, 10, 13, 17, 18, 20, 22], "poll": [2, 5, 10], "alreadi": [2, 10, 19], "readi": [2, 5, 10], "can": [3, 5, 8, 10, 13, 15, 17, 18, 20, 22, 25], "text": [3, 8, 10, 13, 15, 16, 18, 20, 24], "usual": [3, 4, 10], "via": [3, 10, 22], "explicitli": [3, 5, 8, 16, 18, 19, 22], "alias": [3, 12, 13, 18], "union": [3, 5, 9, 13, 15, 16, 18, 19, 24, 25], "built": [3, 8, 12], "attribut": [3, 4, 5, 6, 8, 11, 12, 15, 16, 19, 20, 22, 23], "cratepublicmodifi": [3, 10], "selfpublicmodifi": [3, 10], "simplepathpublicmodifi": [3, 10], "simplepublicmodifi": 3, "superpublicmodifi": [3, 10], "super": [3, 15], "properti": [3, 10, 12, 17, 18, 19, 22], "determin": [3, 5, 6, 7, 9, 10, 15, 16, 19, 21, 22, 25], "arbitrari": [3, 10], "long": [3, 5, 8, 10, 13, 18], "ancestor": [3, 10], "privat": [3, 13], "current": [3, 4, 5, 8, 10, 17, 18, 19, 22], "descend": [3, 10], "grant": [3, 10, 16], "denot": [3, 5, 7, 8, 10, 15, 17, 18, 19, 22, 25], "start": [3, 5, 8, 10, 13, 15, 18, 19], "segment": [3, 8, 9], "itself": [3, 7, 10, 17, 22], "parent": [3, 10, 18], "outer_modul": 3, "inner_modul": 3, "crate_visible_funct": 3, "inner_module_visible_funct": 3, "outer_module_visible_funct": 3, "visible_funct": 3, "simplepathseg": [3, 10], "qualifiedtyp": [3, 10], "typespecif": [3, 5, 7, 9, 10, 11, 17, 22], "qualifyingtrait": [3, 10], "typepath": [3, 10, 11, 22], "unqualifiedpathexpress": [3, 5], "pathexpressionseg": [3, 5], "pathseg": [3, 10], "genericargumentlist": [3, 9, 10], "qualifiedpathexpress": [3, 5, 10, 19], "typepathseg": [3, 10], "qualifiedfntrait": 3, "typespecificationlist": [3, 22], "returntyp": [3, 7, 10, 22], "qualifiedtypepath": [3, 10, 22], "sequenc": [3, 5, 12, 13, 15, 17], "logic": [3, 5, 10, 15, 22], "separ": [3, 8, 12, 13, 16, 17], "element": [3, 5, 12, 17, 18, 19, 22, 25], "first": [3, 5, 9, 10, 17, 18, 19, 22], "transcrib": [3, 17], "previou": [3, 22], "also": [3, 5, 8, 16, 22], "consist": [3, 5, 8, 9, 10, 15, 16, 17, 19, 20, 25], "abov": [3, 13, 16, 22], "prefix": [3, 8, 13], "last": [3, 5, 6, 10, 18, 19, 22], "strip": 3, "glob": 3, "part": [3, 8, 16, 17, 20, 22], "useimportcont": 3, "unqualifi": 3, "act": [3, 5, 7, 10, 11, 15, 16, 17, 18, 22], "impos": [3, 8, 10, 17, 19, 22], "exhibit": [3, 10, 11], "conform": [3, 12, 22], "project": [3, 8, 16], "associated_typ": [3, 10], "op": [3, 5, 10, 11, 18, 22], "fnmut": [3, 5, 10, 11, 22], "fnonc": [3, 5, 10, 11, 22], "see": [3, 5, 10, 16, 17, 18, 19, 22], "paragraph": [3, 5, 8, 15, 17, 18, 19, 22], "vec": [3, 5, 19, 21, 22], "with_capac": 3, "std": [3, 11, 13], "box": [3, 13, 15, 22], "dyn": [3, 15, 22], "f": [3, 5, 8, 13, 15, 22], "assoc": [3, 9, 22], "region": [3, 10, 18], "loop": [3, 12, 15, 18, 22], "while": [3, 15, 16, 17, 18, 22], "statement": [3, 5, 12, 16, 17, 18, 19, 22], "after": [3, 5, 8, 13, 15, 17, 18, 22, 25], "until": [3, 5, 10, 22], "end": [3, 5, 10, 13, 15, 16, 17, 18, 19], "guard": [3, 5, 18, 22], "genericparameterlist": [3, 6, 7, 9, 10, 11, 22], "pointer": [3, 5, 7, 13, 19, 23, 24], "except": [3, 5, 6, 8, 9, 10, 12, 13, 15, 16, 17, 19, 20, 22], "Such": [3, 5, 18, 19, 22], "context": [3, 5, 6, 7, 8, 9, 15, 17, 18, 19, 20, 22, 24, 25], "macro_us": 3, "reflect": [3, 8, 10], "child": [3, 5], "infinit": [3, 18, 22], "group": [3, 5, 8, 10], "conflict": [3, 10], "anoth": [3, 5, 7, 9, 10, 11, 17, 18, 19, 22], "segreg": 3, "five": 3, "deriv": [3, 16, 19, 22], "numer": [3, 5], "constructor": [3, 5, 9, 22], "collect": [3, 10, 17, 22], "brought": [3, 10], "bring": [3, 10], "re": 3, "rust_2021": 3, "renam": [3, 15, 20], "instead": [3, 4, 22], "unless": [3, 5, 6, 7, 9, 11, 13, 16, 20, 22, 25], "no_cor": 3, "float": [3, 5, 13], "point": [3, 5, 7, 13, 15, 18, 25], "f32": [3, 5, 13, 15, 22], "f64": [3, 5, 7, 11, 13, 15, 22], "integ": [3, 5], "char": [3, 5, 15, 23], "were": 3, "useimport": [3, 10, 14], "globimport": [3, 10], "nestingimport": [3, 10], "simpleimport": [3, 10], "simplepathprefix": [3, 10], "useimportcontentlist": 3, "resid": [3, 10, 17, 25], "fulli": [3, 10, 17], "Then": [3, 5, 22], "prepend": [3, 5], "repeat": [3, 5, 17, 19], "step": 3, "differ": [3, 5, 8, 10, 13, 16, 22], "thei": [3, 5, 8, 10, 15, 22], "append": [3, 17], "under": [3, 8, 15, 16, 22], "charact": [3, 8, 12, 13, 16, 17, 19, 21, 22, 25], "underscor": [3, 6, 12, 13, 15], "_": [3, 5, 8, 15, 19, 22, 25], "common": [3, 8, 10, 13, 16, 22], "error": [3, 8, 9, 12, 13, 15, 17, 19, 22, 24], "most": [3, 5, 10, 15, 17, 19, 22], "permiss": [3, 6, 16], "create_visible_funct": 3, "select": [3, 5, 13, 17], "said": [3, 5, 9, 10, 16, 18, 22], "hide": [3, 10], "cannot": [3, 5, 8, 10, 13, 16, 17, 19, 22, 25], "onc": [3, 5, 9, 13, 17, 18, 19, 25], "No": [3, 5, 11, 22], "variabl": [3, 5, 6, 12, 13, 17, 18, 22], "depend": [3, 5, 6, 8, 9, 10, 13, 15, 17, 20, 22], "order": [3, 5, 8, 9, 12, 13, 17, 19, 22], "later": [3, 18, 22], "earlier": 3, "find": [3, 10, 22], "uniqu": [3, 5, 7, 13, 15, 22, 25], "being": [3, 5, 10, 19, 22], "derefer": [3, 18, 19, 23], "deref": [3, 5, 10, 22], "chain": 3, "continu": [3, 15, 22], "candid": [3, 17], "treat": [3, 5, 10, 11, 13, 14, 15, 17], "index": [3, 8, 12, 17, 18, 19, 21, 22], "posit": [3, 5, 13, 19, 22], "selector": [3, 5], "proce": [3, 5, 13, 17, 18, 19, 21, 22, 25], "For": [3, 8, 10, 16, 19, 22], "try": [3, 5, 15], "exist": [3, 10, 15, 22, 25], "stop": [3, 5], "receiv": [3, 5, 15, 16, 18], "lookup": 3, "arrai": [3, 9, 12, 18, 19, 25], "slice": [3, 5, 18], "immut": [3, 5, 6, 18, 19, 22, 25], "borrow": [3, 12, 25], "mutabl": [3, 5, 13, 18, 19, 24, 25], "inher": [3, 11], "unifi": [3, 5, 9, 19, 22], "calle": [3, 5], "individu": [3, 16, 17, 22], "leftmost": 3, "direct": [3, 11, 16, 17, 22], "examin": 3, "innermost": [3, 5, 18, 22], "outermost": [3, 18], "what": [3, 10], "expand": [3, 5, 10, 17], "rightmost": 3, "left": [3, 5, 7, 13, 15, 17, 18, 19, 22], "right": [3, 5, 7, 13, 15, 16, 17, 18, 19, 22], "handler": 4, "tier": 4, "handl": [4, 13], "scheme": 4, "possibli": [4, 17, 19], "absent": [4, 22], "erron": 4, "comput": [4, 5, 6, 10, 12, 16, 22, 25], "signal": 4, "whether": [4, 5, 10, 13, 15, 16, 22], "some": [4, 5, 10, 13, 19, 21, 22, 25], "none": [4, 5, 13, 19], "complet": [4, 10, 13, 22], "successfulli": [4, 21], "err": 4, "abnorm": [4, 10], "semant": [4, 5, 6, 8, 10, 13, 14, 18, 19, 21, 25], "runtim": [4, 5, 10, 14, 18, 21, 22], "flow": [4, 5, 7, 18, 25], "halt": 4, "resum": 4, "panic_handl": 4, "wa": [4, 5, 10, 11, 16, 17], "terribl": 4, "mistak": 4, "immedi": [4, 10, 18], "expressionwithblock": [5, 10, 21], "expressionwithoutblock": [5, 10, 21], "asyncblockexpress": [5, 10], "blockexpress": [5, 7, 9, 10, 21], "ifexpress": [5, 10], "ifletexpress": [5, 10], "loopexpress": [5, 10], "matchexpress": [5, 10], "unsafeblockexpress": [5, 10], "namedblockexpress": 5, "arrayexpress": [5, 10], "awaitexpress": [5, 10], "breakexpress": [5, 10], "callexpress": [5, 10], "closureexpress": [5, 10], "continueexpress": [5, 10], "fieldaccessexpress": [5, 10], "indexexpress": [5, 10], "literalexpress": [5, 9, 10], "methodcallexpress": [5, 10], "operatorexpress": [5, 10], "parenthesizedexpress": [5, 10], "pathexpress": [5, 10, 19], "rangeexpress": [5, 10], "returnexpress": [5, 10], "structexpress": [5, 10], "tupleexpress": [5, 10], "underscoreexpress": [5, 10, 13], "expressionlist": 5, "leftoperand": [5, 10], "rightoperand": [5, 10], "subjectexpress": [5, 10], "categori": [5, 8, 15, 17, 22], "subjectletexpress": [5, 10], "lazybooleanexpress": [5, 10], "side": [5, 10, 13], "run": [5, 8, 10], "structur": [5, 12, 13, 19], "involv": [5, 10, 19, 22], "hand": [5, 10, 13], "achiev": [5, 10, 14, 21], "anywher": 5, "do": [5, 15, 16, 22], "destruct": [5, 12, 23, 25], "scalar": [5, 9, 12, 19], "interior": [5, 18, 25], "address": [5, 10, 13, 22], "unsiz": [5, 15, 22], "coercion": 5, "consid": [5, 10, 11, 15, 17, 18, 20, 22], "builtin": 5, "insid": [5, 13, 15, 17, 19, 22], "repetit": [5, 8, 9], "discrimin": [5, 9, 22], "ptr": 5, "addr_of": 5, "whenev": 5, "need": 5, "reach": [5, 13], "unalign": 5, "normal": [5, 10, 15, 16], "subexpress": [5, 22], "reachabl": [5, 25], "temporari": [5, 12, 18], "derefmut": [5, 22], "indexmut": 5, "held": 5, "hello": 5, "entiti": [5, 12, 16], "static_vari": 5, "push": [5, 13, 21], "statementlist": 5, "tail": [5, 7, 18, 22], "lexic": [5, 12, 17, 19, 22], "least": [5, 9, 10, 11, 16, 17, 18, 22], "broke": 5, "out": [5, 9, 13, 16, 18, 22], "fn_call": 5, "move": [5, 7, 15, 18, 19, 22], "encapsul": [5, 9, 10, 11, 13, 17, 22], "asynchron": [5, 10, 12], "unsafeti": [5, 12, 22], "unsafe_fn_cal": 5, "arithmeticexpress": [5, 10], "assignmentexpress": [5, 10], "bitexpress": [5, 10], "borrowexpress": [5, 10], "comparisonexpress": [5, 10], "compoundassignmentexpress": [5, 10], "dereferenceexpress": [5, 10], "errorpropagationexpress": [5, 10], "negationexpress": [5, 10], "typecastexpress": [5, 10], "simpli": 5, "would": [5, 22], "repr": [5, 22], "ref_answ": 5, "deref_mut": 5, "dangl": 5, "deref_asnw": 5, "branch": [5, 22], "controlflow": 5, "fromresidu": 5, "from_residu": 5, "try_to_pars": 5, "parseinterror": 5, "try_som": 5, "val": 5, "negationoper": 5, "bitwisenegationoper": 5, "signnegationoper": 5, "Not": [5, 15, 16, 22], "neg": [5, 10, 22], "bitwis": 5, "neither": [5, 22], "nor": [5, 22], "sign": [5, 8, 15, 22], "invert": 5, "fit": [5, 16], "occur": [5, 10, 17, 18, 22], "possibl": [5, 8, 10, 16, 17, 18, 19, 22, 25], "additionexpress": [5, 10], "divisionexpress": [5, 10], "multiplicationexpress": [5, 10], "remainderexpress": [5, 10], "subtractionexpress": [5, 10], "addit": [5, 6, 8, 16, 17, 22], "left_operand": 5, "right_operand": 5, "divis": 5, "div": [5, 22], "mul": [5, 22], "remaind": 5, "rem": 5, "subtract": 5, "sub": [5, 22], "both": [5, 7, 8, 10, 11, 13, 15, 19, 22, 25], "sum": [5, 22], "unsign": [5, 22], "complement": 5, "quotient": 5, "0": [5, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 25], "product": [5, 10, 16, 22], "bitandexpress": [5, 10], "bitorexpress": [5, 10], "bitxorexpress": [5, 10], "shiftleftexpress": [5, 10], "shiftrightexpress": [5, 10], "bitand": [5, 22], "bitor": [5, 22], "xor": [5, 22], "exclus": [5, 10, 15, 16, 22], "bitxor": [5, 22], "shift": [5, 15, 22], "shl": [5, 13, 22], "shr": [5, 22], "0b1010": 5, "0b1100": 5, "0b0011": 5, "0b1001": 5, "equalsexpress": [5, 10], "greaterthanexpress": [5, 10], "greaterthanorequalsexpress": [5, 10], "lessthanexpress": [5, 10], "lessthanorequalsexpress": [5, 10], "notequalsexpress": [5, 10], "compar": [5, 10, 22], "take": [5, 8, 18, 22], "equal": [5, 13, 15, 19], "test": [5, 10], "greater": [5, 13, 15, 19, 22], "relationship": [5, 10], "partialord": 5, "gt": 5, "ge": [5, 13], "lt": 5, "le": 5, "inequ": [5, 10], "109": [5, 10], "lazyandexpress": [5, 10], "lazyorexpress": [5, 10], "short": [5, 10, 13], "circuit": [5, 10], "typespecificationwithoutbound": [5, 22], "describ": [5, 8, 10, 15, 16, 17, 18, 22], "characterist": [5, 10, 13], "special": [5, 10, 13, 15, 16], "convert": [5, 10, 22, 25], "code": [5, 6, 8, 13, 15, 16, 20, 22], "v": [5, 13, 19, 22], "machin": 5, "smaller": [5, 13], "truncat": 5, "n": [5, 9, 10, 13, 15, 17, 19, 20, 22], "larger": 5, "round": [5, 22], "In": [5, 8, 9, 10, 16, 17, 22], "nan": [5, 13], "satur": [5, 13], "exce": [5, 8, 22], "infin": 5, "minimum": [5, 22], "neg_infin": 5, "closest": 5, "prefer": [5, 8, 16], "signific": 5, "digit": 5, "halfwai": 5, "perfect": 5, "lossless": 5, "nearest": [5, 22], "assigneeoperand": [5, 10], "valueoperand": [5, 10], "drop": [5, 12, 13, 21, 25], "uniniti": [5, 18, 21, 25], "lower": 5, "full": 5, "ref": [5, 10, 15, 18, 19], "irrefut": [5, 7, 19, 21], "becom": [5, 15], "four": 5, "additionassignmentexpress": [5, 10], "bitandassignmentexpress": [5, 10], "bitorassignmentexpress": [5, 10], "bitxorassignmentexpress": [5, 10], "divisionassignmentexpress": [5, 10], "multiplicationassignmentexpress": [5, 10], "remainderassignmentexpress": [5, 10], "shiftleftassignmentexpress": [5, 10], "shiftrightassignmentexpress": [5, 10], "subtractionassignmentexpress": [5, 10], "assignedoperand": [5, 10], "modifyingoperand": [5, 10], "calcul": [5, 10, 22], "addassign": [5, 22], "bitandassign": [5, 22], "bitorassign": [5, 22], "bitxorassign": [5, 22], "divassign": [5, 22], "mulassign": [5, 22], "remassign": 5, "shlassign": [5, 22], "shrassign": [5, 22], "subassign": [5, 22], "appropri": [5, 8, 16], "below": [5, 8, 13, 16, 22], "add_assign": 5, "assigned_operand": 5, "modifying_operand": 5, "bitand_assign": 5, "bitor_assign": 5, "bitxor_assign": 5, "div_assign": 5, "mul_assign": 5, "rem_assign": 5, "shl_assign": 5, "shr_assign": 5, "sub_assign": 5, "59": [5, 10, 13, 15, 22], "81": [5, 10, 22], "9402": 5, "placehold": [5, 9, 10, 22, 25], "pair": [5, 19], "second": [5, 8, 17, 18, 19, 22], "arrayelementexpress": 5, "arrayelementconstructor": [5, 10], "arrayrepetitionconstructor": [5, 10], "repeatoperand": [5, 10], "sizeoperand": [5, 10, 22], "how": [5, 6, 10, 13, 16, 17, 18], "mani": [5, 10, 17], "copi": [5, 8, 16, 18, 19, 22, 25], "dimension": 5, "nine": 5, "indexedoperand": [5, 10], "indexingoperand": [5, 10], "index_mut": 5, "indexed_operand": 5, "indexing_operand": 5, "tupleinitializerlist": 5, "t1": [5, 11, 22], "t2": [5, 11, 22], "tn": [5, 11, 22], "th": 5, "v1": 5, "v2": 5, "vn": 5, "42i16": 5, "constructe": 5, "structexpressioncont": 5, "baseiniti": [5, 10], "fieldinitializerlist": 5, "fieldiniti": 5, "indexediniti": [5, 10], "namediniti": [5, 10], "shorthandiniti": [5, 10], "fieldindex": [5, 10, 19], "shorthand": [5, 19], "record": [5, 22, 23], "occup": 5, "engin": 5, "garden": 5, "employe": [5, 16], "ag": [5, 22], "compens": 5, "alic": 5, "250_000": 5, "bob": 5, "int": [5, 22], "u1": 5, "u2": 5, "calloperand": [5, 10], "argumentoperandlist": 5, "adjusted_call_operand": 5, "argument_operand_tupl": 5, "adjust": 5, "wrap": [5, 13], "call_mut": 5, "call_onc": 5, "resolut": [5, 12, 22], "receiveroperand": [5, 10], "methodoperand": [5, 10], "command": [5, 22], "clickcommand": 5, "someon": 5, "click": 5, "me": 5, "containeroperand": [5, 10], "fieldselector": [5, 10], "indexedfieldselector": [5, 10], "namedfieldselector": [5, 10], "write": [5, 13, 16, 24], "mem": [5, 22], "manuallydrop": [5, 22], "transmut": 5, "write_typ": 5, "read_typ": 5, "field_bit": 5, "invalid": [5, 19], "closureparameterlist": 5, "closurebodi": [5, 10], "closurebodywithreturntyp": [5, 10], "returntypewithoutbound": [5, 22], "closureparamet": [5, 10], "patternwithoutaltern": [5, 7, 10, 19, 21], "typeascript": [5, 7, 9, 10, 21, 22, 25], "portion": [5, 10, 16], "yield": [5, 7, 10, 15, 17, 19, 22], "bind": [5, 7, 9, 12, 13, 16, 17, 18, 20, 21, 22, 25], "site": [5, 7, 17, 22], "infer": [5, 9, 15, 18, 19, 21], "usag": [5, 9, 18, 25], "shadow": [5, 7, 12, 19], "instanti": [5, 10, 22], "do_ten_tim": 5, "loopcont": 5, "nonkeywordidentifi": [5, 15, 17, 22], "forloopexpress": [5, 10], "infiniteloopexpress": [5, 10], "whileletloopexpress": [5, 10], "whileloopexpress": [5, 10], "loopbodi": [5, 10], "criterion": [5, 10], "hold": [5, 9, 10, 13, 15, 16, 18, 22, 25], "longer": [5, 10], "iter": [5, 9, 17, 18, 22], "intoiter": [5, 22], "subject_express": 5, "into_it": 5, "next_valu": 5, "favorite_fruit": 5, "appl": 5, "pear": 5, "strawberri": 5, "fruit": 5, "eat": 5, "indefinit": [5, 10], "restart": [5, 10], "am": 5, "aliv": 5, "iterationexpress": [5, 10], "counter": [5, 13], "against": [5, 10, 16, 17, 18, 19, 21], "subject_let_express": 5, "favorite_anim": 5, "cat": [5, 15, 22], "dog": [5, 22], "otter": [5, 22], "anim": [5, 22], "pop": [5, 13, 21], "pet": 5, "labelind": [5, 10], "upto": [5, 18], "game_loop": 5, "is_paus": 5, "rangefromexpress": [5, 10], "rangefromtoexpress": [5, 10], "rangefullexpress": [5, 10], "rangeinclusiveexpress": [5, 10], "rangetoexpress": [5, 10], "rangetoinclusiveexpress": [5, 10], "rangeexpressionlowbound": [5, 10], "rangeexpressionhighbound": [5, 10], "low": [5, 13, 15, 17, 19, 25], "high": [5, 19], "rangefrom": 5, "range_expression_low_bound": 5, "exclud": [5, 10, 13, 15, 16, 17, 19], "range_expression_high_bound": 5, "cover": [5, 10], "whole": [5, 8, 10, 15, 16, 22], "rangeful": 5, "inclus": [5, 8, 15, 16, 19, 22], "rangeinclus": 5, "rangeto": 5, "rangetoinclus": 5, "86": [5, 10, 22], "dawn": 5, "dusk": 5, "elseexpress": [5, 10], "els": [5, 18, 21, 22], "youth": 5, "64": [5, 10, 13, 15, 22], "adult": 5, "senior": 5, "dish": 5, "ham": 5, "egg": 5, "serv": 5, "matcharmlist": 5, "intermediatematcharm": [5, 10], "finalmatcharm": [5, 10], "matcharmmatch": [5, 10], "matcharmguard": [5, 10], "tri": [5, 10, 17], "succe": [5, 10, 19, 25], "matcher": [5, 17], "intermedi": [5, 22, 25], "final": [5, 13, 15], "filter": [5, 10], "happen": 5, "taken": [5, 10, 17], "togeth": [5, 8, 13], "number_of_th": 5, "few": 5, "you": [5, 16], "ow": 5, "lot": 5, "design": [5, 16], "destroi": 5, "frame": [5, 13], "max": 5, "futureoperand": [5, 10], "suspend": [5, 10], "intofutur": 5, "into_futur": 5, "new_uncheck": 5, "pend": [5, 22], "expensive_funct": 5, "presenc": [5, 10, 22, 24], "highest": 5, "lowest": 5, "environ": [5, 8, 17, 22], "mode": [5, 12, 13, 18], "mechan": [5, 10, 16, 18, 22], "By": [5, 18], "compat": [5, 9, 10, 22], "li": [5, 10], "There": 5, "discard": [5, 13], "foreign": [6, 8], "interfac": [6, 16, 22], "emploi": [6, 10, 17, 18, 25], "layout": 6, "affect": 6, "export_nam": 6, "link": [6, 10, 16, 20], "link_sect": 6, "no_mangl": [6, 15], "abispecif": [6, 7, 10, 22], "abikind": [6, 10, 13], "rawstringliter": [6, 10, 15, 19], "applic": [6, 13, 16], "dictat": [6, 10], "cross": [6, 10, 16], "unwind": [6, 13], "permit": [6, 8, 16, 22], "oper": [6, 12, 13, 17, 22, 24, 25], "These": 6, "limit": [6, 8, 10, 16, 22], "aapc": [6, 13], "cdecl": [6, 13, 22], "x86_32": 6, "fastcal": [6, 13], "msvc": 6, "__fastcal": 6, "gcc": 6, "clang": 6, "__attribute__": 6, "stdcall": [6, 13], "win32": 6, "api": 6, "sysv64": [6, 13], "x86_64": 6, "vectorcal": 6, "__vectorcal": 6, "win64": [6, 13], "externalblock": [6, 10, 14], "externitem": 6, "externalitemwithvis": 6, "staticdeclar": [6, 10, 14, 22, 25], "uncheck": [6, 10], "max_length": 6, "size_t": 6, "compress": 6, "input_length": 6, "compressed_length": 6, "c_int": 6, "log": 6, "msg": 6, "c_char": 6, "functionqualifierlist": [6, 7, 10], "inherit": [6, 9], "functionbodi": [6, 7, 10], "functionparamet": [6, 7, 10, 22], "functionparametervariadicpart": [6, 7], "befor": [6, 10, 13, 18], "functionparameterlist": 7, "whereclaus": [7, 9, 10, 11, 22], "selfparamet": 7, "functionparameterpattern": [7, 22], "shorthandself": 7, "typedself": [7, 22], "lifetimeind": [7, 9, 10, 15, 22], "role": [7, 10], "And": [7, 15], "token": 7, "signatur": [7, 9, 11, 22], "identif": [7, 10, 16], "encompass": [7, 10], "callabl": [7, 10, 17], "async_fn": 7, "param": [7, 17], "param_typ": 7, "return_typ": 7, "entri": [7, 10, 13], "word": [7, 8, 10, 13, 15, 22], "eucledian_dist": 7, "x_delta_squar": 7, "powi": [7, 11], "y_delta_squar": 7, "y": [7, 13, 18, 19], "sqrt": 7, "page": [8, 10, 12, 16, 23], "document": [8, 15, 16, 23], "influenc": 8, "ada": 8, "manual": 8, "202x": [8, 16], "edit": [8, 16], "well": [8, 10, 17, 22], "guidebook": 8, "rustonomicon": 8, "particular": [8, 10, 13, 15, 16, 17], "outlin": [8, 15, 20, 22], "titl": [8, 16], "organ": [8, 13, 15, 22], "formal": 8, "term": [8, 16], "syntact": [8, 15, 17, 18], "consult": [8, 16], "licens": [8, 12], "relev": [8, 13], "copyright": 8, "notic": 8, "rustc": 8, "compil": [8, 12, 16, 22], "ship": 8, "ferrocen": [8, 10, 23], "understand": 8, "As": [8, 9], "doubt": 8, "releas": [8, 18, 22], "over": [8, 15, 22], "claim": [8, 16], "correct": 8, "made": [8, 16, 17, 22], "review": 8, "effort": 8, "intend": 8, "discuss": [8, 16], "ground": 8, "evolut": 8, "manag": [8, 10, 16, 18], "develop": [8, 16], "translat": [8, 16], "combin": [8, 13, 16, 22], "violat": [8, 10], "detect": 8, "attempt": [8, 10, 17, 22], "transform": [8, 10, 16, 17], "speed": 8, "rel": [8, 10], "capac": 8, "appendic": 8, "glossari": [8, 12], "norm": 8, "materi": 8, "head": 8, "subchapt": 8, "divid": [8, 15], "topic": 8, "fact": 8, "obei": 8, "verifi": 8, "situat": [8, 10], "unbound": [8, 10], "illustr": 8, "correctli": 8, "so": [8, 15, 16, 17], "larg": 8, "rais": [8, 22], "variat": [8, 10, 22], "those": [8, 10, 13, 16, 19, 22], "imposs": 8, "impract": 8, "avoid": 8, "prescrib": 8, "interact": 8, "propag": [8, 22], "capabl": [8, 10, 13, 16], "narr": 8, "composit": 8, "simpl": [8, 13], "backu": [8, 10], "naur": [8, 10], "monospac": 8, "font": 8, "pascalcas": 8, "floatexpon": [8, 15], "bold": 8, "proc_macro_der": [8, 17], "tt": [8, 17], "punctuat": [8, 12, 17, 22], "preced": [8, 9, 12, 17, 19], "revers": [8, 10, 15, 18], "solidu": [8, 10, 15], "escap": [8, 15], "question": [8, 15], "integersuffix": [8, 10, 15], "asterisk": 8, "plu": [8, 15], "macromatch": [8, 10, 17], "l": [8, 13, 22], "h": [8, 13, 15], "rang": [8, 12, 15, 17, 22], "hexadecimaldigit": [8, 15], "squar": [8, 15, 17], "bracket": [8, 10, 13, 15, 16], "tild": 8, "vertic": [8, 15, 19], "line": [8, 13, 15, 17, 19, 25], "altern": [8, 17, 18, 19, 21], "parenthes": [8, 12], "accompani": 8, "updat": [8, 19], "qualif": 8, "accur": 8, "throughout": 8, "ital": 8, "presum": [8, 13], "similar": [8, 10], "elsewher": 8, "mathemat": 8, "crc": 8, "concis": 8, "encyclopedia": 8, "webster": 8, "third": [8, 16, 22], "intern": [8, 10, 13], "dictionari": 8, "english": 8, "programm": 8, "genericparamet": 9, "constantparamet": [9, 10, 22], "lifetimeparamet": [9, 10], "typeparamet": [9, 10, 22], "constantparameteriniti": [9, 10], "lifetimeindicationlist": [9, 22], "typeparameteriniti": [9, 10], "satisfi": [9, 10, 11, 17, 19], "initializationtyp": [9, 10, 22], "opt": [9, 22], "generic_funct": 9, "the_refer": 9, "whereclausepredicatelist": 9, "whereclausepred": [9, 10], "lifetimeboundpred": [9, 10], "typeboundpred": [9, 10, 22], "forgenericparameterlist": [9, 10, 22], "trivial": 9, "higher": [9, 22], "rank": [9, 22], "genericargu": 9, "bindingargu": 9, "constantargu": [9, 10], "lifetimeargu": [9, 10], "typeargu": [9, 10], "func": 9, "u": [9, 15, 20, 22], "measur": [9, 10, 22], "fulfil": 9, "outliv": [9, 22], "elid": [9, 22], "come": [9, 17], "b": [10, 13, 15, 16, 18, 19, 21, 22], "arch": [10, 13, 24], "asm": [10, 12, 24], "might": [10, 13], "overwritten": [10, 13], "dure": [10, 13, 17, 19, 22, 25], "abiclobb": [10, 13], "store": [10, 17, 22, 25], "ascrib": 10, "arraytypespecif": [10, 22], "assemblycodeblock": [10, 13], "request": [10, 13], "assembl": [10, 13], "action": [10, 13, 16], "assemblyinstruct": [10, 13], "assemblyopt": [10, 13], "addition": [10, 22], "suspens": 10, "attach": [10, 16, 17], "60": [10, 13, 15, 22], "constitu": [10, 22], "61": [10, 13, 15, 22], "62": [10, 13, 15, 22], "63": [10, 13, 15, 22], "65": [10, 13, 22], "binaryliter": [10, 15], "66": [10, 13, 19, 22], "67": [10, 13, 22], "68": [10, 13, 22], "69": [10, 13, 22], "70": [10, 13, 22], "71": [10, 13, 22], "72": [10, 13, 22], "73": [10, 22], "74": [10, 22], "75": [10, 22], "76": [10, 22], "77": [10, 22], "78": [10, 22], "79": [10, 22], "80": [10, 22], "82": [10, 22], "span": [10, 15, 19], "blockcom": [10, 15], "83": [10, 22], "84": [10, 22], "truth": [10, 15, 22], "algebra": [10, 15, 22], "85": [10, 22], "booleanliter": [10, 15, 19], "87": [10, 22], "88": [10, 22], "89": [10, 22], "temporarili": [10, 18], "perman": [10, 18], "90": [10, 22], "constraint": [10, 11, 13, 19, 22], "typebound": [10, 22], "91": [10, 22], "boundpattern": [10, 19], "92": [10, 22], "93": [10, 22], "94": [10, 22], "95": [10, 22], "96": [10, 22], "97": [10, 22], "byteliter": [10, 15, 19], "98": [10, 22], "asciicharact": [10, 15], "bytestringliter": [10, 15, 19], "99": [10, 22], "iso": 10, "iec": 10, "9899": 10, "2018": [10, 16], "100": [10, 22], "lai": [10, 22], "interoper": [10, 22], "101": [10, 22], "102": [10, 22], "103": [10, 22], "104": [10, 22], "105": [10, 22], "106": [10, 22], "macrorulesdeclar": [10, 14, 17], "107": 10, "108": 10, "110": 10, "111": 10, "112": 10, "113": 10, "114": 10, "115": 10, "characterliter": [10, 15, 19], "116": 10, "117": 10, "118": 10, "119": 10, "120": 10, "map": 10, "121": 10, "explan": [10, 15], "122": 10, "123": 10, "124": 10, "125": 10, "126": 10, "127": [10, 22], "128": [10, 22], "129": 10, "130": 10, "131": 10, "132": 10, "133": 10, "134": 10, "135": 10, "constantiniti": [10, 25], "136": 10, "137": 10, "138": 10, "139": 10, "make": [10, 16, 22], "narrow": 10, "140": 10, "piec": 10, "instanc": [10, 15], "141": 10, "142": 10, "143": 10, "144": 10, "beyond": 10, "145": 10, "146": 10, "tree": [10, 20], "147": 10, "externalcrateimport": [10, 14, 20], "148": 10, "crateind": [10, 20], "149": 10, "150": 10, "151": 10, "152": 10, "153": 10, "concurr": [10, 12, 23], "154": 10, "155": 10, "156": 10, "157": 10, "deconstruct": [10, 19], "158": 10, "guarante": [10, 13, 22], "about": [10, 22], "159": 10, "160": 10, "161": 10, "162": 10, "163": 10, "164": 10, "165": 10, "recov": [10, 18], "resourc": [10, 18], "goe": [10, 18], "166": 10, "167": 10, "168": 10, "directionmodifi": [10, 13], "169": 10, "opaqu": [10, 22], "170": 10, "discriminantiniti": [10, 22], "171": [10, 22], "172": 10, "173": 10, "origin": [10, 13, 16, 18, 22], "174": 10, "175": 10, "176": 10, "177": 10, "178": 10, "179": 10, "180": 10, "govern": [10, 16, 18], "181": 10, "prematur": [10, 18], "182": 10, "183": 10, "184": 10, "185": 10, "186": 10, "elementtyp": [10, 22], "187": 10, "188": 10, "omit": 10, "189": 10, "190": 10, "0x3b": [10, 17, 21, 22], "semicolon": [10, 15, 17, 21, 22], "191": 10, "192": 10, "193": 10, "194": 10, "enumdeclar": [10, 14, 17, 22], "195": 10, "196": 10, "enumvari": [10, 22], "197": 10, "198": 10, "199": 10, "200": 10, "0x5c": [10, 15], "encod": 10, "0x09": [10, 15], "horizont": [10, 15], "tabul": [10, 15], "201": 10, "202": 10, "203": 10, "204": 10, "205": 10, "206": 10, "explicitregisternam": [10, 13], "207": 10, "208": 10, "209": 10, "210": 10, "211": 10, "ignor": [10, 13, 19, 21, 22], "expressionstat": [10, 21], "212": 10, "213": 10, "214": 10, "215": 10, "216": 10, "217": 10, "218": 10, "ieee": [10, 22], "754": [10, 22], "2008": [10, 22], "binary32": [10, 22], "219": 10, "binary64": [10, 22], "220": 10, "221": 10, "222": 10, "223": 10, "224": 10, "225": 10, "nth": 10, "226": 10, "recordstructfieldlist": [10, 22], "tuplestructfieldlist": [10, 22], "227": 10, "228": 10, "229": 10, "230": 10, "231": 10, "fraction": [10, 15], "floatliter": [10, 15], "232": 10, "compon": [10, 13, 15], "floatsuffix": [10, 15], "233": 10, "234": 10, "235": 10, "236": 10, "237": 10, "238": 10, "239": 10, "macrofragmentspecifi": [10, 17], "240": 10, "241": 10, "242": 10, "243": 10, "244": 10, "245": 10, "246": 10, "functionpointertypespecif": [10, 22], "247": 10, "functionpointertypeparamet": [10, 22], "248": 10, "249": 10, "250": 10, "251": 10, "directli": [10, 22], "252": 10, "relax": [10, 11], "253": 10, "254": 10, "255": 10, "256": 10, "257": 10, "258": 10, "259": 10, "260": 10, "261": 10, "262": 10, "263": 10, "264": 10, "265": 10, "266": 10, "267": 10, "268": 10, "269": 10, "270": 10, "271": 10, "272": 10, "273": 10, "274": 10, "halfopenrangepattern": [10, 19], "275": 10, "hexadecimalliter": [10, 15], "276": 10, "277": 10, "them": [10, 13, 17, 22], "aim": [10, 17], "elimin": [10, 17], "interfer": [10, 17], "278": 10, "279": 10, "280": 10, "281": 10, "282": 10, "283": 10, "284": 10, "285": 10, "identifierpattern": [10, 19], "286": 10, "287": 10, "288": 10, "289": 10, "290": 10, "291": 10, "292": 10, "293": 10, "294": 10, "mutat": [10, 18, 22, 25], "295": 10, "296": 10, "297": 10, "298": 10, "known": [10, 22], "impltraittypespecif": [10, 22], "impltraittypespecificationonebound": [10, 22], "299": 10, "300": 10, "implementationbodi": [10, 11], "301": 10, "302": 10, "303": 10, "implementedtrait": [10, 11], "304": 10, "implementingtyp": [10, 11, 22], "305": 10, "306": 10, "307": 10, "byproduct": [10, 22], "308": 10, "309": 10, "inclusiverangepattern": [10, 19], "310": 10, "311": 10, "312": 10, "313": 10, "314": 10, "315": 10, "indexeddeconstructor": [10, 19], "316": 10, "317": 10, "318": 10, "319": 10, "320": 10, "321": 10, "322": 10, "deduc": [10, 22], "inferredtyp": [10, 22], "323": 10, "324": 10, "325": 10, "inherentimplement": [10, 11], "326": 10, "327": 10, "328": 10, "329": 10, "integr": [10, 13], "330": 10, "inlinemodulespecif": [10, 20], "331": 10, "332": 10, "333": 10, "334": 10, "335": 10, "inout": [10, 13], "inlateout": [10, 13], "336": 10, "inputregisterexpress": [10, 13], "337": 10, "inputoutputregisterexpress": [10, 13], "338": 10, "integerliter": [10, 15], "339": 10, "340": 10, "341": 10, "342": 10, "343": 10, "344": 10, "345": 10, "346": 10, "platform": [10, 22], "wide": [10, 22], "347": 10, "348": 10, "349": 10, "350": 10, "351": 10, "352": 10, "353": 10, "354": 10, "355": 10, "offset": [10, 22], "356": 10, "357": 10, "358": 10, "359": 10, "360": 10, "361": 10, "362": 10, "letiniti": [10, 21], "363": 10, "letstat": [10, 21], "364": 10, "365": 10, "no_main": [10, 20], "366": 10, "longev": [10, 22], "367": 10, "368": 10, "369": 10, "370": 10, "insert": [10, 22], "371": 10, "372": 10, "stand": [10, 15, 22], "undetermin": [10, 22], "373": 10, "374": 10, "linecom": [10, 15], "375": 10, "376": 10, "377": 10, "literalpattern": [10, 19], "378": [10, 22], "379": 10, "380": 10, "381": 10, "382": 10, "383": 10, "384": 10, "custom": [10, 17], "385": 10, "386": 10, "387": 10, "388": 10, "389": 10, "390": 10, "391": 10, "392": 10, "macrorepetitionmatch": [10, 17], "393": 10, "macrorepetitiontranscrib": [10, 17], "394": 10, "macrorul": [10, 17], "395": 10, "396": 10, "macrotranscrib": [10, 17], "397": 10, "398": 10, "399": 10, "400": 10, "401": 10, "402": 10, "403": 10, "404": 10, "macrometavari": [10, 17], "405": 10, "macrometavariableind": [10, 17], "406": 10, "407": 10, "408": 10, "409": 10, "410": 10, "411": 10, "412": 10, "moduledeclar": [10, 14, 20], "413": 10, "414": 10, "415": 10, "416": 10, "417": 10, "418": 10, "419": 10, "420": 10, "421": 10, "422": 10, "423": 10, "424": 10, "425": 10, "426": 10, "427": 10, "428": 10, "429": 10, "430": 10, "431": 10, "432": 10, "433": 10, "nameddeconstructor": [10, 19], "434": 10, "435": 10, "436": 10, "437": 10, "438": 10, "439": 10, "techniqu": 10, "mantissa": 10, "440": 10, "441": 10, "442": 10, "nevertyp": [10, 22], "443": 10, "444": 10, "445": 10, "446": 10, "447": 10, "numericliter": [10, 15, 19], "448": 10, "449": 10, "450": 10, "451": 10, "obsoleterangepattern": [10, 19], "452": 10, "octalliter": [10, 15], "453": 10, "454": 10, "455": 10, "nullifi": [10, 22], "456": 10, "457": 10, "458": 10, "459": 10, "460": 10, "outlinemodulespecif": [10, 20], "461": 10, "462": 10, "lateout": [10, 13], "463": 10, "outputregisterexpress": [10, 13], "464": 10, "465": 10, "466": 10, "central": [10, 18], "467": 10, "468": 10, "469": 10, "parenthesizedpattern": [10, 19], "470": 10, "disambigu": [10, 22], "parenthesizedtypespecif": [10, 22], "471": 10, "472": 10, "473": 10, "474": 10, "475": 10, "476": 10, "pathpattern": [10, 19], "477": 10, "478": 10, "479": 10, "criteria": [10, 19], "480": 10, "481": 10, "482": 10, "patternwithoutrang": [10, 19], "483": 10, "484": 10, "485": 10, "486": 10, "536": 10, "487": 10, "488": 10, "489": 10, "490": 10, "491": 10, "492": 10, "493": 10, "494": 10, "495": 10, "496": 10, "497": 10, "498": 10, "499": 10, "500": 10, "501": 10, "502": 10, "503": 10, "504": 10, "505": 10, "506": 10, "507": 10, "508": 10, "fall": [10, 19], "rangepattern": [10, 19], "509": 10, "rangepatternbound": [10, 19], "510": 10, "rangepatternhighbound": [10, 19], "511": 10, "rangepatternlowbound": [10, 19], "512": 10, "513": 10, "514": 10, "515": 10, "516": 10, "517": 10, "518": 10, "recogn": [10, 15, 17], "rawbytestringliter": [10, 15, 19], "519": 10, "520": 10, "live": 10, "rawpointertypespecif": [10, 22], "521": 10, "522": 10, "523": 10, "524": 10, "525": 10, "526": 10, "recordstructdeclar": [10, 22], "527": 10, "recordstructfield": [10, 22], "528": 10, "recordstructpattern": [10, 19], "529": 10, "530": 10, "531": 10, "532": 10, "533": 10, "534": 10, "referencepattern": [10, 19], "535": 10, "referencetypespecif": [10, 22], "537": 10, "abil": [10, 19], "538": 10, "539": 10, "540": 10, "541": 10, "hardwar": [10, 13, 16], "542": 10, "registerargu": [10, 13], "543": 10, "544": 10, "545": 10, "registerclassnam": [10, 13], "546": 10, "registerexpress": [10, 13], "547": 10, "belong": [10, 13, 17], "registernam": [10, 13], "548": 10, "substr": [10, 13], "delimit": [10, 13, 15, 17], "0x7b": [10, 13], "curli": [10, 13, 15], "0x7d": [10, 13], "549": 10, "0x3a": [10, 13], "colon": [10, 13, 15], "550": 10, "551": 10, "552": 10, "553": 10, "554": 10, "555": 10, "macrorepetitionoper": [10, 17], "556": 10, "557": 10, "558": 10, "reservedkeyword": [10, 15], "559": 10, "560": 10, "restpattern": [10, 19], "561": 10, "562": 10, "563": 10, "564": 10, "565": 10, "566": 10, "567": 10, "568": 10, "569": 10, "570": 10, "571": 10, "572": 10, "573": 10, "574": 10, "575": 10, "576": 10, "adjac": [10, 15], "577": 10, "578": 10, "579": 10, "580": 10, "581": 10, "582": 10, "583": 10, "584": 10, "585": 10, "586": 10, "587": 10, "588": 10, "shorthanddeconstructor": [10, 19], "589": 10, "590": 10, "591": 10, "simplebytestringliter": [10, 15], "592": 10, "593": 10, "594": 10, "595": 10, "596": 10, "597": 10, "598": 10, "simpleregisterexpress": [10, 13], "599": 10, "simplestringliter": [10, 15, 19], "600": 10, "601": 10, "success": [10, 13, 22], "pad": [10, 22], "602": 10, "603": 10, "604": 10, "605": 10, "slicepattern": [10, 19], "606": 10, "view": [10, 22], "slicetypespecif": [10, 22], "607": 10, "sourcefil": [10, 20], "608": 10, "609": 10, "610": 10, "staticiniti": [10, 25], "611": 10, "612": 10, "613": 10, "strictkeyword": [10, 15], "614": 10, "615": 10, "616": 10, "617": 10, "618": 10, "structpattern": [10, 19], "619": 10, "structdeclar": [10, 14, 17, 22], "620": 10, "621": 10, "622": 10, "623": 10, "624": 10, "625": 10, "626": 10, "627": 10, "628": 10, "629": 10, "630": 10, "631": 10, "632": 10, "633": 10, "634": 10, "635": 10, "transit": [10, 22], "636": 10, "637": 10, "nontermin": 10, "grammar": 10, "638": 10, "639": 10, "640": 10, "641": 10, "642": 10, "643": 10, "644": 10, "645": 10, "646": 10, "647": 10, "subset": [10, 17], "648": 10, "traitdeclar": [10, 14, 22], "649": 10, "traitbodi": [10, 22], "650": 10, "traitbound": [10, 22], "651": 10, "traitimplement": [10, 11], "652": 10, "653": 10, "traitobjecttypespecif": [10, 22], "traitobjecttypespecificationonebound": [10, 22], "654": 10, "655": 10, "656": 10, "657": 10, "658": 10, "659": 10, "660": 10, "661": 10, "662": 10, "663": 10, "tuplepattern": [10, 19], "664": 10, "tuplestructdeclar": [10, 22], "665": 10, "666": 10, "tuplestructfield": [10, 22], "667": 10, "tuplestructpattern": [10, 19], "668": 10, "669": 10, "670": 10, "heterogen": [10, 22], "tupletypespecif": [10, 22], "671": 10, "672": 10, "673": 10, "674": 10, "675": 10, "676": 10, "677": 10, "678": 10, "679": 10, "independ": [10, 22], "680": 10, "681": 10, "682": 10, "683": 10, "684": 10, "685": 10, "686": 10, "687": 10, "check": [10, 18, 22], "688": 10, "689": 10, "690": 10, "691": 10, "692": 10, "693": 10, "694": 10, "695": 10, "696": 10, "697": 10, "698": 10, "underscorepattern": [10, 19], "699": 10, "700": 10, "colloqui": 10, "10646": 10, "2017": [10, 16], "univers": 10, "701": 10, "702": 10, "703": 10, "704": 10, "domain": [10, 22], "705": 10, "706": 10, "707": 10, "uniondeclar": [10, 14, 15, 17, 22], "708": 10, "709": 10, "assert": [10, 16], "710": 10, "711": 10, "unitstructdeclar": [10, 22], "712": 10, "713": 10, "714": 10, "715": 10, "716": 10, "717": 10, "718": 10, "0x5f": [10, 15, 17, 25], "719": 10, "720": 10, "721": 10, "722": 10, "723": 10, "724": 10, "725": 10, "726": 10, "727": 10, "diagnos": [10, 24], "728": 10, "729": 10, "730": 10, "731": 10, "732": 10, "733": 10, "734": 10, "unknown": 10, "735": 10, "736": 10, "737": 10, "738": 10, "739": 10, "740": 10, "741": 10, "742": 10, "743": 10, "744": 10, "stack": [10, 13, 25], "745": 10, "variadicpart": [10, 22], "746": 10, "circumst": [10, 22], "747": 10, "748": 10, "749": 10, "weakkeyword": [10, 15], "750": 10, "751": 10, "752": 10, "753": 10, "755": 10, "756": 10, "757": 10, "758": 10, "doc": [11, 15, 17, 20, 22], "namespac": [11, 12, 15, 17, 19], "shape": [11, 22], "area": [11, 22], "circl": [11, 22], "radiu": [11, 22], "set_radiu": 11, "new_radiu": 11, "pi": 11, "overlap": [11, 18, 25], "p1": 11, "p2": 11, "pn": 11, "t0": 11, "fundament": 11, "local": [11, 20, 21, 22], "At": [11, 15], "subtyp": 11, "definit": [12, 16, 17], "classif": 12, "indirect": [12, 16], "refut": 12, "tupl": [12, 18], "captur": [12, 17, 18, 22], "arithmet": [12, 22], "overflow": 12, "coher": 12, "prelud": [12, 20, 22], "ownership": [12, 16, 22, 23], "destructor": [12, 25], "abort": 12, "sync": [12, 18, 22, 25], "atom": [12, 18], "sourc": [12, 13, 15, 16, 18, 22], "condit": [12, 13, 16], "procedur": [12, 15, 20], "hygien": 12, "ffi": [12, 23], "inlin": [12, 20, 23], "assembli": [12, 23], "regist": [12, 23], "class": [12, 15, 16], "clobber": 12, "global_asm": 12, "search": 12, "aarch64": 13, "risc": 13, "x86": 13, "ah": 13, "al": 13, "ax": [13, 16], "bh": 13, "bl": 13, "bp": 13, "bpl": 13, "bx": 13, "ch": 13, "cl": 13, "cx": 13, "d": [13, 16, 18], "dh": 13, "di": 13, "dil": 13, "dl": 13, "dx": 13, "eax": 13, "ebp": 13, "ebx": 13, "ecx": 13, "edi": 13, "edx": 13, "eip": 13, "esi": 13, "esp": 13, "fa": 13, "ffr": 13, "fp": 13, "ft": 13, "gp": 13, "ip": 13, "k": 13, "lr": 13, "p": 13, "pc": 13, "q": 13, "w": [13, 22], "ra": 13, "rax": 13, "rb": 13, "rbp": 13, "rbx": 13, "rcx": 13, "rdi": 13, "rdx": 13, "rfp": 13, "rip": 13, "rsi": 13, "rsp": 13, "si": 13, "sil": 13, "sl": 13, "sp": 13, "spl": 13, "st": 13, "tmm": 13, "tp": 13, "wsp": 13, "wzr": 13, "xmm": 13, "xzr": 13, "ymm": 13, "zmm": 13, "upon": 13, "exit": 13, "x29": 13, "x30": 13, "r9": 13, "r10": 13, "r11": 13, "r12": 13, "r13": 13, "r14": 13, "r15": 13, "x0": 13, "x1": 13, "x2": 13, "x3": 13, "x4": 13, "x8": 13, "s0": 13, "x9": 13, "s1": 13, "reason": [13, 16], "x18": 13, "reserv": [13, 16], "x19": 13, "llvm": 13, "complex": 13, "r6": 13, "r7": 13, "unsupport": 13, "had": 13, "dreg": 13, "dreg_low16": 13, "dreg_low8": 13, "freg": 13, "kreg": 13, "kreg0": 13, "mmx_reg": 13, "preg": 13, "qreg": 13, "qreg_low4": 13, "qreg_low8": 13, "reg": 13, "reg_abcd": 13, "reg_byt": 13, "sreg": 13, "sreg_low16": 13, "tmm_reg": 13, "vreg": 13, "vreg_low16": 13, "x86_reg": 13, "xmm_reg": 13, "ymm_reg": 13, "zmm_reg": 13, "thumb2": 13, "thumb1": 13, "rv32e": 13, "k0": 13, "mm": 13, "x87_reg": 13, "64bit": 13, "On": 13, "upper": [13, 22], "suitabl": 13, "assign": [13, 18, 21, 22, 24], "neon": 13, "vfp2": 13, "v32": 13, "v64": 13, "avx512f": 13, "avx512bw": 13, "behav": [13, 22], "reus": 13, "left_valu": 13, "right_valu": 13, "fmt": 13, "concaten": 13, "0x0a": [13, 15], "contigu": 13, "flag": 13, "df": 13, "eflag": 13, "clear": 13, "w0": 13, "v0": 13, "b0": 13, "d0": 13, "h0": 13, "q0": 13, "d1": 13, "r0": 13, "f0": 13, "k1": 13, "xmm0": 13, "ymm0": 13, "zmm0": 13, "z": 13, "undo": 13, "2byte": 13, "4byte": 13, "8byte": 13, "ascii": 13, "asciz": 13, "alt_entri": 13, "balign": 13, "balignl": 13, "balignw": 13, "bss": 13, "byte": [13, 22], "comm": 13, "def": 13, "doubl": [13, 22], "endef": 13, "equ": 13, "equiv": 13, "eqv": 13, "fill": 13, "globl": 13, "inst": 13, "lcomm": 13, "octa": 13, "private_extern": 13, "p2align": 13, "pushsect": 13, "popsect": 13, "quad": 13, "scl": 13, "skip": 13, "sleb128": 13, "space": [13, 15], "uleb128": 13, "elf": 13, "dwarf": 13, "cfi_adjust_cfa_offset": 13, "cfi_def_cfa": 13, "cfi_def_cfa_offset": 13, "cfi_def_cfa_regist": 13, "cfi_endproc": 13, "cfi_escap": 13, "cfi_lsda": 13, "cfi_offset": 13, "cfi_person": 13, "cfi_regist": 13, "cfi_rel_offset": 13, "cfi_remember_st": 13, "cfi_restor": 13, "cfi_restore_st": 13, "cfi_return_column": 13, "cfi_same_valu": 13, "cfi_sect": 13, "cfi_signal_fram": 13, "cfi_startproc": 13, "cfi_undefin": 13, "cfi_window_sav": 13, "seh_endproc": 13, "seh_endprologu": 13, "seh_proc": 13, "seh_pushreg": 13, "seh_savereg": 13, "seh_setfram": 13, "seh_stackalloc": 13, "fnstart": 13, "fnend": 13, "movsp": 13, "thumb": 13, "thumb_func": 13, "code16": 13, "code32": 13, "code64": 13, "nop": 13, "clobber_abi": 13, "abikindlist": 13, "efiapi": 13, "unchang": 13, "optionlist": 13, "att_syntax": 13, "nomem": 13, "noreturn": 13, "nostack": 13, "preserves_flag": 13, "pure": [13, 15, 17], "readonli": 13, "red": 13, "zone": 13, "fpr": 13, "nzcv": 13, "cpsr": 13, "fpscr": 13, "dzc": 13, "idc": 13, "ioc": 13, "ixc": 13, "ofc": 13, "ufc": 13, "cpr": 13, "qc": 13, "fflag": 13, "fcsr": 13, "vcsr": 13, "vl": 13, "vtype": 13, "af": 13, "cf": 13, "OF": [13, 16], "pf": 13, "sf": 13, "zf": 13, "de": 13, "ie": 13, "oe": 13, "pe": 13, "ue": 13, "ze": 13, "mxcsr": 13, "globalasmargu": 13, "asmargu": 13, "embed": 13, "delimitedtokentre": [13, 17], "took": 13, "emit": 13, "asm_exampl": 13, "basepri": 13, "mr": 13, "do_noth": 13, "mov": 13, "global_asm_exampl": 13, "itemwithvis": 14, "macroitem": 14, "elabor": [14, 16, 25], "compos": 15, "unicod": [15, 22], "cell": [15, 22, 25], "regardless": 15, "whitespac": 15, "0x0b": 15, "0x0c": 15, "feed": 15, "0x0d": 15, "carriag": 15, "0x20": 15, "0x85": 15, "0x200e": 15, "0x200f": 15, "0x2028": 15, "0x2029": 15, "0x00": [15, 22], "0x7f": 15, "lexicalel": [15, 17], "basic": [15, 17], "compound": [15, 18, 22], "flexibl": 15, "minu": [15, 17, 19], "star": 15, "slash": 15, "percent": [15, 16], "caret": 15, "Or": 15, "lazi": [15, 18], "dot": 15, "ellipsi": 15, "comma": 15, "arrow": 15, "fat": [15, 22], "hashrocket": 15, "pound": 15, "dollar": 15, "brace": 15, "parenthesi": 15, "rawidentifi": 15, "pureidentifi": 15, "rawidentifierkeyword": 15, "xid_start": 15, "xid_continu": 15, "identifierorunderscor": [15, 22], "annex": 15, "profil": 15, "medial": 15, "0x200c": 15, "width": 15, "joiner": 15, "0x200d": 15, "foo": [15, 17], "_identifi": 15, "\u043c\u043e\u0441\u043a\u0432\u0430": 15, "\u6771\u4eac": 15, "fix": [15, 19, 22], "bytecont": 15, "bytecharact": 15, "byteescap": 15, "octaldigit": 15, "0x27": [15, 17], "apostroph": [15, 17], "x1b": 15, "0xca": 15, "simplebytestringcont": 15, "simplebytestringcharact": 15, "stringcontinu": 15, "0x22": 15, "quotat": 15, "tb": 15, "br": 15, "rawbytestringcont": 15, "nestedrawbytestringcont": 15, "integercont": 15, "0b": 15, "binarydigitorunderscor": 15, "binarydigit": 15, "decimaldigit": 15, "decimaldigitorunderscor": 15, "0x": 15, "hexadecimaldigitorunderscor": 15, "0o": 15, "octaldigitorunderscor": 15, "signedintegersuffix": 15, "unsignedintegersuffix": 15, "decim": 15, "hexadecim": 15, "octal": 15, "suffix": 15, "unsuffix": 15, "surround": [15, 22], "0b0010_1110_u8": 15, "1___2_3": 15, "0x4d8a": 15, "0o77_52i128": 15, "exponentlett": 15, "exponentsign": 15, "exponentmagnitud": 15, "8e": 15, "1_820": 15, "14e5": 15, "8_031": 15, "4_e": 15, "12f64": 15, "charactercont": 15, "asciiescap": 15, "characterliteralcharact": 15, "unicodeescap": 15, "codepoint": 15, "00000": 15, "10ffff": 15, "surrog": 15, "d800": 15, "dfff": 15, "1f30": 15, "simplestringcont": 15, "simplestringcharact": 15, "tcol": 15, "nrow": 15, "bell": 15, "x07": 15, "ub80a": 15, "rawstringcont": 15, "nestedrawstringcont": 15, "blockcommentordoc": 15, "linecommentordoc": 15, "amd": 15, "trail": [15, 17], "alon": [15, 16], "commented_modul": 15, "commented_mod": 15, "case": 15, "sensit": 15, "break": [15, 22], "priv": [15, 17], "typeof": 15, "virtual": 15, "macrorulesdefinit": [15, 17], "fourth": [16, 22], "2016": 16, "2019": 16, "2020": 16, "2021": 16, "alter": 16, "clearli": 16, "unmodifi": 16, "distribut": 16, "prohibit": 16, "prior": [16, 18], "indemnifi": 16, "harmless": 16, "board": 16, "offic": 16, "agent": 16, "liabil": 16, "damag": 16, "yourself": 16, "your": 16, "softwar": 16, "parti": 16, "attornei": 16, "fee": 16, "court": 16, "cost": 16, "expens": 16, "aris": 16, "irrespect": 16, "ON": 16, "AS": 16, "basi": 16, "AND": 16, "NO": 16, "warranti": 16, "OR": 16, "impli": [16, 22], "TO": 16, "THE": 16, "accuraci": 16, "effici": 16, "merchant": 16, "IN": 16, "event": [16, 17], "WILL": 16, "BE": 16, "liabl": 16, "FOR": 16, "consequenti": 16, "incident": 16, "exemplari": 16, "IF": 16, "advis": 16, "SUCH": 16, "januari": 16, "2004": 16, "http": 16, "www": 16, "org": 16, "reproduct": 16, "licensor": 16, "owner": [16, 18], "author": 16, "power": [16, 22], "contract": 16, "ii": 16, "fifti": 16, "outstand": [16, 22], "iii": 16, "benefici": 16, "exercis": 16, "convers": [16, 22], "media": 16, "work": 16, "authorship": 16, "appendix": 16, "editori": 16, "revis": 16, "mere": 16, "thereof": 16, "intention": 16, "submit": 16, "behalf": 16, "electron": 16, "verbal": 16, "sent": 16, "mail": 16, "issu": 16, "track": 16, "improv": 16, "conspicu": 16, "contributor": 16, "whom": 16, "incorpor": [16, 22], "herebi": 16, "perpetu": 16, "worldwid": 16, "charg": 16, "royalti": 16, "irrevoc": 16, "reproduc": 16, "prepar": 16, "displai": 16, "sublicens": 16, "patent": 16, "offer": 16, "sell": 16, "necessarili": 16, "infring": 16, "institut": 16, "litig": 16, "counterclaim": 16, "lawsuit": 16, "alleg": 16, "constitut": [16, 17, 22], "contributori": 16, "date": 16, "redistribut": 16, "medium": 16, "meet": 16, "give": 16, "recipi": 16, "promin": 16, "retain": 16, "trademark": 16, "pertain": 16, "readabl": 16, "along": 16, "wherev": 16, "own": [16, 22], "alongsid": 16, "addendum": 16, "constru": 16, "compli": 16, "submiss": 16, "notwithstand": 16, "noth": 16, "herein": 16, "supersed": 16, "agreement": 16, "regard": 16, "trade": 16, "servic": 16, "customari": 16, "disclaim": 16, "law": 16, "agre": 16, "sole": [16, 17, 18], "respons": 16, "assum": [16, 22], "risk": 16, "theori": 16, "tort": 16, "neglig": 16, "deliber": 16, "grossli": 16, "inabl": 16, "loss": 16, "goodwil": 16, "stoppag": 16, "failur": 16, "malfunct": 16, "commerci": 16, "accept": 16, "choos": 16, "indemn": 16, "howev": 16, "defend": 16, "To": [16, 22], "boilerpl": 16, "don": 16, "we": 16, "recommend": 16, "print": 16, "easier": 16, "archiv": 16, "yyyi": 16, "complianc": 16, "2010": 16, "person": 16, "deal": 16, "merg": 16, "publish": 16, "furnish": 16, "substanti": 16, "BUT": 16, "NOT": 16, "noninfring": 16, "holder": 16, "connect": 16, "WITH": 16, "realiz": 17, "distinct": [17, 22], "augment": 17, "macrorulelist": 17, "macromatchtoken": 17, "macrometavariablematch": 17, "expr": 17, "ident": 17, "meta": 17, "pat": 17, "pat_param": 17, "stmt": 17, "ty": 17, "vi": 17, "fragment": 17, "begin": 17, "macrorepetitionmatchcont": 17, "macrorepetitionsepar": 17, "One": [17, 25], "succeed": 17, "generate_pair": 17, "crate_typ": 17, "enter": [17, 19], "proc_macro": 17, "hint": 17, "proc_macro_attribut": 17, "nondelimitedtoken": 17, "derive_macro_invok": 17, "attribute_macro_invok": 17, "further": [17, 22], "lookahead": 17, "ambigu": 17, "backtrack": 17, "0x2d": 17, "hyphen": 17, "consecut": 17, "abl": 17, "monoton": 17, "increas": [17, 22], "increment": 17, "leftov": 17, "found": [17, 22], "unresolv": 17, "kept": 17, "verbatim": 17, "repeatedli": 17, "param_1": 17, "param_2": 17, "param_n": 17, "categor": 17, "unhygien": 17, "mix": 17, "label": 17, "partial": 17, "off": 18, "virtu": 18, "immutable_refer": 18, "mutable_refer": 18, "comparison": [18, 22], "mutable_borrow": 18, "immutable_borrow": 18, "unassign": 18, "clone": [18, 22], "unspecifi": 18, "underli": 18, "printondrop": 18, "leav": 18, "promot": 18, "account": 18, "subpattern": [18, 19], "cast": [18, 22], "creation": 18, "becaus": [18, 19], "patternlist": 19, "ed": 19, "0x7c": 19, "anyth": 19, "inferred_typ": 19, "bound_pattern_typ": 19, "small": 19, "ref_x": 19, "half": 19, "open": 19, "obsolet": 19, "entir": 19, "pattern_without_range_typ": 19, "deconstructe": 19, "deconstructre": 19, "recordstructpatterncont": 19, "recordstructrestpattern": 19, "fielddeconstructorlist": 19, "fielddeconstructor": 19, "deconstructor": 19, "recordstruct": 19, "record_struct_valu": 19, "tuplestruct": 19, "tuple_struct_valu": 19, "union_valu": 19, "ariti": [19, 22], "destructur": 19, "length": [19, 22], "uncondition": 19, "zerowidthnobreakspac": 20, "shebang": 20, "feff": 20, "newlin": 20, "modulespecif": 20, "load": 20, "dead_cod": 20, "condition": 20, "cfg": 20, "up": [20, 22, 25], "cfg_attr": 20, "ascript": [21, 22], "is_empti": 21, "0x01": 22, "invari": 22, "0x000": 22, "0xd7ff": 22, "0xe000": 22, "0x10ffff": 22, "utf": 22, "tuplefieldlist": 22, "tuplefield": 22, "enumvariantlist": 22, "enumvariantkind": 22, "zerovariantenumtyp": 22, "weight": 22, "fifth": 22, "sixth": 22, "unitstruct": 22, "animalrecordstruct": 22, "animaltuplestruct": 22, "leafnod": 22, "coercibl": 22, "functionpointertypequalifierlist": 22, "functionpointertypeparameterlist": 22, "variad": 22, "null": 22, "shallow": 22, "anonymous_type_paramet": 22, "arg": 22, "anonymous_return_typ": 22, "mytrait": 22, "late": 22, "dispatch": 22, "type_paramet": 22, "never_complet": 22, "big": 22, "enough": 22, "size_of": 22, "thin": 22, "coerc": 22, "storag": 22, "finit": 22, "themselv": 22, "classifi": 22, "laid": 22, "back": 22, "nil": 22, "con": 22, "detail": 22, "symmetr": 22, "observ": 22, "diverg": 22, "type_constructor": 22, "last_field": 22, "tc": 22, "unsafecel": [22, 25], "insuffici": 22, "defer": 22, "inferec": 22, "fallback": 22, "unset": 22, "tabl": 22, "modassign": 22, "assigne": 22, "user": 22, "supertrait": 22, "undeduc": 22, "regular": 22, "supertraitlist": 22, "subtrait": 22, "unpin": 22, "unwindsaf": 22, "refunwindsaf": 22, "element_at": 22, "parenthesizedtraitbound": 22, "draw": 22, "attributedlifetim": 22, "attributedlifetimelist": 22, "covari": 22, "contravari": 22, "phantomdata": 22, "g": 22, "met": 22, "tocstr": 22, "strukt": 22, "target_featur": 23, "track_cal": 23, "unnam": 25}, "objects": {"": [[10, 0, 1, "term_abi", "abi"], [10, 0, 1, "term_abi_clobber", "abi_clobber"], [10, 0, 1, "term_abi_kind", "abi_kind"], [13, 1, 1, "syntax_abiclobber", "abiclobber"], [6, 1, 1, "syntax_abikind", "abikind"], [13, 1, 1, "syntax_abikindlist", "abikindlist"], [6, 1, 1, "syntax_abispecification", "abispecification"], [10, 0, 1, "term_abort", "abort"], [10, 0, 1, "term_abstract_data_type", "abstract_data_type"], [18, 0, 1, "term_active", "active"], [10, 0, 1, "term_active_attribute", "active_attribute"], [10, 0, 1, "term_addition_assignment", "addition_assignment"], [10, 0, 1, "term_addition_assignment_expression", "addition_assignment_expression"], [10, 0, 1, "term_addition_expression", "addition_expression"], [5, 1, 1, "syntax_additionassignmentexpression", "additionassignmentexpression"], [5, 1, 1, "syntax_additionexpression", "additionexpression"], [5, 0, 1, "term_address_to_pointer_cast", "address_to_pointer_cast"], [10, 0, 1, "term_adjusted_call_operand", "adjusted_call_operand"], [1, 1, 1, "syntax_alignment", "alignment"], [10, 0, 1, "term_alignment", "alignment"], [1, 1, 1, "syntax_alignmentdecrease", "alignmentdecrease"], [1, 1, 1, "syntax_alignmentincrease", "alignmentincrease"], [10, 0, 1, "term_all_configuration_predicate", "all_configuration_predicate"], [10, 0, 1, "term_anonymous_loop_expression", "anonymous_loop_expression"], [10, 0, 1, "term_anonymous_return_type", "anonymous_return_type"], [10, 0, 1, "term_anonymous_type_parameter", "anonymous_type_parameter"], [10, 0, 1, "term_any_configuration_predicate", "any_configuration_predicate"], [10, 0, 1, "term_application_binary_interface", "application_binary_interface"], [10, 0, 1, "term_argument_operand", "argument_operand"], [5, 1, 1, "syntax_argumentoperandlist", "argumentoperandlist"], [10, 0, 1, "term_arithmetic_expression", "arithmetic_expression"], [10, 0, 1, "term_arithmetic_operator", "arithmetic_operator"], [10, 0, 1, "term_arithmetic_overflow", "arithmetic_overflow"], [5, 1, 1, "syntax_arithmeticexpression", "arithmeticexpression"], [10, 0, 1, "term_arity", "arity"], [10, 0, 1, "term_array", "array"], [10, 0, 1, "term_array_element_constructor", "array_element_constructor"], [10, 0, 1, "term_array_expression", "array_expression"], [10, 0, 1, "term_array_repetition_constructor", "array_repetition_constructor"], [10, 0, 1, "term_array_type", "array_type"], [5, 1, 1, "syntax_arrayelementconstructor", "arrayelementconstructor"], [5, 1, 1, "syntax_arrayelementexpression", "arrayelementexpression"], [5, 1, 1, "syntax_arrayexpression", "arrayexpression"], [5, 1, 1, "syntax_arrayrepetitionconstructor", "arrayrepetitionconstructor"], [22, 1, 1, "syntax_arraytypespecification", "arraytypespecification"], [15, 1, 1, "syntax_asciicharacter", "asciicharacter"], [15, 1, 1, "syntax_asciiescape", "asciiescape"], [13, 1, 1, "syntax_asmarguments", "asmarguments"], [10, 0, 1, "term_assembly_code_block", "assembly_code_block"], [10, 0, 1, "term_assembly_directive", "assembly_directive"], [10, 0, 1, "term_assembly_instruction", "assembly_instruction"], [10, 0, 1, "term_assembly_option", "assembly_option"], [13, 1, 1, "syntax_assemblycodeblock", "assemblycodeblock"], [13, 1, 1, "syntax_assemblyinstruction", "assemblyinstruction"], [13, 1, 1, "syntax_assemblyoption", "assemblyoption"], [10, 0, 1, "term_assigned_operand", "assigned_operand"], [5, 1, 1, "syntax_assignedoperand", "assignedoperand"], [10, 0, 1, "term_assignee_expression", "assignee_expression"], [10, 0, 1, "term_assignee_operand", "assignee_operand"], [5, 0, 1, "term_assignee_pattern", "assignee_pattern"], [5, 1, 1, "syntax_assigneeoperand", "assigneeoperand"], [10, 0, 1, "term_assignment_expression", "assignment_expression"], [5, 1, 1, "syntax_assignmentexpression", "assignmentexpression"], [10, 0, 1, "term_associated_constant", "associated_constant"], [10, 0, 1, "term_associated_function", "associated_function"], [10, 0, 1, "term_associated_implementation_constant", "associated_implementation_constant"], [10, 0, 1, "term_associated_implementation_function", "associated_implementation_function"], [10, 0, 1, "term_associated_implementation_type", "associated_implementation_type"], [10, 0, 1, "term_associated_item", "associated_item"], [10, 0, 1, "term_associated_trait_constant", "associated_trait_constant"], [10, 0, 1, "term_associated_trait_function", "associated_trait_function"], [10, 0, 1, "term_associated_trait_implementation_item", "associated_trait_implementation_item"], [10, 0, 1, "term_associated_trait_item", "associated_trait_item"], [10, 0, 1, "term_associated_trait_type", "associated_trait_type"], [10, 0, 1, "term_associated_type", "associated_type"], [10, 0, 1, "term_associated_type_projection", "associated_type_projection"], [0, 1, 1, "syntax_associateditem", "associateditem"], [0, 1, 1, "syntax_associateditemwithvisibility", "associateditemwithvisibility"], [10, 0, 1, "term_associativity", "associativity"], [10, 0, 1, "term_async_block", "async_block"], [10, 0, 1, "term_async_block_expression", "async_block_expression"], [10, 0, 1, "term_async_control_flow_boundary", "async_control_flow_boundary"], [10, 0, 1, "term_async_function", "async_function"], [5, 1, 1, "syntax_asyncblockexpression", "asyncblockexpression"], [10, 0, 1, "term_atomic_type", "atomic_type"], [10, 0, 1, "term_attribute", "attribute"], [10, 0, 1, "term_attribute_content", "attribute_content"], [10, 0, 1, "term_attribute_macro", "attribute_macro"], [1, 1, 1, "syntax_attributecontent", "attributecontent"], [1, 1, 1, "syntax_attributecontentlist", "attributecontentlist"], [22, 1, 1, "syntax_attributedlifetime", "attributedlifetime"], [22, 1, 1, "syntax_attributedlifetimelist", "attributedlifetimelist"], [1, 1, 1, "syntax_attributeinput", "attributeinput"], [10, 0, 1, "term_auto_trait", "auto_trait"], [1, 2, 1, "codeterm_automatically_derived", "automatically_derived"], [1, 1, 1, "syntax_automaticallyderivedcontent", "automaticallyderivedcontent"], [10, 0, 1, "term_await_expression", "await_expression"], [5, 1, 1, "syntax_awaitexpression", "awaitexpression"], [10, 0, 1, "term_base_initializer", "base_initializer"], [5, 1, 1, "syntax_baseinitializer", "baseinitializer"], [10, 0, 1, "term_basic_assignment", "basic_assignment"], [10, 0, 1, "term_binary_crate", "binary_crate"], [10, 0, 1, "term_binary_literal", "binary_literal"], [10, 0, 1, "term_binary_operator", "binary_operator"], [15, 1, 1, "syntax_binarydigit", "binarydigit"], [15, 1, 1, "syntax_binarydigitorunderscore", "binarydigitorunderscore"], [15, 1, 1, "syntax_binaryliteral", "binaryliteral"], [19, 1, 1, "syntax_binding", "binding"], [10, 0, 1, "term_binding", "binding"], [10, 0, 1, "term_binding_argument", "binding_argument"], [10, 0, 1, "term_binding_mode", "binding_mode"], [10, 0, 1, "term_binding_pattern", "binding_pattern"], [10, 0, 1, "term_binding_scope", "binding_scope"], [9, 1, 1, "syntax_bindingargument", "bindingargument"], [10, 0, 1, "term_bit_and_assignment", "bit_and_assignment"], [10, 0, 1, "term_bit_and_assignment_expression", "bit_and_assignment_expression"], [10, 0, 1, "term_bit_and_expression", "bit_and_expression"], [10, 0, 1, "term_bit_expression", "bit_expression"], [10, 0, 1, "term_bit_or_assignment", "bit_or_assignment"], [10, 0, 1, "term_bit_or_assignment_expression", "bit_or_assignment_expression"], [10, 0, 1, "term_bit_or_expression", "bit_or_expression"], [10, 0, 1, "term_bit_xor_assignment", "bit_xor_assignment"], [10, 0, 1, "term_bit_xor_assignment_expression", "bit_xor_assignment_expression"], [10, 0, 1, "term_bit_xor_expression", "bit_xor_expression"], [5, 1, 1, "syntax_bitandassignmentexpression", "bitandassignmentexpression"], [5, 1, 1, "syntax_bitandexpression", "bitandexpression"], [5, 1, 1, "syntax_bitexpression", "bitexpression"], [5, 1, 1, "syntax_bitorassignmentexpression", "bitorassignmentexpression"], [5, 1, 1, "syntax_bitorexpression", "bitorexpression"], [5, 1, 1, "syntax_bitwisenegationoperator", "bitwisenegationoperator"], [5, 1, 1, "syntax_bitxorassignmentexpression", "bitxorassignmentexpression"], [5, 1, 1, "syntax_bitxorexpression", "bitxorexpression"], [10, 0, 1, "term_block_comment", "block_comment"], [10, 0, 1, "term_block_expression", "block_expression"], [15, 1, 1, "syntax_blockcomment", "blockcomment"], [15, 1, 1, "syntax_blockcommentordoc", "blockcommentordoc"], [5, 1, 1, "syntax_blockexpression", "blockexpression"], [10, 2, 1, "codeterm_bool", "bool"], [10, 0, 1, "term_boolean_literal", "boolean_literal"], [15, 1, 1, "syntax_booleanliteral", "booleanliteral"], [10, 0, 1, "term_borrow", "borrow"], [10, 0, 1, "term_borrow_expression", "borrow_expression"], [10, 0, 1, "term_borrowed", "borrowed"], [5, 1, 1, "syntax_borrowexpression", "borrowexpression"], [10, 0, 1, "term_borrowing", "borrowing"], [10, 0, 1, "term_bound", "bound"], [10, 0, 1, "term_bound_pattern", "bound_pattern"], [19, 1, 1, "syntax_boundpattern", "boundpattern"], [10, 0, 1, "term_break_expression", "break_expression"], [10, 0, 1, "term_break_type", "break_type"], [10, 0, 1, "term_break_value", "break_value"], [5, 1, 1, "syntax_breakexpression", "breakexpression"], [10, 0, 1, "term_built_in_attribute", "built_in_attribute"], [10, 0, 1, "term_built_in_trait", "built_in_trait"], [1, 1, 1, "syntax_builtinattributecontent", "builtinattributecontent"], [18, 0, 1, "term_by_copy", "by_copy"], [5, 0, 1, "term_by_immutable_reference_capture", "by_immutable_reference_capture"], [18, 0, 1, "term_by_move", "by_move"], [19, 0, 1, "term_by_mutable_reference", "by_mutable_reference"], [5, 0, 1, "term_by_mutable_reference_capture", "by_mutable_reference_capture"], [19, 0, 1, "term_by_reference", "by_reference"], [5, 0, 1, "term_by_unique_immutable_reference_capture", "by_unique_immutable_reference_capture"], [19, 0, 1, "term_by_value", "by_value"], [5, 0, 1, "term_by_value_capture", "by_value_capture"], [10, 0, 1, "term_byte_literal", "byte_literal"], [10, 0, 1, "term_byte_string_literal", "byte_string_literal"], [15, 1, 1, "syntax_bytecharacter", "bytecharacter"], [15, 1, 1, "syntax_bytecontent", "bytecontent"], [15, 1, 1, "syntax_byteescape", "byteescape"], [15, 1, 1, "syntax_byteliteral", "byteliteral"], [15, 1, 1, "syntax_bytestringliteral", "bytestringliteral"], [10, 0, 1, "term_c", "c"], [10, 0, 1, "term_c_representation", "c_representation"], [10, 0, 1, "term_c_signed_int_type", "c_signed_int_type"], [10, 0, 1, "term_call_conformance", "call_conformance"], [10, 0, 1, "term_call_expression", "call_expression"], [10, 0, 1, "term_call_operand", "call_operand"], [10, 0, 1, "term_call_resolution", "call_resolution"], [10, 0, 1, "term_call_site_hygiene", "call_site_hygiene"], [10, 0, 1, "term_callee_type", "callee_type"], [5, 1, 1, "syntax_callexpression", "callexpression"], [5, 1, 1, "syntax_calloperand", "calloperand"], [3, 0, 1, "term_candidate_callee_type", "candidate_callee_type"], [3, 0, 1, "term_candidate_callee_type_chain", "candidate_callee_type_chain"], [3, 0, 1, "term_candidate_container_type", "candidate_container_type"], [3, 0, 1, "term_candidate_container_type_chain", "candidate_container_type_chain"], [3, 0, 1, "term_candidate_direct_entity", "candidate_direct_entity"], [3, 0, 1, "term_candidate_external_prelude_entity", "candidate_external_prelude_entity"], [3, 0, 1, "term_candidate_field", "candidate_field"], [3, 0, 1, "term_candidate_indexed_field", "candidate_indexed_field"], [3, 0, 1, "term_candidate_method", "candidate_method"], [3, 0, 1, "term_candidate_named_field", "candidate_named_field"], [3, 0, 1, "term_candidate_receiver_type", "candidate_receiver_type"], [3, 0, 1, "term_candidate_receiver_type_chain", "candidate_receiver_type_chain"], [3, 0, 1, "term_candidate_selected_entity", "candidate_selected_entity"], [10, 0, 1, "term_capture_mode", "capture_mode"], [10, 0, 1, "term_capture_target", "capture_target"], [5, 0, 1, "term_captured", "captured"], [10, 0, 1, "term_capturing", "capturing"], [10, 0, 1, "term_capturing_environment", "capturing_environment"], [10, 0, 1, "term_capturing_expression", "capturing_expression"], [10, 0, 1, "term_cast", "cast"], [10, 0, 1, "term_casting", "casting"], [1, 2, 1, "codeterm_cfg", "cfg"], [1, 2, 1, "codeterm_cfg_attr", "cfg_attr"], [1, 1, 1, "syntax_cfgattrcontent", "cfgattrcontent"], [1, 1, 1, "syntax_cfgcontent", "cfgcontent"], [10, 2, 1, "codeterm_char", "char"], [10, 0, 1, "term_character_literal", "character_literal"], [15, 1, 1, "syntax_charactercontent", "charactercontent"], [15, 1, 1, "syntax_characterliteral", "characterliteral"], [15, 1, 1, "syntax_characterliteralcharacter", "characterliteralcharacter"], [10, 0, 1, "term_closure_body", "closure_body"], [10, 0, 1, "term_closure_expression", "closure_expression"], [10, 0, 1, "term_closure_parameter", "closure_parameter"], [10, 0, 1, "term_closure_type", "closure_type"], [5, 1, 1, "syntax_closurebody", "closurebody"], [5, 1, 1, "syntax_closurebodywithreturntype", "closurebodywithreturntype"], [5, 1, 1, "syntax_closureexpression", "closureexpression"], [5, 1, 1, "syntax_closureparameter", "closureparameter"], [5, 1, 1, "syntax_closureparameterlist", "closureparameterlist"], [1, 0, 1, "term_code_generation_attribute", "code_generation_attribute"], [10, 0, 1, "term_code_point", "code_point"], [22, 0, 1, "term_coercion_propagating_expression", "coercion_propagating_expression"], [22, 0, 1, "term_coercion_site", "coercion_site"], [1, 2, 1, "codeterm_cold", "cold"], [1, 1, 1, "syntax_coldcontent", "coldcontent"], [15, 1, 1, "syntax_comment", "comment"], [10, 0, 1, "term_comment", "comment"], [10, 0, 1, "term_comparison_expression", "comparison_expression"], [5, 1, 1, "syntax_comparisonexpression", "comparisonexpression"], [10, 0, 1, "term_compilation_root", "compilation_root"], [10, 0, 1, "term_compound_assignment", "compound_assignment"], [10, 0, 1, "term_compound_assignment_expression", "compound_assignment_expression"], [15, 0, 1, "term_compound_punctuator", "compound_punctuator"], [5, 1, 1, "syntax_compoundassignmentexpression", "compoundassignmentexpression"], [10, 0, 1, "term_concrete_type", "concrete_type"], [10, 0, 1, "term_conditional_compilation", "conditional_compilation"], [1, 0, 1, "term_conditional_compilation_attribute", "conditional_compilation_attribute"], [10, 0, 1, "term_conditionally_compiled_source_code", "conditionally_compiled_source_code"], [10, 0, 1, "term_configuration_predicate", "configuration_predicate"], [1, 1, 1, "syntax_configurationoption", "configurationoption"], [1, 1, 1, "syntax_configurationoptionname", "configurationoptionname"], [1, 1, 1, "syntax_configurationoptionvalue", "configurationoptionvalue"], [1, 1, 1, "syntax_configurationpredicate", "configurationpredicate"], [1, 1, 1, "syntax_configurationpredicateall", "configurationpredicateall"], [1, 1, 1, "syntax_configurationpredicateany", "configurationpredicateany"], [1, 1, 1, "syntax_configurationpredicatelist", "configurationpredicatelist"], [1, 1, 1, "syntax_configurationpredicatenot", "configurationpredicatenot"], [10, 0, 1, "term_constant", "constant"], [10, 0, 1, "term_constant_argument", "constant_argument"], [10, 0, 1, "term_constant_context", "constant_context"], [10, 0, 1, "term_constant_expression", "constant_expression"], [10, 0, 1, "term_constant_function", "constant_function"], [10, 0, 1, "term_constant_initializer", "constant_initializer"], [10, 0, 1, "term_constant_parameter", "constant_parameter"], [10, 0, 1, "term_constant_parameter_initializer", "constant_parameter_initializer"], [10, 0, 1, "term_constant_promotion", "constant_promotion"], [9, 1, 1, "syntax_constantargument", "constantargument"], [25, 1, 1, "syntax_constantdeclaration", "constantdeclaration"], [25, 1, 1, "syntax_constantinitializer", "constantinitializer"], [9, 1, 1, "syntax_constantparameter", "constantparameter"], [9, 1, 1, "syntax_constantparameterinitializer", "constantparameterinitializer"], [10, 0, 1, "term_constrain", "constrain"], [10, 0, 1, "term_construct", "construct"], [5, 1, 1, "syntax_constructee", "constructee"], [10, 0, 1, "term_constructee", "constructee"], [10, 0, 1, "term_container_operand", "container_operand"], [5, 1, 1, "syntax_containeroperand", "containeroperand"], [10, 0, 1, "term_continue_expression", "continue_expression"], [5, 1, 1, "syntax_continueexpression", "continueexpression"], [22, 0, 1, "term_contravariant", "contravariant"], [10, 0, 1, "term_control_flow_boundary", "control_flow_boundary"], [10, 0, 1, "term_copy_type", "copy_type"], [3, 0, 1, "term_core_prelude", "core_prelude"], [22, 0, 1, "term_covariant", "covariant"], [10, 0, 1, "term_crate", "crate"], [10, 0, 1, "term_crate_import", "crate_import"], [10, 0, 1, "term_crate_indication", "crate_indication"], [1, 2, 1, "codeterm_crate_name", "crate_name"], [10, 0, 1, "term_crate_public_modifier", "crate_public_modifier"], [10, 0, 1, "term_crate_root", "crate_root"], [10, 0, 1, "term_crate_root_module", "crate_root_module"], [1, 2, 1, "codeterm_crate_type", "crate_type"], [20, 1, 1, "syntax_crateindication", "crateindication"], [1, 1, 1, "syntax_cratenamecontent", "cratenamecontent"], [3, 1, 1, "syntax_cratepublicmodifier", "cratepublicmodifier"], [1, 1, 1, "syntax_cratetype", "cratetype"], [1, 1, 1, "syntax_cratetypecontent", "cratetypecontent"], [10, 0, 1, "term_dangling", "dangling"], [10, 0, 1, "term_data_race", "data_race"], [10, 0, 1, "term_decimal_literal", "decimal_literal"], [15, 1, 1, "syntax_decimaldigit", "decimaldigit"], [15, 1, 1, "syntax_decimaldigitorunderscore", "decimaldigitorunderscore"], [15, 1, 1, "syntax_decimalliteral", "decimalliteral"], [10, 0, 1, "term_declaration", "declaration"], [10, 0, 1, "term_declarative_macro", "declarative_macro"], [19, 1, 1, "syntax_deconstructee", "deconstructee"], [10, 0, 1, "term_deconstructee", "deconstructee"], [10, 0, 1, "term_default_representation", "default_representation"], [10, 0, 1, "term_definition_site_hygiene", "definition_site_hygiene"], [17, 1, 1, "syntax_delimitedtokentree", "delimitedtokentree"], [15, 1, 1, "syntax_delimiter", "delimiter"], [10, 0, 1, "term_dereference", "dereference"], [10, 0, 1, "term_dereference_expression", "dereference_expression"], [10, 0, 1, "term_dereference_type", "dereference_type"], [10, 0, 1, "term_dereference_type_chain", "dereference_type_chain"], [5, 1, 1, "syntax_dereferenceexpression", "dereferenceexpression"], [1, 0, 1, "term_derivation_attribute", "derivation_attribute"], [1, 2, 1, "codeterm_derive", "derive"], [17, 0, 1, "term_derive_helper_attribute", "derive_helper_attribute"], [10, 0, 1, "term_derive_macro", "derive_macro"], [1, 1, 1, "syntax_derivecontent", "derivecontent"], [1, 1, 1, "syntax_derivename", "derivename"], [10, 0, 1, "term_destruction", "destruction"], [10, 0, 1, "term_destructor", "destructor"], [10, 0, 1, "term_destructuring_assignment", "destructuring_assignment"], [1, 0, 1, "term_diagnostics_attribute", "diagnostics_attribute"], [10, 0, 1, "term_direction_modifier", "direction_modifier"], [13, 1, 1, "syntax_directionmodifier", "directionmodifier"], [10, 0, 1, "term_discriminant", "discriminant"], [10, 0, 1, "term_discriminant_initializer", "discriminant_initializer"], [10, 0, 1, "term_discriminant_type", "discriminant_type"], [22, 1, 1, "syntax_discriminantinitializer", "discriminantinitializer"], [10, 0, 1, "term_diverging_expression", "diverging_expression"], [10, 0, 1, "term_diverging_type_variable", "diverging_type_variable"], [10, 0, 1, "term_division_assignment", "division_assignment"], [10, 0, 1, "term_division_assignment_expression", "division_assignment_expression"], [10, 0, 1, "term_division_expression", "division_expression"], [5, 1, 1, "syntax_divisionassignmentexpression", "divisionassignmentexpression"], [5, 1, 1, "syntax_divisionexpression", "divisionexpression"], [1, 2, 1, "codeterm_doc", "doc"], [10, 0, 1, "term_doc_comment", "doc_comment"], [1, 1, 1, "syntax_doccontent", "doccontent"], [1, 1, 1, "syntax_docinput", "docinput"], [1, 0, 1, "term_documentation_attribute", "documentation_attribute"], [10, 0, 1, "term_drop_construct", "drop_construct"], [10, 0, 1, "term_drop_order", "drop_order"], [10, 0, 1, "term_drop_scope", "drop_scope"], [10, 0, 1, "term_drop_scope_extension", "drop_scope_extension"], [10, 0, 1, "term_drop_type", "drop_type"], [18, 0, 1, "term_dropped", "dropped"], [10, 0, 1, "term_dropping", "dropping"], [10, 0, 1, "term_dynamically_sized_type", "dynamically_sized_type"], [10, 0, 1, "term_elaboration", "elaboration"], [10, 0, 1, "term_element_type", "element_type"], [22, 1, 1, "syntax_elementtype", "elementtype"], [10, 0, 1, "term_elided", "elided"], [10, 0, 1, "term_elided_lifetime", "elided_lifetime"], [10, 0, 1, "term_else_expression", "else_expression"], [5, 1, 1, "syntax_elseexpression", "elseexpression"], [10, 0, 1, "term_empty_statement", "empty_statement"], [10, 0, 1, "term_entity", "entity"], [10, 0, 1, "term_enum", "enum"], [5, 0, 1, "term_enum_cast", "enum_cast"], [10, 0, 1, "term_enum_field", "enum_field"], [10, 0, 1, "term_enum_type", "enum_type"], [10, 0, 1, "term_enum_value", "enum_value"], [10, 0, 1, "term_enum_variant", "enum_variant"], [10, 0, 1, "term_enum_variant_value", "enum_variant_value"], [22, 1, 1, "syntax_enumdeclaration", "enumdeclaration"], [22, 1, 1, "syntax_enumvariant", "enumvariant"], [22, 1, 1, "syntax_enumvariantkind", "enumvariantkind"], [22, 1, 1, "syntax_enumvariantlist", "enumvariantlist"], [10, 0, 1, "term_equals_expression", "equals_expression"], [5, 1, 1, "syntax_equalsexpression", "equalsexpression"], [10, 0, 1, "term_error_propagation_expression", "error_propagation_expression"], [5, 1, 1, "syntax_errorpropagationexpression", "errorpropagationexpression"], [10, 0, 1, "term_escaped_character", "escaped_character"], [10, 0, 1, "term_evaluation", "evaluation"], [10, 0, 1, "term_execution", "execution"], [22, 0, 1, "term_expected_type", "expected_type"], [1, 1, 1, "syntax_expectedpanicmessage", "expectedpanicmessage"], [10, 0, 1, "term_explicit_register_argument", "explicit_register_argument"], [10, 0, 1, "term_explicit_register_name", "explicit_register_name"], [10, 0, 1, "term_explicitly_declared_entity", "explicitly_declared_entity"], [13, 1, 1, "syntax_explicitregistername", "explicitregistername"], [15, 1, 1, "syntax_exponentletter", "exponentletter"], [15, 1, 1, "syntax_exponentmagnitude", "exponentmagnitude"], [15, 1, 1, "syntax_exponentsign", "exponentsign"], [1, 2, 1, "codeterm_export_name", "export_name"], [10, 0, 1, "term_exported_function", "exported_function"], [10, 0, 1, "term_exported_static", "exported_static"], [1, 1, 1, "syntax_exportnamecontent", "exportnamecontent"], [5, 1, 1, "syntax_expression", "expression"], [10, 0, 1, "term_expression", "expression"], [10, 0, 1, "term_expression_statement", "expression_statement"], [10, 0, 1, "term_expression_with_block", "expression_with_block"], [10, 0, 1, "term_expression_without_block", "expression_without_block"], [5, 1, 1, "syntax_expressionlist", "expressionlist"], [21, 1, 1, "syntax_expressionstatement", "expressionstatement"], [5, 1, 1, "syntax_expressionwithblock", "expressionwithblock"], [5, 1, 1, "syntax_expressionwithoutblock", "expressionwithoutblock"], [18, 0, 1, "term_extending_expression", "extending_expression"], [18, 0, 1, "term_extending_pattern", "extending_pattern"], [6, 0, 1, "term_extern_c_abi", "extern_c_abi"], [10, 0, 1, "term_external_block", "external_block"], [10, 0, 1, "term_external_function", "external_function"], [10, 0, 1, "term_external_function_item_type", "external_function_item_type"], [3, 0, 1, "term_external_prelude", "external_prelude"], [10, 0, 1, "term_external_static", "external_static"], [6, 0, 1, "term_external_system_abi", "external_system_abi"], [6, 1, 1, "syntax_externalblock", "externalblock"], [20, 1, 1, "syntax_externalcrateimport", "externalcrateimport"], [6, 1, 1, "syntax_externalitemwithvisibility", "externalitemwithvisibility"], [6, 1, 1, "syntax_externitem", "externitem"], [10, 2, 1, "codeterm_f32", "f32"], [10, 2, 1, "codeterm_f64", "f64"], [10, 0, 1, "term_fat_pointer", "fat_pointer"], [10, 0, 1, "term_fat_pointer_type", "fat_pointer_type"], [1, 1, 1, "syntax_feature", "feature"], [1, 1, 1, "syntax_featurelist", "featurelist"], [10, 0, 1, "term_ffi", "ffi"], [10, 0, 1, "term_field", "field"], [10, 0, 1, "term_field_access_expression", "field_access_expression"], [10, 0, 1, "term_field_index", "field_index"], [10, 0, 1, "term_field_list", "field_list"], [10, 0, 1, "term_field_resolution", "field_resolution"], [10, 0, 1, "term_field_selector", "field_selector"], [5, 1, 1, "syntax_fieldaccessexpression", "fieldaccessexpression"], [19, 1, 1, "syntax_fielddeconstructor", "fielddeconstructor"], [19, 1, 1, "syntax_fielddeconstructorlist", "fielddeconstructorlist"], [19, 1, 1, "syntax_fieldindex", "fieldindex"], [5, 1, 1, "syntax_fieldinitializer", "fieldinitializer"], [5, 1, 1, "syntax_fieldinitializerlist", "fieldinitializerlist"], [5, 1, 1, "syntax_fieldselector", "fieldselector"], [10, 0, 1, "term_final_match_arm", "final_match_arm"], [5, 1, 1, "syntax_finalmatcharm", "finalmatcharm"], [10, 0, 1, "term_fixed_sized_type", "fixed_sized_type"], [15, 0, 1, "term_flexible_compound_punctuator", "flexible_compound_punctuator"], [10, 0, 1, "term_float_literal", "float_literal"], [10, 0, 1, "term_float_suffix", "float_suffix"], [15, 1, 1, "syntax_floatexponent", "floatexponent"], [10, 0, 1, "term_floating_point_type", "floating_point_type"], [10, 0, 1, "term_floating_point_type_variable", "floating_point_type_variable"], [10, 0, 1, "term_floating_point_value", "floating_point_value"], [15, 1, 1, "syntax_floatliteral", "floatliteral"], [15, 1, 1, "syntax_floatsuffix", "floatsuffix"], [5, 3, 1, "", "6:11 0ab4370e4b805e660ab7f862768edd4e73d59035488ec64df72910f8dfc9c069"], [5, 3, 1, "", "6:7 6aa74df5ff6998c36cd4b0303af21019a41841668d615646b3310bc1356befed"], [0, 3, 1, "", "10:15 96a142348655f7c0d311daed418fc24259286e2108efc574894af02cf2471c36"], [7, 3, 1, "", "9:27 4355b34dd22393af15f6fad33ae3c69fc7091736b751b78d2b18cb15ceb7b3cc"], [17, 3, 1, "", "20:2 f3350d5be59f16503e8f202eed548f9142e23d0995f540a0fe8dbfa0790eb114"], [5, 3, 1, "", "6:9 aab182f47d02be1c733c5fe2b39472a179b10a15a4dcaeb63c8ce0ea22a1f803"], [13, 3, 1, "", "22:6 2932ba93879a19d635e09c54bc40e411c50ad1cd415e1048e6a594284226a29f"], [0, 3, 1, "", "10:22 f6efbcd47f77fb69c490956047b8fa92ddd13a1a56c2c82483cd10efd9f4abc8"], [7, 3, 1, "", "9:11 00ff6766b53e2501ce67b57b21ac801f24b86208afab3a509a0cd92439b2f346"], [5, 3, 1, "", "6:2 0645a76c0904721382a9db11d9677b68becee6024c9f1577cc7f2a735f218ad5"], [6, 3, 1, "", "21:3 e6918e7d46ef5f24647902726d860e1abaf15c6b4f3e50771748abe1156acb4a"], [13, 3, 1, "", "22:2 f55330136adb51523a63dd5eccf639fc7290faacab77ff910b09c4c10719ac1e"], [0, 3, 1, "", "10:8 0dd68e90f7962b7f3ab0d020e22ee6db5fde4efa6ae628af968af3fe3d76baa8"], [24, 3, 1, "", "19:5 9efb922ed5200526914bd3f95ddb869b8e555bd8367143db358605307ff7ea93"], [11, 3, 1, "", "11:9 ba2818ea733c9b43c0160165759dc06495876220780d457240575201aebbf397"], [6, 3, 1, "", "21:6 ed6db46b8be18e820fbb6dfc0dd19df1bb2ac9687dacf002b00c217d8ddbf625"], [8, 3, 1, "", "1:7 3a278c9aaaabec045a6eede8eb5a0beab745d8b84b098a39b6cdf2e167bc5178"], [0, 3, 1, "", "10:13 41db8d1e89a48299f2506f2fd5b398d24cc65ebba4aced317857a727822d1c4e"], [7, 3, 1, "", "9:40 0605829262c1b010a633c97250c2141e26eabf10f42a901e0ffae239bc84909e"], [7, 3, 1, "", "9:33 fbf5fb05e9efc647400ab22d0002c1bc09b999d239850236501817c8374a143c"], [7, 3, 1, "", "9:37 6fda6306c77fde877485229b9ec857991209bb51bb0c707140c6eff580933610"], [7, 3, 1, "", "9:25 1952dd7798e9fd4d8fb5f525eedc05613f2ef1a660b93bfa8f24167e67f839bb"], [0, 3, 1, "", "10:28 338988e157f9ff9c04c5a8163cf72e90c0400a0e6ccb6b45e6f105a1b75ac855"], [0, 3, 1, "", "10:2 fd7bf7d0a40ad75d0809a98d1bd273b94708f4a26b1a3be16f7e8dbffbe638ec"], [24, 3, 1, "", "19:6 1b9334ca686a2f78808b0a5e1bf0b6793eef547e9367cf94416bb6a4009457bc"], [25, 3, 1, "", "7:7 2935b280567bdb6d4a9792e339cac22702fe95059923d9a738c60a7a8548dab5"], [19, 3, 1, "", "5:4 28dec289d15cad76b56462aa121b43b5d1e42ef0f0d0636c38ac0eb7eca4b4f9"], [0, 3, 1, "", "10:10 cd830a794d7188143f156c01744b2ee904e28c51699fff975168e027ba4793c0"], [11, 3, 1, "", "11:6 e18c1caa38c5924e033a0026fc017b1c792df55f87c598c5783efe25cb62819f"], [7, 3, 1, "", "9:28 515666a67e5b60858568348fd8b4c6021e49484b778d6ccd6c357f9b792643d1"], [7, 3, 1, "", "9:32 3f0f3a193820a8bc83e0d3bc5c7d12596eeec70afc5bb2a86f74329034382fc0"], [7, 3, 1, "", "9:31 388876fffc5a50a274a155691b5fe0142ca2651fe1ce20d17301a9682d3638f6"], [21, 3, 1, "", "8:1 03f55779646bda5f8b813a0bda5a8000aaa7a3f7df2147c58d37a6a19d213825"], [7, 3, 1, "", "9:3 4ef42a17784ccf912f1917cdc894f87abaa5c3ae6bbc330e5d97884670ee69a3"], [11, 3, 1, "", "11:13 1f973a701dba719c9b5c7879e8f7e39c271e60ebd4708b781a5ec557ca35bb6b"], [0, 3, 1, "", "10:4 d0a97d55dc69fb14de940c4597c8ec6cc4d1bdea2efef1f262ca235d4380a078"], [24, 3, 1, "", "19:1 09ef0477163f852006ab72daea7582f28fd5b47b9ec3a4188da6a52a06c1cbb9"], [19, 3, 1, "", "5:8 ee361e573cbe4dbcbc9c1aec4bea99d7af68ce46d7a8f305323fea2d888a73ae"], [8, 3, 1, "", "1:4 11a39a0b407d0ca45db7639f588e85fe27910624c6c508283f983229a6aad5db"], [1, 3, 1, "", "13:3 08694050309ada68c0f9d36f4cf7bf427a740fb2dd1175bd0acf555bedcf4729"], [11, 3, 1, "", "11:8 dd34aa75e7947124723372145385a391a6527acf3d57821cf6bfb3530926d0df"], [19, 3, 1, "", "5:5 32457ed53a0bf4373c4cfb97677b5e208930233d39b87a5accc8c508af6f58ce"], [7, 3, 1, "", "9:22 f01d77c3faa9dafff3f5a3ca3928a29d60e2867a2438140aaaa4cbceb25da31b"], [6, 3, 1, "", "21:7 a0f18eb2fe8db99bebeadf847111b16dfaa78ebdbaec8e8f7b364e6a40966ebf"], [1, 3, 1, "", "13:4 80ab4794df7b97c498adf667d822f03e67802cfa46ac84a9c38967818009cfd1"], [5, 3, 1, "", "6:10 f31c0eca37f5e923bdddeceb52ccea4057f157be662061dd8c4c26b8707dc340"], [11, 3, 1, "", "11:16 8ad70788c23781cfbb4cc77f8e9b280870f2088b7f3522cf5adf7a4030b29b48"], [7, 3, 1, "", "9:38 4eaf3f71fa346f0de97eaef7ae61b54e234608337d12733cee8930cd3a0a16be"], [0, 3, 1, "", "10:26 6e869fbccfae9516ee3421a1571bd880ea5ec5dc5aedb65e32f5a6d2977b7955"], [17, 3, 1, "", "20:3 b37827025945e3ebe09fb51af413ab507e55bef20cbd1cdc0d88bda1e5b31868"], [7, 3, 1, "", "9:8 dc4e670f51d2ee19f4c69b4a53263229e45ace59824443ac01dbd7ba6c7949f5"], [11, 3, 1, "", "11:10 8223ac177e0dcc171dbac1fb21b191141842026a92038b9694be40797d2bdad8"], [0, 3, 1, "", "10:29 4e9d22ccfb80acfdb452f21eaa41d99e8b68d03dbf8ffcaca69016ad6b224e0c"], [0, 3, 1, "", "10:11 1a672e4e07310314b3ed72804595330ecf46d9177808d67beee1497db38edc76"], [0, 3, 1, "", "10:21 d7e3897e8d4d866fe24ed708a542d480dd49b7432f4e1ab2b6e9f83e66beb79c"], [7, 3, 1, "", "9:2 0b7f0bc4680d19a82f2a03e22ab8228330095ac38f768e6138b1fa061209b0cd"], [7, 3, 1, "", "9:24 45189d0422353cd31d5e3d1460ac0bf25731cc9f464574e6acf3ba0a8661dffb"], [7, 3, 1, "", "9:36 c791afca579a283e2645e4a3bf9473606a55028fcaec0a1fca0c5d87bf7db370"], [0, 3, 1, "", "10:18 8fb89c0b3f9ad0065b86652933686cc127a11676e7b59759588bf35bbe56a204"], [25, 3, 1, "", "7:1 1a30c4fd875bd4b58309644a55091eee8d947eb825edf66ca6ed1b979a89b878"], [0, 3, 1, "", "10:17 a13634951f7946c3028793e284d6d7899f718840e70e5b30992ad30aa0b28a82"], [8, 3, 1, "", "1:1 b56c8be8103d8226bbdec210a97ca8f2c38405d36f65f17b15936a1a8284b26c"], [7, 3, 1, "", "9:20 e2ca22f3a68ea69c89d5499ab8bfaff4ea879242e37d601e8b78939484e3fbd9"], [4, 3, 1, "", "16:3 1fd314e20308ba8d525a721f6a9bf050a337f71186510503044dc84efe09173e"], [0, 3, 1, "", "10:1 c48bd96544b685d7b7a7e8a2e676eb1c8ed2066a485c20a48faa1c660ef8bdb7"], [19, 3, 1, "", "5:6 5ac967f09550667532acd0916172717779d286369a004f6e89c12e7852e25bc4"], [0, 3, 1, "", "10:30 6b3108c40f22ac87f1e375b4907dc7e2565fc0fdb570d5e8e87d35f36da764fb"], [25, 3, 1, "", "7:5 01045132eff6e0617d4cca46c1cc3f5d88d56776cf683971fc1530459b7f48fe"], [6, 3, 1, "", "21:1 9dbb89c33be2fd11861ca905be788d903d72880fdf1dece1bc8a63747a947445"], [21, 3, 1, "", "8:6 085c0b250339d5488037ef839a9f6dd3672026ab75232f7a43c422bca728726c"], [4, 3, 1, "", "16:2 f2e56f24b5565d180411f7693f63a3b70001ae9c0e4e605e1bd11ea5c207f968"], [4, 3, 1, "", "16:4 b346390e8119d57549b96dcb345a29235552cdc69a61d7d2c8c883cf6d34ae61"], [11, 3, 1, "", "11:3 28523ce67d9161886a6bbdc6415a2a18a12cac0bd7cf96d2e560d4acaa243c96"], [25, 3, 1, "", "7:6 e4226c8e3ff3c227a9d0de5f8e42ad468c5a93f6fb87c981f7f126d3d5399060"], [7, 3, 1, "", "9:19 b89caf540730b919c47a1f20bdd5dc9302aca3ec99300e25098600be2e706acf"], [21, 3, 1, "", "8:5 82751916e76e8a528dd974fcf8f394553a002d42480c43ef8ca7bd23dec0d51a"], [23, 3, 1, "", "C:1 d13620e441f116ffc694c67b5990b5e9e0bf77e8f8352c60bf9bf92617ff9b77"], [21, 3, 1, "", "8:3 1ea74f2f77df136dd43cf45552f12fb2f6c366bcf10505917c84e5c9f9fd5fd8"], [13, 3, 1, "", "22:5 55a932bf32ca4b5f1f13535ebf918728efa7830451bde120075904c8cc821ff0"], [7, 3, 1, "", "9:1 d85148abd62f72e649abbb14ec33bcf5dd833660e6d429978a1233e8aa19e739"], [5, 3, 1, "", "6:6 a107cb2200785dbcb7690cb3dad0f3467cdb285cffa123b2851edea8be38f609"], [4, 3, 1, "", "16:6 475f3e3082b2760a32589c7540d5123f0459abea622ba1ae15aa53068c337d7b"], [8, 3, 1, "", "1:2 4a8fd448c0e40fd0675f5d82c36b6f963f99259021c6022cc9bd5104c20fbdeb"], [5, 3, 1, "", "6:3 f5ad17e11f73a3a0df6a225d0ea1179b618c499b3b7155fbb00748809fc16a50"], [13, 3, 1, "", "22:3 fb5d9789deafd6c411d8abdd1a60bfdfea453bfbfe713df9016b5b07c26df2c9"], [14, 3, 1, "", "3:2 c820b8889c9e57bcae1988c78c8217a0fcd495f92409b93715942f79e683ae67"], [7, 3, 1, "", "9:17 0b1169bc488b60cf4dba9b24b7d4d453438aaef69d30789b16d3df1094ec74da"], [7, 3, 1, "", "9:7 2119a7ea0e7b937c1318f8b7cb342aea3ec7249cab773a35ff4b8a0701d43f4b"], [0, 3, 1, "", "10:36 9133604a8bdbc61f47a33829fc49829d94f9bb5749c0b6d99dbd05856ecee674"], [19, 3, 1, "", "5:1 fd701b3ef4e17c49416e15bb5e0685b07ec2165ebe338ee5ed86433fe2a1791c"], [2, 3, 1, "", "17:3 5a06090908c3a726a0df6203b3e9f7c460c35609c758b6db09cf2d5c5c753c8e"], [11, 3, 1, "", "11:1 68d68054bfe8ffe57002321f94f09f2c21faac92f10052af0b8ebb6bb2e4bdd4"], [17, 3, 1, "", "20:1 23ad7afdee8d11ed607ec24d3a0e15437d673156ba4b127587b5669f1832653b"], [7, 3, 1, "", "9:21 2f2202efc417e1cd3118f5b446cf8c8a375b6e5f8ebaed72a0201aa9d161578a"], [24, 3, 1, "", "19:10 14f513b2d197bbf061de106591d50be0e1b5efdd28b7b73e3c01a1fd27dc914d"], [24, 3, 1, "", "19:4 509a721d7a591aac4ddac02ca26ef6fc26e0ae40b040578d4282304dbef76b45"], [19, 3, 1, "", "5:3 640a01339d6302f50e834a92db0b99f585848a4dc1dfb4801941267dfe6c1eff"], [8, 3, 1, "", "1:6 8b4dce11b14d66a6a1177ef131384957fe6a887c388d56a1902e09ee60f80af0"], [6, 3, 1, "", "21:2 33f23ecced9a34c5f1aaaa909380603062d763f33056c5a2998e61ba20e81e21"], [7, 3, 1, "", "9:15 af44866222e3ba28adab818deff3cff0fe079c936325cb39ed958ac977eaf988"], [21, 3, 1, "", "8:2 857eb6f6081f30de98150db89a25a25467c0e180b1c3eb19f2786475a5a6e424"], [0, 3, 1, "", "10:25 53bc991f032b9bfaab3cb72189a8ae6d8772250cc7fbaefa3b80bbd25679141f"], [4, 3, 1, "", "16:5 83c2582339039d863409873a919aa3040ed86f444b3a5f5729e9fe0d65313c5e"], [19, 3, 1, "", "5:10 66e6567b6902e8a974dcb281251e03d5341f1fbcd6c52bc6d9398d5b175905b1"], [0, 3, 1, "", "10:12 f83c7a08c44f0dc091a19c1014f202ab5538474a3d818f1583bd138daef33ecf"], [0, 3, 1, "", "10:35 8c0ecdddfa88a992b09009b5167f4dc68b5f53f241a872c2a1e85f8eb610f1e5"], [13, 3, 1, "", "22:1 2ecbb717faf9cd41966fd3fa61c9973605adda7174928d76aeec692e2f57f1e1"], [0, 3, 1, "", "10:3 fda609cdbb71ae52c820019783b3b6858d633fdd6de601cfae585217aeb034aa"], [24, 3, 1, "", "19:8 7740b81deb4cc8d3a5d63073faa941c897de8931c90af82f402d60d8f5cf7ad6"], [7, 3, 1, "", "9:14 afcad007b988dd4e9a7ae77d05318b5818905bf05921cd7d14070abe83ebb9b2"], [7, 3, 1, "", "9:30 45a75ca66fc48e3abbe4a9b46d1599f9ecbcfae9fbc5df35e1b5d8939f41f8c4"], [25, 3, 1, "", "7:3 501fd5dc12d09844a612f32f00e4d5a2dedfdf7a1659cf1e4b1e7aa5ab84d7bb"], [6, 3, 1, "", "21:5 fc67b06bdfa241b1112995e95bea87b539fd31dee8c24e402fcd9d7af65eed2f"], [7, 3, 1, "", "9:41 406115e1f2b804459a7155b5aa521a67fae4b9a11d3d9ee26b45671e0d705fad"], [11, 3, 1, "", "11:4 073aeb6b836eee108b5b6d5a5ded4f1b8df8ab96ec075686dca1d2b7fc6c1b34"], [19, 3, 1, "", "5:2 f11f4d96ce76157d36700b1642b225614023417f88f39e02004f751fa0ceca1c"], [11, 3, 1, "", "11:11 0ecbb270fa78be720b325ddc3197182ea1ca39be3069bd7d37f201389c9b3991"], [0, 3, 1, "", "10:19 22be2f18e00bb9e898293564455031809a4ffbdba44f030bff8af6c23ada5048"], [7, 3, 1, "", "9:34 bbb5147c63bbcc53372207b2b9688b14bf724e4eebf9d6eed8b1c8335bc46339"], [7, 3, 1, "", "9:4 1be13228840af974c47c9d4a16fb932edc3efcbbb1b5a5d8261d4eb3d4db1df5"], [7, 3, 1, "", "9:35 06806b5f2bb00b12d499429e29aa3f6916237f0c54e9136fd16474fae18c14fb"], [11, 3, 1, "", "11:15 7093aa443b2d63b8c3ad1d99dc26a6f1df03d367428b954e62e372eab3d4f569"], [0, 3, 1, "", "10:33 f1864701261d89610bc085bf20379aabb9a7f867190c51deee3b5ab4e0731ab4"], [7, 3, 1, "", "9:12 d44af44daa180c96d7c066dd036be5c2217e9ef54e5440a28226f4155da1fbd9"], [0, 3, 1, "", "10:37 a9ddbf6bc0c06113d12f75ca1fe4401527ac5ff2a0384f375f53b2b7eedc084d"], [2, 3, 1, "", "17:1 58e23287dc1c3ffbe6b2c4672501d222916a129910befc8fadc364de5171c351"], [21, 3, 1, "", "8:4 36cd13cda4653f00db550d04d91838c3dc10bfcbbf15d67f8ba19c0d5ddc297b"], [7, 3, 1, "", "9:29 4ccbc87469f1565c32bef31f5909da4c2b2f1febaf71e3b0216053540e2732c4"], [24, 3, 1, "", "19:2 72911c6efacc1ea81b757fea368ab51b658c5f44690af8bb4bf5076196f02dba"], [7, 3, 1, "", "9:26 a336a489c323ad22b7aa3059350a2400bb8e41f5eef6ce02b17682c438a9fd09"], [0, 3, 1, "", "10:31 c67bd6dc496b87f14e94eac06fb1dd53a785b33748660d90a3455b63b8f15dea"], [5, 3, 1, "", "6:5 d799dd1030ce49998c996f5c45f402da4e7a6d4ace50780e905e20bd758f7cec"], [0, 3, 1, "", "10:7 61134011658677b475c3f8e65ac36ab5b479e0746afd064ac6d0084c0441fbb6"], [24, 3, 1, "", "19:3 ac90013bdfea2c44c2ea16d0d92eb8b7a3b32f33cdb44553018c9de58de2d0ab"], [7, 3, 1, "", "9:16 a6f8a428953b804ae4d9a530c1659087e99139633acc2e99d4315bf792bf123a"], [7, 3, 1, "", "9:9 30e95e18866cbad24af65360f1b5c32deb9410cfedc3a540584b63358a19b385"], [13, 3, 1, "", "22:7 c16628799da95c60a31934e0f2f6de7cb46011a537bb8effa46c86007e1dc6d7"], [15, 3, 1, "", "2:1 c63cd9576e1595dfb4d7d38e0c9732d20c4044d18947914c36952a45f6592248"], [5, 3, 1, "", "6:1 f4a9c891c5f3f7a4164d6c86d796b665f9435bc01fc8bbbbaa59036b553a042b"], [0, 3, 1, "", "10:14 66b5d7677a5542109bcd8f36408c3ed7ec1aca313c4c747fc28557fb2dd3c6c0"], [7, 3, 1, "", "9:42 7527f425026d6c1455709270dbc862fa8c81edae9aa97bbf4c63b854ab77ea04"], [5, 3, 1, "", "6:8 ad39790b9e259799a61ae4c3f59b7b80ad1d7684d19dace1619e68b08df39d1a"], [25, 3, 1, "", "7:2 73bb0dbe94c2f521e89fae4c897fc338813c9175ff4600fed13e41c0b9878e30"], [17, 3, 1, "", "20:4 f947401b4192d1cb447cdbc6dfa662250896c68e1cb0477bdfdbc7dfaf9b809c"], [1, 3, 1, "", "13:1 eff2f3d8085ca2ad43e10aa74acd5fb4de1a71393ec1e3bb69b4da6eca0bac43"], [19, 3, 1, "", "5:9 b70079f33aaa9cb4c2507706bdb13c9e8beed748288a7751770b7aa4309c17bf"], [11, 3, 1, "", "11:7 74cac3914710c2f1a1f624a3c5a1c9aaf33da46b9946695f9bee4eaeb22c5e42"], [25, 3, 1, "", "7:4 d4a5c1906b3bbe1c9d809c9d1156e75673a511153eedc4950f47fb135b6a59a8"], [14, 3, 1, "", "3:1 7828a434b91eb775a25b624f9c2c6e10d5b02ed8e26529f7471e4a787e24e10f"], [24, 3, 1, "", "19:9 bb058285e28804f8335348bcfa3c28e0f032f4346bc2aaf52a67145036233241"], [6, 3, 1, "", "21:4 b297f2f7182e518adc328b76e8e51549d74fd016d982e945f3afad959b8e4fee"], [0, 3, 1, "", "10:9 6f1791ecd8b47dfbf50561704cc838d8b0e544cf7c69b576dd48120715a47166"], [8, 3, 1, "", "1:5 cd1b728c4e56af1dd90836a76afce9239d07ea2aa3095cbeedf8693a22f14caf"], [8, 3, 1, "", "1:8 1e02dbccc64818a6cebcc7d6331d8281a24621e813178d0f5be9d0b3356c7a22"], [19, 3, 1, "", "5:7 d92c5c133b1308dfee746f9722cc628be4cc1b150f3f387c0d2c08e961e687fb"], [0, 3, 1, "", "10:16 b5024c3cf8ba9c9ff0e7a6bd05ae96c8f7c64599e2eaec349fae2ca6767f4bab"], [2, 3, 1, "", "17:2 60786d66db9926333e9768b0cc8aa490ff764f600fdbdb389912f9e85add0678"], [8, 3, 1, "", "1:3 02be35a62aff5e48d56d3fb05c75ade724aff55d6ad8278715bd7fac8adbe03f"], [24, 3, 1, "", "19:7 08016621bfd496b3d4c162d71caf6c3033c213bf9b52662adf1137b696285b4b"], [7, 3, 1, "", "9:5 e7bbdbb6cf00db43de1e27fe5b39e71062d7737351b11ee44c1f02ab45beabfb"], [11, 3, 1, "", "11:5 6d7038fd93f535f1a95c93f6917f3cebd5b30ad181afde8d89173856ec36d502"], [13, 3, 1, "", "22:4 4b4a76da9d4b5011fcbcd054fffc111ce72238f797e8cf7b2bbbccec650c24c3"], [7, 3, 1, "", "9:18 b82bf4578023aa2218ec01202b93d193cbb48fd8b53d740a5c9d3bb482caaf10"], [0, 3, 1, "", "10:27 915d230d994ce8e745b1083bb75cb58b37ac8537af7fd5486a86d1314cb353d0"], [4, 3, 1, "", "16:1 d0dadbee084de3030e81aaf2325ea8878e99a72e77800a2662c1fe290bbc9d62"], [0, 3, 1, "", "10:5 a21d4472dc9edff52ba6084426735486e96547a9916ebbf6041810119a4ca7aa"], [7, 3, 1, "", "9:39 dc35e76e01d0f08b81b61a7c8861a422fa2dc8a5d44ce4557affba712d088d61"], [0, 3, 1, "", "10:6 a5074f92b70f64ed6d002c08f65bfa91a814cf5b80b19137743ca62a12bda2b6"], [0, 3, 1, "", "10:34 a56737ff1c2a54b21dd0325776e037cb33b634928cad055fc83c168e8513e490"], [0, 3, 1, "", "10:23 ef01e780fac2b6784fa9e17636be1c17d599f8831949c44ad35251b17052c1a3"], [0, 3, 1, "", "10:32 1d3e0acf8e8b25427b6a4179ef6f36b9c9be2060806f8a4532c85d38970a854f"], [0, 3, 1, "", "10:20 9647e6f192f7a123a465887f651e66f32b17c903edd98aa87c48510b16acd40f"], [7, 3, 1, "", "9:13 e007c5d5fe350258fe85248f1a507b573c634bb18cf907d6b83babb1a8a98f5d"], [5, 3, 1, "", "6:4 34930eb5f41ade165e8e2dcedc1cdbeb285b107f659a41466184f4809258e759"], [24, 3, 1, "", "19:11 c476883b58a5e4480fa0505d41dc097727812f40edf56fd7a46f4fd3595ee2f3"], [1, 3, 1, "", "13:2 dd933aff5339727903dca2ff3f8484b0c000fdda5ab4ef729319db3dd76c9f10"], [7, 3, 1, "", "9:23 a8e601de98599b419876278ab5521c5cc49ae6bfdacfe061350c283e236e211f"], [7, 3, 1, "", "9:6 d6307364051e9afc70d6e0e3e277a7a096ecb2eb1db51e356303d7ee87537a12"], [11, 3, 1, "", "11:2 a88885418df7946e8facb892e33e099cc8789c354fbf7bd977f460e40ec2089d"], [11, 3, 1, "", "11:14 94597e560f592f649b38ef27778a62819bc7e5c2e01faa0ef53fa29225d8083c"], [0, 3, 1, "", "10:24 3b7142bcde18f322ffa41b2c57c18446ab40aa8a6612d601b48ec17273ad3d94"], [7, 3, 1, "", "9:10 2205b3649789767c105c262228a48536d8d9af2734351fcab5e8650eed044f19"], [11, 3, 1, "", "11:12 7ec52a2c02f0e55bea6e0a3c728c22e5720e34bdeabc0740d52707774946acbe"], [0, 3, 1, "", "10:38 17b593b8d0cb4dacc6eb9d143a7e49048a6708d07c811e2595e8cfbb89483827"], [10, 0, 1, "term_for_loop", "for_loop"], [10, 0, 1, "term_for_loop_expression", "for_loop_expression"], [10, 0, 1, "term_foreign_function_interface", "foreign_function_interface"], [1, 0, 1, "term_foreign_function_interface_attribute", "foreign_function_interface_attribute"], [22, 1, 1, "syntax_forgenericparameterlist", "forgenericparameterlist"], [5, 1, 1, "syntax_forloopexpression", "forloopexpression"], [10, 0, 1, "term_fragment_specifier", "fragment_specifier"], [17, 0, 1, "term_fragment_specifier_restriction", "fragment_specifier_restriction"], [10, 0, 1, "term_full_range_expression", "full_range_expression"], [10, 0, 1, "term_function", "function"], [10, 0, 1, "term_function_body", "function_body"], [10, 0, 1, "term_function_item_type", "function_item_type"], [10, 0, 1, "term_function_lifetime_elision", "function_lifetime_elision"], [10, 0, 1, "term_function_like_macro", "function_like_macro"], [10, 0, 1, "term_function_parameter", "function_parameter"], [5, 0, 1, "term_function_pointer_to_address_cast", "function_pointer_to_address_cast"], [5, 0, 1, "term_function_pointer_to_pointer_cast", "function_pointer_to_pointer_cast"], [10, 0, 1, "term_function_pointer_type", "function_pointer_type"], [10, 0, 1, "term_function_pointer_type_parameter", "function_pointer_type_parameter"], [10, 0, 1, "term_function_qualifier", "function_qualifier"], [10, 0, 1, "term_function_signature", "function_signature"], [10, 0, 1, "term_function_type", "function_type"], [7, 1, 1, "syntax_functionbody", "functionbody"], [7, 1, 1, "syntax_functiondeclaration", "functiondeclaration"], [7, 1, 1, "syntax_functionparameter", "functionparameter"], [7, 1, 1, "syntax_functionparameterlist", "functionparameterlist"], [7, 1, 1, "syntax_functionparameterpattern", "functionparameterpattern"], [7, 1, 1, "syntax_functionparametervariadicpart", "functionparametervariadicpart"], [22, 1, 1, "syntax_functionpointertypeparameter", "functionpointertypeparameter"], [22, 1, 1, "syntax_functionpointertypeparameterlist", "functionpointertypeparameterlist"], [22, 1, 1, "syntax_functionpointertypequalifierlist", "functionpointertypequalifierlist"], [22, 1, 1, "syntax_functionpointertypespecification", "functionpointertypespecification"], [7, 1, 1, "syntax_functionqualifierlist", "functionqualifierlist"], [10, 0, 1, "term_fundamental", "fundamental"], [10, 0, 1, "term_future", "future"], [10, 0, 1, "term_future_operand", "future_operand"], [5, 1, 1, "syntax_futureoperand", "futureoperand"], [10, 0, 1, "term_generic_argument", "generic_argument"], [10, 0, 1, "term_generic_associated_type", "generic_associated_type"], [10, 0, 1, "term_generic_conformance", "generic_conformance"], [10, 0, 1, "term_generic_enum", "generic_enum"], [10, 0, 1, "term_generic_function", "generic_function"], [10, 0, 1, "term_generic_implementation", "generic_implementation"], [10, 0, 1, "term_generic_parameter", "generic_parameter"], [10, 0, 1, "term_generic_parameter_scope", "generic_parameter_scope"], [10, 0, 1, "term_generic_struct", "generic_struct"], [10, 0, 1, "term_generic_substitution", "generic_substitution"], [10, 0, 1, "term_generic_trait", "generic_trait"], [10, 0, 1, "term_generic_type", "generic_type"], [10, 0, 1, "term_generic_type_alias", "generic_type_alias"], [10, 0, 1, "term_generic_union", "generic_union"], [9, 1, 1, "syntax_genericargument", "genericargument"], [9, 1, 1, "syntax_genericargumentlist", "genericargumentlist"], [9, 1, 1, "syntax_genericparameter", "genericparameter"], [9, 1, 1, "syntax_genericparameterlist", "genericparameterlist"], [10, 0, 1, "term_glob_import", "glob_import"], [1, 2, 1, "codeterm_global_allocator", "global_allocator"], [10, 0, 1, "term_global_path", "global_path"], [10, 0, 1, "term_global_type_variable", "global_type_variable"], [1, 1, 1, "syntax_globalallocatorcontent", "globalallocatorcontent"], [13, 1, 1, "syntax_globalasmarguments", "globalasmarguments"], [3, 1, 1, "syntax_globimport", "globimport"], [10, 0, 1, "term_greater_than_expression", "greater_than_expression"], [10, 0, 1, "term_greater_than_or_equals_expression", "greater_than_or_equals_expression"], [5, 1, 1, "syntax_greaterthanexpression", "greaterthanexpression"], [5, 1, 1, "syntax_greaterthanorequalsexpression", "greaterthanorequalsexpression"], [10, 0, 1, "term_half_open_range_pattern", "half_open_range_pattern"], [19, 1, 1, "syntax_halfopenrangepattern", "halfopenrangepattern"], [1, 1, 1, "syntax_helperattributelist", "helperattributelist"], [10, 0, 1, "term_hexadecimal_literal", "hexadecimal_literal"], [15, 1, 1, "syntax_hexadecimaldigit", "hexadecimaldigit"], [15, 1, 1, "syntax_hexadecimaldigitorunderscore", "hexadecimaldigitorunderscore"], [15, 1, 1, "syntax_hexadecimalliteral", "hexadecimalliteral"], [10, 0, 1, "term_higher_ranked_trait_bound", "higher_ranked_trait_bound"], [10, 0, 1, "term_hygiene", "hygiene"], [10, 0, 1, "term_hygienic", "hygienic"], [10, 2, 1, "codeterm_i128", "i128"], [10, 2, 1, "codeterm_i16", "i16"], [10, 2, 1, "codeterm_i32", "i32"], [10, 2, 1, "codeterm_i64", "i64"], [10, 2, 1, "codeterm_i8", "i8"], [15, 1, 1, "syntax_identifier", "identifier"], [10, 0, 1, "term_identifier", "identifier"], [10, 0, 1, "term_identifier_pattern", "identifier_pattern"], [19, 0, 1, "term_identifier_pattern_matching", "identifier_pattern_matching"], [15, 1, 1, "syntax_identifierlist", "identifierlist"], [15, 1, 1, "syntax_identifierorunderscore", "identifierorunderscore"], [19, 1, 1, "syntax_identifierpattern", "identifierpattern"], [10, 0, 1, "term_if_expression", "if_expression"], [10, 0, 1, "term_if_let_expression", "if_let_expression"], [5, 1, 1, "syntax_ifexpression", "ifexpression"], [5, 1, 1, "syntax_ifletexpression", "ifletexpression"], [1, 2, 1, "codeterm_ignore", "ignore"], [1, 1, 1, "syntax_ignorecontent", "ignorecontent"], [1, 1, 1, "syntax_ignorereason", "ignorereason"], [10, 0, 1, "term_immutable", "immutable"], [10, 0, 1, "term_immutable_borrow", "immutable_borrow"], [10, 0, 1, "term_immutable_borrow_expression", "immutable_borrow_expression"], [10, 0, 1, "term_immutable_place_expression", "immutable_place_expression"], [10, 0, 1, "term_immutable_place_expression_context", "immutable_place_expression_context"], [10, 0, 1, "term_immutable_raw_pointer_type", "immutable_raw_pointer_type"], [10, 0, 1, "term_immutable_reference", "immutable_reference"], [10, 0, 1, "term_immutable_static", "immutable_static"], [10, 0, 1, "term_immutable_variable", "immutable_variable"], [10, 0, 1, "term_impl_header_lifetime_elision", "impl_header_lifetime_elision"], [10, 0, 1, "term_impl_trait_type", "impl_trait_type"], [11, 1, 1, "syntax_implementation", "implementation"], [10, 0, 1, "term_implementation", "implementation"], [10, 0, 1, "term_implementation_body", "implementation_body"], [10, 0, 1, "term_implementation_coherence", "implementation_coherence"], [10, 0, 1, "term_implementation_conformance", "implementation_conformance"], [11, 1, 1, "syntax_implementationbody", "implementationbody"], [10, 0, 1, "term_implemented_trait", "implemented_trait"], [11, 1, 1, "syntax_implementedtrait", "implementedtrait"], [10, 0, 1, "term_implementing_type", "implementing_type"], [11, 1, 1, "syntax_implementingtype", "implementingtype"], [10, 0, 1, "term_implicit_borrow", "implicit_borrow"], [10, 0, 1, "term_implicitly_declared_entity", "implicitly_declared_entity"], [10, 0, 1, "term_implied_bound", "implied_bound"], [22, 1, 1, "syntax_impltraittypespecification", "impltraittypespecification"], [22, 1, 1, "syntax_impltraittypespecificationonebound", "impltraittypespecificationonebound"], [3, 0, 1, "term_import_path_prefix", "import_path_prefix"], [1, 1, 1, "syntax_importedmacrolist", "importedmacrolist"], [10, 0, 1, "term_in_scope", "in_scope"], [10, 0, 1, "term_inclusive_range_pattern", "inclusive_range_pattern"], [19, 1, 1, "syntax_inclusiverangepattern", "inclusiverangepattern"], [10, 0, 1, "term_incomplete_associated_constant", "incomplete_associated_constant"], [10, 0, 1, "term_incomplete_associated_function", "incomplete_associated_function"], [10, 0, 1, "term_incomplete_associated_type", "incomplete_associated_type"], [10, 0, 1, "term_index_expression", "index_expression"], [10, 0, 1, "term_indexable_type", "indexable_type"], [10, 0, 1, "term_indexed_deconstructor", "indexed_deconstructor"], [10, 0, 1, "term_indexed_field_selector", "indexed_field_selector"], [10, 0, 1, "term_indexed_initializer", "indexed_initializer"], [10, 0, 1, "term_indexed_operand", "indexed_operand"], [19, 1, 1, "syntax_indexeddeconstructor", "indexeddeconstructor"], [5, 1, 1, "syntax_indexedfieldselector", "indexedfieldselector"], [5, 1, 1, "syntax_indexedinitializer", "indexedinitializer"], [5, 1, 1, "syntax_indexedoperand", "indexedoperand"], [5, 1, 1, "syntax_indexexpression", "indexexpression"], [10, 0, 1, "term_indexing_operand", "indexing_operand"], [5, 1, 1, "syntax_indexingoperand", "indexingoperand"], [10, 0, 1, "term_indirection_type", "indirection_type"], [10, 0, 1, "term_inert_attribute", "inert_attribute"], [10, 0, 1, "term_inferred_type", "inferred_type"], [22, 1, 1, "syntax_inferredtype", "inferredtype"], [10, 0, 1, "term_infinite_loop", "infinite_loop"], [10, 0, 1, "term_infinite_loop_expression", "infinite_loop_expression"], [5, 1, 1, "syntax_infiniteloopexpression", "infiniteloopexpression"], [10, 0, 1, "term_inherent_implementation", "inherent_implementation"], [11, 1, 1, "syntax_inherentimplementation", "inherentimplementation"], [10, 0, 1, "term_initialization", "initialization"], [10, 0, 1, "term_initialization_expression", "initialization_expression"], [10, 0, 1, "term_initialization_type", "initialization_type"], [22, 1, 1, "syntax_initializationtype", "initializationtype"], [18, 0, 1, "term_initialized", "initialized"], [1, 2, 1, "codeterm_inline", "inline"], [10, 0, 1, "term_inline_assembly", "inline_assembly"], [10, 0, 1, "term_inline_module", "inline_module"], [1, 1, 1, "syntax_inlinecontent", "inlinecontent"], [1, 0, 1, "term_inlined", "inlined"], [1, 1, 1, "syntax_inlinehint", "inlinehint"], [20, 1, 1, "syntax_inlinemodulespecification", "inlinemodulespecification"], [1, 0, 1, "term_inlining", "inlining"], [10, 0, 1, "term_inner_attribute", "inner_attribute"], [10, 0, 1, "term_inner_block_doc", "inner_block_doc"], [10, 0, 1, "term_inner_doc_comment", "inner_doc_comment"], [10, 0, 1, "term_inner_line_doc", "inner_line_doc"], [1, 1, 1, "syntax_innerattribute", "innerattribute"], [1, 1, 1, "syntax_innerattributeordoc", "innerattributeordoc"], [15, 1, 1, "syntax_innerblockdoc", "innerblockdoc"], [1, 1, 1, "syntax_innerbuiltinattribute", "innerbuiltinattribute"], [15, 1, 1, "syntax_innerlinedoc", "innerlinedoc"], [22, 0, 1, "term_input_lifetime", "input_lifetime"], [10, 0, 1, "term_input_output_register_expression", "input_output_register_expression"], [10, 0, 1, "term_input_register", "input_register"], [10, 0, 1, "term_input_register_expression", "input_register_expression"], [13, 1, 1, "syntax_inputoutputregisterexpression", "inputoutputregisterexpression"], [13, 1, 1, "syntax_inputregisterexpression", "inputregisterexpression"], [10, 0, 1, "term_integer_literal", "integer_literal"], [10, 0, 1, "term_integer_suffix", "integer_suffix"], [10, 0, 1, "term_integer_type", "integer_type"], [10, 0, 1, "term_integer_type_variable", "integer_type_variable"], [15, 1, 1, "syntax_integercontent", "integercontent"], [15, 1, 1, "syntax_integerliteral", "integerliteral"], [15, 1, 1, "syntax_integersuffix", "integersuffix"], [10, 0, 1, "term_interior_mutability", "interior_mutability"], [10, 0, 1, "term_intermediate_match_arm", "intermediate_match_arm"], [5, 1, 1, "syntax_intermediatematcharm", "intermediatematcharm"], [22, 0, 1, "term_invariant", "invariant"], [10, 0, 1, "term_irrefutable_constant", "irrefutable_constant"], [10, 0, 1, "term_irrefutable_pattern", "irrefutable_pattern"], [10, 2, 1, "codeterm_isize", "isize"], [14, 1, 1, "syntax_item", "item"], [10, 0, 1, "term_item", "item"], [10, 0, 1, "term_item_scope", "item_scope"], [10, 0, 1, "term_item_statement", "item_statement"], [14, 1, 1, "syntax_itemwithvisibility", "itemwithvisibility"], [10, 0, 1, "term_iteration_expression", "iteration_expression"], [5, 1, 1, "syntax_iterationexpression", "iterationexpression"], [15, 1, 1, "syntax_keyword", "keyword"], [10, 0, 1, "term_keyword", "keyword"], [5, 1, 1, "syntax_label", "label"], [10, 0, 1, "term_label", "label"], [10, 0, 1, "term_label_indication", "label_indication"], [3, 0, 1, "term_label_namespace", "label_namespace"], [10, 0, 1, "term_label_scope", "label_scope"], [5, 1, 1, "syntax_labelindication", "labelindication"], [3, 0, 1, "term_language_prelude", "language_prelude"], [10, 0, 1, "term_layout", "layout"], [10, 0, 1, "term_lazy_and_expression", "lazy_and_expression"], [10, 0, 1, "term_lazy_boolean_expression", "lazy_boolean_expression"], [10, 0, 1, "term_lazy_or_expression", "lazy_or_expression"], [5, 1, 1, "syntax_lazyandexpression", "lazyandexpression"], [5, 1, 1, "syntax_lazybooleanexpression", "lazybooleanexpression"], [5, 1, 1, "syntax_lazyorexpression", "lazyorexpression"], [22, 0, 1, "term_least_upper_bound_coercion", "least_upper_bound_coercion"], [10, 0, 1, "term_left_operand", "left_operand"], [5, 1, 1, "syntax_leftoperand", "leftoperand"], [10, 0, 1, "term_less_than_expression", "less_than_expression"], [10, 0, 1, "term_less_than_or_equals_expression", "less_than_or_equals_expression"], [5, 1, 1, "syntax_lessthanexpression", "lessthanexpression"], [5, 1, 1, "syntax_lessthanorequalsexpression", "lessthanorequalsexpression"], [10, 0, 1, "term_let_initializer", "let_initializer"], [10, 0, 1, "term_let_statement", "let_statement"], [21, 1, 1, "syntax_letinitializer", "letinitializer"], [21, 1, 1, "syntax_letstatement", "letstatement"], [10, 0, 1, "term_lexical_element", "lexical_element"], [15, 1, 1, "syntax_lexicalelement", "lexicalelement"], [10, 0, 1, "term_library_crate", "library_crate"], [22, 1, 1, "syntax_lifetime", "lifetime"], [10, 0, 1, "term_lifetime", "lifetime"], [10, 0, 1, "term_lifetime_argument", "lifetime_argument"], [10, 0, 1, "term_lifetime_bound", "lifetime_bound"], [10, 0, 1, "term_lifetime_bound_predicate", "lifetime_bound_predicate"], [10, 0, 1, "term_lifetime_elision", "lifetime_elision"], [3, 0, 1, "term_lifetime_namespace", "lifetime_namespace"], [10, 0, 1, "term_lifetime_parameter", "lifetime_parameter"], [10, 0, 1, "term_lifetime_variable", "lifetime_variable"], [9, 1, 1, "syntax_lifetimeargument", "lifetimeargument"], [9, 1, 1, "syntax_lifetimeboundpredicate", "lifetimeboundpredicate"], [22, 1, 1, "syntax_lifetimeindication", "lifetimeindication"], [22, 1, 1, "syntax_lifetimeindicationlist", "lifetimeindicationlist"], [9, 1, 1, "syntax_lifetimeparameter", "lifetimeparameter"], [1, 0, 1, "term_limits_attribute", "limits_attribute"], [10, 0, 1, "term_line", "line"], [10, 0, 1, "term_line_comment", "line_comment"], [15, 1, 1, "syntax_linecomment", "linecomment"], [15, 1, 1, "syntax_linecommentordoc", "linecommentordoc"], [1, 2, 1, "codeterm_link", "link"], [1, 2, 1, "codeterm_link_name", "link_name"], [1, 2, 1, "codeterm_link_ordinal", "link_ordinal"], [1, 2, 1, "codeterm_link_section", "link_section"], [1, 1, 1, "syntax_linkcontent", "linkcontent"], [1, 1, 1, "syntax_linknamecontent", "linknamecontent"], [1, 1, 1, "syntax_linkoption", "linkoption"], [1, 1, 1, "syntax_linkordinalcontent", "linkordinalcontent"], [1, 1, 1, "syntax_linksectioncontent", "linksectioncontent"], [15, 1, 1, "syntax_literal", "literal"], [10, 0, 1, "term_literal", "literal"], [10, 0, 1, "term_literal_expression", "literal_expression"], [10, 0, 1, "term_literal_pattern", "literal_pattern"], [19, 0, 1, "term_literal_pattern_matching", "literal_pattern_matching"], [5, 1, 1, "syntax_literalexpression", "literalexpression"], [19, 1, 1, "syntax_literalpattern", "literalpattern"], [10, 0, 1, "term_local_trait", "local_trait"], [10, 0, 1, "term_local_type", "local_type"], [10, 0, 1, "term_local_variable", "local_variable"], [10, 0, 1, "term_loop", "loop"], [10, 0, 1, "term_loop_body", "loop_body"], [10, 0, 1, "term_loop_expression", "loop_expression"], [5, 1, 1, "syntax_loopbody", "loopbody"], [5, 1, 1, "syntax_loopcontent", "loopcontent"], [5, 1, 1, "syntax_loopexpression", "loopexpression"], [10, 0, 1, "term_macro", "macro"], [1, 0, 1, "term_macro_attribute", "macro_attribute"], [10, 0, 1, "term_macro_expansion", "macro_expansion"], [1, 2, 1, "codeterm_macro_export", "macro_export"], [10, 0, 1, "term_macro_implementation_function", "macro_implementation_function"], [10, 0, 1, "term_macro_invocation", "macro_invocation"], [10, 0, 1, "term_macro_match", "macro_match"], [10, 0, 1, "term_macro_matcher", "macro_matcher"], [10, 0, 1, "term_macro_matching", "macro_matching"], [3, 0, 1, "term_macro_namespace", "macro_namespace"], [10, 0, 1, "term_macro_repetition", "macro_repetition"], [10, 0, 1, "term_macro_repetition_in_matching", "macro_repetition_in_matching"], [10, 0, 1, "term_macro_repetition_in_transcription", "macro_repetition_in_transcription"], [10, 0, 1, "term_macro_rule", "macro_rule"], [10, 0, 1, "term_macro_statement", "macro_statement"], [10, 0, 1, "term_macro_transcriber", "macro_transcriber"], [10, 0, 1, "term_macro_transcription", "macro_transcription"], [1, 2, 1, "codeterm_macro_use", "macro_use"], [3, 0, 1, "term_macro_use_prelude", "macro_use_prelude"], [1, 1, 1, "syntax_macroexportcontent", "macroexportcontent"], [17, 1, 1, "syntax_macrofragmentspecifier", "macrofragmentspecifier"], [17, 1, 1, "syntax_macroinvocation", "macroinvocation"], [14, 1, 1, "syntax_macroitem", "macroitem"], [17, 1, 1, "syntax_macromatch", "macromatch"], [17, 1, 1, "syntax_macromatcher", "macromatcher"], [17, 1, 1, "syntax_macromatchtoken", "macromatchtoken"], [17, 1, 1, "syntax_macrometavariable", "macrometavariable"], [17, 1, 1, "syntax_macrometavariableindication", "macrometavariableindication"], [17, 1, 1, "syntax_macrometavariablematch", "macrometavariablematch"], [17, 1, 1, "syntax_macrorepetitionmatch", "macrorepetitionmatch"], [17, 1, 1, "syntax_macrorepetitionmatchcontent", "macrorepetitionmatchcontent"], [17, 1, 1, "syntax_macrorepetitionoperator", "macrorepetitionoperator"], [17, 1, 1, "syntax_macrorepetitionseparator", "macrorepetitionseparator"], [17, 1, 1, "syntax_macrorepetitiontranscriber", "macrorepetitiontranscriber"], [17, 1, 1, "syntax_macrorule", "macrorule"], [17, 1, 1, "syntax_macrorulelist", "macrorulelist"], [17, 1, 1, "syntax_macrorulesdeclaration", "macrorulesdeclaration"], [17, 1, 1, "syntax_macrorulesdefinition", "macrorulesdefinition"], [17, 1, 1, "syntax_macrotranscriber", "macrotranscriber"], [1, 1, 1, "syntax_macrousecontent", "macrousecontent"], [10, 0, 1, "term_main_function", "main_function"], [10, 0, 1, "term_match_arm", "match_arm"], [10, 0, 1, "term_match_arm_body", "match_arm_body"], [10, 0, 1, "term_match_arm_guard", "match_arm_guard"], [10, 0, 1, "term_match_arm_matcher", "match_arm_matcher"], [10, 0, 1, "term_match_expression", "match_expression"], [5, 1, 1, "syntax_matcharmguard", "matcharmguard"], [5, 1, 1, "syntax_matcharmlist", "matcharmlist"], [5, 1, 1, "syntax_matcharmmatcher", "matcharmmatcher"], [5, 0, 1, "term_matched_argument_operand", "matched_argument_operand"], [19, 0, 1, "term_matched_indexed_deconstructor", "matched_indexed_deconstructor"], [5, 0, 1, "term_matched_indexed_initializer", "matched_indexed_initializer"], [19, 0, 1, "term_matched_named_deconstructor", "matched_named_deconstructor"], [5, 0, 1, "term_matched_named_initializer", "matched_named_initializer"], [19, 0, 1, "term_matched_shorthand_deconstructor", "matched_shorthand_deconstructor"], [5, 0, 1, "term_matched_shorthand_initializer", "matched_shorthand_initializer"], [19, 0, 1, "term_matched_tuple_struct_subpattern", "matched_tuple_struct_subpattern"], [19, 0, 1, "term_matched_tuple_subpattern", "matched_tuple_subpattern"], [5, 1, 1, "syntax_matchexpression", "matchexpression"], [10, 0, 1, "term_metavariable", "metavariable"], [10, 0, 1, "term_metavariable_indication", "metavariable_indication"], [10, 0, 1, "term_method", "method"], [10, 0, 1, "term_method_call_expression", "method_call_expression"], [10, 0, 1, "term_method_operand", "method_operand"], [10, 0, 1, "term_method_resolution", "method_resolution"], [3, 0, 1, "term_method_resolution_implementation_candidate_lookup", "method_resolution_implementation_candidate_lookup"], [3, 0, 1, "term_method_resolution_inherent_implementation_candidate_lookup", "method_resolution_inherent_implementation_candidate_lookup"], [3, 0, 1, "term_method_resolution_receiver_candidate_lookup", "method_resolution_receiver_candidate_lookup"], [3, 0, 1, "term_method_resolution_trait_implementation_candidate_lookup", "method_resolution_trait_implementation_candidate_lookup"], [5, 1, 1, "syntax_methodcallexpression", "methodcallexpression"], [5, 1, 1, "syntax_methodoperand", "methodoperand"], [10, 0, 1, "term_mixed_site_hygiene", "mixed_site_hygiene"], [10, 0, 1, "term_modifying_operand", "modifying_operand"], [5, 1, 1, "syntax_modifyingoperand", "modifyingoperand"], [10, 0, 1, "term_module", "module"], [1, 0, 1, "term_module_path", "module_path"], [20, 1, 1, "syntax_moduledeclaration", "moduledeclaration"], [1, 0, 1, "term_modules_attribute", "modules_attribute"], [20, 1, 1, "syntax_modulespecification", "modulespecification"], [10, 0, 1, "term_move_type", "move_type"], [10, 0, 1, "term_multi_segment_path", "multi_segment_path"], [10, 0, 1, "term_multiplication_assignment", "multiplication_assignment"], [10, 0, 1, "term_multiplication_assignment_expression", "multiplication_assignment_expression"], [10, 0, 1, "term_multiplication_expression", "multiplication_expression"], [5, 1, 1, "syntax_multiplicationassignmentexpression", "multiplicationassignmentexpression"], [5, 1, 1, "syntax_multiplicationexpression", "multiplicationexpression"], [10, 0, 1, "term_mutability", "mutability"], [10, 0, 1, "term_mutable", "mutable"], [10, 0, 1, "term_mutable_assignee_expression", "mutable_assignee_expression"], [10, 0, 1, "term_mutable_binding", "mutable_binding"], [10, 0, 1, "term_mutable_borrow", "mutable_borrow"], [10, 0, 1, "term_mutable_borrow_expression", "mutable_borrow_expression"], [10, 0, 1, "term_mutable_place_expression", "mutable_place_expression"], [10, 0, 1, "term_mutable_place_expression_context", "mutable_place_expression_context"], [10, 0, 1, "term_mutable_raw_pointer_type", "mutable_raw_pointer_type"], [10, 0, 1, "term_mutable_reference", "mutable_reference"], [10, 0, 1, "term_mutable_reference_type", "mutable_reference_type"], [10, 0, 1, "term_mutable_static", "mutable_static"], [10, 0, 1, "term_mutable_variable", "mutable_variable"], [3, 1, 1, "syntax_name", "name"], [10, 0, 1, "term_name", "name"], [10, 0, 1, "term_named_block_expression", "named_block_expression"], [10, 0, 1, "term_named_deconstructor", "named_deconstructor"], [10, 0, 1, "term_named_field_selector", "named_field_selector"], [10, 0, 1, "term_named_initializer", "named_initializer"], [10, 0, 1, "term_named_loop_expression", "named_loop_expression"], [10, 0, 1, "term_named_register_argument", "named_register_argument"], [5, 1, 1, "syntax_namedblockexpression", "namedblockexpression"], [19, 1, 1, "syntax_nameddeconstructor", "nameddeconstructor"], [5, 1, 1, "syntax_namedfieldselector", "namedfieldselector"], [5, 1, 1, "syntax_namedinitializer", "namedinitializer"], [10, 0, 1, "term_namespace", "namespace"], [3, 0, 1, "term_namespace_context", "namespace_context"], [10, 0, 1, "term_namespace_qualifier", "namespace_qualifier"], [10, 0, 1, "term_nan_boxing", "nan_boxing"], [1, 1, 1, "syntax_nativelibraryname", "nativelibraryname"], [1, 1, 1, "syntax_nativelibrarynamewithkind", "nativelibrarynamewithkind"], [1, 1, 1, "syntax_nativelibraykind", "nativelibraykind"], [1, 1, 1, "syntax_nativelibraykindtype", "nativelibraykindtype"], [10, 0, 1, "term_negation_expression", "negation_expression"], [5, 1, 1, "syntax_negationexpression", "negationexpression"], [5, 1, 1, "syntax_negationoperator", "negationoperator"], [15, 1, 1, "syntax_nestedrawbytestringcontent", "nestedrawbytestringcontent"], [15, 1, 1, "syntax_nestedrawstringcontent", "nestedrawstringcontent"], [10, 0, 1, "term_nesting_import", "nesting_import"], [3, 1, 1, "syntax_nestingimport", "nestingimport"], [10, 0, 1, "term_never_type", "never_type"], [22, 1, 1, "syntax_nevertype", "nevertype"], [20, 1, 1, "syntax_newline", "newline"], [1, 2, 1, "codeterm_no_builtins", "no_builtins"], [1, 2, 1, "codeterm_no_implicit_prelude", "no_implicit_prelude"], [1, 2, 1, "codeterm_no_link", "no_link"], [1, 2, 1, "codeterm_no_main", "no_main"], [1, 2, 1, "codeterm_no_mangle", "no_mangle"], [1, 2, 1, "codeterm_no_std", "no_std"], [1, 1, 1, "syntax_nobinutilscontent", "nobinutilscontent"], [1, 1, 1, "syntax_noimplicitpreludecontent", "noimplicitpreludecontent"], [1, 1, 1, "syntax_nolinkcontent", "nolinkcontent"], [1, 1, 1, "syntax_nomaincontent", "nomaincontent"], [1, 1, 1, "syntax_nomanglecontent", "nomanglecontent"], [1, 2, 1, "codeterm_non_exhaustive", "non_exhaustive"], [1, 0, 1, "term_non_exhaustive_type", "non_exhaustive_type"], [1, 0, 1, "term_non_exhaustive_variant", "non_exhaustive_variant"], [10, 0, 1, "term_non_reference_pattern", "non_reference_pattern"], [17, 1, 1, "syntax_nondelimitedtoken", "nondelimitedtoken"], [1, 1, 1, "syntax_nonexhaustivecontent", "nonexhaustivecontent"], [15, 1, 1, "syntax_nonkeywordidentifier", "nonkeywordidentifier"], [1, 1, 1, "syntax_nostdcontent", "nostdcontent"], [10, 0, 1, "term_not_configuration_predicate", "not_configuration_predicate"], [10, 0, 1, "term_not_equals_expression", "not_equals_expression"], [5, 1, 1, "syntax_notequalsexpression", "notequalsexpression"], [10, 2, 1, "codeterm_null", "null"], [5, 0, 1, "term_numeric_cast", "numeric_cast"], [10, 0, 1, "term_numeric_literal", "numeric_literal"], [10, 0, 1, "term_numeric_type", "numeric_type"], [15, 1, 1, "syntax_numericliteral", "numericliteral"], [10, 0, 1, "term_object_safe", "object_safe"], [10, 0, 1, "term_object_safety", "object_safety"], [22, 0, 1, "term_obligation", "obligation"], [10, 0, 1, "term_obsolete_range_pattern", "obsolete_range_pattern"], [19, 1, 1, "syntax_obsoleterangepattern", "obsoleterangepattern"], [10, 0, 1, "term_octal_literal", "octal_literal"], [15, 1, 1, "syntax_octaldigit", "octaldigit"], [15, 1, 1, "syntax_octaldigitorunderscore", "octaldigitorunderscore"], [15, 1, 1, "syntax_octalliteral", "octalliteral"], [5, 1, 1, "syntax_operand", "operand"], [10, 0, 1, "term_operand", "operand"], [10, 0, 1, "term_operator_expression", "operator_expression"], [5, 1, 1, "syntax_operatorexpression", "operatorexpression"], [10, 0, 1, "term_opt_out_trait_bound", "opt_out_trait_bound"], [13, 1, 1, "syntax_option", "option"], [13, 1, 1, "syntax_optionlist", "optionlist"], [10, 0, 1, "term_outer_attribute", "outer_attribute"], [10, 0, 1, "term_outer_block_doc", "outer_block_doc"], [10, 0, 1, "term_outer_doc_comment", "outer_doc_comment"], [10, 0, 1, "term_outer_line_doc", "outer_line_doc"], [1, 1, 1, "syntax_outerattribute", "outerattribute"], [1, 1, 1, "syntax_outerattributeordoc", "outerattributeordoc"], [15, 1, 1, "syntax_outerblockdoc", "outerblockdoc"], [1, 1, 1, "syntax_outerbuiltinattribute", "outerbuiltinattribute"], [15, 1, 1, "syntax_outerlinedoc", "outerlinedoc"], [10, 0, 1, "term_outline_module", "outline_module"], [20, 1, 1, "syntax_outlinemodulespecification", "outlinemodulespecification"], [10, 0, 1, "term_outlives_bound", "outlives_bound"], [22, 0, 1, "term_output_lifetime", "output_lifetime"], [10, 0, 1, "term_output_register", "output_register"], [10, 0, 1, "term_output_register_expression", "output_register_expression"], [13, 1, 1, "syntax_outputregisterexpression", "outputregisterexpression"], [10, 0, 1, "term_overlap", "overlap"], [10, 0, 1, "term_owner", "owner"], [10, 0, 1, "term_ownership", "ownership"], [10, 0, 1, "term_panic", "panic"], [1, 2, 1, "codeterm_panic_handler", "panic_handler"], [1, 1, 1, "syntax_panichandlercontent", "panichandlercontent"], [10, 0, 1, "term_parenthesized_expression", "parenthesized_expression"], [10, 0, 1, "term_parenthesized_pattern", "parenthesized_pattern"], [19, 0, 1, "term_parenthesized_pattern_matching", "parenthesized_pattern_matching"], [10, 0, 1, "term_parenthesized_type", "parenthesized_type"], [5, 1, 1, "syntax_parenthesizedexpression", "parenthesizedexpression"], [19, 1, 1, "syntax_parenthesizedpattern", "parenthesizedpattern"], [22, 1, 1, "syntax_parenthesizedtraitbound", "parenthesizedtraitbound"], [22, 1, 1, "syntax_parenthesizedtypespecification", "parenthesizedtypespecification"], [10, 0, 1, "term_partially_hygienic", "partially_hygienic"], [10, 0, 1, "term_passing_convention", "passing_convention"], [1, 2, 1, "codeterm_path", "path"], [10, 0, 1, "term_path", "path"], [10, 0, 1, "term_path_expression", "path_expression"], [10, 0, 1, "term_path_expression_resolution", "path_expression_resolution"], [3, 0, 1, "term_path_expression_resolution_implementation_candidate_lookup", "path_expression_resolution_implementation_candidate_lookup"], [3, 0, 1, "term_path_expression_resolution_inherent_implementation_candidate_lookup", "path_expression_resolution_inherent_implementation_candidate_lookup"], [3, 0, 1, "term_path_expression_resolution_trait_implementation_candidate_lookup", "path_expression_resolution_trait_implementation_candidate_lookup"], [10, 0, 1, "term_path_pattern", "path_pattern"], [19, 0, 1, "term_path_pattern_matching", "path_pattern_matching"], [3, 0, 1, "term_path_prefix", "path_prefix"], [10, 0, 1, "term_path_resolution", "path_resolution"], [10, 0, 1, "term_path_segment", "path_segment"], [1, 1, 1, "syntax_pathcontent", "pathcontent"], [5, 1, 1, "syntax_pathexpression", "pathexpression"], [3, 1, 1, "syntax_pathexpressionsegment", "pathexpressionsegment"], [19, 1, 1, "syntax_pathpattern", "pathpattern"], [3, 1, 1, "syntax_pathsegment", "pathsegment"], [19, 1, 1, "syntax_pattern", "pattern"], [10, 0, 1, "term_pattern", "pattern"], [10, 0, 1, "term_pattern_matching", "pattern_matching"], [10, 0, 1, "term_pattern_without_alternation", "pattern_without_alternation"], [10, 0, 1, "term_pattern_without_range", "pattern_without_range"], [19, 1, 1, "syntax_patternlist", "patternlist"], [19, 1, 1, "syntax_patternwithoutalternation", "patternwithoutalternation"], [19, 1, 1, "syntax_patternwithoutrange", "patternwithoutrange"], [10, 0, 1, "term_place", "place"], [10, 0, 1, "term_place_expression", "place_expression"], [10, 0, 1, "term_place_expression_context", "place_expression_context"], [10, 0, 1, "term_plane", "plane"], [10, 0, 1, "term_pointer", "pointer"], [5, 0, 1, "term_pointer_to_address_cast", "pointer_to_address_cast"], [10, 0, 1, "term_pointer_type", "pointer_type"], [10, 0, 1, "term_positional_register_argument", "positional_register_argument"], [10, 0, 1, "term_precedence", "precedence"], [10, 0, 1, "term_prelude", "prelude"], [1, 0, 1, "term_prelude_attribute", "prelude_attribute"], [10, 0, 1, "term_prelude_entity", "prelude_entity"], [10, 0, 1, "term_prelude_name", "prelude_name"], [10, 0, 1, "term_primitive_representation", "primitive_representation"], [5, 0, 1, "term_primitive_to_integer_cast", "primitive_to_integer_cast"], [1, 1, 1, "syntax_primitiverepresentation", "primitiverepresentation"], [10, 0, 1, "term_private_visibility", "private_visibility"], [1, 2, 1, "codeterm_proc_macro", "proc_macro"], [1, 2, 1, "codeterm_proc_macro_attribute", "proc_macro_attribute"], [10, 0, 1, "term_proc_macro_crate", "proc_macro_crate"], [1, 2, 1, "codeterm_proc_macro_derive", "proc_macro_derive"], [10, 0, 1, "term_procedural_macro", "procedural_macro"], [1, 1, 1, "syntax_procmacroattributecontent", "procmacroattributecontent"], [1, 1, 1, "syntax_procmacrocontent", "procmacrocontent"], [1, 1, 1, "syntax_procmacroderivecontent", "procmacroderivecontent"], [10, 0, 1, "term_public_visibility", "public_visibility"], [15, 1, 1, "syntax_punctuation", "punctuation"], [10, 0, 1, "term_punctuator", "punctuator"], [10, 0, 1, "term_pure_identifier", "pure_identifier"], [15, 1, 1, "syntax_pureidentifier", "pureidentifier"], [3, 0, 1, "term_qualified_fn_trait", "qualified_fn_trait"], [10, 0, 1, "term_qualified_path_expression", "qualified_path_expression"], [10, 0, 1, "term_qualified_type", "qualified_type"], [10, 0, 1, "term_qualified_type_path", "qualified_type_path"], [3, 1, 1, "syntax_qualifiedfntrait", "qualifiedfntrait"], [3, 1, 1, "syntax_qualifiedpathexpression", "qualifiedpathexpression"], [3, 1, 1, "syntax_qualifiedtype", "qualifiedtype"], [3, 1, 1, "syntax_qualifiedtypepath", "qualifiedtypepath"], [10, 0, 1, "term_qualifying_trait", "qualifying_trait"], [3, 1, 1, "syntax_qualifyingtrait", "qualifyingtrait"], [10, 0, 1, "term_range_expression", "range_expression"], [10, 0, 1, "term_range_expression_high_bound", "range_expression_high_bound"], [10, 0, 1, "term_range_expression_low_bound", "range_expression_low_bound"], [10, 0, 1, "term_range_from_expression", "range_from_expression"], [10, 0, 1, "term_range_from_to_expression", "range_from_to_expression"], [10, 0, 1, "term_range_full_expression", "range_full_expression"], [10, 0, 1, "term_range_inclusive_expression", "range_inclusive_expression"], [10, 0, 1, "term_range_pattern", "range_pattern"], [10, 0, 1, "term_range_pattern_bound", "range_pattern_bound"], [10, 0, 1, "term_range_pattern_high_bound", "range_pattern_high_bound"], [10, 0, 1, "term_range_pattern_low_bound", "range_pattern_low_bound"], [19, 0, 1, "term_range_pattern_matching", "range_pattern_matching"], [10, 0, 1, "term_range_to_expression", "range_to_expression"], [10, 0, 1, "term_range_to_inclusive_expression", "range_to_inclusive_expression"], [5, 1, 1, "syntax_rangeexpression", "rangeexpression"], [5, 1, 1, "syntax_rangeexpressionhighbound", "rangeexpressionhighbound"], [5, 1, 1, "syntax_rangeexpressionlowbound", "rangeexpressionlowbound"], [5, 1, 1, "syntax_rangefromexpression", "rangefromexpression"], [5, 1, 1, "syntax_rangefromtoexpression", "rangefromtoexpression"], [5, 1, 1, "syntax_rangefullexpression", "rangefullexpression"], [5, 1, 1, "syntax_rangeinclusiveexpression", "rangeinclusiveexpression"], [19, 1, 1, "syntax_rangepattern", "rangepattern"], [19, 1, 1, "syntax_rangepatternbound", "rangepatternbound"], [19, 1, 1, "syntax_rangepatternhighbound", "rangepatternhighbound"], [19, 1, 1, "syntax_rangepatternlowbound", "rangepatternlowbound"], [5, 1, 1, "syntax_rangetoexpression", "rangetoexpression"], [5, 1, 1, "syntax_rangetoinclusiveexpression", "rangetoinclusiveexpression"], [10, 0, 1, "term_raw_byte_string_literal", "raw_byte_string_literal"], [10, 0, 1, "term_raw_pointer", "raw_pointer"], [10, 0, 1, "term_raw_pointer_type", "raw_pointer_type"], [10, 0, 1, "term_raw_string_literal", "raw_string_literal"], [15, 1, 1, "syntax_rawbytestringcontent", "rawbytestringcontent"], [15, 1, 1, "syntax_rawbytestringliteral", "rawbytestringliteral"], [15, 1, 1, "syntax_rawidentifier", "rawidentifier"], [15, 1, 1, "syntax_rawidentifierkeyword", "rawidentifierkeyword"], [22, 1, 1, "syntax_rawpointertypespecification", "rawpointertypespecification"], [15, 1, 1, "syntax_rawstringcontent", "rawstringcontent"], [15, 1, 1, "syntax_rawstringliteral", "rawstringliteral"], [10, 0, 1, "term_reachable_control_flow_path", "reachable_control_flow_path"], [10, 0, 1, "term_receiver_operand", "receiver_operand"], [3, 0, 1, "term_receiver_type", "receiver_type"], [5, 1, 1, "syntax_receiveroperand", "receiveroperand"], [10, 0, 1, "term_record_enum_variant", "record_enum_variant"], [10, 0, 1, "term_record_struct", "record_struct"], [10, 0, 1, "term_record_struct_field", "record_struct_field"], [10, 0, 1, "term_record_struct_pattern", "record_struct_pattern"], [19, 0, 1, "term_record_struct_pattern_matching", "record_struct_pattern_matching"], [10, 0, 1, "term_record_struct_type", "record_struct_type"], [10, 0, 1, "term_record_struct_value", "record_struct_value"], [22, 1, 1, "syntax_recordstructdeclaration", "recordstructdeclaration"], [22, 1, 1, "syntax_recordstructfield", "recordstructfield"], [22, 1, 1, "syntax_recordstructfieldlist", "recordstructfieldlist"], [19, 1, 1, "syntax_recordstructpattern", "recordstructpattern"], [19, 1, 1, "syntax_recordstructpatterncontent", "recordstructpatterncontent"], [19, 1, 1, "syntax_recordstructrestpattern", "recordstructrestpattern"], [1, 2, 1, "codeterm_recursion_limit", "recursion_limit"], [1, 1, 1, "syntax_recursionlimitcontent", "recursionlimitcontent"], [10, 0, 1, "term_recursive_type", "recursive_type"], [10, 0, 1, "term_reference", "reference"], [10, 0, 1, "term_reference_identifier_pattern", "reference_identifier_pattern"], [10, 0, 1, "term_reference_pattern", "reference_pattern"], [19, 0, 1, "term_reference_pattern_matching", "reference_pattern_matching"], [10, 0, 1, "term_reference_type", "reference_type"], [19, 1, 1, "syntax_referencepattern", "referencepattern"], [22, 1, 1, "syntax_referencetypespecification", "referencetypespecification"], [10, 0, 1, "term_referent", "referent"], [10, 0, 1, "term_refutability", "refutability"], [10, 0, 1, "term_refutable_constant", "refutable_constant"], [10, 0, 1, "term_refutable_pattern", "refutable_pattern"], [10, 0, 1, "term_refutable_type", "refutable_type"], [10, 0, 1, "term_register", "register"], [10, 0, 1, "term_register_argument", "register_argument"], [10, 0, 1, "term_register_class", "register_class"], [10, 0, 1, "term_register_class_argument", "register_class_argument"], [10, 0, 1, "term_register_class_name", "register_class_name"], [10, 0, 1, "term_register_expression", "register_expression"], [10, 0, 1, "term_register_name", "register_name"], [10, 0, 1, "term_register_parameter", "register_parameter"], [10, 0, 1, "term_register_parameter_modifier", "register_parameter_modifier"], [13, 1, 1, "syntax_registerargument", "registerargument"], [13, 1, 1, "syntax_registerclassname", "registerclassname"], [13, 1, 1, "syntax_registerexpression", "registerexpression"], [13, 1, 1, "syntax_registername", "registername"], [10, 0, 1, "term_remainder_assignment", "remainder_assignment"], [10, 0, 1, "term_remainder_assignment_expression", "remainder_assignment_expression"], [10, 0, 1, "term_remainder_expression", "remainder_expression"], [5, 1, 1, "syntax_remainderassignmentexpression", "remainderassignmentexpression"], [5, 1, 1, "syntax_remainderexpression", "remainderexpression"], [15, 1, 1, "syntax_renaming", "renaming"], [10, 0, 1, "term_renaming", "renaming"], [10, 0, 1, "term_repeat_operand", "repeat_operand"], [5, 1, 1, "syntax_repeatoperand", "repeatoperand"], [17, 0, 1, "term_repetition_index", "repetition_index"], [10, 0, 1, "term_repetition_operator", "repetition_operator"], [1, 2, 1, "codeterm_repr", "repr"], [1, 1, 1, "syntax_reprcontent", "reprcontent"], [1, 1, 1, "syntax_representation", "representation"], [10, 0, 1, "term_representation_modifier", "representation_modifier"], [1, 1, 1, "syntax_representationkind", "representationkind"], [10, 0, 1, "term_reserved_keyword", "reserved_keyword"], [15, 1, 1, "syntax_reservedkeyword", "reservedkeyword"], [10, 0, 1, "term_resolution", "resolution"], [3, 0, 1, "term_resolution_context", "resolution_context"], [10, 0, 1, "term_rest_pattern", "rest_pattern"], [19, 1, 1, "syntax_restpattern", "restpattern"], [10, 0, 1, "term_return_expression", "return_expression"], [10, 0, 1, "term_return_type", "return_type"], [5, 1, 1, "syntax_returnexpression", "returnexpression"], [7, 1, 1, "syntax_returntype", "returntype"], [5, 1, 1, "syntax_returntypewithoutbounds", "returntypewithoutbounds"], [10, 0, 1, "term_right_operand", "right_operand"], [5, 1, 1, "syntax_rightoperand", "rightoperand"], [10, 0, 1, "term_rule_matching", "rule_matching"], [1, 0, 1, "term_runtime_attribute", "runtime_attribute"], [6, 0, 1, "term_rust_abi", "rust_abi"], [10, 0, 1, "term_rustc", "rustc"], [10, 0, 1, "term_safety_invariant", "safety_invariant"], [10, 0, 1, "term_scalar_type", "scalar_type"], [10, 0, 1, "term_scope", "scope"], [10, 0, 1, "term_scope_hierarchy", "scope_hierarchy"], [3, 0, 1, "term_scoping_construct", "scoping_construct"], [10, 0, 1, "term_selected_field", "selected_field"], [10, 2, 1, "codeterm_self", "self"], [10, 0, 1, "term_self_parameter", "self_parameter"], [10, 0, 1, "term_self_public_modifier", "self_public_modifier"], [10, 0, 1, "term_self_scope", "self_scope"], [7, 1, 1, "syntax_selfparameter", "selfparameter"], [3, 1, 1, "syntax_selfpublicmodifier", "selfpublicmodifier"], [10, 0, 1, "term_send_type", "send_type"], [10, 0, 1, "term_separator", "separator"], [10, 0, 1, "term_sequence_type", "sequence_type"], [10, 0, 1, "term_shadowed", "shadowed"], [10, 0, 1, "term_shadowing", "shadowing"], [10, 0, 1, "term_shared_borrow", "shared_borrow"], [10, 0, 1, "term_shared_reference", "shared_reference"], [10, 0, 1, "term_shared_reference_type", "shared_reference_type"], [20, 1, 1, "syntax_shebang", "shebang"], [10, 0, 1, "term_shift_left_assignment", "shift_left_assignment"], [10, 0, 1, "term_shift_left_assignment_expression", "shift_left_assignment_expression"], [10, 0, 1, "term_shift_left_expression", "shift_left_expression"], [10, 0, 1, "term_shift_right_assignment", "shift_right_assignment"], [10, 0, 1, "term_shift_right_assignment_expression", "shift_right_assignment_expression"], [10, 0, 1, "term_shift_right_expression", "shift_right_expression"], [5, 1, 1, "syntax_shiftleftassignmentexpression", "shiftleftassignmentexpression"], [5, 1, 1, "syntax_shiftleftexpression", "shiftleftexpression"], [5, 1, 1, "syntax_shiftrightassignmentexpression", "shiftrightassignmentexpression"], [5, 1, 1, "syntax_shiftrightexpression", "shiftrightexpression"], [10, 0, 1, "term_shorthand_deconstructor", "shorthand_deconstructor"], [10, 0, 1, "term_shorthand_initializer", "shorthand_initializer"], [19, 1, 1, "syntax_shorthanddeconstructor", "shorthanddeconstructor"], [5, 1, 1, "syntax_shorthandinitializer", "shorthandinitializer"], [7, 1, 1, "syntax_shorthandself", "shorthandself"], [1, 2, 1, "codeterm_should_panic", "should_panic"], [1, 1, 1, "syntax_shouldpaniccontent", "shouldpaniccontent"], [10, 0, 1, "term_signed_integer_type", "signed_integer_type"], [15, 1, 1, "syntax_signedintegersuffix", "signedintegersuffix"], [5, 1, 1, "syntax_signnegationoperator", "signnegationoperator"], [10, 0, 1, "term_simple_byte_string_literal", "simple_byte_string_literal"], [10, 0, 1, "term_simple_import", "simple_import"], [3, 0, 1, "term_simple_import_path", "simple_import_path"], [10, 0, 1, "term_simple_path", "simple_path"], [10, 0, 1, "term_simple_path_prefix", "simple_path_prefix"], [10, 0, 1, "term_simple_path_public_modifier", "simple_path_public_modifier"], [10, 0, 1, "term_simple_path_resolution", "simple_path_resolution"], [10, 0, 1, "term_simple_public_modifier", "simple_public_modifier"], [15, 0, 1, "term_simple_punctuator", "simple_punctuator"], [10, 0, 1, "term_simple_register_expression", "simple_register_expression"], [10, 0, 1, "term_simple_string_literal", "simple_string_literal"], [15, 1, 1, "syntax_simplebytestringcharacter", "simplebytestringcharacter"], [15, 1, 1, "syntax_simplebytestringcontent", "simplebytestringcontent"], [15, 1, 1, "syntax_simplebytestringliteral", "simplebytestringliteral"], [3, 1, 1, "syntax_simpleimport", "simpleimport"], [3, 1, 1, "syntax_simplepath", "simplepath"], [3, 1, 1, "syntax_simplepathlist", "simplepathlist"], [3, 1, 1, "syntax_simplepathprefix", "simplepathprefix"], [3, 1, 1, "syntax_simplepathpublicmodifier", "simplepathpublicmodifier"], [3, 1, 1, "syntax_simplepathsegment", "simplepathsegment"], [3, 1, 1, "syntax_simplepublicmodifier", "simplepublicmodifier"], [13, 1, 1, "syntax_simpleregisterexpression", "simpleregisterexpression"], [15, 1, 1, "syntax_simplestringcharacter", "simplestringcharacter"], [15, 1, 1, "syntax_simplestringcontent", "simplestringcontent"], [15, 1, 1, "syntax_simplestringliteral", "simplestringliteral"], [10, 0, 1, "term_single_segment_path", "single_segment_path"], [10, 0, 1, "term_size", "size"], [10, 0, 1, "term_size_operand", "size_operand"], [10, 0, 1, "term_sized_type", "sized_type"], [5, 1, 1, "syntax_sizeoperand", "sizeoperand"], [10, 0, 1, "term_slice", "slice"], [10, 0, 1, "term_slice_pattern", "slice_pattern"], [19, 0, 1, "term_slice_pattern_matching", "slice_pattern_matching"], [10, 0, 1, "term_slice_type", "slice_type"], [19, 1, 1, "syntax_slicepattern", "slicepattern"], [22, 1, 1, "syntax_slicetypespecification", "slicetypespecification"], [10, 0, 1, "term_source_file", "source_file"], [20, 1, 1, "syntax_sourcefile", "sourcefile"], [5, 0, 1, "term_specialized_cast", "specialized_cast"], [21, 1, 1, "syntax_statement", "statement"], [10, 0, 1, "term_statement", "statement"], [5, 1, 1, "syntax_statementlist", "statementlist"], [10, 0, 1, "term_static", "static"], [10, 0, 1, "term_static_initializer", "static_initializer"], [10, 0, 1, "term_static_lifetime_elision", "static_lifetime_elision"], [25, 1, 1, "syntax_staticdeclaration", "staticdeclaration"], [25, 1, 1, "syntax_staticinitializer", "staticinitializer"], [10, 2, 1, "codeterm_str", "str"], [10, 0, 1, "term_strict_keyword", "strict_keyword"], [15, 1, 1, "syntax_strictkeyword", "strictkeyword"], [10, 0, 1, "term_string_literal", "string_literal"], [15, 1, 1, "syntax_stringcontinuation", "stringcontinuation"], [15, 1, 1, "syntax_stringliteral", "stringliteral"], [10, 0, 1, "term_struct", "struct"], [10, 0, 1, "term_struct_expression", "struct_expression"], [10, 0, 1, "term_struct_field", "struct_field"], [10, 0, 1, "term_struct_pattern", "struct_pattern"], [10, 0, 1, "term_struct_type", "struct_type"], [10, 0, 1, "term_struct_value", "struct_value"], [22, 1, 1, "syntax_structdeclaration", "structdeclaration"], [5, 1, 1, "syntax_structexpression", "structexpression"], [5, 1, 1, "syntax_structexpressioncontent", "structexpressioncontent"], [19, 1, 1, "syntax_structpattern", "structpattern"], [10, 0, 1, "term_structurally_equal", "structurally_equal"], [10, 0, 1, "term_subexpression", "subexpression"], [10, 0, 1, "term_subject_expression", "subject_expression"], [10, 0, 1, "term_subject_let_expression", "subject_let_expression"], [5, 1, 1, "syntax_subjectexpression", "subjectexpression"], [5, 1, 1, "syntax_subjectletexpression", "subjectletexpression"], [10, 0, 1, "term_subpattern", "subpattern"], [1, 1, 1, "syntax_subsystemkind", "subsystemkind"], [10, 0, 1, "term_subtraction_assignment", "subtraction_assignment"], [10, 0, 1, "term_subtraction_assignment_expression", "subtraction_assignment_expression"], [10, 0, 1, "term_subtraction_expression", "subtraction_expression"], [5, 1, 1, "syntax_subtractionassignmentexpression", "subtractionassignmentexpression"], [5, 1, 1, "syntax_subtractionexpression", "subtractionexpression"], [10, 0, 1, "term_subtrait", "subtrait"], [10, 0, 1, "term_subtype", "subtype"], [10, 0, 1, "term_subtyping", "subtyping"], [10, 0, 1, "term_suffixed_float", "suffixed_float"], [10, 0, 1, "term_suffixed_integer", "suffixed_integer"], [10, 0, 1, "term_super_public_modifier", "super_public_modifier"], [3, 1, 1, "syntax_superpublicmodifier", "superpublicmodifier"], [10, 0, 1, "term_supertrait", "supertrait"], [22, 1, 1, "syntax_supertraitlist", "supertraitlist"], [10, 0, 1, "term_sync_type", "sync_type"], [10, 0, 1, "term_syntactic_category", "syntactic_category"], [10, 0, 1, "term_tail_expression", "tail_expression"], [1, 2, 1, "codeterm_target_feature", "target_feature"], [5, 0, 1, "term_target_type", "target_type"], [1, 1, 1, "syntax_targetfeaturecontent", "targetfeaturecontent"], [10, 0, 1, "term_temporary", "temporary"], [10, 0, 1, "term_terminated", "terminated"], [10, 0, 1, "term_terminated_macro_invocation", "terminated_macro_invocation"], [17, 1, 1, "syntax_terminatedmacroinvocation", "terminatedmacroinvocation"], [1, 2, 1, "codeterm_test", "test"], [1, 1, 1, "syntax_testcontent", "testcontent"], [1, 0, 1, "term_testing_attribute", "testing_attribute"], [1, 0, 1, "term_testing_function", "testing_function"], [10, 0, 1, "term_textual_macro_scope", "textual_macro_scope"], [10, 0, 1, "term_textual_type", "textual_type"], [10, 0, 1, "term_thin_pointer", "thin_pointer"], [10, 0, 1, "term_thin_pointer_type", "thin_pointer_type"], [10, 0, 1, "term_token", "token"], [10, 0, 1, "term_token_matching", "token_matching"], [17, 1, 1, "syntax_tokentree", "tokentree"], [1, 2, 1, "codeterm_track_caller", "track_caller"], [1, 1, 1, "syntax_trackcallercontent", "trackcallercontent"], [10, 0, 1, "term_trait", "trait"], [10, 0, 1, "term_trait_body", "trait_body"], [10, 0, 1, "term_trait_bound", "trait_bound"], [10, 0, 1, "term_trait_implementation", "trait_implementation"], [10, 0, 1, "term_trait_object_lifetime_elision", "trait_object_lifetime_elision"], [10, 0, 1, "term_trait_object_type", "trait_object_type"], [10, 0, 1, "term_trait_type", "trait_type"], [22, 1, 1, "syntax_traitbody", "traitbody"], [22, 1, 1, "syntax_traitbound", "traitbound"], [22, 1, 1, "syntax_traitdeclaration", "traitdeclaration"], [11, 1, 1, "syntax_traitimplementation", "traitimplementation"], [22, 1, 1, "syntax_traitobjecttypespecification", "traitobjecttypespecification"], [22, 1, 1, "syntax_traitobjecttypespecificationonebound", "traitobjecttypespecificationonebound"], [10, 0, 1, "term_transparent_representation", "transparent_representation"], [10, 0, 1, "term_trivial_predicate", "trivial_predicate"], [10, 0, 1, "term_tuple", "tuple"], [10, 0, 1, "term_tuple_enum_variant", "tuple_enum_variant"], [10, 0, 1, "term_tuple_enum_variant_value", "tuple_enum_variant_value"], [10, 0, 1, "term_tuple_expression", "tuple_expression"], [10, 0, 1, "term_tuple_field", "tuple_field"], [10, 0, 1, "term_tuple_initializer", "tuple_initializer"], [10, 0, 1, "term_tuple_pattern", "tuple_pattern"], [19, 0, 1, "term_tuple_pattern_matching", "tuple_pattern_matching"], [10, 0, 1, "term_tuple_struct", "tuple_struct"], [10, 0, 1, "term_tuple_struct_call_expression", "tuple_struct_call_expression"], [10, 0, 1, "term_tuple_struct_field", "tuple_struct_field"], [10, 0, 1, "term_tuple_struct_pattern", "tuple_struct_pattern"], [19, 0, 1, "term_tuple_struct_pattern_matching", "tuple_struct_pattern_matching"], [10, 0, 1, "term_tuple_struct_type", "tuple_struct_type"], [10, 0, 1, "term_tuple_struct_value", "tuple_struct_value"], [10, 0, 1, "term_tuple_type", "tuple_type"], [5, 1, 1, "syntax_tupleexpression", "tupleexpression"], [22, 1, 1, "syntax_tuplefield", "tuplefield"], [22, 1, 1, "syntax_tuplefieldlist", "tuplefieldlist"], [5, 1, 1, "syntax_tupleinitializerlist", "tupleinitializerlist"], [19, 1, 1, "syntax_tuplepattern", "tuplepattern"], [22, 1, 1, "syntax_tuplestructdeclaration", "tuplestructdeclaration"], [22, 1, 1, "syntax_tuplestructfield", "tuplestructfield"], [22, 1, 1, "syntax_tuplestructfieldlist", "tuplestructfieldlist"], [19, 1, 1, "syntax_tuplestructpattern", "tuplestructpattern"], [22, 1, 1, "syntax_tupletypespecification", "tupletypespecification"], [10, 0, 1, "term_type", "type"], [10, 0, 1, "term_type_alias", "type_alias"], [10, 0, 1, "term_type_argument", "type_argument"], [10, 0, 1, "term_type_ascription", "type_ascription"], [1, 0, 1, "term_type_attribute", "type_attribute"], [10, 0, 1, "term_type_bound_predicate", "type_bound_predicate"], [10, 0, 1, "term_type_cast_expression", "type_cast_expression"], [10, 0, 1, "term_type_coercion", "type_coercion"], [10, 0, 1, "term_type_inference", "type_inference"], [10, 0, 1, "term_type_inference_root", "type_inference_root"], [1, 2, 1, "codeterm_type_length_limit", "type_length_limit"], [3, 0, 1, "term_type_namespace", "type_namespace"], [10, 0, 1, "term_type_parameter", "type_parameter"], [10, 0, 1, "term_type_parameter_initializer", "type_parameter_initializer"], [10, 0, 1, "term_type_parameter_type", "type_parameter_type"], [10, 0, 1, "term_type_path", "type_path"], [10, 0, 1, "term_type_path_resolution", "type_path_resolution"], [10, 0, 1, "term_type_representation", "type_representation"], [10, 0, 1, "term_type_specification", "type_specification"], [10, 0, 1, "term_type_unification", "type_unification"], [10, 0, 1, "term_type_variable", "type_variable"], [22, 1, 1, "syntax_typealiasdeclaration", "typealiasdeclaration"], [9, 1, 1, "syntax_typeargument", "typeargument"], [22, 1, 1, "syntax_typeascription", "typeascription"], [22, 1, 1, "syntax_typebound", "typebound"], [22, 1, 1, "syntax_typeboundlist", "typeboundlist"], [9, 1, 1, "syntax_typeboundpredicate", "typeboundpredicate"], [5, 1, 1, "syntax_typecastexpression", "typecastexpression"], [7, 1, 1, "syntax_typedself", "typedself"], [1, 1, 1, "syntax_typelengthlimitcontent", "typelengthlimitcontent"], [9, 1, 1, "syntax_typeparameter", "typeparameter"], [9, 1, 1, "syntax_typeparameterinitializer", "typeparameterinitializer"], [3, 1, 1, "syntax_typepath", "typepath"], [3, 1, 1, "syntax_typepathsegment", "typepathsegment"], [22, 1, 1, "syntax_typespecification", "typespecification"], [22, 1, 1, "syntax_typespecificationlist", "typespecificationlist"], [22, 1, 1, "syntax_typespecificationwithoutbounds", "typespecificationwithoutbounds"], [10, 2, 1, "codeterm_u128", "u128"], [10, 2, 1, "codeterm_u16", "u16"], [10, 2, 1, "codeterm_u32", "u32"], [10, 2, 1, "codeterm_u64", "u64"], [10, 2, 1, "codeterm_u8", "u8"], [5, 0, 1, "term_u8_to_char_cast", "u8_to_char_cast"], [10, 0, 1, "term_unary_operator", "unary_operator"], [10, 0, 1, "term_undefined_behavior", "undefined_behavior"], [10, 0, 1, "term_under_resolution", "under_resolution"], [10, 0, 1, "term_underscore_expression", "underscore_expression"], [10, 0, 1, "term_underscore_pattern", "underscore_pattern"], [19, 0, 1, "term_underscore_pattern_matching", "underscore_pattern_matching"], [5, 1, 1, "syntax_underscoreexpression", "underscoreexpression"], [19, 1, 1, "syntax_underscorepattern", "underscorepattern"], [10, 0, 1, "term_unhygienic", "unhygienic"], [10, 0, 1, "term_unicode", "unicode"], [15, 1, 1, "syntax_unicodeescape", "unicodeescape"], [10, 0, 1, "term_unifiable", "unifiable"], [10, 0, 1, "term_unifiable_type", "unifiable_type"], [10, 0, 1, "term_unified_type", "unified_type"], [10, 0, 1, "term_unify", "unify"], [18, 0, 1, "term_uninitialized", "uninitialized"], [10, 0, 1, "term_union", "union"], [10, 0, 1, "term_union_field", "union_field"], [10, 0, 1, "term_union_type", "union_type"], [10, 0, 1, "term_union_value", "union_value"], [22, 1, 1, "syntax_uniondeclaration", "uniondeclaration"], [10, 0, 1, "term_unique_immutable_reference", "unique_immutable_reference"], [10, 0, 1, "term_unit_enum_variant", "unit_enum_variant"], [10, 0, 1, "term_unit_struct", "unit_struct"], [10, 0, 1, "term_unit_struct_constant", "unit_struct_constant"], [10, 0, 1, "term_unit_struct_type", "unit_struct_type"], [10, 0, 1, "term_unit_struct_value", "unit_struct_value"], [10, 0, 1, "term_unit_tuple", "unit_tuple"], [10, 0, 1, "term_unit_type", "unit_type"], [10, 0, 1, "term_unit_value", "unit_value"], [22, 1, 1, "syntax_unitstructdeclaration", "unitstructdeclaration"], [10, 0, 1, "term_unnamed_constant", "unnamed_constant"], [10, 0, 1, "term_unnamed_lifetime", "unnamed_lifetime"], [10, 0, 1, "term_unqualified_path_expression", "unqualified_path_expression"], [3, 1, 1, "syntax_unqualifiedpathexpression", "unqualifiedpathexpression"], [10, 0, 1, "term_unsafe_block", "unsafe_block"], [10, 0, 1, "term_unsafe_block_expression", "unsafe_block_expression"], [10, 0, 1, "term_unsafe_context", "unsafe_context"], [10, 0, 1, "term_unsafe_function", "unsafe_function"], [10, 0, 1, "term_unsafe_function_item_type", "unsafe_function_item_type"], [10, 0, 1, "term_unsafe_function_pointer_type", "unsafe_function_pointer_type"], [10, 0, 1, "term_unsafe_operation", "unsafe_operation"], [10, 0, 1, "term_unsafe_rust", "unsafe_rust"], [10, 0, 1, "term_unsafe_trait", "unsafe_trait"], [10, 0, 1, "term_unsafe_trait_implementation", "unsafe_trait_implementation"], [5, 1, 1, "syntax_unsafeblockexpression", "unsafeblockexpression"], [10, 0, 1, "term_unsafety", "unsafety"], [10, 0, 1, "term_unsigned_integer_type", "unsigned_integer_type"], [15, 1, 1, "syntax_unsignedintegersuffix", "unsignedintegersuffix"], [10, 0, 1, "term_unsized_coercion", "unsized_coercion"], [10, 0, 1, "term_unsized_type", "unsized_type"], [10, 0, 1, "term_unsuffixed_float", "unsuffixed_float"], [10, 0, 1, "term_unsuffixed_integer", "unsuffixed_integer"], [10, 0, 1, "term_use_import", "use_import"], [1, 2, 1, "codeterm_used", "used"], [1, 1, 1, "syntax_usedcontent", "usedcontent"], [3, 1, 1, "syntax_useimport", "useimport"], [3, 1, 1, "syntax_useimportcontent", "useimportcontent"], [3, 1, 1, "syntax_useimportcontentlist", "useimportcontentlist"], [10, 2, 1, "codeterm_usize", "usize"], [10, 0, 1, "term_validity_invariant", "validity_invariant"], [10, 0, 1, "term_value", "value"], [10, 0, 1, "term_value_expression", "value_expression"], [10, 0, 1, "term_value_expression_context", "value_expression_context"], [3, 0, 1, "term_value_namespace", "value_namespace"], [10, 0, 1, "term_value_operand", "value_operand"], [5, 1, 1, "syntax_valueoperand", "valueoperand"], [10, 0, 1, "term_variable", "variable"], [10, 0, 1, "term_variadic_part", "variadic_part"], [22, 1, 1, "syntax_variadicpart", "variadicpart"], [10, 0, 1, "term_variance", "variance"], [10, 0, 1, "term_visibility", "visibility"], [10, 0, 1, "term_visibility_modifier", "visibility_modifier"], [3, 1, 1, "syntax_visibilitymodifier", "visibilitymodifier"], [10, 0, 1, "term_weak_keyword", "weak_keyword"], [15, 1, 1, "syntax_weakkeyword", "weakkeyword"], [1, 1, 1, "syntax_webassemblymodulename", "webassemblymodulename"], [10, 0, 1, "term_where_clause", "where_clause"], [10, 0, 1, "term_where_clause_predicate", "where_clause_predicate"], [9, 1, 1, "syntax_whereclause", "whereclause"], [9, 1, 1, "syntax_whereclausepredicate", "whereclausepredicate"], [9, 1, 1, "syntax_whereclausepredicatelist", "whereclausepredicatelist"], [10, 0, 1, "term_while_let_loop", "while_let_loop"], [10, 0, 1, "term_while_let_loop_expression", "while_let_loop_expression"], [10, 0, 1, "term_while_loop", "while_loop"], [10, 0, 1, "term_while_loop_expression", "while_loop_expression"], [5, 1, 1, "syntax_whileletloopexpression", "whileletloopexpression"], [5, 1, 1, "syntax_whileloopexpression", "whileloopexpression"], [15, 0, 1, "term_whitespace_character", "whitespace_character"], [10, 0, 1, "term_whitespace_string", "whitespace_string"], [1, 2, 1, "codeterm_windows_subsystem", "windows_subsystem"], [1, 1, 1, "syntax_windowssubsystemcontent", "windowssubsystemcontent"], [15, 1, 1, "syntax_xid_continue", "xid_continue"], [15, 1, 1, "syntax_xid_start", "xid_start"], [10, 0, 1, "term_zero_sized_type", "zero_sized_type"], [10, 0, 1, "term_zero_variant_enum_type", "zero_variant_enum_type"], [20, 1, 1, "syntax_zerowidthnobreakspace", "zerowidthnobreakspace"]], "B": [[10, 3, 1, "", "701:1 99c0a32aee687c8485a97d48e2954f00639b71b35e7798555144ee6fcc6071b9"], [10, 3, 1, "", "12:2 766c81fa44bbba49b8e11a3675587467e229b8b2bcf098eacb996629733d3aee"], [10, 3, 1, "", "751:1 62a3945d893b6e8f16b7248680f277547ec165cba3f7cdd1f81774d4362c4973"], [10, 3, 1, "", "16:1 901ba35139b08ae1dedfc6cbd9d2ed55bbbb93f55c8de7151cc38a1521790add"], [10, 3, 1, "", "420:1 ae80789528355e3fd763bccf50dd6e89b7762be7f85442e7ac7a317f69e92a3b"], [10, 3, 1, "", "699:1 f540fd8e6be1fd890846ea28490cda6a8d9778e214c7359e874b25ef60cffca7"], [10, 3, 1, "", "140:1 32c0b276b9a8d538096d6a86651b80cb57558fb13ae5bf2b10d58f935ceff728"], [10, 3, 1, "", "576:1 903a99b97d49da2def61a6ad297e6e7cacc921a870b547a2e4fb4d1c24ef769b"], [10, 3, 1, "", "284:1 4c58f5e630a135ce5d00aa99677ca1f3c1c1d1d507b70c61da586534cd4274ad"], [10, 3, 1, "", "673:1 fa43d63754ae49bfbcb18ce1c738640e7ea982d0e8a54f7a373fca1a8f8687b5"], [10, 3, 1, "", "78:1 ca82b23effd8f2c8ef1852b564755ad552726c3f8bea118b31120b6809597db5"], [10, 3, 1, "", "609:2 d258187f5db39b35fb4ffbec50fec919243b0d2071af0b861b7e05eafeef899b"], [10, 3, 1, "", "313:1 8b88615a9cfe8af953cc245d7d590467c9d194422a45dfd1545057bf85e9d271"], [10, 3, 1, "", "300:1 9a08ba4e86a953843e31807c4334ae9623c0ead8f54547bdac357699f68d1a2e"], [10, 3, 1, "", "122:2 c0e3785f9a7666f115e4329031acc927ba7715b7c96156bb4b6a231b035bff35"], [10, 3, 1, "", "505:2 a29d359f8fe758d5128007ffc3321dd79c642be03b80e068fa040e6f80d69aa7"], [10, 3, 1, "", "586:1 fe6f5bbd825f7060b3539b3ddccda6664da3131532c0613b357f0cf3ca289102"], [10, 3, 1, "", "329:1 f6ba1aca347400dc96ea940e9248923b4a0b6b1bd8847916a0bbccb260c33406"], [10, 3, 1, "", "459:2 8e60507625ed92420802f9708138ddedb1dd61d29f356499cbdb95ef1200576a"], [10, 3, 1, "", "156:2 6fe37f22bb9d618a04b7a471248554c938cd26c78c35410d22c4bac98e96534b"], [10, 3, 1, "", "664:2 6cdc2a1f6dde6174225d84db6381bd5955b4cf4670fa66ce2cb4fd134bfb3706"], [10, 3, 1, "", "233:1 b3a191d6ffee78ef311314020e7f5651797562cc91bfe41e5137cc16ae46643f"], [10, 3, 1, "", "279:1 9d1fdd645cfc05a9af6785d9a5c076c89a63c5fd84abc2e722d00b9bab65cd06"], [10, 3, 1, "", "26:2 779c3367f4595f83edc738069ad628562bc861d3f6ddd498122fa6b43446606b"], [10, 3, 1, "", "573:2 21a87900d3877a249502b56ad13c8b8975fdf3dfbb4708cb4322219fc6a2d7a4"], [10, 3, 1, "", "76:1 244c375c3a3e13b0a601337834316fbcbbc56c34877090d9ebf3f24690f6f9bd"], [10, 3, 1, "", "82:2 5172defdbf869d3f3bec7c8221fac297297395d7d1080dfd18886e0692276d94"], [10, 3, 1, "", "602:2 dbb5bab03e4e32af76a8d3acb475ed85a84d35b6cb8121a9145b90f888d7c328"], [10, 3, 1, "", "588:1 47718e6645a8f9725dfac70f2975316555887d2128b55f8c9cff6d22933bbb53"], [10, 3, 1, "", "338:1 06f6377b85369183c52c54750e36d420a7e7b6d66a50085f8596afe79ef2e505"], [10, 3, 1, "", "238:1 681928198e0928564ec0969507a905e845bafd18a168bf4489d79b2819c3e04e"], [10, 3, 1, "", "521:2 0811723671ee722a9cd5cbfc0d41ca93f15e3302d14e510db6c7d1c7a647472b"], [10, 3, 1, "", "61:2 29aff3e58116ee151766d953841c4095fe883e4ca704ebe36c0e694f96016a89"], [10, 3, 1, "", "303:2 97be6c945e9883eee71a01f48988cf883ab4a0d22323c09fc9de2729bd23da3e"], [10, 3, 1, "", "546:1 645b6eb9a167d07c82bc9500a8b9863c903eb0c0d87ecced53fbd7d4170d32db"], [10, 3, 1, "", "89:1 9f29b6b7e9ce5bea7065b3df184b075b67ebdfc536322453a87c1d2462e69aac"], [10, 3, 1, "", "87:1 abc9e73351e349d7595c47b1849763c9db6e2876fedddac5a15e316120c0a993"], [10, 3, 1, "", "245:1 0bd12e92ef99aa4986574399b441b60d9caca17812328174744bea656a030c78"], [10, 3, 1, "", "135:1 402982ae730789f8c535e089a21db522560ff5c2b94789570c5cc9169f518d15"], [10, 3, 1, "", "347:1 fa64d24140b6632032564a30372f4a1aed8d58d19731e3e20079781802db7dba"], [10, 3, 1, "", "324:2 24d3acae7cdad8f22cace7c4cae98ee055f95867917e0436b007566b2b743485"], [10, 3, 1, "", "293:1 83f5a2b672e53fe08eee031615c3f89ecffe89afc3416f601a18f36a90731367"], [10, 3, 1, "", "543:1 8b376bd574aef40095ec0b238e2bdb07e92f1d0bf017715d535add5a514048a2"], [10, 3, 1, "", "354:1 67151c0ec33049c52da54517530f8584020b07cfc1feba88c00960d8ba135d72"], [10, 3, 1, "", "445:1 8b5a09650bbb9136e81393b63b7d0696da00347721e07730f4298aa2ac6e5eed"], [10, 3, 1, "", "724:1 09a2ab18e10c912b792daab07b9e448646dc62864c26467d0eb49953b686c343"], [10, 3, 1, "", "425:1 bc2a9b072e7ce04b5318c441aa6ae721780ee0588ece5a5c5253035f7dcfa31d"], [10, 3, 1, "", "189:2 fe3d4b57a8de6c6fec34a4c7f0577cebcec203f85a07de1166ce59701f0814cd"], [10, 3, 1, "", "232:2 6d8233757d744aaf3a1bd9b1d0c8c2c913808b7d5409b6e869c29b8691106df5"], [10, 3, 1, "", "492:1 df2143eaa654123ac252f80f303dad763ddd719296781254975176ca4e5aac2f"], [10, 3, 1, "", "366:2 26c9ac123efac24b082c008cabf69b8974b6b121c8cd980dd0d0c3a66ab3f9ae"], [10, 3, 1, "", "205:1 246d76c492360be9b37e4456c223c1209aca1d92e47981a66ec2addcf240f86e"], [10, 3, 1, "", "403:1 6557abf3a2930ad9e886b80cc340e32eebf01f2d5a45aabc11dd3fb602d655d7"], [10, 3, 1, "", "531:1 a8a8919d753d67a5e853e8f9243b635b62f24429032dc9b096ce110f00ecd4da"], [10, 3, 1, "", "86:1 1d84a640b81dafc4d21d0e36236a4d94d1ebfd62b014b86a6b7794963f4ad7f7"], [10, 3, 1, "", "159:1 3e74e67dd4f92d64c9dcac1bab6954b9904fdc86d5f8334201b4ce7f7fead9e6"], [10, 3, 1, "", "383:1 8413a81d0a02afb47e09369ab11824eb36ea94b506bc186ce0a0beb3bba0a285"], [10, 3, 1, "", "728:1 d4e120832d43e5442500d1f582915ab5c4981ee54c81700fd0fec82eaa1b174d"], [10, 3, 1, "", "31:2 d78782159526caa5d6547852c6c2ba04781b15013de4dcfebf018dbefd9285a2"], [10, 3, 1, "", "417:1 953b4baa5f434ef308e2ed7137c138c94996feb90933a70fc13b372499426426"], [10, 3, 1, "", "400:1 e1d392e3bce0aa46cec6c2e69f6d16c99e1fe9e20bef57e1170dfdca473be6e6"], [10, 3, 1, "", "645:1 681e18d70f0544e542ba3910ae049790c537eed7fef99a72b866923d9b122189"], [10, 3, 1, "", "417:2 48ced6114174b83267a99089cfa219cbdd71643a4a3ee89cb3dc1d4c0387f607"], [10, 3, 1, "", "727:1 6d04e874de15ec8533916fa1837ec3f748e0041416df7c5dcab483fafffb7050"], [10, 3, 1, "", "407:1 743c664e87914194f65ee638557b4a2bcc2110ad6b68140945dcaae53198fc78"], [10, 3, 1, "", "122:1 c67acba85c414db1b42b760a5c75365e884a7ecdbe9449c2e3088f602d8acd40"], [10, 3, 1, "", "186:1 3bd8765395f2fac6faf751bb96055a45f85797eae151e46349ae0db30f071e70"], [10, 3, 1, "", "161:1 1240280d29008dfc8c0180ba22be627dd92ce546e418c6fb9572a06c31605ce0"], [10, 3, 1, "", "374:1 1123a36eb80d975b9c0775e5710212312cca6d498b93b328d3436a7d9110d492"], [10, 3, 1, "", "739:1 1347632e6ce2c4ee49038f50ae13199cf27d4690167ba97f02bedbedd2a05293"], [10, 3, 1, "", "88:1 2b5b36b7d9a4880164099cdcab035d2d100719306adc0c0e1d4a33d9f29d2bc4"], [10, 3, 1, "", "380:1 1bca23bf5842288cdca8a36c009a79ab1faba3297c4e01d4d88a818f85f0b645"], [10, 3, 1, "", "667:2 3520afa480b073c9eb1d2441a6534ec15d464557e5a5c1b41696b94d12f1793e"], [10, 3, 1, "", "365:1 7b8dd38c13fed841322ac8395586d2782e583dcb670d90c32245eb319572e31c"], [10, 3, 1, "", "453:1 5fe01a90aef55905159f37f242890148a65381cd487ee5fcbb22d724428cb3de"], [10, 3, 1, "", "601:1 b302998907689fbf13c4f8078e47db42660130fd2d89e0909ee91b8f22cc3ee3"], [10, 3, 1, "", "605:2 8e5e796d029a12ad7750baed68f980b263c914dbd89a309bbf3beae2eda0a534"], [10, 3, 1, "", "474:2 c05fac352b00a12dc595f1319451d2f0d313e898e70ffe3838d14839fb852b28"], [10, 3, 1, "", "328:2 a0f44dca15fd194631be91e489c1a7956fd0397f36291b78ce3373f8a2ab8527"], [10, 3, 1, "", "429:1 7affaac9d2a652dcf6c533a387f7d24e76569f24e04cbb44bd693c708961a464"], [10, 3, 1, "", "248:2 bc5d7583e1784a90ec21f1733506c1843a5248443ca157cd50701cf49c92e25f"], [10, 3, 1, "", "687:1 d50f874f3d49514c3e972dcc5a0b04401b9d0688b9d306219b210878cbf44bee"], [10, 3, 1, "", "121:1 a4c05ae36c5fd759a4da08d503fc1af571ba413e676d01dadb500e588dd1f83a"], [10, 3, 1, "", "211:2 5339879c39ea4615d41c32f6d48b2e53f0bf6a1f4f43569a50eb73ec059689cf"], [10, 3, 1, "", "436:1 45b90d2044a94a97f1622b1372eef6e296fd6e7abe5ce0c5720f303b8d25d3e3"], [10, 3, 1, "", "42:2 cde933865ca4b56f926024ba889c6e7bfcc3c6c0f622ee515b6db1801ce7c42d"], [10, 3, 1, "", "521:1 c9ebb5dde93887446f9ffb7c6479338c29861febc756605dd9c27d689adb1cdb"], [10, 3, 1, "", "634:2 0e03fd06e3f48059a98f5c7000d34f910c38730b70cd097b709a8759ce8d9ddf"], [10, 3, 1, "", "110:1 dcc48ef9336f4c635127d9fb40bb282553c33273cf2faa0289abb58a864f5ee9"], [10, 3, 1, "", "282:1 e03f0863b544f98fa018ab3a49a6c73e51eb94090ce03365e26b70897b68966b"], [10, 3, 1, "", "250:1 b5903cd60c3ce2cce0dd72ca2bf7615e73a2053748d9a33135a7e0fedcedc5b1"], [10, 3, 1, "", "134:1 079ceb5e3a19a43aa364310032afc2a291255d66c92dac9ba5f70da5fd3ba50e"], [10, 3, 1, "", "749:1 12946e0375bdd1300d682bbc3ffe536ed2c1f1d2e0ef90d5f195934aee62deff"], [10, 3, 1, "", "474:1 4bb3009b90c406af213c8dc995cc67a0111738597ec2110564aaa7057249c9fc"], [10, 3, 1, "", "719:1 7ed10cf906202e473aee8f7062336f3ae2a1e5e983ac5fa34322455b6764c713"], [10, 3, 1, "", "1:1 a4b8b9adc0d06d2a1d33f109da69c23d05657829cf884e7db50cbd82d36ce75d"], [10, 3, 1, "", "462:1 72a1edab48d76b04199e8bfe7825c3eab26a9914b6b707eaced222db6c12bfed"], [10, 3, 1, "", "49:1 a0f6ca8e3a6e0ecac876103ad5d446d406f2fcb80e6ddde3bf589f235077c4a5"], [10, 3, 1, "", "627:1 94b7335b72716a696d96f92fc481f703af70ece1aaac62b59428b634927782f7"], [10, 3, 1, "", "523:2 59822d397a3a69e2ec31a26ab4c80a8d277b159ad97c2ceb016e353899a81112"], [10, 3, 1, "", "245:2 163d688b809a2663e24823d2a6568ef204b5339d8e74747f19ce6eb09c10d110"], [10, 3, 1, "", "34:1 54415450f0844d84e0beaf4ec65f4f8228b3e8c99e9be690005441052ccef255"], [10, 3, 1, "", "218:1 181cd4cfcee4b0854842216c451b38f93ae6074ef36248dc184574b7b67da1a7"], [10, 3, 1, "", "98:2 678f63247cc5c82b754402bb384c9ffc044dce55bbd7b1cbf591c25c5dfbfc7b"], [10, 3, 1, "", "598:1 7e0c43d99329cee53612742b4664c420c545bef701facbc4e9a2840ed513c87c"], [10, 3, 1, "", "457:1 f376384f0f6c279aa34afc028e25d66dd871db3e4fc02342f2b8000f35c42e49"], [10, 3, 1, "", "231:1 06efac29168db9a25d7fee7d6b86492749c226138f468ae353a9ac03190201af"], [10, 3, 1, "", "641:1 9cbf5912d6d17d7ac0ed3b3c24ab980c7ed2e4fb5b00af87a0b7865553130294"], [10, 3, 1, "", "125:2 4d0c95fca6696e81f808680e4c4023687115b55efdc4fd46f2c021fe63f1b66d"], [10, 3, 1, "", "584:2 1cc2492433debb414f0eb4fcf241bef3a32b6d3053e2909902cf511ad574d4a8"], [10, 3, 1, "", "550:1 d727fb7a354746a21a4e4fc4f11e8b9c2db5ef084c60db369114e4b63fe510ff"], [10, 3, 1, "", "165:1 c3c69e39c76ec60efe130d5fe9cf18560b60ca13e2b9f1a89079c56ea51ffe16"], [10, 3, 1, "", "9:2 68c00757a667a7d05b35a2b500a797bf290d113953e916010ccad377f4804011"], [10, 3, 1, "", "445:2 2fcd35d91a3b60d2418157e4d55466d2f35f6d7e6b03a634262daafa5c41a13e"], [10, 3, 1, "", "199:1 cda63944f6a0056104780625eff6b1411a44708802aa5f5ba1339cc60f2d6e06"], [10, 3, 1, "", "422:1 6fcd4c6e36e26e8d5a43feb62409812d77e18c03cab99436ea9a5afc6c118209"], [10, 3, 1, "", "85:1 d33508b56c217a40f57a38a2567af1bcac36a73b8f1429192c38660f309e5b8a"], [10, 3, 1, "", "387:1 68b1edc4db0d2e3d4ce635d19ceaec8fec5168adff8a8fe5a1a84c123eb789af"], [10, 3, 1, "", "377:1 292bed78eccb53cf72d7c5e667ddc39d2063ad35e39b46d0b606294587f7638e"], [10, 3, 1, "", "680:1 446d19536c494b187a348cede9ba0474e39271596216682bcb9b59c2c24a270a"], [10, 3, 1, "", "651:1 a5d5da0318d7ec6c47bf385aa8183d09d97852f18063c4b197eaf7e0638c0bdf"], [10, 3, 1, "", "393:2 13aa73789014f9acace156ad4ac8acbff9c51708466dad1f80c42a4644a3912d"], [10, 3, 1, "", "518:2 1222d9cb35a5e949bbd837dc84397530b43462810f5f1c0c44c51d6fc78d9d55"], [10, 3, 1, "", "225:1 6ea581de0e89fdaadc05a0ae86ca201bfc22de10dc318b7531c9c98d9d50fa94"], [10, 3, 1, "", "261:1 ff1b277b0d720b2a289f5c673f4ba90904790fb8e9bcd97f274a230c874da418"], [10, 3, 1, "", "5:1 d7a55be9b85d21513a63d47bc7c112eda652d7ddc9819ac326b8b23b6cba2125"], [10, 3, 1, "", "555:1 43a3e84b5d19866a6b09c6cd2ea7838a7d65fa6f1fd49b2f0ddbaca5a81fb1f0"], [10, 3, 1, "", "613:2 024955ef4fd2cb181a71d8785ed496d36e26688e5e1d0a8ecf0234bf90e79adb"], [10, 3, 1, "", "65:2 3f1493cf83a8e792d5d2d85309ed20d423d40923a355e8f32b328f2ee0021e61"], [10, 3, 1, "", "612:1 c780396b07b8f0521e767ef92a329d5f625360d5f1afb720ea854c4953bd8419"], [10, 3, 1, "", "556:1 4a662cea85148083b5a0179032f600b305245ba09178fd3a04d08f592be24a88"], [10, 3, 1, "", "582:1 64222126b2056e9b6d454a80a4515f9e7eb4710b27be383ce8cebc89dd173fa6"], [10, 3, 1, "", "681:2 faa528ec23f1f22d7c3d98aff96922f60da745b4648303e2129eeaf744823f5d"], [10, 3, 1, "", "180:1 cb1c7edf069900e8ae1aa4ae6e4e4db97372e11f2612c1c75556af4f8f1e1911"], [10, 3, 1, "", "498:1 df273ba462a9e4407e9718b359a0b3af6c4ced0d4aa8aea268ac7f1b6a7e2ab0"], [10, 3, 1, "", "512:1 5474073f896c48137618f47655320de5299e20085fa083fc31208745dcbfa9ad"], [10, 3, 1, "", "454:1 b0ac089ce6d314e4571988cd75d462fcbe40383a38d73da01ab7ec93069b924b"], [10, 3, 1, "", "325:1 8c4b2ca5e676610d88ff41d9ff91683d41c450d8939a0c6a952de2734dee2146"], [10, 3, 1, "", "41:1 ae043cd27830b3d4d25fbf3c74d8930fa00fdba422466580da9a80cbf0b77934"], [10, 3, 1, "", "610:1 5355753d17b9a1e7061974c57e99a31889eb0b46d01364d4c6d9b74811f7d0bf"], [10, 3, 1, "", "493:1 7c5342ccc6c27341c3a10ed0a4bb92e351c44fe2172ac672c061a1a6b25a4811"], [10, 3, 1, "", "36:1 c582f9a66293c5666b0e75fac231f2415fb02be2cb7ee04b51ac50901ad7f023"], [10, 3, 1, "", "638:1 3692c3fe609b905b0734904435de28f55003026dd2504681ae3e03a050119c73"], [10, 3, 1, "", "333:1 fc6565e0e22958cb1bdf76ff7c572c22d46b4960c739a1edaf91133b9d8479b6"], [10, 3, 1, "", "239:1 3a6ce2a8af500a647812693f27feae2ced85a925221bd4a25648464e9a9af16e"], [10, 3, 1, "", "514:1 0fa315b92eb6b4569105b3991791bff35671955a1b50a86421e4e2fab8768710"], [10, 3, 1, "", "500:1 98a1e0e586178dd832d3937b1e01ff4acf5ca80629eea845aee2b1eeea59d6d9"], [10, 3, 1, "", "338:2 26e6707c52d7829c4896f6018110bf1a074068eb294d89e589af5883651bb469"], [10, 3, 1, "", "71:1 502b84a3d6795ea515381c6f55bb280b6ecb5247521831d647297dcd20b2fd22"], [10, 3, 1, "", "81:2 57fe72c338f783adb28c56b1e3d5b590b3500dce4a8d42b378f7ddd62130f87c"], [10, 3, 1, "", "706:1 42c1eeab5df8669a23a8174e85a967c08b0a4bb6193f0a46c12fc8e34e122283"], [10, 3, 1, "", "346:1 a4d4f9bdc27ab79b96aeb1b9da7cc17c427b3a86cea9797d7376d24370ea366d"], [10, 3, 1, "", "120:1 ccdcffaf0aaed8fdfdbef3ef6f047bf8f190ca0480c0869613db6d2527f07513"], [10, 3, 1, "", "298:2 b912477106fbf6e67237a7afc70180f22d6949cac793f7269d3dc588f85b1285"], [10, 3, 1, "", "731:1 3b8984c321c17db411893b2f678203985119ef59cfad6466111017b363ca5658"], [10, 3, 1, "", "626:1 16fca30812eb235c8b557a93a13756bc39c0845207c5c2c40386bf224ba3f036"], [10, 3, 1, "", "605:1 20d7f9a0871be783ae343c24d208962a58ab36fc49b88753b505da7f08fa73f6"], [10, 3, 1, "", "201:1 f49d2f1aba2b337fd812e752e9330a31588aa19647bff7f1a0f982ae92d9fd84"], [10, 3, 1, "", "536:1 ae001364b117d85ca8352514a1027e91f5d918006cd7b2f368c7306b6015c0b9"], [10, 3, 1, "", "166:1 cab9cc5970167e0b245142acc001861b45534ebfeb4fbbc2cbe70dd9af2cd12d"], [10, 3, 1, "", "111:1 057f094a65cdd0113949e4be1a1cf6da4e439c9e73ad23d72cba5035a6404b6e"], [10, 3, 1, "", "683:2 d2504465bb4d3df32d8b919c4d19b6a57ec9e6beae1243147f3aa895c509b960"], [10, 3, 1, "", "371:1 954683482b9c2666b532b8b7ac23dc703bf907709fd1741b2de7946821edeb6c"], [10, 3, 1, "", "394:1 016c9fe34be63a621635c6627e98f9d342818e04d1f471124aa059ec1b44dd5a"], [10, 3, 1, "", "755:2 9f22f6f0955567b0b63aeee2ca3f78379d5a16acb633f9ea12a2fe537e5c19d3"], [10, 3, 1, "", "50:1 540296c55b80dee7dcdc0bfee11dde91a0e07efbe59376dec22a48ca8c7e5304"], [10, 3, 1, "", "469:1 3fef2b15481f75a31517ecf9b989491b058b5ecc19c035f2c26d8149fa728405"], [10, 3, 1, "", "167:1 a73eab7803701de6bccbe631159e1fb32bb53ae053872967f51cdc17b6c6bbaa"], [10, 3, 1, "", "376:2 9ede60e7543ec5334e989d56750dd9d72d5b3e3143b2b6950cf53e41b815a65a"], [10, 3, 1, "", "632:1 2097bd5c72c447994db952b6e08d6092720ef5355be92616486a8db756a2331d"], [10, 3, 1, "", "303:1 d9c7bbef1fecbfbd31504b1d7eb64e36b781317609b727780da0741a28fa9f15"], [10, 3, 1, "", "619:1 d81c9587a4a4253e465180e7e762ce144ae9971c94a10717066a9026e7d70b51"], [10, 3, 1, "", "465:1 6ab8a36cbef90178c432b873775b2ab984639224142be9cc9f19536cffd7a186"], [10, 3, 1, "", "735:1 043e62442cf2db7aad7811221b566012c7f90db6b6f8872a7ae4d4a5819a4205"], [10, 3, 1, "", "40:1 af7994df35666e2d06d9b8fdf0d438a9f40e754a9fd04dbc071ed879e196ed89"], [10, 3, 1, "", "200:1 2f0565045c9b9b6ac98a82163a6e9b2f2ff7943c7f8efb7c470f13474fcf48fd"], [10, 3, 1, "", "509:2 0579f993ff22774a401e72b931ca3b048a9401d6caafc4c582e2797f24074867"], [10, 3, 1, "", "423:1 f5756acb378386fbd2d24b12c2003b186bf43fa217f74a22a6058e87ba23b122"], [10, 3, 1, "", "453:2 a83ebaffd017390679204da67203295074496e69637faf5d3dd5c7516c9f4fc6"], [10, 3, 1, "", "758:1 f635809dd0ab3cbd675012e88b6b6cb1578b29f7be6c55698932adf2f51569d6"], [10, 3, 1, "", "426:1 9088dc4f9916aea9feb2c5fac071c64a7726e8531771a1ea0d8b6985546bde12"], [10, 3, 1, "", "343:2 7f96489573f69749e33f3439092f5c3c1ebcb5ed805dbe30860a9670ed864169"], [10, 3, 1, "", "67:1 9b3d2ea4510af73672effd0175aca1e7e366510c39d005aef81696a4b7056ffa"], [10, 3, 1, "", "463:2 d0ddc55bbc3d95e786e480bb7babecab0f9818791e68a7c269f0ee4b6c18187b"], [10, 3, 1, "", "275:1 3861fe603625e26ae227e088c785b902e544670dd7f4b1c4b5e84044d6824513"], [10, 3, 1, "", "549:1 1a86eb14800527d49e09acbab5e37b415b2c1784080072bc0fdd2043ae6b6663"], [10, 3, 1, "", "330:2 ab1f658915a6e66265b29dce4282e6745c700582380c9ebd6d1f50db44318cd7"], [10, 3, 1, "", "255:2 130dee264ac50890f47cb9e972b493ecdb9f225ae5a2b82cd0536c39dc5c5d93"], [10, 3, 1, "", "334:2 bf5601e1d0036501ec5e2707130e2e010ba1d175dadcf0a04c8dd149b92f55a4"], [10, 3, 1, "", "248:1 2fc4c501b4e947027e4d2ed82a4a4c8caa514b2e573f8262bf5be48016afed7d"], [10, 3, 1, "", "17:2 153f28a8596d2298b2c427e267dcae87765bb56d5c6263d3052ebe3b5d3bd8d3"], [10, 3, 1, "", "168:1 3d1f7fad507a86b94d9c0829cdcfd7405c4c95a9d7c6cf14d52b73d4021b20a5"], [10, 3, 1, "", "64:1 2719e98929aa9ba831ed3c9e8a53f2865be31ca1dfef22f8e6a549c0489cc074"], [10, 3, 1, "", "553:2 85b6b742d2d0697e2fe95f1418cde3b1692849488b515cf6621535b9fe59b631"], [10, 3, 1, "", "374:2 a5ce68982e4a3d495aecd3817b7f46a66291aa818310d47d1ac783520cd344ae"], [10, 3, 1, "", "210:2 d5c1acc27a061ab4a00f8db188df97108fbc002afb3b8894e7111fd4e4671fb9"], [10, 3, 1, "", "115:1 35180367affa5c49d5b0afec316a5d9a8266b5ca1ac474fa6cc5ee1d527151c7"], [10, 3, 1, "", "570:1 f217c898ac88c6ff78f0f45c97cc69a939aab171fe5db230f08699d88496975f"], [10, 3, 1, "", "672:1 aa3c4d9f62051dcd0d2aab6ecc975098440380f66c21a7c8a410d0280d6d2dda"], [10, 3, 1, "", "361:1 ab5beac07bb3a50414d761fca7c1f5c0dae433fc29c6a25fd9a45ef861260ed4"], [10, 3, 1, "", "101:1 71e276a65e0bb1a228f167bf10d8368d3b1e4100414d8cc4c6071b98197d73f3"], [10, 3, 1, "", "661:1 dc347c35a584cf9bc8cb8bfc6d525092724712619b91a2e5c4123574a19cbfeb"], [10, 3, 1, "", "446:1 d73443593c7d3bfba69d38de712f176516fa9eeb6e94250cbfe99ee24ffabc2d"], [10, 3, 1, "", "320:1 691ad8ae1fae0c19179e0395225b721b3d0fae6f4ccaa8367cf8e0a5c7088702"], [10, 3, 1, "", "721:1 746af7557dda4662a7df23f5d69e723fbe0f3f7759c981bca1a6e9ede6d91052"], [10, 3, 1, "", "452:2 bd14aa7f084817a8f736bc415b84f6f4049dd8586011be7167b5b6f51c995584"], [10, 3, 1, "", "518:1 95d9ef2d49138b2a9fb0173f99d5db0a8a114a95ebd140fd1daf20d94e8da46e"], [10, 3, 1, "", "690:1 d96f9b0e832d3824333a07bf5766342a3ba6faf603caad0f38302dde5b66027d"], [10, 3, 1, "", "369:2 4a40b3381058195f93b4f1ca0fb8daa0b8749e5eed1a30c6b189582680d4668a"], [10, 3, 1, "", "92:1 42b70f0392703c3c23f4ecffef7ea817778258bcd8666f135b5b9dcac43a1b3c"], [10, 3, 1, "", "693:1 d00e9b45f6629787267fae792c957b6efe042cd13c423d504d6de0634e21fd29"], [10, 3, 1, "", "581:1 6a1fef902a0c781f04b8476f20982b8beb543702ccb5a62918c3bf9d2d8917de"], [10, 3, 1, "", "617:1 e9f4a702e5f7e0b0ae422c36194acb862214f0536da4b586e5dda02b75f83718"], [10, 3, 1, "", "202:1 a05f48ba73d51eb3a8a6d89d6b576154e00a8116ad42133b57faf2e7509efac5"], [10, 3, 1, "", "136:2 1cc1ba072bec8318bf1716f7eb842dfa4947e8f81bcc6b71ec78d2260b78da92"], [10, 3, 1, "", "269:1 a075626ce61b92791f915ef3452f132cb80962ba2dfa44b31fbfaaa346261da1"], [10, 3, 1, "", "673:2 a3bf5eee58995eca7961b2df9db410281b0267a7308845a618f2c29758520c1c"], [10, 3, 1, "", "268:1 3fa122b35c9fb793d5538906271b19213fae752dd74422b25292c38de9c8ae36"], [10, 3, 1, "", "625:1 e70efe05c2fad045cee1a1131482f278b93f794787c1df91d300c860a1ad9704"], [10, 3, 1, "", "662:1 fe59827b018a12bd1afdb2a274f0db4bcdc35d4a4e263d0130439c137025cc41"], [10, 3, 1, "", "650:1 eb508851b91d4f27932856849cf182b28b83707b42dc7206964e098efa41dc02"], [10, 3, 1, "", "447:1 3a9869e08f3041442b54b7ba31117a92030d76ce7f4b9fd199fe8a9fdc332038"], [10, 3, 1, "", "129:2 43e5e01d043938198f115d06c7634976532ed1ad7ae84b52a78bff9ec59c2244"], [10, 3, 1, "", "744:1 36478cc9ff5272fabf7a32e121dd6075c62366448ef8741b677f766d56bd9c56"], [10, 3, 1, "", "273:2 569a1bb8527da83c0475270047ca9e1216b99851534ff3e4fbfd7f4ebcf60962"], [10, 3, 1, "", "309:2 23af911d2265b6503e087d8ec2ee433a5f8c6c3705edd93f7f9580c3427f5085"], [10, 3, 1, "", "708:1 874e78f40001ffeb6589fe44ef1284106f77490c5142b4fdbc3ef3815743bfd7"], [10, 3, 1, "", "24:2 b69292e62b34d951badd6112a1bffbc713a61d7fc3b863370f9fa95fc2001980"], [10, 3, 1, "", "476:2 91b497e9fa3f33bf6884d107b2a1e0920f9711edb4936657a48701a8eab9f6c2"], [10, 3, 1, "", "304:2 08847fa94d18afef03731ce343412b1051e405301832ada5b32a88b300da53d3"], [10, 3, 1, "", "132:1 0d8ffb55967c6c3a59c4fcefa6ea5ffd5237d622363d040e0fdf4d62bdaa955b"], [10, 3, 1, "", "444:2 3b3110f44f634a0c3c4a54ab94e02145944433408e11a342496fd6d8ae11395e"], [10, 3, 1, "", "196:1 a97d85b8319c13caf3eb97c8dcd218ba5f6a4c34818926f65673e3a9a02961e9"], [10, 3, 1, "", "68:1 e328d7925174b8ad13fe58a5c2316ab5b1d4e32fabc4cf018f015f8c32d2aa52"], [10, 3, 1, "", "192:1 55bfd8e88f68583acdcba6d46ba7f3ab6a7f708f06f1d762e49cf30a6237fee8"], [10, 3, 1, "", "188:1 fbdb6bbcfc31a6446a2909cbbfa2f1f86bc6d494840bd0c8182142874cec9846"], [10, 3, 1, "", "711:1 2b5e32a18d029e2c9499e716ab614297f977095023bd2f89e271e3cadf89458a"], [10, 3, 1, "", "360:1 4d6c770b0c36e643e9ecb0b17237e92a52923f197c20208f55ab98eceb576374"], [10, 3, 1, "", "357:2 e54fc08d2ba7bd50aedf5a6fd7a981f23106eacfa31f81ba5c520727048ff11e"], [10, 3, 1, "", "479:2 cf5774737d44c0244752f89f7edba65e74214b321ce211abbefed1aae2717247"], [10, 3, 1, "", "515:1 c419855bc5b56ecc7a8dc69411babe0aed54f62a687c5de8352c86dfbaa2ca13"], [10, 3, 1, "", "411:1 f06a84237b1aed4ddbd1c303a8b54800d376114f7b4740266a7935e3e70320e4"], [10, 3, 1, "", "479:1 282073b14300e91d7204be8ea956e9e8b3cfa3158d260105e7dba482180a5dc5"], [10, 3, 1, "", "55:1 92f69db90c0242687f25911efde1e68a3164d404661348a62b75ba5d40545131"], [10, 3, 1, "", "322:1 3f6324a794a4f11f447669e49a7d2de50985ca75c7f41a95752e2a401716f9fd"], [10, 3, 1, "", "720:1 2c7f34a4421b36a3de115c19d0f2986496bc0ccac6f6650e3eb199d9f68e7db3"], [10, 3, 1, "", "82:1 c61d862f34a4363bf2bb995c57901407eb7ebcfe815a9c3b9407d70f22ed0051"], [10, 3, 1, "", "646:1 5f351473bc8fa908a3ee2b417457794e4feefba257826dec5b40df10c6121c00"], [10, 3, 1, "", "686:2 3dc19b9af6f9759dae3311697bffdcb48c66303780af22ebf32a3f2a72847bb8"], [10, 3, 1, "", "95:1 ff7df276dfca55abbd6131102c4fbc1de97b7b3e4b004424aa0c408b72fbe5e9"], [10, 3, 1, "", "502:2 1ea3558c6285e7ad5b30aee619511abc42157a7b436cc188060278d493c59e04"], [10, 3, 1, "", "103:1 648ca512997d7e2d5e5180038ed504b667046b8a16e97113eea58e73ab18a62d"], [10, 3, 1, "", "314:1 64fc80e9c847ca30f9ed4e90d495037aa47edc264ade011f4e87acfb61f3d2a1"], [10, 3, 1, "", "707:1 03a081739582029e2cf73267b95ef3091e731e205714ff0c738ce5fc6fdb5e9d"], [10, 3, 1, "", "199:2 9598dac15ae7ae5953f1a98ae895611ac521b0bb5071f731bdbb4c6d021e9ee8"], [10, 3, 1, "", "369:1 f99b5d3570dbb6f971515c5641120a0840b36dd45bbb0c22a3be26a540f75f00"], [10, 3, 1, "", "103:2 373b43756a1872d5f4876aaba9145e222c9be7bd58528b768394e3dbc85c118a"], [10, 3, 1, "", "663:1 014e8976a0754aabc5a82c10550042e050855bf54da0c5fd42c89e1713d3e0ad"], [10, 3, 1, "", "358:1 0f0af9b9915945fbf0c8d154898955a66e8495506efd393738576ff255050fac"], [10, 3, 1, "", "70:1 33d43996bd0e88b34594263661c579e5689d804a42a1bafae6e79a9d192f9e1d"], [10, 3, 1, "", "542:2 8d856bf27f0fde9c22a9df8467fb26a0360905e0ebed9a2a93a76f3d276968a9"], [10, 3, 1, "", "209:1 6822eb037fa58a1b2cf743b2117a957fd48eab1ef2cbdb974ff4ebb8dd92bf93"], [10, 3, 1, "", "228:1 6f5e77498cf368104bd5e6b79a788a56a83d1e0fda0d0b0db540240558568a73"], [10, 3, 1, "", "277:1 1adecc92d574319793d4e3c6a00da4b72aeb0ad6aef28988097e7cc55325d5cc"], [10, 3, 1, "", "510:1 51de55b450d6eeca32140828d287d0178deb4bfec1ae880c51b5d61949bd8de1"], [10, 3, 1, "", "398:1 786b8ad12199f175d48897e591e23559a67c00e019fd7ccc0f59e515e25e581e"], [10, 3, 1, "", "435:2 7f9ed5515b0507e08c6fcd3b86010cf6654a304d970e56c616b1432592f17699"], [10, 3, 1, "", "451:1 5141dbbb4eed64b6f01219411a0883c6ec7b86ffd1cf93e8378cb77426030eb5"], [10, 3, 1, "", "112:1 21a2212bc880cb6130b9fafbb5119664810c12f01745d8ee73715152731cebde"], [10, 3, 1, "", "416:2 a5029774cf8e94fe21723165e8f906fbcd2039fbdb0450c4cf0a389c741bfeca"], [10, 3, 1, "", "624:1 8b88e2d4b838d078a9c47bdaa6b417f3b777edb655683284c0442ec129ef777e"], [10, 3, 1, "", "75:1 809145d26a9b51c4a0a61656ff3b16a6fce325a6af66025deccdb63c6cfabfdd"], [10, 3, 1, "", "558:1 80da9d74f91e0b7374d2d43f8525151ded229c97303782a5579e4e10cbccbf0a"], [10, 3, 1, "", "405:2 d227e72ebf1cd311ecad540ddeb8695ffd297714f1dcc3e4ca08784236f64fa5"], [10, 3, 1, "", "557:1 e9bfd0ee98494b56dd202e318c640249b13ae5d86870e455002d02d048177540"], [10, 3, 1, "", "108:1 884eb60f8031345959135331a5aaa69d2a0b2e8a45c22d02ef2f7d78b56fc82d"], [10, 3, 1, "", "663:2 366b7cc3670f470aa55f22e1a42e8fbb4a6335e807dc55022cbfc8e043ac4740"], [10, 3, 1, "", "505:1 25ec8135a5545033a04f63b0f4d5e5e2353ace628c7fd050920bb2cde421dbcf"], [10, 3, 1, "", "589:1 219682f2ca70af89bb15456b2b480b5abfdd707ede0338d0cc148917370f33b6"], [10, 3, 1, "", "527:2 2e31dd1ae2b36f17d7b79b844d29e68d1478a7242aff87211f32b47c6d63bb32"], [10, 3, 1, "", "650:2 6338bc49a64e3c376911109c331a37133aea2682ed07b3012cf3be295a2baabf"], [10, 3, 1, "", "698:2 2c0394e8c9a3ca2f3a9f4e7fbb6308977613da1de981eb8d336ed83a4f4d474d"], [10, 3, 1, "", "622:1 67c1c160f65cc04a9d89cc4bfa73ccbe3120963278571298e35c08aabaea7bfa"], [10, 3, 1, "", "631:1 8a3b01274b8523c1b8f95f68ad12369141240ae80d3eeed8db09de48cc69c2df"], [10, 3, 1, "", "696:1 46639279f33be845b817105ffc1419b926a77f9b60d6e55df1f5fcc0812ccc98"], [10, 3, 1, "", "310:1 01d66d4377546f60e45dd0edb773d268b64c890cc89c32eee444e6cb86942908"], [10, 3, 1, "", "217:1 aeb76dc9d5fedbb690dd0b97233c1ecd588913c98a8c4ec43ca2ce3c721170e4"], [10, 3, 1, "", "15:1 e2d7b8aaac92db93d38fcd31bfae0e852168a01b4d0e86f27e9476a403a7186b"], [10, 3, 1, "", "481:1 aa99ac28601f28f70082de462bb43f46a746ce1f9e1510290e079f4cc60b16ca"], [10, 3, 1, "", "384:1 e54ff2b4d02cc39a0e7bb2387119b5155e4e4583a38818fb1327cafb597a951c"], [10, 3, 1, "", "229:1 8dda539d2ad7cf2893d067c24601d21bdbaa2ee260f478edfcafb6ec7c8bb071"], [10, 3, 1, "", "444:1 221e7357ec4062d6797d6359958208e54d75467f42ab04e41ad890e3f1a38172"], [10, 3, 1, "", "606:1 a593130cb4697d347855e3ab4be6e11ff678532bab5bac2229866f787c40f94b"], [10, 3, 1, "", "494:1 47e2a49e8c4bb9a1da304195e3eb1dc6848ecf6d0755309781c40a73f843bc4f"], [10, 3, 1, "", "63:1 b00fb469cd6302ae9a8f9cc328f30e7b176bc53e0c21a858130d21c6f4c31639"], [10, 3, 1, "", "11:1 5c7086aeda1386efc9b74f3da54259777835abd3e74462d5599d2da7af1ef59d"], [10, 3, 1, "", "74:1 244b38693253d9cad7bda6ec81c1b56934ad443b422d8476e63b75c00b8a2981"], [10, 3, 1, "", "87:2 9cd56fa137a462f758eded2792c0724f19f2df6f730ece349848218bf2cf459a"], [10, 3, 1, "", "674:2 4017b57ffdd0b3ce8085deb3eeb6c74b70ee0424570270827943660f8f9e6e99"], [10, 3, 1, "", "506:1 b56fb4a000ea7a7965a1183fb5cf0be9a407706295181e12fa6957114329fabc"], [10, 3, 1, "", "722:2 14d57b3f5e9cf2a3744d227f964a8bbba246986b93e2f521cca9571201988d80"], [10, 3, 1, "", "628:1 7bdbffe316631038216d56ad9d23a08326903428a975242329934a7640d45ef1"], [10, 3, 1, "", "434:1 c99f54bc8403e25d40c36ab4256c395f6953411a475f5f2906352f7cd9e42776"], [10, 3, 1, "", "175:2 7ed26165464e17c3a4e91284b0f80715d5e38377531d78ae29105c2d8a9779c4"], [10, 3, 1, "", "597:1 d3c28e6cba7c7ee3bb95dda04bb2e0dd1946ffec0b004ef23f5cb5f976644a4f"], [10, 3, 1, "", "280:1 6d4d94fea32df589eaacfa86d0bf559cdd03aff3bbacafc52ca2b2982d53c292"], [10, 3, 1, "", "375:1 0b6dfe8f489ebdb653cfe256043e5b5b482befc3318c71146203216de7f19367"], [10, 3, 1, "", "743:2 7842d3f876bb2f2154b1b74aecde5c363cc4a8607ac77fc1a46a8fc84663b78d"], [10, 3, 1, "", "593:2 a6d7b9fb4316a7224d9d5bbd09dbd87992f1bbcef3c413566fd4cbdeecc3a89b"], [10, 3, 1, "", "137:2 e470bb06658354bfadbe8d6dde50f24f7729c500ddd5ae45dc84b6efc21592f7"], [10, 3, 1, "", "24:1 0ea1f59b66ad56c3821faefc5c1f2fd54127fe0f57dee9851d5172a8b2321cff"], [10, 3, 1, "", "553:1 2593e8774b45cd7ca11eb6281ce21fc065706b013e11558b033257509e2ccd38"], [10, 3, 1, "", "448:1 f6982eeb521169d18f7b3211ce4d2db1795a494ca32b4bfbd52fd978fca5732d"], [10, 3, 1, "", "596:1 93df9dbfb389fb8889169391265e6c89da8bbd394a5e61862b389648c247dbdc"], [10, 3, 1, "", "104:1 695754e485bd8ba23cb133672195926840bb3ac28bfa31a96845ecf69dc65a38"], [10, 3, 1, "", "328:1 e3de743c6b6b482fd227d8e4bc1e7589a12791d372a9d9f47374de87b53448b4"], [10, 3, 1, "", "580:1 2dbd2d9375f3d39970d976141b7018b911bc54b2ec02a5aea07f2c6622870744"], [10, 3, 1, "", "13:1 b20168e112b5a2296c07054c48e2c12ce7e489d74564757148b2aa900f6f2671"], [10, 3, 1, "", "520:2 d88e1974ad411ce2cf9dd9035ef35a501514d9e4b8bc8bb8f748dec30b6d871a"], [10, 3, 1, "", "78:2 53c5cfa98c339293befa824b9ffaff8780090e0e7f7399c451f685068f75f0fd"], [10, 3, 1, "", "562:1 70879cb0ab39a64ebe3b442093d6a2fc2ff966f0e8549fb1c631d12636969550"], [10, 3, 1, "", "56:1 5bd798c44267d7adffd1caf463e843f7dbc62801eb106b6ae7eb6dc39575ad7b"], [10, 3, 1, "", "491:1 1b93f782dd3dcfe565ad4a4c82b0cded61ae1bab29bacd0be29aeb7958b787e8"], [10, 3, 1, "", "28:1 5f146112b79ecf0cca821b20931648fde2e4de33f3c63affbe10634883c62c6a"], [10, 3, 1, "", "176:2 f491325690119cf7c5af7534ced8eb78f097cb2bb8048e82cb70083c7c39ddba"], [10, 3, 1, "", "99:1 21920bddd05d30a71366977a2c284bbeb4bb503b795b0748401f66eb5e255159"], [10, 3, 1, "", "653:2 583cbdd6914b329061117d141e14d6076bf8fc9a1092fd74f131455d10fe417e"], [10, 3, 1, "", "60:1 331f42705a23d4036980e703f4c568126b011b0fe542b9c9468d538c9a63e0d7"], [10, 3, 1, "", "656:1 72411b58cceb5aff59f068ef733015dddfe004273aa63c2936451c3752c30803"], [10, 3, 1, "", "593:1 302bf7e743ea458a7ed5b2bed446ee0e66d522d0cef48ced5f82c7ebc7e87d73"], [10, 3, 1, "", "457:2 64d90cf7adf4d5a344cf4b8c3b657bdbd5906b36ba1adcfc5f45ef21f8c87134"], [10, 3, 1, "", "34:2 9c86f51e02aedc14b3693c8d107031106fa848137e313bbc0947e966ea8c1ff5"], [10, 3, 1, "", "169:1 5a5abc5ee49b4a7f3f4db78ac422d7a479d70841cbcb719ec4b8021a3fd162f3"], [10, 3, 1, "", "496:1 da9efc0609995ab5e22ff4948727e3f7ddcf89c93a3a76c7320452b1d093d45f"], [10, 3, 1, "", "619:2 aaa87a42fea5c81ee77c9afd026837473da6e30ed5010a8162226119622ee1c1"], [10, 3, 1, "", "649:2 998aa3d18694487f4a3f8b413092cb43b87c51361c018ff43f50426e70d4ff91"], [10, 3, 1, "", "149:1 3a384e55ab1144b0661fd6868c8b9ac514287016f83797db8c62bb61f931ec18"], [10, 3, 1, "", "22:1 32549d737df6956f86729fd3cef18291f5b579f8fb8cd87e6c65cae0d18621f7"], [10, 3, 1, "", "214:2 302b6dfa7018b3eca79b3adc9417f5045a101a947eafd0fe83021a44796cec3e"], [10, 3, 1, "", "47:1 71672fbc8744f773cb99e8e1c2281dbac1fc06503184ba6bd3c439e30defd776"], [10, 3, 1, "", "62:1 a624547e4f9b00862ac20046a4026915d290509d41d7fe0c95418ad4a4fc460f"], [10, 3, 1, "", "510:2 f27680d0e79080f5fc3a9175674912f8b1113a86b806c226022bc94aba6bf691"], [10, 3, 1, "", "290:1 5b7663754e6177578a2251558913f6dd5775aade2fc7ee2f91917af36d70f77a"], [10, 3, 1, "", "614:1 14e09d8b97a66fdbada8ce9e55d45408b7a46c69a843b69cdfb609e4a84a0205"], [10, 3, 1, "", "370:1 e14defd67bb35b75a7b00fa0ae001993fc6127bd3edd8a03453e80a7f3bf13ed"], [10, 3, 1, "", "665:1 a64d40bff82db0127f3143f64a671fb6f7d89c57e8ac4c3ead72042d404e6aea"], [10, 3, 1, "", "419:1 a45de552ec27d3cf42e34f94296cdde8f5b25e75ed29b92d304cd653a55753c3"], [10, 3, 1, "", "239:2 bf995029633a5decb43fe87b6fd87e5818d990f5e31a4a0aa5033acda9342593"], [10, 3, 1, "", "487:1 8af426150d7b87d3399d36cde4208282a14031da42b92bcb54c3619dd5304962"], [10, 3, 1, "", "211:1 a047ef3ad373b2ff4f80056a1438b8aa65b5f0d30615bfc299868e00c8c230d3"], [10, 3, 1, "", "335:1 f85f54e6db19ccdf5e3b58ee3014017a2a0965d59f572139c56081b253ad2cb2"], [10, 3, 1, "", "176:1 fc35ce0f0ccff2997fb52a27c87b7ceb21b3a45f2aa9e4d06034ad09b5873da1"], [10, 3, 1, "", "495:1 47428b53e2a5f713c09f529e70eac042045c822b245616e01571c803c69a67d4"], [10, 3, 1, "", "118:2 6b15e5c2d99dc9eb699f7025c11cb1ae02444ffd7787b1727950222b3901aca4"], [10, 3, 1, "", "564:1 cd5102a8cfd0c59ef4daced4388f485d63908b87f53b1df4647415da2ae37aa5"], [10, 3, 1, "", "676:2 98cca27ac1968d639801599c46b5009c59014d58e18c6232f0f6141b7e5cb18a"], [10, 3, 1, "", "318:1 ec6be8a5604774a3e5bed24541db2021edcb4c37c8adde52427628f14df9f59f"], [10, 3, 1, "", "73:1 9cdd4d1b23aed863aac7c2e7bf9f7fee8fbbdf8a16e27035197f95c8f3adf46d"], [10, 3, 1, "", "216:1 6bd8c2d66d4263112be6db40475705152153102478f83df9fde317cbc0ed4886"], [10, 3, 1, "", "388:2 179f2ff2fb19802b53eed340592a99cf011a22a1137bc9b74a8f253665812b64"], [10, 3, 1, "", "732:1 a98b44a8b0c6b0552246906fa82d599d1c2d98ca33f9927c058579d6577dda5e"], [10, 3, 1, "", "131:2 594cf07dd3bc7ffc842550c76f091d059f120dfbe84f028ffc88d7e09d64747c"], [10, 3, 1, "", "342:1 9b3502a55d38c64bd15befa7c21e4b030a57aa82e5f7d8f7ffccf3523a9e9ac6"], [10, 3, 1, "", "252:1 3e8a13071fd084c96974f8a5de9984263fa635ca17aeee18047cdd285979738c"], [10, 3, 1, "", "563:1 86cda4a9822fadeb8447b3f1af44c4f51ebbb97ab13ededb204dac6e6e965b60"], [10, 3, 1, "", "512:2 51be0d021a2c6e6de9c677e26c40952ccd74a03f106c01b23422e36979841fc1"], [10, 3, 1, "", "262:1 eab53bdc0e13f7bf21a0a570dcb149af43db736ef940abd17501e11cbf1b7fd3"], [10, 3, 1, "", "341:1 c07c5b6ea7f4c478ac920fd8645380be8ebe3a05ec99356760ef2831a6b35da2"], [10, 3, 1, "", "69:1 81a472c8ba42572b17a8b61e7325e2869b4aaacb298835287929a9069d8a33de"], [10, 3, 1, "", "113:1 b46c27a5e20681e3818872ee89c973ecbc77f74af768e18deb0c0bf8f6564768"], [10, 3, 1, "", "204:1 e6e30a3137daed472eac5e6451ca742c99cd40109cb14e02abbec0c2a7a9c8f8"], [10, 3, 1, "", "502:1 f9d67b747f4924be16ee41163956c3edd830b80768a149da8fd8fe40d21493c9"], [10, 3, 1, "", "158:1 f60378643e829d062e4e7148f2c4e7f2ae8d5ee23e30726de0b1e517e56d9882"], [10, 3, 1, "", "230:1 bbca6811533fe8c8d6843f6857396ab3b9930dfb2a60fb52b0c690b307e624cb"], [10, 3, 1, "", "534:1 84bca57f762a49753ed216be2fe143c33de2fefa9b1eafc5b0439e95c7948ffc"], [10, 3, 1, "", "658:1 96f0314bd359452ec5781db052a5b1237ac5af5741013b5594601070a0238790"], [10, 3, 1, "", "184:1 74949c40c2992ef3a797d351b856d71f6d0b2c333152b70dc30b48e4874f8031"], [10, 3, 1, "", "551:1 cbdb71aa37ce634750e0799d9dc5b86eca6b8974b0be2fe6669773d769756dd3"], [10, 3, 1, "", "416:1 87167727330385c9802e8fef3d66daa817ab0e0afc0b1a4f4337bf7c6e691c2a"], [10, 3, 1, "", "295:1 e2831db7b856046453f4995db74b051de22440de1c403e26a9a5e55ba934509f"], [10, 3, 1, "", "745:1 220d715c4f8432b1b2ed9d84586bd572af548dc7ac7a15e689a46fee55334d26"], [10, 3, 1, "", "472:1 1a8c88f11c890a81eec20646539274b3c90d82cb233df59ffab0326e60b82f5b"], [10, 3, 1, "", "438:1 79903dfaf51b0a6db870067d9c6708637db0cb9c51954700dec678bb066b93c3"], [10, 3, 1, "", "722:1 12767e911d6788d44d6aab73c9c1defd79788a9aff3055b771e0c7826f990e53"], [10, 3, 1, "", "682:1 47e816df6b2d0e10441e59307eef6ae63bb4b1e453422eb9d9f1eeb8560eeb92"], [10, 3, 1, "", "274:2 c2eadb77b73a1e2b0fb621cac3a7fe04f131b23aafc0d9104b43002d44a62860"], [10, 3, 1, "", "17:1 c10718ee19f1201e9e9b7a56c6b617bec1c6a443ee347fc27692063012ef9c14"], [10, 3, 1, "", "587:2 e9235711e81476c0017f4de4b96410aac4a18b20712e65998fdff599c4ebe9fb"], [10, 3, 1, "", "393:1 3d465c29874c8616db76aeb84abdd924cd7ad1ab1f10fe4e75cdbdfda3d15d16"], [10, 3, 1, "", "53:1 44ac37f28296db4446adcea7becf8632f74186b581c1802f63aa910646775d05"], [10, 3, 1, "", "709:1 46e6ddda6586685cb4481613c375417db7a49c52bbfa54677240f8c40c613c5c"], [10, 3, 1, "", "30:2 bce9778dd90da6c0ce90dfed19e2530cd684fb27d929e19c67e067e5f7552bf8"], [10, 3, 1, "", "237:1 07c86728198c5a1ea89ef651d47a91782d9fb08d35305b48637ef644a38df6f8"], [10, 3, 1, "", "488:1 a0837fb75bbafb4bee75f28944324055ef7701aa5ef37bac6239c767582688e3"], [10, 3, 1, "", "285:1 f9193acb1cc76526a453f0c55fd742d17ed18c557e69b46b6929f3b96d678e08"], [10, 3, 1, "", "332:1 18bef21654c0cb649fe8aa324c1e158dc17cc564c6d81a20ccdc7dc43a4afb43"], [10, 3, 1, "", "31:1 91327a66cf96bd903be1c5e14a958c45bed5796671fd255265fc4825fb89e311"], [10, 3, 1, "", "698:1 6db0bf00d375f6f71d8f32444dcae6c9c8405cc337d210083fbf4d32f461dfb4"], [10, 3, 1, "", "210:1 eedeacbaa1d210d8b20142f0e6f43a38225774dec26c09c4a15f49ccc2049a82"], [10, 3, 1, "", "637:1 a8b23520c501f81c345e6e33431b67986a2850dc3de4a72e1fdf2d5720700bca"], [10, 3, 1, "", "568:1 f839a240a597ec67f92e0f0866d3eee01bfaae17db27509a4a39cf9c2aca7897"], [10, 3, 1, "", "608:1 bf5f691ab0a43fd02aa87c661feec0730cfcfc91b5f24685efa59dfee5c0cf52"], [10, 3, 1, "", "639:1 12bc59acb7d38876c64b0653786c9f08057881a81fff343bdea6ee49f7c15cba"], [10, 3, 1, "", "92:2 76dcd27bc5ad3370689dfd4eb30523ee45cff5bf2abcb711fab20cdd3dc809f9"], [10, 3, 1, "", "707:2 2a190782043c191952b41b989f80b5f8e19ff25a66982307171b40712bb5cc42"], [10, 3, 1, "", "172:1 ad374347cf4cd6a6c6b98a6893a3c10cd7b2eea1690b918fb460d7f40298e461"], [10, 3, 1, "", "481:2 bb9ae81115e84e34d4d388c6f605b9464dce63718f64bc4b2a53dd7f901a2832"], [10, 3, 1, "", "139:1 2b20e4f2abaef632b5e64246950807ad561b2bc81d347dc516413598c3ede233"], [10, 3, 1, "", "337:2 5b0470c39bbb1d229151bfc57b017d6fab42323e2c8e3e1fafc1a887b96cdecb"], [10, 3, 1, "", "254:1 0a5a17f74d7b815ad249fb6b287e38a342ed4d6f5334a69d94da1ffc0abc530b"], [10, 3, 1, "", "29:1 d33ad565b26f01d4335d9775d46ec8e60dca8c305a7f40442f2c7814d2cfb5d9"], [10, 3, 1, "", "755:1 756b0aea4f3c3af0d5e8d8e7d31fdc7be0f35de71a8b4003662807e1b18a3293"], [10, 3, 1, "", "485:1 da35a8c27fb763f7fae828f196d5fe7127c6d926ae1e195af54823d6077dc39c"], [10, 3, 1, "", "382:1 f4c96ff719b6ab85d5750af147dad95ffbbfd720227288e319f846a85b40f717"], [10, 3, 1, "", "105:1 c1a639c3f4222bdf4f2db2c6e0e456a73ca7e24055ac91aebfffee77b4de4c65"], [10, 3, 1, "", "361:2 d318b9c1603d58f8469630e1d0a878dccb71936893da31be9add5a23a0379a75"], [10, 3, 1, "", "404:1 be0c3dc47d1448861b92b97d2ca6df362b9b0c92cbaef439a7c405b8d6020ff3"], [10, 3, 1, "", "541:1 7faca2ed636bb3e5aa2526d9da899922af17ba01f25d079d68fb51db549657a9"], [10, 3, 1, "", "7:1 18a73c5ede1011466f9dc30afca85c785c4bb4887c829ff6872b1afd6c143785"], [10, 3, 1, "", "753:1 22c214161888086966d2d6e7347c0ce17301b6965a178a232eed8887e1413644"], [10, 3, 1, "", "433:1 842d954f726fffa8307a5964fbe4e3363cf390f4b861cdc174ef3a544d77828a"], [10, 3, 1, "", "170:2 4ec66a8e6b1a1decf06468e753299a3530da654440caae3314ac821c08e25d7e"], [10, 3, 1, "", "353:2 db312552b93777e4a304972a041cebeca360aed8de3683bb1067a7019e2096e3"], [10, 3, 1, "", "32:1 f021eae06349b6ea9213824aa74fd00cc4ef76a6397f79d473154719fb456628"], [10, 3, 1, "", "100:1 c1e454072880555b23ff579d54ab1ff448ed0575ce5fce02064b8849e2794b73"], [10, 3, 1, "", "224:1 841ffbc800b382bd4a5dd9b730e0c83e19d899a51798fe18d3bc02346567aa7d"], [10, 3, 1, "", "286:2 3afcb60e8d6ff17aabfa4ede8a56759035e07896860b66e94c83834c9d1559a5"], [10, 3, 1, "", "456:1 e5970e90ac3f28f7bd55a99b22584b62fc9bf3c723cd333b1281ea364b3aeccc"], [10, 3, 1, "", "567:1 5bbbfb9f2266ab992cb6514bff6559967d1e60663b5aef621facb0efcf1d3215"], [10, 3, 1, "", "359:2 f213e8acccbc6654f72faf9e0d5345e619d1a19024862446dd435a4dcfb4074c"], [10, 3, 1, "", "489:1 3ffd7cdaaa1084cb6d67d0fd21067e93bcc5984cb0179a655e76f3b3d7178b1c"], [10, 3, 1, "", "621:1 7dd15c086ecdcec30cc008a581b76d6c709caf5a53e6a46c566a7c2842b1cd7c"], [10, 3, 1, "", "579:1 2193c6dcec0b5edf5722d4f94d8ecb73661810ced851124fb778ade3dd5bb758"], [10, 3, 1, "", "236:1 0f0c08dd04836b63bdec523a9c3bb19ebc114e8d51c8677928bfd4ee009e9e04"], [10, 3, 1, "", "362:2 192a33fcac9c29f492628ac860f294d9e39ee0d13ee5f121858d6917f21efe0b"], [10, 3, 1, "", "623:2 c7ec2e06c4b0b3c8c5d2d9a768d5d0a8a748531f0005e82e5cded086c8e28768"], [10, 3, 1, "", "302:1 20b30d1432f65190aec266223923b9ae631f2d56697e54aa56ac8c31028db9bb"], [10, 3, 1, "", "315:2 8ee82d90dc22dd71aa9e462acc2e3dea170eb333a773e9e1c5b4418cb11387c6"], [10, 3, 1, "", "478:1 01cb3ca7cb11364fef5535a6641bf8bc2c38c87090eba0d690e2fa318a4338b3"], [10, 3, 1, "", "667:1 144fd7c64d475120fd661c0bfee35b7c617ef21486036cdc10e17e37a138cfe3"], [10, 3, 1, "", "54:1 4488811105e6db092dd26534378261299efe17701e59c3a58546b12507cfd315"], [10, 3, 1, "", "83:1 bdddfb30e577fad1394130f3067d2e99cde5023a7f95afd64ebfe0b7e0c8c8b7"], [10, 3, 1, "", "499:1 762ffab2c53668dc751866e4ef08d61bd406a9f3a0151174c7130adedce7773e"], [10, 3, 1, "", "28:2 fbd7caef299b552aba01fb8e2bb0fc2915928d2be525e52f8de2623e4a8ea622"], [10, 3, 1, "", "537:1 1bcda5a5391dd6835db7f8f68d176b8314c4d0aa46215fea02b61d0dbb7fdbc9"], [10, 3, 1, "", "375:2 c2d74ab5d24f8ff5da83452353a59d9ca7fd4127de427951e03f61b525e2ec8f"], [10, 3, 1, "", "265:1 c8dc27a3167f8ee447979f40d659a339ca0a96ff1d4b98483ebbdb18ecccb4f5"], [10, 3, 1, "", "135:2 5e42023015b05a545df618be040b844570ff70e978cf02a236bc8eeabec27ec0"], [10, 3, 1, "", "83:2 f74a0df172d19ca21744867e9d95035c122a132b547df239ef8ef3ae1dd17495"], [10, 3, 1, "", "740:1 63b3768dfc5663ef6cc4bebbff9dab2e3f9a9517deeeb7092f2aedd12f9ae18a"], [10, 3, 1, "", "552:2 5f7009c05621e878183621ab8f4a282652631c2e2d50bacb7e69762705ae39e5"], [10, 3, 1, "", "301:1 3757ea14c31cf63634ec59e653227f073e6a40b7323cdbb54ab99dc50cd80af9"], [10, 3, 1, "", "655:1 1aa437048ffba699da3bad8b9d92d96000b75d9f2654d585d93967ff2d6df826"], [10, 3, 1, "", "344:1 ff25ed4012fe194d101310bc844b57da5da5f321c52d2ba65482a0fc3bfee96a"], [10, 3, 1, "", "162:1 93b8f7f371f4936860247c97677a44b6a1f54ae3365939b211911d9a0927bd92"], [10, 3, 1, "", "142:2 3e78d4bee22a11b42c3fc3c10c507562a7fba938d26864c7ec978ab2344c17ac"], [10, 3, 1, "", "668:1 416849fc332ef48c6d4f984fd449183aabcb750d11e2b2e5466e6a95a3756055"], [10, 3, 1, "", "37:1 24bc88547d8c60e4d7b1d3aca5e18d2feaf33f78759285c14d57ae40db8a26a8"], [10, 3, 1, "", "555:2 66014b23ff01256559e0ae6d92972ea6cdf24d08a51d8eca882fc60509b5dcbc"], [10, 3, 1, "", "352:2 f770112f3ec70dcd1ee759363098630db81ec34b4a7a80ed9a53f8dab692650e"], [10, 3, 1, "", "278:1 d688a125364a2ac22431ae8cfdf110d5c8cd751b3cc4df7d678a6b994434cf18"], [10, 3, 1, "", "8:2 001adcc5cf31667dc474a6877f534f69a81f18ddcab2d86e6ed83cc8fe500082"], [10, 3, 1, "", "410:1 24d03e78b15873359093b7f11170b9c9cf70a53e2872787d6d5f4ba06a2b2c1f"], [10, 3, 1, "", "160:1 c6086a6971526f43461c5f5000f075c75858b7c4fcbd7a85e6d6508c512e211e"], [10, 3, 1, "", "679:1 5859c3075cf1df2fd347a0e0ba5681b8b26efa87f65a5eb486a7b8835742b661"], [10, 3, 1, "", "130:2 eb0e902364def6089ac3e648000dd6b34e1f89793d962b32ff085e12782d0723"], [10, 3, 1, "", "241:2 53b50ddb978cccc5c65f5d3f449deba71832a75327e0b188c8c770c11e20f24c"], [10, 3, 1, "", "558:2 6aa6c77af95fba53f06c4d1915a60c8d2a2d903acf2273c4d09b0455acaf352a"], [10, 3, 1, "", "434:2 f1016103f42eef115e6ef4d177f969a429d4575ad9c39fe8ed488030aafd2427"], [10, 3, 1, "", "563:2 06e634353c4e82d4468308ea5d723453faf370ccb23f1145542b72295fcc7d85"], [10, 3, 1, "", "231:2 db1ddaa36db2cf43c9125478d43b593c7f65cfa74d559cd15e8592365b5842d3"], [10, 3, 1, "", "128:1 5d9117dda45a4ef5e11a2ee9082a6b3c4e71cbc0d6ade008d3c14ea84d8bec69"], [10, 3, 1, "", "600:1 ed559515daaf26c73e18ad51cdf6d614e9c7ad24058260bc123b501442fe3b71"], [10, 3, 1, "", "379:1 a67cc1616a4c334e62d84935d765c7ad69a1ca07badb8fc2d9a2ba796f96918f"], [10, 3, 1, "", "161:2 16cbe15964f11f6a2159ae6277fdfa291cb2878516c19d2b3792e41f5e0ea759"], [10, 3, 1, "", "65:1 2a6e0a0b10b38bf07fc1a1c417c76c23fec81dc802e87fbadf41f6afae85b40f"], [10, 3, 1, "", "613:1 2b1dfb1c0e61d8912d1dd673de69374a8fd7d638159307aa8c29bb282171450b"], [10, 3, 1, "", "85:2 b7f319cf6594bcce54f2cbcacbd3d3d7948cce9103329f7d2b283f08f2c2e673"], [10, 3, 1, "", "644:1 98d0ef426eb51ce57244742f7fab1ff43421302eac3bacf3a6aae66d4fac0f89"], [10, 3, 1, "", "378:1 0a8df9a91ccb65805274d985e266df502f59ec953f0c3fb80738e6c0f165d951"], [10, 3, 1, "", "352:1 019608866bf67a708c1b7f5534aa4306a1e58faaffa52dab52eb45c37629e7af"], [10, 3, 1, "", "737:2 dbd8cf2b875110fb8f629b15bbd1d7c296379c578316f6553ab8d2350d8f0c3c"], [10, 3, 1, "", "311:1 1a6751720b534a1fec3990c20d85a28ec41690a7b0f4b678aebd48f3e6e6a449"], [10, 3, 1, "", "194:1 7bec00fcaf3ec0f8d237b6ad87cbc9a5cd8f6670685a281e0e56f0d84971ea97"], [10, 3, 1, "", "225:2 c24eb2fc0386b3b65f293e81f359cb57b7cb3399b2399e8f7ee535883ff24067"], [10, 3, 1, "", "610:2 72fc972cdd541fb8ca2663c3b7dd0fc0a798be06d06177e90a728ac2cf8355bf"], [10, 3, 1, "", "96:1 a5eca162961a093420be9f39da9f05c4aaf249a65ade8d2949ae9aed7074f6c6"], [10, 3, 1, "", "387:2 259e220ac8fb44b99ea0c82eb898824d62ef46777dbc0edd50ae2b6103446746"], [10, 3, 1, "", "594:1 8203df0c3becbdb918514069b8e3047f79db11d26dccc493c7752d00fb882b87"], [10, 3, 1, "", "746:1 6ffe1ec9864a7fdf10179c4f786551b508513c83be6c1cc6d42dc3bd3fa6491b"], [10, 3, 1, "", "366:1 3127db7af4f12d674c85c2c41c5b51deda11fcd1ce19ad8151c6214dc2dc4ca7"], [10, 3, 1, "", "46:1 93a89e40c548bb5a1e376f389cb160e3e81d28dcfe5b8852f52b8445e051df64"], [10, 3, 1, "", "594:2 5838d1d27013f8bca68d94a9127af38ac3f7dbb9a59a6a9c822b155eb95c3c01"], [10, 3, 1, "", "19:2 ad1871a77448f12fd5e58ed8c626ded9e8e52afa05b92616d9484411af6b061a"], [10, 3, 1, "", "189:1 93eed90fe1fa480bab6c0988d5fe9e37292cf9aaed59df8c10b83a82a370a1ff"], [10, 3, 1, "", "389:2 678832f1689006a4ed0cc51cf6bb4e0bdce65d0a1cdc4941935452093ee7a437"], [10, 3, 1, "", "319:1 948d0eadfd2265ab8a0fc5d4168997cc11faadb15b2c80b4a15e976df49e6edc"], [10, 3, 1, "", "190:1 b21f5c532bda9b088c3df990999b60c9897d53a813c2c50f6a586d94594c17f2"], [10, 3, 1, "", "464:1 b0af4ac1c1fc45ead27b4769e33d2b79b64039af33e54ceafa90d18f0a477756"], [10, 3, 1, "", "97:2 6bb0f77a7c09be460bc83d28e0665398c71b1c5eef14c1b6a1f5eccc095f0be8"], [10, 3, 1, "", "368:2 210efcb9b24d5e7117daadc1130049362f60b5b646acf22a3cdea1875f306aa5"], [10, 3, 1, "", "432:1 3e044b65b674a3ca81a47e1f3885f0bd6ecf9dea10da9f661431aa6644b528b4"], [10, 3, 1, "", "75:2 b3707fb3a022619ae8bad6938a11a28675245d4df8e298b7f28a1422b7eaa155"], [10, 3, 1, "", "212:2 f9e3f3e27f25bd67eb45f644b9fad2f82e6ce29d5b297ca444300b0a7127eb03"], [10, 3, 1, "", "73:2 8f96f9d84aa93b46b2afda2463ab482a897f48de4b4279aeb9aad60d75682efc"], [10, 3, 1, "", "522:1 5739a12aef006ce4cda2a2e1b494a76ed4903009098ede2b5f64a6bba55c2b85"], [10, 3, 1, "", "12:1 6808f99c6d1e3528894ffc4a50f26c4ff9826a8a39f1eb8a8649656dbbf99cb9"], [10, 3, 1, "", "583:1 94063dcde3de2a93780051ef91049b87fe9a40d3f4284cfb4b1f5fe3a3466f97"], [10, 3, 1, "", "198:2 749e923d0c51631d01835a509d15cc66aabaf35d93c976a8ae25a6bb17e353c9"], [10, 3, 1, "", "461:1 664dc5c79d01a330a354ea02f51bcfe3681a68e19f181e09053ecf12b1808cd9"], [10, 3, 1, "", "511:2 1ccb12b52e379076fb8c0e8221338eff10b94f7c18a4f1bdf11bb25888aa5344"], [10, 3, 1, "", "587:1 cc25aa4d57911509c879b4abb007058413889d0882ac946def3aaa8bab9ff7aa"], [10, 3, 1, "", "675:1 9eda2d81c174228b1d72bed89c9818071620c13ae46d5ae55cb5152642ece5bb"], [10, 3, 1, "", "676:1 e49eb059e7bb4cee0f4fd399cfff35171648face5051433e2aa2c8524cbf1680"], [10, 3, 1, "", "402:2 fd6bd79198d1beeb7f0e092a6bb6fe0c1a11179fe60ce2715d55bcbdfefeb38a"], [10, 3, 1, "", "145:1 9378146dace311325f80bd7f9da97358920f87f3e846baf8ce39043401b42fd1"], [10, 3, 1, "", "272:1 2323d6f17ffd54bf48e1075fbb8abc17d6d016713e50bf8ecd55376beb00c8eb"], [10, 3, 1, "", "193:1 10cf182ff530b108c79f8a6105f024ab194388b61ef12837cf0ab351bcba13ad"], [10, 3, 1, "", "688:1 078fa9c5e5d905d209b8c537c7b22c2aebe1e612159403576f63645e9f16278b"], [10, 3, 1, "", "35:1 4a34ae854eba4a45a95361791380b49e9b65392a652a33845c8ca9145a81efd0"], [10, 3, 1, "", "21:1 948f90dc2aa9b3c20a7077d80523afb82b57f643c37b11a2bef947380b2990d7"], [10, 3, 1, "", "52:2 add4bae4dea893c262fa7c8b75274c1b6bf0f47fd38a6f8b8932a19eefbffeb3"], [10, 3, 1, "", "318:2 3ecd68423df5567eff9272941c95598c21836dcf8039b520091f17f513497500"], [10, 3, 1, "", "260:1 99886b09b038dfb27460a4c8eb9ba652df2f78efdb272211650cd2efb1a63442"], [10, 3, 1, "", "548:1 6d060bc7e74c626d5e9ef880109c402c07be27a6b98aedbc2cf8bcd1512be5b6"], [10, 3, 1, "", "358:2 f85e971f7ba4065c7534869bfcc94181241b33d9984d4fe15d14eb9f0fc65983"], [10, 3, 1, "", "431:1 2f143ada7318a9b3662f0de044b16d8f44b009081e6cdebaeacb250810127bb0"], [10, 3, 1, "", "751:2 f5d3b6fbddf11fbcb02e78d7654c5526825238dcea2e4a32a27c1123c31f0c7a"], [10, 3, 1, "", "357:1 c90b93dadcdc543f0e5bcc502fea69ba1c2e22d31eb4c54e787f4f59125de84a"], [10, 3, 1, "", "339:2 ed2eed878c2f0d8ca8c2a36f113bcd633eccfb516323e09d63a0ad3dc8d42dc8"], [10, 3, 1, "", "533:1 6477c1ccfeb986ace644b6b3db6c2ae8534b4a3d6fdaeab0cc075e20c780db7d"], [10, 3, 1, "", "654:1 282d3a580517f24ff1a616e6dc74f09871ab4b9c744dab103befca5df9b7974f"], [10, 3, 1, "", "102:1 66ffc3c5fcf1629701193aae370401f974116ba4bf0de771171962934b74c104"], [10, 3, 1, "", "592:1 8cbb27f21ddb2b64287b47fc413a7545d60cdbec73f33babcfcfe63e7b8d4f1a"], [10, 3, 1, "", "164:1 c1f0f6341e425323d91fe1a69bb0a559bb1b796ae5d5cec960c20d5f296e971c"], [10, 3, 1, "", "702:1 12c30d23e49fa947d50f9367ef6d16ba1b0fa37b23b66c57df17510bdab20c31"], [10, 3, 1, "", "716:1 d98a7945c0178ac11310bf7409389f0e5c7a3d7b807856fc6891c9e53484a28d"], [10, 3, 1, "", "362:1 e417daaddf4c19c96fc2a39d850fd7a39594835ddc58d68394b8b295eb539e2c"], [10, 3, 1, "", "93:1 6aeadaab397013441a631c420b0f0554cb291b29f976219428549a505a3cc48c"], [10, 3, 1, "", "261:2 d5b0c77a7cd19a471bcd340f238b9296718a174c3a7a829f85b3e9151798656b"], [10, 3, 1, "", "350:2 d9dfff39ef919f95a19df53a63051db51a261c97c8885a84257bc4c274dad29a"], [10, 3, 1, "", "535:2 4f074824c61c9cdcdfc162ddd7058c0581bd1e622adf827935738bdc66ff343a"], [10, 3, 1, "", "750:2 da5c4a74abc8155179c4eca22cf1c4cf733370173eaed26a6d9d627196709d7c"], [10, 3, 1, "", "183:1 02153ef5dc490ca8c73e4d45ac6238b2a79c316c5d7f497dc65f0485462cad42"], [10, 3, 1, "", "404:2 379cb24f12e7d1b0cc7005800322abb89fecf29cfbb82181e83f9840c6c6ebf5"], [10, 3, 1, "", "442:2 3c8dd8cbce92e7e091520afdcecc7dabb89d306f5f446a424147e681ed3f464a"], [10, 3, 1, "", "81:1 d3ac6ae36c1f6ead0280408385cee1b2e32019f9e1258e0125607bd48f54ae66"], [10, 3, 1, "", "155:1 186be1d59895580871c6dc1bb41016600424e8a4e18c7b824f276f299825b31e"], [10, 3, 1, "", "287:2 3fe47784fcdb9463f3257d31bc2aaf57366cb2ee3ce006feb2bf74de65794d34"], [10, 3, 1, "", "203:1 8211f1e161aadc39a62f6cc679dc33b4399404b7f905d79b99f845eabf6d971b"], [10, 3, 1, "", "163:1 16374bf45141d9fbb2097bdd885ea5e7091f30932db80a58f20cfeabe4ded75a"], [10, 3, 1, "", "430:1 ca62498a89b2c5bf1776f928d2d026eb39cf43b5df3abdfb967406b6ae26ad9e"], [10, 3, 1, "", "598:2 663bc7aa3d5f4bdbcf29c776b56afcff6fa10a0d1c42bf9fc577b637a74b797f"], [10, 3, 1, "", "220:1 da42cd3e020a0d0b56ccf3c37074591a4652e9f193d2c8b6b95f3833a781b346"], [10, 3, 1, "", "94:1 d53ab1017611e7d73e98148e5d12bfb9f0581c976b2abd40acf4ad93fa684dab"], [10, 3, 1, "", "424:1 8258532fc3796ab5659874d42b0fd28c7e630105091b0e0d51e9e81b1687fb17"], [10, 3, 1, "", "730:1 fa62f79410b8f3f03ff064f7b2aeae07edd46afa17fb3e05d645ddbeb6e51469"], [10, 3, 1, "", "714:1 89b6b9416afba18aa81bd12c9a7bae03ee6252816561b861b81b0af8ceedb90c"], [10, 3, 1, "", "517:2 766e107a69011593d434341484ceb725c70e248fa535f9426fdb2bcc4980fe2e"], [10, 3, 1, "", "544:1 2c84dd8f18191eee2a6a8d33211ea59f50d82057eea605ea0978a7d4edfac0a8"], [10, 3, 1, "", "572:1 43c0eb1d09bf4b44fd390dd1402c3a5e5121edfb8a674df2e6e198a59314ec34"], [10, 3, 1, "", "138:1 5a09a243a7c3c32ff88305c901c3e1a7d0ff09116c8be54fc9ec726b97a5d270"], [10, 3, 1, "", "327:1 57e2be16df1734ac4e82269f1a4437273c5522e3ee460afde5f802dd6ee39934"], [10, 3, 1, "", "174:1 1fcefd037c849800562d836fec6ff2c3da85fd098b5fb8c46d7abd688be6e626"], [10, 3, 1, "", "287:1 f38d300b5190af9d2bf987bf58a9ff4acb9e1b5e7557b481dd1661734cc633ef"], [10, 3, 1, "", "678:1 d70e06ecdd54a9ee05e709764b36e5d3d678f857d806b816c0b8c84801361aa5"], [10, 3, 1, "", "126:1 92054d68d64f660e73b3f4decb54b4b651fd99a236d68518b3bb96f4ae582507"], [10, 3, 1, "", "540:1 b89cf8d0e1e227cb599ddfe6ea05472a0daeb7e5a95929946f50ce7a1e5fe513"], [10, 3, 1, "", "535:1 f38ab06c89f104d3e18ef3fd4d3cff621ab49a274f35660b4bc7d77712b39721"], [10, 3, 1, "", "97:1 a6797b02bf09baf68510b276fe856bf4230ead726730aeba02d646bddd2e50b8"], [10, 3, 1, "", "552:1 51bd8ecd32b9a1aff3aea5aad31fb5378fb80bc29756499f75a8ba2fca92171f"], [10, 3, 1, "", "343:1 46bc911201fcc38ab17b1ac1acc7d45f9f8095238eab0101ab21879cd051267a"], [10, 3, 1, "", "331:1 5a0e6886ed700d81e68bab59cf16ef8c53c8610eb1a7bda62606dece3e37da01"], [10, 3, 1, "", "221:1 dd2ddbe7d5c0f33b2db1c0fad93ddf27f1e0609d5201db45b67dfaaba9ad315b"], [10, 3, 1, "", "509:1 b1cd9de2d285020f5591c62a9c34e8572a7adb31a489abfb87f692f69aea89df"], [10, 3, 1, "", "367:2 959bed1499d289316aed1f8a85bd48c2afde17e6ae4bb94b6e01565665da848e"], [10, 3, 1, "", "527:1 8462be667fdcb4156499cb7cda35dbabd082a2bdbb9a6eb113c29d9eaf63058a"], [10, 3, 1, "", "418:1 921563a93251286be4f1640b3b57362f2a64d15693e4638b53cf087edb85614a"], [10, 3, 1, "", "409:1 a9435aa4761b186ce68b1325729655422181f6d1ff0eaafb6cb211b4b24b0354"], [10, 3, 1, "", "246:1 7d7eed569429fd517f1fce67b5b7a422962aa3ff39f90d59de73a32ffaa4234f"], [10, 3, 1, "", "80:2 1f0ca2a30289433f1b3b0c539f49740c80d5a4b91347322854b43a22a34d9dfe"], [10, 3, 1, "", "264:1 6b45899debb368b7d488dd6bb30d6d358d8f253903a603b63796e2365e461081"], [10, 3, 1, "", "516:2 480ec4dd84e1056808f5f52463cda70e308cba46d99949f428045c3c8cd0a218"], [10, 3, 1, "", "124:1 6b1cafc5dc71738785f475115cf1f65dcc771362024656c83b870d22790d16a5"], [10, 3, 1, "", "578:1 62980a85f7903df5b0e14a811b9522fe6e121c2fd45bf15b22e287f1a52435a8"], [10, 3, 1, "", "18:1 6bfa74716faf884aa1779362249861b00e1009170c63cedf337926564d47b803"], [10, 3, 1, "", "577:1 655a756015de86a2930f125390ef8928b2552753f5d02b06b7a17c3f2eb04f97"], [10, 3, 1, "", "712:1 ee313d7b845dad7fedf2fb56e0e18b297450b2cd48ac8a69efeea153520a5f5a"], [10, 3, 1, "", "337:1 856b3da012d02d6f197c4129e8a4ef5c2a01d3b8ac09dbd0f255e7d53e741067"], [10, 3, 1, "", "415:1 9a42dfd1225c651006e14872ee23fa315d11176760e05f6b1fbd9d8d03fbb305"], [10, 3, 1, "", "332:2 5a4d1cc0dcf4a7645526a45140c4afa6ba5569197eddf4425b0ef110f5dbc23e"], [10, 3, 1, "", "573:1 b064a306128dd1ad0ab8982a34e8f6f561c8fa287572db62090d49a1f79a5c10"], [10, 3, 1, "", "653:1 596f296cca0b51eaa8e888755d7d04130b502f20422d5a513322d6ce74806052"], [10, 3, 1, "", "187:1 63e5e30e747f9a7ee44508e6c55a2cba2b873c7ed32b690019a9f392ea878fc4"], [10, 3, 1, "", "470:2 57d71332bc8a58df16952d89e63669accbf1249be23bde5e2cf12a9b9a3132a4"], [10, 3, 1, "", "515:2 35db6df8f6c7e38dc4def42c08ef8235619d1b9b3d2959bbf93006eec59009c0"], [10, 3, 1, "", "276:1 c07802b539d4a11ab3c780e6d69949fdea05f21d55993a058e58a09db21a0e8e"], [10, 3, 1, "", "152:1 9ef72ec2d278087799cfd15845195fda66fe207e98907f8756bd7bc966c4485c"], [10, 3, 1, "", "168:2 7faaa350f801241526ccbf52964a3df8980b47b8b0ab3ea9f42d3619e28ee24a"], [10, 3, 1, "", "234:1 0b0169518dc02e79a70eecaf957c5e77a6946f1bbeb52340ee1d24312217adb2"], [10, 3, 1, "", "482:1 8e580aa369d44cbf978bb7f303aa685f9e92502ced79c2f272f4299dcbf51429"], [10, 3, 1, "", "633:1 685b7e8e3b380db2523911991f3f586f96f845a195fdc5d73d394864dc8a40b5"], [10, 3, 1, "", "224:2 8d2041606274b9333d7b1f48edfb63c1872e07246fe2433127c7af80fb6013fb"], [10, 3, 1, "", "67:2 43ebfdd1a3a5b7ded83591c051b8392c774d490fc12f8e886b48ec04777832ca"], [10, 3, 1, "", "643:1 2fc66eb388b114ec37b6e442a13f0de907102366b96000febf92572ab97b53d0"], [10, 3, 1, "", "154:1 2895a430d0cda09b5bc038198372fe120335616480e06ef39c5d2f0912c3bc54"], [10, 3, 1, "", "219:1 8ca9803fedfbd1c394698766b0fea6b8a100d5d3761f9d7081fd762569b2f10c"], [10, 3, 1, "", "175:1 5fb93529292d1b9571eba0d6c393406561ebbc3e510714fae4774d114a0b8c30"], [10, 3, 1, "", "478:2 aa9d26df950e952959e95fcadb41018d9ec36b7c6cb1c49e2d51bf57fb094c74"], [10, 3, 1, "", "276:2 1b0ef38cc98efb4a5cdbd2386ad64931d6c6620c8bce7d92d8e637b7c4f207f7"], [10, 3, 1, "", "459:1 4e92b4f1208fe3471467a760f1528e373e782c37c88e1de82e1e3ba102f163c5"], [10, 3, 1, "", "359:1 bac25c01b0dd837815451adedfe2b461365b8da57aefc2b2fd46ca9dac538b6f"], [10, 3, 1, "", "616:1 499bbb6609c83dd969e5c1c2d735637ba43d35f5af7277f5e1ec70d1bb188a08"], [10, 3, 1, "", "734:1 62eca509966b187d4122d97645ccfbd24db641add46b27e8be7c2ae576f96503"], [10, 3, 1, "", "442:1 bff24b790bd2765a0ae1d2b8cade1a40d802da6af67d3e13da1f98d467eabb4b"], [10, 3, 1, "", "80:1 a9fd5b5a052ecae709955218afa50158d72219a0abdad4fceb0946455ae41905"], [10, 3, 1, "", "704:1 a4696e694d314be23cb1c73696569d3019d536edd5cb27e6d91a22cf0b61c261"], [10, 3, 1, "", "595:1 6a0328c33efacf2e1e5c51402ecdf576f016193e10c71fd2e21248add2cfc1b1"], [10, 3, 1, "", "538:1 638efa8ac95ee61a4e7819779c00f8752e3292765447404c141af6db8331c6fb"], [10, 3, 1, "", "263:1 4304735790a85f815648c0d0d8cd5d133e2cc11591d0ffe637cd6652cba4cfdc"], [10, 3, 1, "", "10:1 ade9bc5a53b24efdeb86472abcb73c57df00dbc87e4e34d1326537fae8183f57"], [10, 3, 1, "", "191:1 b99ebf561fb2b712d6b0e5b6f8bbef36e59b5929b8f2a622a11f35506b0a09b4"], [10, 3, 1, "", "640:1 3b456b60006efdb599c098450930107e76e6f7de7732cae0e96dd51a6c4f3156"], [10, 3, 1, "", "255:1 736d554de2f9d8fce1817e9523ce08f8065b3f8b6ac72016bbf47ac44b6c1438"], [10, 3, 1, "", "23:1 baedd928a3ed072770b87d4693650150a7a444aa606c70d3234752066ec593ea"], [10, 3, 1, "", "648:1 784c3ee0f36516eafac0b2ceff3671873158cb09a282fb61b14c87e50c82ee6d"], [10, 3, 1, "", "529:1 485ef41309d2b7ee99f92112f16db795305331b0d8fc0abc7ed6582e65ac84fa"], [10, 3, 1, "", "458:1 58b1d7c2dc6797e6bbbe447b8084f4dabf2cf2b27007f794e217774d1b6331ed"], [10, 3, 1, "", "213:2 d9e8419c17a4b4649a3d0af3749b43f96720c9b317e51491a05070b63556b922"], [10, 3, 1, "", "513:2 2e781e505fb781e792fa875bdc9b585fbcae08af847fb9b07a60f1d4bae29067"], [10, 3, 1, "", "125:1 a44244ce87f36dbaa2fbbc2f4104dcae06a91a8b598b33cadab5c92c832adc85"], [10, 3, 1, "", "198:1 752a5f73dc8c26534cf6daaa8b7bcf1748a4d322c908774179f40a26734847fd"], [10, 3, 1, "", "741:1 97ce03f5d133c156c2a873b2c3bfbe141c79c5f3439eaf79749688438d96b196"], [10, 3, 1, "", "62:2 7f7579f1d3e5c8ba02d2814c1d1fc456b293985a01e5f2e2ec3b3cfc55cd4430"], [10, 3, 1, "", "270:1 f9a2cc5b725c1e023ea5fd9f3626921d41bbd0a58077d2f800c1be6cd7248afb"], [10, 3, 1, "", "711:2 9a4a36a9c339532c2866460d9fa0aeeb69de36a8d9ab11fdcb0c088e5643c3f2"], [10, 3, 1, "", "677:1 15d4c95ee790f9faf8bf61ea000ae4a165864cad1a8ee88a120cb524d75f37f6"], [10, 3, 1, "", "59:1 b5c6af660bec529b7de2438ec95aa067b92b22c3a7345a99c7931a09fc5cf924"], [10, 3, 1, "", "595:2 0e6bbb09fd173ec2bfbe6c665dbd7c8fd770e98eefd0e85f8ec09c7304ae017b"], [10, 3, 1, "", "27:1 a947e7964455ff2ff7db79ea1fc66d35c22a54700e41188ff3d4293a68c8d439"], [10, 3, 1, "", "324:1 9a1bfa79261122c06a3531b037978037761270857d040ecbe33014e2eeada22a"], [10, 3, 1, "", "348:1 715e8f904eedb87640dd89fe38e8447a7bca9b865b141b11baa1c5dfcd4f7665"], [10, 3, 1, "", "628:2 9d7dd055877382e5b2ed574d87fb5839e2119866b2d09ffc5ef7643a202a3fa3"], [10, 3, 1, "", "291:1 eabb95836b2650657826aa7377696f57bcab2d1bb7ea1e7384ad9158e7acc72c"], [10, 3, 1, "", "501:2 80a89173f9185fb97c777a95395a6b7855c9027d1d577768efd998eae5c31e12"], [10, 3, 1, "", "98:1 caf6430eeedca37fbd3183876687afb5795a116f8b57829f9296015963b8c9cd"], [10, 3, 1, "", "627:2 99e9e1c05adf9d2d4fa06e5250575dab07273dd327eaf9be139829d9c8875b68"], [10, 3, 1, "", "396:2 c7b336f6c4370f3b137a37762b3e34a45ffbdee9d31aba2dc1e8ae6ac7bd56d9"], [10, 3, 1, "", "406:1 fdb86737b8b408d5bb953cf6a525cc9139ba25501ba50b1cb45c3c6406637dd3"], [10, 3, 1, "", "269:2 4fb7af6ee092be121251a4dd89a945241ed4accd51b3de371d37f67f2305ce11"], [10, 3, 1, "", "586:2 c74aed7ba0e30c17069b8d407e81466b6ae0ca370ed263a025cf967bcb34060b"], [10, 3, 1, "", "611:1 4da591ce0c09acde63777755ad8fe0b8287c1d3267838ff368addf6254513b5d"], [10, 3, 1, "", "666:1 34f0ca66a05c537ae1ade668b63e1e7ac6dca1122c33c64c2ef18c2a7863c403"], [10, 3, 1, "", "249:1 1f4a476c4f72be9e1e093d930aa7398eb5c3fda0259dbb38265f6d175b4ed9e0"], [10, 3, 1, "", "247:1 b9c9d84e092221ab9de5d174d25907e392c35ba623e2ab0a233c4168f9e22538"], [10, 3, 1, "", "742:1 cb2b2895ac8157efff1e4477cf2a7482d64c99c9b251c0e789dc26e88cbffe0f"], [10, 3, 1, "", "215:1 e27b76500ca5beb577c67a9a3db7c4d363f4240f6e86516e9b6cd759a3fa0104"], [10, 3, 1, "", "607:1 e40fa914d13983c5ee5ca0905192bfe550ab8532579d6afaa878ed3a50d3d641"], [10, 3, 1, "", "340:1 02960af14adfa00c65955c297ca46d3e8b5c430c3db90359c94b38f96a484b01"], [10, 3, 1, "", "441:1 9b3b52ee8addfafa5290a18b0526b0e262c110c4dba134e24600185ea32cb7f2"], [10, 3, 1, "", "671:1 0abdb8e038c1bfa402d5079e31e31f4e462c1551ca20b145e493f50f1f3c7854"], [10, 3, 1, "", "241:1 5c28543992747cf3016899ab4858992b7bdff460617421566312be5778641a7c"], [10, 3, 1, "", "240:1 94f184828cfb74ad979cefe3d5cc902b382fcc51d88514c9298ed809d020ecd5"], [10, 3, 1, "", "36:2 8b8e39cf03a8e9e7cd3be103e2bd7d0876a158c6e0392b6cdf85a32caaccdcee"], [10, 3, 1, "", "227:1 7f7d5a7adec0ac5efbc2e056b4b3d91501d12bd9539da3e419c9901267f17746"], [10, 3, 1, "", "756:1 840efa27d2a573c352b1f414faa65fb09e61835af65aaac9217b2df73999c7f7"], [10, 3, 1, "", "147:2 488774d81d84bb29b04dc72dc928ca8debee7a3ea8a637d8ea58d8aa498f8723"], [10, 3, 1, "", "397:1 5adf84e026b68d65082ce2b636187b84f445f4d14c4f204eb97c1efc67da7292"], [10, 3, 1, "", "336:2 a8db40815773a479e6556f2bbb9a39e51c652c8886e643566ef6beb86126e8d5"], [10, 3, 1, "", "364:1 868c091be2035cba8a80f341c67594edd9266efa2a777912957d9946995b41c1"], [10, 3, 1, "", "525:1 6a6b792ef993655774a38b538d5fc34f98983eae1feef2ede4b558ab58dbe311"], [10, 3, 1, "", "285:2 7d8882b3c5873c79814d36415d2ca65a42e0a4a0fc909e1b36254f9f42b5972d"], [10, 3, 1, "", "513:1 219a4e50865322eff0dd151631744f39b71f645d94673379a844b2b275f73656"], [10, 3, 1, "", "440:2 a0ac128d622e13f0a3e95e294440ef1740d39770c599f08474ab7b8225290f63"], [10, 3, 1, "", "107:1 4ba4a90930f8d7c12d76e02403a8cb949a676cc2e12dda149a084b80def6fbc3"], [10, 3, 1, "", "383:2 2579b2c7058a63fb346fdc569e1de4e4ca45e63464883ce0e7ca19dfbbf8fddc"], [10, 3, 1, "", "321:1 d397cdc0022307b5f8af5c6b786f066040a4960ca38e396552063c8b054ee2b1"], [10, 3, 1, "", "256:1 d43c09b39e1107251b36161aa1bf6fc7f8cbd51920170fe4190185c45e5ae52b"], [10, 3, 1, "", "42:1 f556d4d5d4be5a144a195f8b05ec440856459d7c948ad80636ecba13520a30f1"], [10, 3, 1, "", "194:2 70f96046ca399c6fce19a8034df2065d80d5c8d0620bcc1efd0f86c58e7e4dcd"], [10, 3, 1, "", "57:1 3b217ba958e7220052f92553ebb0583eaaa74f2730e4e3e007098455a58992f4"], [10, 3, 1, "", "170:1 33403a1fd9b481039341e610a91050d2e72dac7d9d9d891990ecf886d8b49253"], [10, 3, 1, "", "377:2 6f0d5a009b0ec0da4d2f1f9b383b8ee3fbbcf2cf3953f9964f12c4acbe1fd9ab"], [10, 3, 1, "", "449:1 e488195c335e18072e4e48c855a1eed43e65910ee2a2cafd06c7217267cc9e78"], [10, 3, 1, "", "367:1 dc89c8ee67f0133c573918672984a30b6e419f17cd870468facf698d942e70db"], [10, 3, 1, "", "523:1 96f5ef7d68e99dbcdaa9d2750ebef1f16c2c53171efd2587347e60e12e9c75de"], [10, 3, 1, "", "284:2 d9bbd2bcbc1b29d6990db2751d2c8ec5554679823d90a104009527caab464c60"], [10, 3, 1, "", "178:1 7abf2651506bd0665031edef1498e14afa72ecdeb6a7b874c9a09f3c9331b1e2"], [10, 3, 1, "", "616:2 ef9f4e2d55f8fbc3c3e3b7aca8bc4fd3e1878411609ed3d7e247cbe4118bd0dd"], [10, 3, 1, "", "591:2 53b6521e56978d409f69defaad339b0bb285fe027fc46ae2a064c95770360894"], [10, 3, 1, "", "407:2 1bf032c998565a27bff84f22aec7a6a42135b79bd6dbb7d86aa3b63d4f55875d"], [10, 3, 1, "", "713:1 95231838f01caa661982881c4490bea6d03af7f28abcfeb08723b3c371d046aa"], [10, 3, 1, "", "554:1 58647c3a13d6e823b666c14587d23bbe61fdf882fe125f19e944a9ba5e3c0921"], [10, 3, 1, "", "309:1 8af3169cc4ca92e09ac9483d1b2174dee02599bc6d4350661d0ae42af0ec1c53"], [10, 3, 1, "", "733:1 348c1728b3e98cb6790a7d9f4b3b632afe4b9554200d2df15d1c6aaed7c52f68"], [10, 3, 1, "", "381:1 f167af10c01112260d52505bf663f378bc267eab3462b536907699887ec4405a"], [10, 3, 1, "", "675:2 0246218bc2fdad2c586c7abeea45f0e01af777b9ed8915378a5b40d264abcf14"], [10, 3, 1, "", "151:1 0bc4471329d6e01909401ca5df636211c8c6d69bd3ccad0b79e18b222b2fb700"], [10, 3, 1, "", "317:1 079764e5ee5fc13fca08851efe8ac52f7f0adb182cd20854e59103c980a1d34e"], [10, 3, 1, "", "95:2 62bf1edd9513dceb6b09f59764b6bfe6010d27cbbdde85acb8372d671edd737b"], [10, 3, 1, "", "373:1 a7cb91ca6f93aae65ca2a5a647bf9f2755ba0df9ae7f08dbbce5f76eeb8d0547"], [10, 3, 1, "", "659:1 fd7a0c032dc675eac522e0d301dfac0dd616324af7fad3e01a24b4c628b5ea6d"], [10, 3, 1, "", "412:2 450213c07476598d14fec31d50c4646cefb111066845f4f27074940461b76ee6"], [10, 3, 1, "", "599:2 41eb9351de7f3900935c86f7a49c2daee9b8803c662daa2cd9be171d0bc8d389"], [10, 3, 1, "", "91:2 d8cf8031f26386674c6e8273c8ea271f27f1889e7c859f78134c921bfbccb00a"], [10, 3, 1, "", "182:1 65ab24e3cd1d32e6f0df7050e8eb6474391a353230f445eceaa10659e7c0c16d"], [10, 3, 1, "", "376:1 704a24c6ebae8708a1dd061e2ea7740d73f09386f706369679faf81564964823"], [10, 3, 1, "", "752:1 c8664735abb74e6a486190548311df13dcb3a26d2306c0443cb988f0d5b96e91"], [10, 3, 1, "", "2:1 1a4c99c0680d2f8364d1e4f3c98050fac1c55af56f6adec3c02a4c03d0f0ba0b"], [10, 3, 1, "", "137:1 a75de229346221acb196751f39b11f287bc57d55d01b3fdc6af25f50007a9628"], [10, 3, 1, "", "583:2 d0afb05c1db5d98d77429c56828d4ae519fd86b93587699fe3b7c6ee83a19fc9"], [10, 3, 1, "", "289:1 d4e4d9f65baa42240dca1ac122c722615e701eb37a7ba059f97285657653814b"], [10, 3, 1, "", "604:1 cee506307ae87c6c97d197d79ee149cf7939c0ce62ec674e1b827c7fba7ef5f7"], [10, 3, 1, "", "694:1 45a374a6fe44141b872001767db4be400065b995ab6d0c882b20cba7b56408dd"], [10, 3, 1, "", "52:1 4eb0d7164f84edf2ee6720771e61fde345943bc20d627bb59195f659862041a0"], [10, 3, 1, "", "599:1 3a3cdd962ac9019c3d9290553f854ee7a721954dc2c9f0b7c2445f5835f9d7b6"], [10, 3, 1, "", "283:1 09e703a738c07f027618ed4019b3f7d984f99988680a17ebe8393314b3e649a2"], [10, 3, 1, "", "130:1 e2c1d60946ca8b4e458c33951b8ec06592d68b989f7cc700231d8b1760619fb6"], [10, 3, 1, "", "468:2 6d3bdfc17d5eb10e2aaf1deca72aa28759c278e9ca6ce02a04c08a1e3f51249b"], [10, 3, 1, "", "45:1 7bcc5dac3606f39e26a6e2f2101318e15fd128e8a726e5d05bcb6132d7d4085a"], [10, 3, 1, "", "470:1 b6cdf53116b6fe6c3b499f893a2d2cadff50728b57b75f936070a44e7f417cb9"], [10, 3, 1, "", "402:1 1c3440394d2d7311b5eb02ec970c0499c201a23ac3d04b14c5b0f8523e7d9a16"], [10, 3, 1, "", "692:1 1823d4b590e3d0914a15950d1b7cc9de45f2d3a17cb7a6046ea3bdcb86e0d416"], [10, 3, 1, "", "664:1 b311d346bfd4e086b5c17c8f16534ff967414f9627ca9530ca3b8be758b5c18f"], [10, 3, 1, "", "156:1 c6f81f63302508941a457a3549f6715449e0e3264bd13bb8fb58f97b42332877"], [10, 3, 1, "", "452:1 5b159023d4dab86c8289c2b619e307e02ab8241d90be7f51971a9f21cadc2c4c"], [10, 3, 1, "", "51:1 612300be50d7624e3df044091fba207dee10c8c20ee72a242a4ac82aef426009"], [10, 3, 1, "", "257:1 42163bde4b1383459b09aad7d92ab4b9cfdc32353f695d8536cdb59f1c5fbd95"], [10, 3, 1, "", "561:2 4302896518e1234a4d83fc5af30e01946c70fe4bdadb33c0cbf0a1782495c402"], [10, 3, 1, "", "584:1 d93daef004fcb997f097936352dc3432de5d77d9c342ac541f4ad2e997583c00"], [10, 3, 1, "", "121:2 6b2c09e50d6abdae1ee13d1cda690ef224a011f1bdae20718ff536f78b204628"], [10, 3, 1, "", "299:1 d5f1edf241d4ca54d5fa53cf9364cd88c384d455d007bae17959ec840068fae1"], [10, 3, 1, "", "408:2 0ac711730f51c5dccb2d3a7fe7d614350d35c590533c06ad13ad546006c88743"], [10, 3, 1, "", "674:1 e786169392329eab70eb20b191e49053427501e8e0e70866639dc3e79db0c56c"], [10, 3, 1, "", "181:1 502eedcf0dab84b64b658d062626caf3ce8ca7151ac593ca3f3d7bde795a8927"], [10, 3, 1, "", "630:1 70a03b9f20247a6880d94fa4005147b36b8c517499d097dead1837f3565e98bb"], [10, 3, 1, "", "440:1 eecb4e52cf7b3ab51b61495e24474910c75a36ad7c66ea286d9902066f0cc09c"], [10, 3, 1, "", "2:2 7b53a3a4aae9412baf48e0885aa364924a25cdff9462cf2f6ecad59329b8dea4"], [10, 3, 1, "", "618:2 894983d0de7b7b5f61df2bb3e077ff4e8053de20a9196b0127ff8a5d8525947d"], [10, 3, 1, "", "258:1 5b6191b963653acc841076abc0a1fd34cdade133df03de39957369c3870dd8cc"], [10, 3, 1, "", "392:2 1528d1e814d6bc91e61ed50948f2dd996d4c3491993fa9a3fb7ec5c346e29039"], [10, 3, 1, "", "559:1 baf40f26f57e39f146a5a265c0e0698c69e1a4dfb5a690eb111cadeca9182193"], [10, 3, 1, "", "750:1 6d38cff29cf6450cf1cffc0e99547671e44776d60ab8fb23632eb0c86d9b7c16"], [10, 3, 1, "", "749:2 0ccad5782e285aaebbab4f525da60719e6fc70b16ce843c8ae0c7cfba3628186"], [10, 3, 1, "", "61:1 0f7f1f591ef8ff958c2d1d0a31b515fc693de7f164c05712025cee52d70f300b"], [10, 3, 1, "", "117:2 1234e2fd24abe2af54a4b534e37991a4220070b53d155fe2cb9edcaf10bad1af"], [10, 3, 1, "", "251:1 02272347c92241787fa221d25fb77f64ca8e63fcc9e396e71d21b095aba543aa"], [10, 3, 1, "", "574:1 97f1da09fe3c06af19fe739ee76620d5c899e250ac1819b46caef48d4b5886dc"], [10, 3, 1, "", "253:1 ce5e0aadc741fd4469dd97c72c8671fd422861937d4991d94ad6e239657ef0ba"], [10, 3, 1, "", "271:1 165fb35c44653ba49d2f2e4415721ff5f0d8d9f1776cf1ae51129072236dd04d"], [10, 3, 1, "", "297:1 55e650e07e084e428755cc808409cde0621c2f13b1b9b6244598fc530f98469c"], [10, 3, 1, "", "186:2 d62bee51822d6f6d406acba429af002d1ab08fea7725cfd70344b9d81417898b"], [10, 3, 1, "", "691:1 40acfb2f28be18517ba1ea79549d8e40910b2ea677f9c450972bfecd9172d431"], [10, 3, 1, "", "603:1 81316bc3aa0e961ab93639afa23e97601ac170e7a35d11925a3b31d77befe702"], [10, 3, 1, "", "154:2 0086a77e0d850ef108a2f797e78c9cda969d52801db1d04f746169fe78c7631f"], [10, 3, 1, "", "25:1 e4c1e035990bf252242bb5c2497017bc152f164d9822a601ab6a3c79cf752c10"], [10, 3, 1, "", "428:1 85809fee723d88b984def31efa7cb2e0c5c3a90be00833301b513cb2edec06f1"], [10, 3, 1, "", "670:1 668679a339b1d390d2879dd09057dfb653483310820e25cb85f36ecb257a07f2"], [10, 3, 1, "", "388:1 375ed9bbc80384727ed62542640c3a8a6499495162452b9892ce706ee78cc54b"], [10, 3, 1, "", "305:1 f4e275119979fb25fc84cffb4199c7ecfd723065b02a9f214b0aa7585b98d22d"], [10, 3, 1, "", "753:2 9e4436f4af053abade784bdc5407280c2db6d9d43149e859f59026c0ddc988b1"], [10, 3, 1, "", "90:1 42e76b431027d1807d6c6665c7625b3463e086e4655dfb265d24b3a824042a92"], [10, 3, 1, "", "571:1 ae949c626ca1c4fd182bff3bb2c6ae602b1f889bb8abd2bb65ac94a93fbd0ca3"], [10, 3, 1, "", "315:1 f721553a0969ab49b8c54cf4ef0879743c6e265719fa649537c957efde963c2b"], [10, 3, 1, "", "528:1 c1a06d552969025bc8b900d0a656b86d782d3f7ae86dca4f52cf24e217e7bd0b"], [10, 3, 1, "", "660:2 df4b75afd3344d180661255ac0da48f1f23d5456d1502eb6862a2cbc3ec193c2"], [10, 3, 1, "", "339:1 355d9a90f0ae62d9dc30cafd8fccdc0d2dfe9b7168f2ff7a949d9db4d6ad2f8e"], [10, 3, 1, "", "697:2 5ae2fa57a1d70cb388a595ffd273105b1f4b7238f8d8e113d7dbaa9647711ff0"], [10, 3, 1, "", "437:1 68304a639bfdfd591b6d81a54cd99f8de662950f4f4be443a95f6648d927c048"], [10, 3, 1, "", "589:2 bb15646d2549f90d49c9e314257914d48648266de0cd37b86c780956b6b9a5a8"], [10, 3, 1, "", "195:1 e6e316bcba9763e25bd0a189d7b5ee58922732e7f4ac872dd8a26f7f0f794b99"], [10, 3, 1, "", "179:1 e9460db73120721fb8857496d2f76aee1a9e80ef6a34e38fb92f39de28a8fd6f"], [10, 3, 1, "", "454:2 3294d2b103a3d6c471fbd3921fa513d8eb379d8189961373b2f2773a6818101b"], [10, 3, 1, "", "20:1 cbf72638ec53eebe2fbf63987178814dabf15f620b19d3e6eefe5a0c82081c19"], [10, 3, 1, "", "575:1 e4628e0ecb8154611e063fbf77429b26c4b76b452ef3dfae6b82bf14284efeaf"], [10, 3, 1, "", "672:2 7ce8f63fe99b83be7ea5fbe8ba19ddd3e9485e4c4b41bad48e9f3c6af28a6389"], [10, 3, 1, "", "471:1 db556c432e1317040a86149c85fc9c6920bd21bd6f1c60a939ba38ec8fb67808"], [10, 3, 1, "", "355:1 5c8bda1ec817bd7962602b024a091606f310ea921652978fb6463257f1ec215b"], [10, 3, 1, "", "723:1 74b2e572b55ba25145f4e1157dcf2f47ae453ee8fc5a32e33d091efb9fb7c3ff"], [10, 3, 1, "", "411:2 916422661cb3cde0942b5fbf703a46b5b4a8583f77cb9536e6f57041e07f9ea8"], [10, 3, 1, "", "3:1 0c7a14fdad22f794abe3d6c82d31e3458e73f437529de5043b115cb3b98d67bf"], [10, 3, 1, "", "208:1 4b26446aa4ddc724ece7673be491c07bb3f91af46494f4de107c45d09072cbf7"], [10, 3, 1, "", "146:1 cd65d5af7c19e83d72c624dbe007ff053c9bb3c4c6ac16ddd853ee06b55a6ec1"], [10, 3, 1, "", "545:1 19a19b549736a26c09bba9e2ea08ec8151747b579d265815a83a7ff58665e069"], [10, 3, 1, "", "157:1 be67838f13fbac1eefc831094a6b299226ba9fd64c19f5e040e8535f199d01ff"], [10, 3, 1, "", "394:2 679e8c14ea44a25ea1390ac52aa92d476ce6721743dcffed0cc3012c0331aa2a"], [10, 3, 1, "", "526:1 898a3d49045e565e6964e04785f03b13d8e6f8c9457ea99c15e9d27695599924"], [10, 3, 1, "", "349:1 3523a7af0986053d255330594a2f29a78f9497870cecaab9a8cea16496d96e8c"], [10, 3, 1, "", "242:2 c566b79870e5f9c505e4fd3f3e6a197a511a54cd4ea1e637c8a2b86501c196fd"], [10, 3, 1, "", "405:1 89d9e2d880232a14ed1f317db88294b96b5a0537f7d28459f7425db365393ea3"], [10, 3, 1, "", "738:1 184adfe8b40e498c10b13994671a6aec10a3d60c8dd0d7d49611462cbe965adc"], [10, 3, 1, "", "508:2 164dd2b4005aa309d79414f7014d667000179fdb7bc452b1d8158b0e70a71257"], [10, 3, 1, "", "554:2 c9108185fcea141156210b6a9b36948c33cb965852ca382bb29ac5a16dc1aaaa"], [10, 3, 1, "", "6:1 5d8d38118bd288415e8b133834f31a7e01007305fd1d694f920eb2d295dc23d9"], [10, 3, 1, "", "725:1 2a6f7b357bcf9e02e01322e292bf9a49fff98398285fdbbeaaf079ddc5082bd2"], [10, 3, 1, "", "44:1 fbf860398c6c240db67097749c221d03dbc3fb53ece13acaf39964aca10bef88"], [10, 3, 1, "", "652:1 ec20dc3fcc961ba79d6cec949a10bbcfde569965da5bdc16a2b164c79ee837a1"], [10, 3, 1, "", "519:1 2d1584aa9f4b58f2bbf727cf53a2f81da74885f3c6e6309608330b803492e1ac"], [10, 3, 1, "", "3:2 62464e5a05d93ce71aa0049bfa2a6d7d28fb94c0ac7adacff3e43aa98d7c7c85"], [10, 3, 1, "", "597:2 5b502c001262606fa8ac93e1c3392515c078da867283a167bbc15c62e95772d3"], [10, 3, 1, "", "298:1 7931b6e7d5c377792ef15fb79300f3388497e3e8c7810dec637e9dc255e9f6f8"], [10, 3, 1, "", "539:1 3c637f1b6f7ece643d7ec221e0f5cdd251d4223ce8a9ac7c814ad6667f224a4f"], [10, 3, 1, "", "39:1 7a705d6944a599804ae13d66da246684147608fee365fb58f0e9a2a3337383c8"], [10, 3, 1, "", "259:1 1d87c3d541744e3bedee83a148d3bdf7387c56a2cd0e9b9b69c5a30d1948e2f8"], [10, 3, 1, "", "243:1 6d6ae7e0c3e4854ba3379d1ae1c611d3834bea80fca0669e9d3800e7c7907b3d"], [10, 3, 1, "", "534:2 5efa93ce6fa26af80a51874f947567d0c94e1a9b3b795bcdd8bd8cdf81ae3b89"], [10, 3, 1, "", "360:2 6d7a076a55bdd8ac68be5a920eda7194f10c734494255b821299801972ca83c5"], [10, 3, 1, "", "413:1 03420fc54c8739e1ac8749d267fbcb79d9eda94bbb781e1d089793c71d3294d8"], [10, 3, 1, "", "482:2 784a5470baa9495f0dde79075042c965584cca9cd7ca07b06691ba8bd12189ff"], [10, 3, 1, "", "286:1 2ab916551e93157504f23ce892fb54b04f2190e8453446577de8eff8c82c4e4e"], [10, 3, 1, "", "551:2 9e18bbf61220b891a2ce72f5d65c260cac55c58d7298ef16136dc545968bf4ff"], [10, 3, 1, "", "356:2 e77b87d03aeac8d98784ce59d65a0a9efe3ca87f6c01151769ff37212bec70d2"], [10, 3, 1, "", "670:2 173ce8cdfc9a32ca31bd38a2ea635ca03be34fb62a27d0a865033c3601be7635"], [10, 3, 1, "", "588:2 d651e6b4bb0714f78c0e76aea91063256ba3c136f075402fdf7f2d7789b5a9f7"], [10, 3, 1, "", "757:1 07a868b57298e2097a28d0a21ead2ad8e657cd8516eaa4d2a7ae0153d379a8ac"], [10, 3, 1, "", "133:1 9e065928905270e01fcaaa30e3a6c88ff1241e4cea764cfd1b8934756d94bb57"], [10, 3, 1, "", "560:2 75bcf7113bcf87575386bd9c1c9697f83ffac54cba4c3988635eff773dca4b23"], [10, 3, 1, "", "542:1 6e0b017053092fcc9c857471fbd863071395338216ef63c571bf908fa882f7dc"], [10, 3, 1, "", "636:1 bc8f8423550c9b123c66e2616f181f7081064c9b0b9bf66723ba1c2f86a4dadc"], [10, 3, 1, "", "526:2 9bb187eb53901cfc7937e93f424a8c50f7118a2937f97fced3f15eae9ccf023c"], [10, 3, 1, "", "503:2 92f4eb79244b35e40cddee777f6124671d6eb4bca1a68ed7da572b4d8e40097c"], [10, 3, 1, "", "390:1 0b3bb3f9c48f8562e8e846e238c36cfe6348afa31e7357d946f48349d72bd333"], [10, 3, 1, "", "48:1 2dd873b22566e1e9b600b781d5bbe5f50b98110a1bbc0eb8834862063f485d5c"], [10, 3, 1, "", "511:1 95ef402aee1af3ef126119eb65cb1602d2c58fab6a92773acdbf1db4f1114a91"], [10, 3, 1, "", "615:1 f5fbe6a9bb603d31026edef3b582db98a582bbc4d02a95bde3c75f506873dbae"], [10, 3, 1, "", "685:1 8355a6f37c4708ef914397a364e6a89857c563d05d75c36eb33fe65bbd6efa18"], [10, 3, 1, "", "336:1 d59996c21a6b1b5112ce017fdfc9d5690f3204d3f0874354f72c68c7df9e9a2b"], [10, 3, 1, "", "469:2 01459e907ed36dc21136455589510a8834aaacd220af233184f91da6bc2b1ab6"], [10, 3, 1, "", "235:1 53ed5d1d50fa3ef7c3d572b29e8289f4bdd8d6fcd84c919bac40b59de11882b9"], [10, 3, 1, "", "90:2 ba6e3d26fb7d74e7c8eb6c247800ddec5e35f0e95207578067f3cf6b09e6c577"], [10, 3, 1, "", "651:2 de677497269bbc746364f40ff86042e595e9ae307d7586eed4e455d97d6eb5b6"], [10, 3, 1, "", "503:1 20de034c8eab811505357b0dc243ec4615b17f69608335a6fa8380b6508c46fa"], [10, 3, 1, "", "148:2 2bdf07bea49bd05bd607a74bc9fcb8983e93b7daaa7e64aaf542d39bc74f792c"], [10, 3, 1, "", "635:1 c047603bf44cc875913881293d83e517c2a1e49d6a85801443f91559915be20e"], [10, 3, 1, "", "532:1 63ef0536d990e6e988c965c82abb6c2c6fca7dc35dddfca134a420c077a7c641"], [10, 3, 1, "", "325:2 e370142d7a0213e6db347cfda0d76f66147054769f71d2b5d115f94fa99bfab9"], [10, 3, 1, "", "439:1 f884e5377134b816bbcaf560a3791eabd70bfca4564ec99846697d6ae27c160e"], [10, 3, 1, "", "747:1 df2d054a45f11386315fe7ad021e1e9f588e98e0956ee0cde1d2a0b953ae5f64"], [10, 3, 1, "", "296:1 6d9af47108fcc60a5eb729ad404869e136420f19457d688764b06a4d08452fe3"], [10, 3, 1, "", "391:1 681d740563cb210f2642178f143d49fe459b75bf5bbde9703c8a51d9a0c7818f"], [10, 3, 1, "", "207:1 d3e50dd09d36f4dde21049ee5930d4f5c620bf5ed6f7aa36019d589fd1874202"], [10, 3, 1, "", "530:1 dbff69e7368ac026c9a894281f0286a34e1bbfe7054992f92336e6e7110b0f47"], [10, 3, 1, "", "144:1 b43b34e1180fc29f770212acc9767de1da68ffa61c1578ce311375d3f6489d19"], [10, 3, 1, "", "143:2 eb4bb618f0016cc5b19d57844f38d56c3c5bb2bc6cd6338c2d271ff6764c3ea6"], [10, 3, 1, "", "58:1 86e4b704680b4c5747c5677a0e4039c157356515d6fbcbc98d9e56a669ef4d9b"], [10, 3, 1, "", "569:1 1e4c8312d7803299a919834a8a36b4fd7b380ef2d293b9e47095dc6a56d579cc"], [10, 3, 1, "", "389:1 0fdd64f47fbe768d0c93eb3d2a86d45d529f63697f9b05cde079a9deb78dd489"], [10, 3, 1, "", "602:1 74345bd3146c994153f6b1cb926cb714626d393b5581ff4b33d3ce7b9ff17f14"], [10, 3, 1, "", "609:1 4f9cb27c73df439ebc13f181db03ab1ef49b92543fd366e9b4527c8444c796ff"], [10, 3, 1, "", "353:1 e6de39fb2b449bfe1a09d03e37c1bbed4ef0e69c85cf7ee3ef6ecda8510719df"], [10, 3, 1, "", "26:1 8da43ed54f5652f1659e9cd11bf0893e5f663edf982f874a4d44bb967c9fd5ce"], [10, 3, 1, "", "142:1 ba87aafbdd29f7313abf19300674182817eefd5bbc2b13943b637bcf80c0e9df"], [10, 3, 1, "", "288:1 632ab475d4dae7cb9da62ac903b67ec38a3878fc8424a8be5deba55d3113fc88"], [10, 3, 1, "", "123:1 3155c78aa724abae9cefe1c44d0b357fa998cc179764d0d2e38ef60c3bb241f8"], [10, 3, 1, "", "115:2 d5e9c3e46f5c8c9d847c63ffce83f59e8b43af18073de98af9ffc8bb6b062b73"], [10, 3, 1, "", "350:1 a6b541ed2c07361b541739304039f4561021674dfff1539f058e1c63ee80e605"], [10, 3, 1, "", "447:2 260dcf75a99a860cf36d67f61f6fd66084142ea2921dfc3dca5226a866538e90"], [10, 3, 1, "", "173:1 9beb47bf4c01551ee36f57494afd73d838a93770858eb6901252693a2659b24e"], [10, 3, 1, "", "308:1 68c60a5e7a429d7604becc9f0194dc4c69e00ef8a7ca92adbb98b5b2bbb9fb40"], [10, 3, 1, "", "131:1 ad2c2f6362f886a3c2c2f8e11ef95198869e70137f4e7b3e5a6a1f01850b2bd5"], [10, 3, 1, "", "490:1 96c20de400ea70bdb3228b14ef5ec41d889f849a69602c4a1021d8830d57bf78"], [10, 3, 1, "", "507:1 15f27da45a82ebba9574e7cd6903eb4472e29bcc47448d968cebd248b967b296"], [10, 3, 1, "", "319:2 a4633defee2e82a6b30d88c4e5b662b393be8803ac0ab49c9910e963897753cc"], [10, 3, 1, "", "385:1 4aabe5beb311cfda296103222da94d79db59491151385c674bb5ab3a2fa1dc4f"], [10, 3, 1, "", "467:1 4a80bb4c8a45cec8ec08f6c2c73fcef85fe05514030a1fed86d97931b34a2577"], [10, 3, 1, "", "736:1 8704968fe1a6ddc742ec36e2e481c45216a7909a8aeb6bf44699babe6e975375"], [10, 3, 1, "", "517:1 8d9f9daa117d57cfc454b52c7645b1932187974fa5105876b1bcfc45233a7a04"], [10, 3, 1, "", "414:1 bb9da22604de97e5ed37317c56ab5dc8af805c12405f5c43d177be3fe395694b"], [10, 3, 1, "", "171:1 705ecb8bc002be23873f9f438307c194bfd9d16bcea104ee17ba8b15285dcad2"], [10, 3, 1, "", "246:2 7ccbe9f141a91aba24cedf20dd1ffc8e228367397abdb36abfcfd52e10540df9"], [10, 3, 1, "", "307:1 0ebcccfd65ef3792b7782b5d1741c3338ea87200f1154be26a083159e34bebe3"], [10, 3, 1, "", "451:2 5a891041ccdf5973d7e8b29a2c39bd2e4548c3e2bae4d34a74444910f0a4b1fc"], [10, 3, 1, "", "592:2 522cd3367900250f16a09046a753e7597cefb524d678b096a89b68284f8632fc"], [10, 3, 1, "", "557:2 be25a92306a95fb645151169bd085704fcb7b17e852e53e4007b41069266f593"], [10, 3, 1, "", "254:2 ec1dd5600e88fe2e8da61bbdd55de9991ca751293cb9704bc7025dfd1c8ccd0f"], [10, 3, 1, "", "330:1 02a40fdeafaf06436a304f06c05896ccb1c222494fe4423936366485fb3a66ee"], [10, 3, 1, "", "641:2 e3b89b8eb10906f6c083c59009b877a69d78ed35f41df00699d64ff89e58575e"], [10, 3, 1, "", "686:1 6c9e5a399a4171a1a046c7e23d90ed0926e546fb56c7213a8c1887b7d6df9cce"], [10, 3, 1, "", "443:1 5d7a6f16e2b83cea6ed807ef284ed37bcfea409044ff12538cca881f34d4313c"], [10, 3, 1, "", "608:2 30c54e18001cdbbee17cb43a2fc96bffb21bbc3e3116c2db33a6725722b7718c"], [10, 3, 1, "", "726:1 8211b7ec4e7b1ddab1f82d716901904b54c2ad8c374f8c49050fa326358bc850"], [10, 3, 1, "", "196:2 0903984600db389923d90e27798c6da2a530c199827ddb5d154fd8f74fd68f13"], [10, 3, 1, "", "312:1 fedd0b77215d7f09e6f862a46948e20669c8df60afc1b1688fc0181106f5a843"], [10, 3, 1, "", "157:2 c02bd58eae112bc9bff6510a22c21e19c3729a15b3934f367249ad44fbb99bc8"], [10, 3, 1, "", "703:1 9ce1bb7a4916b9c625b7d55b6c7046df5cd3fbdf12bd025f221c1e3bf93b5c91"], [10, 3, 1, "", "363:2 e5473d76bf043db4a3c082459c11d02c33396cca659d40de3861141ee364c4ca"], [10, 3, 1, "", "77:1 11967d57719ae3359330b1e50a21597d2131f06c8d2abd365bb5bddc4f4a80c6"], [10, 3, 1, "", "466:1 40f81f5362eaceabd4c5ece13ebbe6faddf0742fdafffab10aced035f75d8123"], [10, 3, 1, "", "141:1 260c4ba6dfb95a5fbab1aeee8e6959d854d78b9287cd80bebc8cda34eb491a91"], [10, 3, 1, "", "456:2 dafb38d0ea0502fbf8f6957a4d3573a5327aa4ce18ecf4ad2d2b1da226bce867"], [10, 3, 1, "", "129:1 0cac94c6245e4dff6dd1a8c297bc3abff2e383199dc6c185aaeff8d5fdff13d4"], [10, 3, 1, "", "274:1 c6ad5b5bccc30ef2ad2f4c5406ba7447c10b1909de1ec7cd91cd60348c1f22a0"], [10, 3, 1, "", "244:1 fc1ac2f069e50f7e6fdfc8902bdef8cd1c57bdfcbb98d2e23c6286b99d7d1286"], [10, 3, 1, "", "649:1 79825c17c00b2a445bea3ba1a547d7682c3d49ae5619d0fc26f1b35bb4322ad6"], [10, 3, 1, "", "473:1 86752000cac91f0bc66b07155482b32060922da2c0ae500a80ba4ae2608a293d"], [10, 3, 1, "", "19:1 09f7033a48d34f5b5cc2da4e0c146ffb6c35a005e6021da914d59bc4b6e09a44"], [10, 3, 1, "", "4:1 7d8b5622cb41f4a6e44f0899a7311a7489321b6a81baf543af5a16698140a66f"], [10, 3, 1, "", "497:1 5f7ef6ceefe0a2bc9cc1418aa641b3485795be777e2a19ff89b861fae1ec7dec"], [10, 3, 1, "", "547:1 ec04e36ab9824fb53b64b8edefbd7fb405382282c56f9a59a77309231e7deed6"], [10, 3, 1, "", "316:1 0d2ead638e9a356f80ccce02f5612506d193796af22e16f0b4678f91ea1ad7d5"], [10, 3, 1, "", "368:1 68ab2e5937cbcba9b21d39854f8c47f6fb5dec954ac362f6c993c017d249b3f8"], [10, 3, 1, "", "300:2 0a52cd080aff1f1cd7ad1ad9177f02cb8d5f36e5ce5fe32f10a3cad1404decbe"], [10, 3, 1, "", "514:2 83268d286f3d6acc84da091dc883acf03f39618fd85783166f330582ff4c3d97"], [10, 3, 1, "", "294:1 b35e434e8ad237e41c3d28687aa83b4f6d4999def9625eeaaf8e2e3df29fb85f"], [10, 3, 1, "", "223:1 c532a8cff3f354481be5493a79ea298042fd71117d52179e4777df728c892ca1"], [10, 3, 1, "", "683:1 9bf978f0ebc438873d30e0f3e45f7435e96d3f59593761c0313c7370b48e86fd"], [10, 3, 1, "", "737:1 ed8550645e0953e23063dcc53dd744bb1aedb661c1d8fce0f15ca60a006767c9"], [10, 3, 1, "", "206:1 294e872304d6ca6fc60216fdbecd1805e6bfde3b8462f0688248a438102857a5"], [10, 3, 1, "", "483:1 7d6bd706a1c1bf24ed3406adce2a884cee94c370b4f45a0babd5c0ac8ecf007a"], [10, 3, 1, "", "372:1 68872db762949905628da3b62b41765588b20a8c247469ee48f5f27237212d70"], [10, 3, 1, "", "718:1 cba5a3f3c0fdc57f0cac81e99b8a88a9d74174bbcc415aeac31ea80667080807"], [10, 3, 1, "", "396:1 b68a6a518e546a1963b516db1a1fecce0b536851b28b2d2571c3b98a2beae5cd"], [10, 3, 1, "", "754:1 a5cc9bf83bb2bf35b55e2e2dd6ef1bc056b0e37555c867b21198befa67e81739"], [10, 3, 1, "", "401:1 45c179df701122702d38c7dadf12bc1583f322da9efa0efa5a60b26e0eea53dc"], [10, 3, 1, "", "212:1 4d7e267ad0d149dd29f48c7af04eb52c0294fff217086d1d78da516872d89ac9"], [10, 3, 1, "", "412:1 f2d8f7f0bd7a74a1290c110cd157273e5948f198d45253dd0b77f3305cd55271"], [10, 3, 1, "", "433:2 04ce26c3e1f3f563dd2836f16c28520abf5b16297c6e52ca191c8dd8ce1f8a06"], [10, 3, 1, "", "697:1 20a85f5dbb0b1b440060fdd9497082cee68731cdb924a53268da4daf9a6b7ad0"], [10, 3, 1, "", "689:1 240fd707d03c5f4225010e82cf65427143275020027f099e7dd590de0f95fb17"], [10, 3, 1, "", "331:2 98c982e326cde818653fa94a3865ef6a4380c84f982eecfb02380b93598a06d1"], [10, 3, 1, "", "516:1 3861615e76a6cf8e957846bed849dc0dc834b7b93c7d0fc784cecc1e4edf1c24"], [10, 3, 1, "", "77:2 447497fb19a7fb5699ce018e98d778de4cea07f55e138d55b88d976a82c9cd2a"], [10, 3, 1, "", "562:2 23039eb519551746748ccee9a37c161f4bc24f50c44c29205b9dd542e9e9d0b2"], [10, 3, 1, "", "91:1 c6bafc6da22a49c513d9f38b33df3b3efb2fec5e034e2fb313105eb2e2260d1e"], [10, 3, 1, "", "292:1 36f5a2a7cb7c8f028e1e1bf034b09a8e7613d5a3b8ea49e2ae61843eccabd85c"], [10, 3, 1, "", "477:1 4c13f0f177b0c01dc9d8e8eba86e8c9bcaef9ef206732b0eb5ee534c5245881a"], [10, 3, 1, "", "66:1 dfa9a4832da8dbcda1d62d4f78ec536ce8e9cd4e08740202c44d1ecf236242a4"], [10, 3, 1, "", "647:1 a2cc0e70e5f53eb45a8001d5b35586e4e8be6bb6381338d296d1dca3622651c1"], [10, 3, 1, "", "356:1 06d233ac60cd2a61ef4652837408ac6975b56a5c347fa619efdd1c6f2c351e1d"], [10, 3, 1, "", "421:1 8e5d90dce9637632da4203a8b7dca0688125de45b002932400b89c3610743005"], [10, 3, 1, "", "153:1 2a845f99dabf8472b5ed8f35a1b43cdf5d54ccf32f81d0fbf75fe2066af2c37b"], [10, 3, 1, "", "666:2 1f33d04d14f1689b6934399e869ab681345727930a1ebf333573e8631fcd8583"], [10, 3, 1, "", "229:2 50cc6b77eb8387eed43d394c94eca8f977f1c8f31f1511a854efa76754d6fc9b"], [10, 3, 1, "", "476:1 1ddef01b5324d3e5830ddefd71a57e050d7d2c7fd523a22bcfb03250c2a6415f"], [10, 3, 1, "", "74:2 625ab366bc5f209c5e1bee34480e5d481d8455c213fc132f4ee2fa72e852ee45"], [10, 3, 1, "", "590:1 b484a6cf97b587756eaf17f0b00c2bff3580bcbbc871e9da7c57f800377018f3"], [10, 3, 1, "", "508:1 4178b860a181c00a30681b5b6f159149eac2f59bc136f18a413952e4fbddcf9e"], [10, 3, 1, "", "116:1 f94657d8fb0ea7389e6b69384f4be5c24477b1a13a7fd0c3d2d5a2f96a9f0b8c"], [10, 3, 1, "", "524:1 16107d984d3916e05e23cd5294194dc6414ecfcb591e4d5c77f71df576313d5b"], [10, 3, 1, "", "528:2 d24fdc09784f96ce368236563ba4289179ffff8ad78085abc9eea282b7fcb48b"], [10, 3, 1, "", "79:1 bf840c9efb7efdcff65df72ae2aaf25f560c6f126a5a119d523cd8f94e7996f5"], [10, 3, 1, "", "232:1 3e414c6c06ebf1d4bd050146606b3c7dc85672a4e5d2ac904187b5934430937b"], [10, 3, 1, "", "408:1 fa9c74d795b4aee1abb0c510515f89026b33a0984b24bedbbfe2bc51d5790d3b"], [10, 3, 1, "", "30:1 89cc18647f78561ff8ea549eac139fa5948d2d8ec5cdbd032419d0c5734074b9"], [10, 3, 1, "", "507:2 16910901afd4a8aa52f37c706f985fe1ae70f8a7d7b6debb98faa683cf4b2d82"], [10, 3, 1, "", "561:1 8e5697dfef174570e859144dc047d2c731b3979328522bd218fcc947258ae3d7"], [10, 3, 1, "", "624:2 e4b5703d1d025b16cfa295c33b74a32dd8ec0e1f27ca33b22f154950f026adb5"], [10, 3, 1, "", "715:1 8548bab7c83948bc1472b46057179d1082fc5eda3ea01d610618ec9d4c7ef21c"], [10, 3, 1, "", "450:1 bb795012707fe09e40b9776a7484850f203a380f854cbe1d20726f55b5a59c72"], [10, 3, 1, "", "197:1 a71ccfd8de8b723e189e9cfdc26e33287259bc252697d1af5bfabb9004bc2fbf"], [10, 3, 1, "", "306:1 8fdfe2ea488f3cbab513d24b7375b9867186ec7ba9c4b388e408d73a0fc70393"], [10, 3, 1, "", "680:2 3c2520f52c836ea52a6b324f7a0b5eac234dfce8887421ee8b74454a286fab82"], [10, 3, 1, "", "634:1 b5870c029074717d1b151adc15bf8667ab41b158131e55fbffd1ae0a690fc391"], [10, 3, 1, "", "304:1 02cc0234706c31a86a47fd94cab93bb791de5b17cb2dc5f4f72e167e3b0fd64e"], [10, 3, 1, "", "275:2 0f612fb6695af3e2a2e586f3cec6ce341243c67a1e60bf6c38b7c22cf663cf8d"], [10, 3, 1, "", "334:1 e1d14c5e65629bcf7ef2f72b49a0f71f0a28f9804addaa1db7e58f9816ee5621"], [10, 3, 1, "", "25:2 19ea2c73c4007224773c777a349409bad2f09edab12ffe626426727461ac93ce"], [10, 3, 1, "", "247:2 41d1f34096a384ac1c0f9516ef501de61ecdfa01ed47dd0fc5c86e203f7976e3"], [10, 3, 1, "", "382:2 94576a2c9e28d810070b69c466b2a24849e5a415c05265c8fecc9b60cc68b465"], [10, 3, 1, "", "114:1 b09da885573974912ad239d972ae33be6eb67296f39f991bfaca1180c323637c"], [10, 3, 1, "", "104:2 790649ac426b7b7d9da1376060443e9bfc656f592e46946ff47e05c5148eb817"], [10, 3, 1, "", "729:1 fcb7e9e51c1ad23c53607bd9fed543f033683ccec2f703b9caa76ccc635daaeb"], [10, 3, 1, "", "8:1 98791e8b448b56750c7e22e4f8aee0da4f9b06296b917dbbff908bfacdc36bed"], [10, 3, 1, "", "463:1 d01b68338f0da933e93d306807c765c36bb0b742d511d7ca14c26cf9dba55c99"], [10, 3, 1, "", "143:1 adbfb0569b2db7c2464adb86ec3149a19d932349406b9421589a9c7c23028b77"], [10, 3, 1, "", "316:2 1ccb337148a46dd78d35fe6f6c7881b848efea711d24fb0001b9a2c7bd181e70"], [10, 3, 1, "", "317:2 5d72b8433fcb7e95a3123f2c11226e6c4ec8a8cbf8f2262dd16b2b117b965a20"], [10, 3, 1, "", "547:2 36595f45672c50aaf13a16508da79116a9658a80f87b1609a1864611697d725e"], [10, 3, 1, "", "72:1 c6211b947c74463c78301804b76006bb9d8ea263258a9a02a36a22e0b76e99e0"], [10, 3, 1, "", "392:1 6a5d65b431c0eac6e75b009a623007d27deda95179e83e1006ad19f2c9b0aa48"], [10, 3, 1, "", "149:2 923a81e40b0ae15b6294eb57af05e001228b8ef2d2be959cb64a86e05ce958d3"], [10, 3, 1, "", "403:2 f5467f21fb4fbd5c7a3d1631d24f1bb65c14297d36e9225116ad32ef12a9f5c1"], [10, 3, 1, "", "501:1 a2bbd139c3c525d4aa3da93a22eee0d0326e1865701304f2b48b403c2a284fa6"], [10, 3, 1, "", "177:1 23a01e02af0ae9df7912a43e2e3a1413dde27cd1191c80edcc213f494d6edbf9"], [10, 3, 1, "", "629:1 dfb91d945c0406e088388895f2e4eb5320b9a2f0c9da9c7201d69c279e1be946"], [10, 3, 1, "", "119:1 2e84daa155889bf6f73493cad46d61e36fde2cc1b78717e8a6f93b488cd289d5"], [10, 3, 1, "", "33:1 8ac99cc675c299be411b1538d3f2e1e03a710c3b8d2b7c1c0f34bf53735173d4"], [10, 3, 1, "", "695:1 66990068515e14ec7bd45601e878f6e9bc7dbbfe756c38be7ab30ee6fb789861"], [10, 3, 1, "", "27:2 d314b310f1bbe63e079d7bcd0886f2d942bf40293190ae30e0b5c19c54beb922"], [10, 3, 1, "", "566:1 44ed3ec7e8a13d09d1197cee99842a411cd1f9e9a3765034ff0d9964ca82b79e"], [10, 3, 1, "", "455:1 99bc9c57c220ee5ca9f3ffb6714ae7c66bf44ffccd231d8d0ef16dd01709f69f"], [10, 3, 1, "", "520:1 a485156d19237af245bd23bf2b453438690b4d0984b3baad3baf825c56b5cd14"], [10, 3, 1, "", "84:1 7935a2b1a9900f8cd0e10119b717509afa4e5b225030a883e36db927a3f6b5df"], [10, 3, 1, "", "460:2 6474723be463010152d6db48870c978a635d7aad1463a5dda3b10135d970470e"], [10, 3, 1, "", "427:1 790b5207e54c3cc5e5266e59f67821a24906a98dbe5ee05e10d507ba3e9b4661"], [10, 3, 1, "", "273:1 bbb4333e37c2bd9dc9424199392d6034d9e646bed0408b589c850e7a71e57e17"], [10, 3, 1, "", "475:1 fa1fbd125cc8278b95a39fb1ee542645f6e6405cf80e9475fcecc2dc0bcc4af0"], [10, 3, 1, "", "486:1 cbad9205a4b6ad94f2293f263834eac0a48c1a589f83481e44dae00d0947d06e"], [10, 3, 1, "", "705:1 0e85919540d6abee1a86afcbf1cf7ba606ef8750d81655c0993451e8c162f575"], [10, 3, 1, "", "743:1 d6923a479fd3cecafe3bab1e1c8346b039c95d034a6ea9311970ad24f4e85c11"], [10, 3, 1, "", "660:1 77393bbf95fdc35673bc286aa58c588f01f1fd5873efdfa3f332b1024599f723"], [10, 3, 1, "", "117:1 6414d845db9a72cc676c688dd644bc96bddb01f319cfbca16b91ba3a2f305f08"], [10, 3, 1, "", "228:2 20fbd9422ad2ab3b9ff7214c70b3a797bf9fc1ad0a178b5e6982bf3b8e98bcc6"], [10, 3, 1, "", "618:1 31ab557d6fa73330faca7a26d2a780c91f94caa7a05d631063501fcef71661e1"], [10, 3, 1, "", "347:2 5b1511eb218f59a70c5747e52f7843ee82c8b03c375bfe19f4b7b46f2dd7a6c9"], [10, 3, 1, "", "213:1 7cce1c14a5506009db260af1d47e8986f414d4211450ce82b0cca2dc979fcf05"], [10, 3, 1, "", "460:1 a433125983513d73b2788a482e86ce8ee3eae7fda70a0f49b72aaa563c8ca6d5"], [10, 3, 1, "", "43:1 189012405431e6e0501a8b663a6ea6c42e50cd79a96d1e161b116460ab5fa8bf"], [10, 3, 1, "", "16:2 57d6d36e65b833a08834b7e541e88a01a13775a6fe67f76315339425a1a96083"], [10, 3, 1, "", "326:1 fb553b00ed34887732fdc72ecfb14c39139ae67958595f1393839d8daf1142d6"], [10, 3, 1, "", "623:1 7c843ae41331237817b624138270a4b00bab829daa73d2ee0014acc51797472e"], [10, 3, 1, "", "313:2 7274664572e3a91e633dcefdc1ebc57bed11ebd1bafae912ee3397ad8c6fc67d"], [10, 3, 1, "", "109:1 c6e989a0ff9e72da470d988efea9fdd19ec8fcb2e2e4c678bd960e09b765df21"], [10, 3, 1, "", "226:1 21a7bf487e0cbca6939de60c7b241cfd40ac04774db6e17aa40bc28c1f614bbe"], [10, 3, 1, "", "560:1 33ffd10b2c15ccd3a8cf50d15690bd22ad8479acab34f6927383fb6cbf0d17c6"], [10, 3, 1, "", "185:1 61683bccb6e65169a6a97549e117ed653e66baef8b539541b6704e4220171f2b"], [10, 3, 1, "", "591:1 240de0589c2f0a1216afb565ab85833ee58c0021c9acb1356f1d99b170bff9f6"], [10, 3, 1, "", "323:1 f026c959276b062252cc809d9f02fe64736c47c245a6ca2cc4a22368a29be2e4"], [10, 3, 1, "", "681:1 aa3c1397613c12b73072f31871e63805ccc573bf4146d576bc2a651177c2fde2"], [10, 3, 1, "", "148:1 785227f0e21969eca81202c0e777b961ed0431b2fc3151ee9a15877f5fdef263"], [10, 3, 1, "", "585:1 f091144751bd01b8092c1b44d2132b27a8011b60e3acf525b3b432641f5dd4cd"], [10, 3, 1, "", "684:1 f8d3cfe269f992d7d63c38d05fa6aade8d3389f1ec18bb04cf7912bf3c7a03eb"], [10, 3, 1, "", "435:1 2329311bb7c20c5a103c2af86d961c59d26d23a905b3bb20dcc3684ee39ede57"], [10, 3, 1, "", "386:1 01c81136d5d1d40924d1c8996c97e0695953d067317cb5c023c5644575950573"], [10, 3, 1, "", "642:1 b43c006d70a287d794f7febf43b53d6d42fe70004535a89617c39356ee558deb"], [10, 3, 1, "", "127:1 eaeff67ff6e17b1bba4cf0f8199938306cabe12c1732920c31543a06aaf5a40b"], [10, 3, 1, "", "669:1 79e56f6a22048aaaa6aa17dfc77a56f04c7cb3406f2b512a417c47429f0408ae"], [10, 3, 1, "", "545:2 1877dee9700e4ed62371845a415448fcce9d210cdfd66e8b969b415a3bc9ad4d"], [10, 3, 1, "", "480:1 687171fdfcb5dc54c9efde5dc880fc8d45c2a7750c34924be62eeef999299aaf"], [10, 3, 1, "", "345:1 546dda31e751de38cd390fc3678fb03b520c5de5018eeb4cf2567e0bc0a8d932"], [10, 3, 1, "", "242:1 c3b3eae235cc1c9f0a27a1d9906078833ed55916703a21a55f985b8977209229"], [10, 3, 1, "", "710:1 06d070b750bfc2856728ed128922d0d6d7f75bac48b38193857a3d9765f8072f"], [10, 3, 1, "", "606:2 ca34f279744bd0af703f03126fcdb84a99d9d28b91bbb12081dcf248b0e1d106"], [10, 3, 1, "", "700:1 66de55020a851a16e63889213d54eb58e457882fa4700c0b88bb2bc6e2200bed"], [10, 3, 1, "", "147:1 f9dc5426a6f4b7c2d822945b0437cdb12589ee9e9b37c2fcf2a632969fda29a4"], [10, 3, 1, "", "717:1 8fd7d221054a7b10ef91afa5a32abc45c848a365fcc6a347cb40a90d6eb629fa"], [10, 3, 1, "", "546:2 bc7655da0c0b2493619323e4e76a6d2a6ddb6236944509650b0e7fcf6506a21f"], [10, 3, 1, "", "363:1 cbf8771833c7d4ac31cd6b52abd03897bd1cfb5bb71267e299ff41016afc5c15"], [10, 3, 1, "", "281:1 4530c9b71b1cb42c167ea51cf676481834cfe9d38a19e08dbf4a7b7127fd06a9"], [10, 3, 1, "", "657:1 ada19ba49b9c09a8650bc6dae3c0162ffb460e1f3fce7b72d3c89e43397c8868"], [10, 3, 1, "", "395:1 081c0eb81f1e5c8c6346996725d4f6709fdb652d0d6c34483a6869a4e316e3e3"], [10, 3, 1, "", "401:2 5e9073efe521f3c72da5efcabe7a2facc45281c7d3ad4f837f217af4ee40d1dc"], [10, 3, 1, "", "9:1 64f1fbee5138f70b47557615d2e94efea505f51e584cb05aece1dff319d90ee6"], [10, 3, 1, "", "620:1 6bd274761a79f65af71ef75d12be7b089a531c77567d26c881e5aff396428d49"], [10, 3, 1, "", "237:2 2b1d39b7d22bec5da3867d756acb182dcbbee25d3a7ed6e515fdd2f22d580798"], [10, 3, 1, "", "272:2 a26e78c6b359a455c1b1367ce85ade173168db2f195190556f9b984b2c7c19cc"], [10, 3, 1, "", "648:2 4a032811b672f3b87705a845ec088166373babfba61ce19f49f6aa446bcd4abc"], [10, 3, 1, "", "118:1 7999e81310e11f947d1ce1f08cff161fae82ac9334e35db0d7c0a6166badafce"], [10, 3, 1, "", "431:2 b7c4f756bfa47508c075cc059cf7f4f4cf07915feafad80ef556657a474abf07"], [10, 3, 1, "", "106:1 120ca029e71c342fc34219b5d2846249f9d1c809a2871458c91708d06da37f0e"], [10, 3, 1, "", "468:1 2cfff0b577b6e3da95e02af9fbda912972b7b7561f3eececb3079825ecb10d8b"], [10, 3, 1, "", "351:2 caa6852a6a96eca35ac0ba609c6e927cae9b32b966db8b17f3674ffa905b4326"], [10, 3, 1, "", "58:2 5070a228b6ec847b80d342bc3ccdef803d20f55a9cbb901f5ed3d97e69142af5"], [10, 3, 1, "", "150:1 1525b4eef9424592678eedb97fe1d74b2c10483f93d53ceb3d8b8e7010b27688"], [10, 3, 1, "", "506:2 b98208d1e2f1279fbfd6f8c0a4482173cedfe0df82d121b32177f211ceed6c45"], [10, 3, 1, "", "32:2 af19c239b1198b6b5c9aa0f53822c17065f6b5071f9963e07372966dea0aaf45"], [10, 3, 1, "", "614:2 dabe57cf78f3f40fa6255d8172c08616047fa0b930adc9d29640296e927753ba"], [10, 3, 1, "", "371:2 5779a509e38b69bc02358e67fce4873ae576903da68e0e756ea5f97b84e9c911"], [10, 3, 1, "", "214:1 a56ea5af9b72536fbec71883cd6a041726a04a714ff48bbdc3734859396f2c7a"], [10, 3, 1, "", "322:2 40e2a603cc68714be173cd13bde5504baff7806a1690106ed1792b9d52ac887e"], [10, 3, 1, "", "222:1 2113cb97a21d807a1ce23b1fc48691f268dc2902994fd2c9b7a68235b26f5668"], [10, 3, 1, "", "351:1 661a3a1aab0b939067be99081b05c9e14a6f5a6aca9781f866eedfa9a7ac2caf"], [10, 3, 1, "", "206:2 519e2d7a787629ff82f0ac7889a961fef2dd5c808a3d92d20577c8e4619a6c98"], [10, 3, 1, "", "441:2 50e952ca39eabd1b9c84a590eeea20dc18149d354ab428b0ae53d61697a1edfc"], [10, 3, 1, "", "299:2 c1d843e7f042cb52d05487dda6a49f0bb9cfc10d105c6771cea3cea0f49de5f6"], [10, 3, 1, "", "399:1 9482836bf585816b2fdb19a12c5da85f014b8e65602b245ae13257fd397d0e3f"], [10, 3, 1, "", "484:1 da83786561684ef3f1ea6b5403d5df3f17d2de925757999817aef90a955a6e91"], [10, 3, 1, "", "504:2 5a50518b8730e37a490fd94e34bd9d8bb8886d41f8879411bb2d4efc6b35ecde"], [10, 3, 1, "", "14:1 198d4349217668b52c8df13a0b9818dbf3aa38a320a4d98a4102ba04ab7d295b"], [10, 3, 1, "", "136:1 1af2bef208b5873730b5a70da62a02b6097e0165d32952186f50a1fc454e62e1"], [10, 3, 1, "", "745:2 b9880cbe15db60d110b22def087765de48eee422716f5bdd7ef9a4efa72c5164"], [10, 3, 1, "", "38:1 3466ca701a5eb8b8bf058fabb19cfc0209948fdec7d3b218230f56cc07e7def4"], [10, 3, 1, "", "565:1 4c72541805d9bbb653e8229bee9d003402439bfde83635c713d382f784081ab0"], [10, 3, 1, "", "748:1 8822842cfdb9899f545a6863f17b3fd9f4ed8742e1a45e24e82893a3131ecfe4"], [10, 3, 1, "", "116:2 4f9d2d6e4a5e204acb72c105fd11ce6c26fb64ea55417c5a627581b0e1231403"], [10, 3, 1, "", "607:2 6b1b66b82e4ab9634469f78c85bf26ceae300647533a07f9a62e77ac7e9ca765"], [10, 3, 1, "", "267:1 90984bbf1a3d3042a55769638cf73e49289240f1be75eb0a7f16e42cf03d58e6"], [10, 3, 1, "", "504:1 8c0b7cb1eb0a5c0da1b30d6bc96b750032e97a59ddda9bd751e641a151f64534"], [10, 3, 1, "", "266:1 613de2ab41662f6927a0f6152c783918516dc107f7c016e0d7aaf41a1c93e61d"]], "4": [[22, 3, 1, "", "13:13 a585409a841ee7361e6fb14891ca557214c6bde16ccd359302549b407e7a771c"], [22, 3, 1, "", "1:2 d7948a2adf90ff0fa015b4f90967c0801c9271d1aaf7f17e291db8a682522035"], [22, 3, 1, "", "2:21 da5f5e5fcdb5726c1a0dabc99f8770f5e3fbae1459f5833ff33532110822caf6"], [22, 3, 1, "", "14:8 05bc50eddffd3a18ed8f3377b123bb37c1b5e94af198ccfd7de28fe31d741de9"], [22, 3, 1, "", "1:1 0f3224c81474a43ebf7a037ebb226c3b28b450e79a50de818459bb6d93a03b4d"], [22, 3, 1, "", "14:1 5d702214fefa6f0a53043997a796eb9c5880872b5e01081e4b326f34b335437b"], [22, 3, 1, "", "14:10 88ab9938b63b54586e5a194cda9b4fd9238fdc4204039efa73640037b90e8336"], [22, 3, 1, "", "2:3 40842ff24d030ea0ccb5075ecd6ec1492cd9d9c98e960ed9563cfe03bb7e2487"], [22, 3, 1, "", "2:2 e9bace1e5151ffdeeff57cb5069120c81735b17734fa05f4c4075277f6e081ad"], [22, 3, 1, "", "2:15 e821be0746413ff9f5096aec87f2ce2d467ea6cb27fb68fa64c8a116c0207238"], [22, 3, 1, "", "2:17 c36d1f9962298745f389857334fa11b8218d392e0116702a80ad091719503e13"], [22, 3, 1, "", "2:30 1fa312839ea42e8a1bbcaecbc879efed22264c8ac233c6cfe5339ac2db24a2b3"], [22, 3, 1, "", "13:4 9e95c1f9c8e8b1d57a5759c5453c5cb606c711e191df6d096a42e1f8e45b154c"], [22, 3, 1, "", "13:15 8b15c2b4a5b8923f6ec42c9dab38eed453f1bbfdbea8094465a5124ff0ec2e5f"], [22, 3, 1, "", "14:7 c2729c9c6fa8817169c4c6b3ee4585e3518a521decde9f3a96bfa7d4313c831a"], [22, 3, 1, "", "2:16 fe0aac8860ab0c5746c0c07b373e29983a82fc0ebd52f6dd2630ace413a9fabb"], [22, 3, 1, "", "2:26 d8cca7522f47f0479ce66bd850d2931ae4f7c4c1d4b198e4aad88f9b90a1ac07"], [22, 3, 1, "", "13:11 a35062dc24915937215d9047a1f414ade029557a2c46169a0c9a79cc96db0d02"], [22, 3, 1, "", "10:1 25fd89d90847d3d474a7da20e5aba2d29f31f8f7e17c2aeb98d2a62683b49efc"], [22, 3, 1, "", "14:2 9d3437b59c9ab4d5061e5c413b3f9748921ef9527b71e24efda1f586edca9e1d"], [22, 3, 1, "", "2:22 22c62b9e8996f6fbd50fec2e75e53a84a790744792c0aa40834de29215569f84"], [22, 3, 1, "", "2:1 23b6212015d6348a703cb5be2c0d3c0f812bfb0ece7139873025d578f50472c1"], [22, 3, 1, "", "13:6 b94347bbd83933a75718cc03b215a9d769aa3d6f969c54d90c57fb5f932c1fc9"], [22, 3, 1, "", "10:3 9db2e47ca9bc68f63d03dab529165f2062950ff28398da808d41f83989833ac9"], [22, 3, 1, "", "2:8 65b9ca746467c1af24795a49cf507e5a0494d59801db4665214cf5d87fb169db"], [22, 3, 1, "", "13:16 b23001be74c2e310999ac798d2f614d308ee8e1e9b8b7c463397a615dcb3e025"], [22, 3, 1, "", "14:3 0f8fed9095b2593b2ce110d5083b1d4174edfd4d58da66a283c60dabbfa46666"], [22, 3, 1, "", "14:12 f2c5ee9dc74cb81bb9b1010d4971b395c10d7ae0b69878d350cb1456826c8e37"], [22, 3, 1, "", "14:11 ea8cafd5ce15c0c1f15675f652353abf992d1d606ef8a4a1543796515a9f5575"], [22, 3, 1, "", "2:20 64386326aff45271fd69d938c23b27ac3d34103a3520b4b76a78cf860663636b"], [22, 3, 1, "", "2:7 00ac1f2e576d6d3d14dcb244d363bf14795ddfee222c420efa28a171c91598f2"], [22, 3, 1, "", "2:29 0dd8bcf2a274d471aaa36ab380441dd3b6ca39976303324ddd118e50013d02dd"], [22, 3, 1, "", "14:13 4b84d24f6f4b7c87cfc09aa1f59294dadaa53c24876e0fd68f67fc28b88830ad"], [22, 3, 1, "", "14:4 f4c5aa350fe7996e2be77424186b6514c7bdc0bed572827e1783a11b5551e07a"], [22, 3, 1, "", "13:9 61a7ac2c1a5f76feec6326da351d7821d5d885c3ddf66d460a3cf531b46961da"], [22, 3, 1, "", "2:24 f1a647d67b3a801d2ab2b7a315771e5d26e67d2662bb331181a88afa5c152bc1"], [22, 3, 1, "", "2:14 454e730423cb4d7f069989e61ff7aa256e85e03a5c1e7b29e64e627e192c47e1"], [22, 3, 1, "", "2:28 753ab4b03e9c965a6fffd92d30e2769c5a63a344bfb1b7e76971ac8499be82d8"], [22, 3, 1, "", "13:17 2d9fed8708df09f431fc7d1136ad692f13e72f458245e3a972715016cf03cfb6"], [22, 3, 1, "", "2:27 21c1d49526e5ca8d23c874a230759bb497548ab543740fce1095850fdc4fcf63"], [22, 3, 1, "", "13:20 cf5ca60e94e50f04ef2036f964845c07eebcc1218b99dc55e644c63fc7e21699"], [22, 3, 1, "", "2:18 e46c85f680edc5614a12b9207c497460b0042af968c92f40fa5ab637e14571a2"], [22, 3, 1, "", "2:6 25f59f09cdc29f543ccae977ee66e0ee9b0fee1d55202cfa983eabe4f00b16a3"], [22, 3, 1, "", "2:23 b0d2ad5646194c0d8310df4d3333f7afb79755cea464d60a3fbda29273383ef6"], [22, 3, 1, "", "13:2 4dc696ed6dbb85f0cd265718a2213f335ef1caf861c1e2858c1e895b91bd05d8"], [22, 3, 1, "", "2:25 9ca4aa25f308f26f33fb8ec4fe5dec350c1d8526c6675053e5be2719e863556f"], [22, 3, 1, "", "13:14 b612eb84031e77cb9d34f88c555e0396ba5722ba4729a356e68d8b3fb33b3058"], [22, 3, 1, "", "10:2 8ad56706cf3948a37e7738f416f5065e7f1335a2443524ff1c3ebea736ac75fa"], [22, 3, 1, "", "2:9 a23c0b697c2b2e686673f2956a5b9c81a3369d2a7897c67840ba014cc59c625d"], [22, 3, 1, "", "2:19 eaf6ddda440baca7044641c33a4f8d9d84b75648732ea1f9dc8bbb44641bbb7a"], [22, 3, 1, "", "14:5 4faa1836d2f6f8eecc49eaa8a8b5a46d717231f2dd398d4590d48ee4e14c5986"], [22, 3, 1, "", "13:1 d7212257397d1d14621b886a1829ea8f8c8386cdaccfbfbe7f70c9321f85dff2"], [22, 3, 1, "", "13:18 ee3443dc44a15bfc89d333261e8beae2340b01881208cafec32e48b372342900"], [22, 3, 1, "", "14:9 2329dd8b3848ee98473bcfcb998f59926c182d917d53d0b5c562e486ce7905d9"], [22, 3, 1, "", "2:13 b85bfd2e2cfc13a7fc78a87c008d62c82d235fb2d2d7e4d188df4acda7e8aac5"], [22, 3, 1, "", "14:14 504b10589747b39626c8009a403ca0deba66fe396ad2de9be37b123b48dc0c99"], [22, 3, 1, "", "13:12 df1a3afdefc49c32fcd12cc2c3c586b0e8bf3ba1b02491b649c096e25e4a3c1d"], [22, 3, 1, "", "2:5 e8e0cdfb96e0c3ecba3291745e9a1299586805ca7b8b0aecf19b7d32f235e8f7"], [22, 3, 1, "", "13:8 850630ec9e0b341a370fae1c5d0089a6199d8a2d37d472dcd8ff712543d65358"], [22, 3, 1, "", "14:6 838585a97e19cda475b2d3a30b265a5e45814e4e6fed4a7f4273c944223c6e97"], [22, 3, 1, "", "13:19 9c94dc64607d1d1d3d47085d136d875d1b22bd42a1da63f644567c9afb1941da"], [22, 3, 1, "", "2:12 1e5dc2e803a63fd05b7dec479ef1d0add6eea160c45fe290772c02fd26bc89d9"], [22, 3, 1, "", "13:3 853f1c4b6645e1f5b164185c45a96a2de4e6ddc84851ab72105e660ab292f120"], [22, 3, 1, "", "13:21 5791023029771fef296097ed718e040eeb95b76d6aee5549bf5621b22838e5e0"], [22, 3, 1, "", "2:11 4eb758fbe24b08d1aee74c97d4f8541b0dbcb444784a6569c21d17094fb49fb1"], [22, 3, 1, "", "13:7 3f9a02739cb12bc30e822ddfcc0c32cfa2a7ba100fca18cf4393b8a82f73ba75"], [22, 3, 1, "", "13:10 e23a38fedc7034747afe6208416e064bfa435ac281aad0629ac7f4ea812f2435"], [22, 3, 1, "", "2:10 b59affa079dfb0e436f28a313ff4e96d3831d765ff0063eb18342f6e749c79a7"], [22, 3, 1, "", "2:4 cb6e139cbd46fe7899e08fd9f0c9a48a4bccedd925c0a7bcf78f8babca270948"]], "4.12": [[22, 3, 1, "", "6:88 c4b02ef7e1b298b5a276082e81cd8daa172fdc32e30770b173dd4a6e774155ba"], [22, 3, 1, "", "6:61 806a8a9c4c2a0fa926f161ee08b989bacce0c50dc99d9f154417a5c2d8731adb"], [22, 3, 1, "", "6:49 fc18f70656fef1ef9b09d7ca8f249620b596fb1b8c70efba58e3a5a678b21213"], [22, 3, 1, "", "6:98 f38861e12ba15b26d22b39bced0e85caf806900ac14d4b691b9bfdc04c56006c"], [22, 3, 1, "", "2:7 9ce44d0db04150b232d3c66c01e88cb2a18d590a22685dfff432835fbeb60264"], [22, 3, 1, "", "2:27 0c359ddaaaf4bb7ecdeda5b1ed77c19699bd50b53c7c9c180ab91fec01d5755a"], [22, 3, 1, "", "6:33 4b63ff86116c425fe2cddd007442d0c03073678cf0cdc42b62c7224845aaa0e3"], [22, 3, 1, "", "3:31 a9d2363147bd3d1382fb2792473844fa7abd6d6fb6aa67371d82a7ede1452d39"], [22, 3, 1, "", "6:93 397cf84d1d20fefbdb6416f126bc1fedb49f880fa10fa4a885aad6fa92e26167"], [22, 3, 1, "", "4:2 644c0bc93e9153b1614ccf90b7c10dc639fb525098e57bb2ef0188049521cf07"], [22, 3, 1, "", "3:27 e233c03b13e1a8e36e57cca5a910344a93904dc508dbe3d5823adb57c58fdaea"], [22, 3, 1, "", "2:40 7726d6710a5611f30a40c98174045b829d3f80a6b8d962dae4f64b76e83045a4"], [22, 3, 1, "", "6:54 18ee894162cc21546a88f2a251a9f6bfe341f49b0bdb784abc72aba91b0d6ae6"], [22, 3, 1, "", "6:24 6f3816132ffe28efaf427fe33b1433ad594067052bda3f57277c1451893dbbc3"], [22, 3, 1, "", "2:4 a1074c8cfb8f682fa21dc2aa4c3d2b500a67a107b90901fd69a32bd3ea7f487d"], [22, 3, 1, "", "2:29 8c89ff60eff543cbe33d8f313577bcc491d151988e3e14ec4a7c5f681d0fa8e2"], [22, 3, 1, "", "3:38 cdd6b9592887af36d0772fde53ca3091c4a6bf70805ffbb04a1dbb16ef4d92ff"], [22, 3, 1, "", "3:37 afc1ce7f88cf8abf3164653eb9fd348bd326ebc15ebf3037c655e1c0494c89ad"], [22, 3, 1, "", "6:55 8842ea78c118edaa940f0f0073d6e7c3290bc1f164964dd50de8eb727650dc48"], [22, 3, 1, "", "2:38 81ebbf38df3455de1ee80a6f1a2f412c8878762eb6b05285f16ed47c4a857592"], [22, 3, 1, "", "6:76 a041f706bb15d0161c35bfcae72a7de2e0b4e11a3e262fb649508ed8ada51bd7"], [22, 3, 1, "", "6:14 6dd1a00950a9e651a699734e82b1208e81181f5202936ac1f1028fa651d02a27"], [22, 3, 1, "", "2:41 fd91364bed19d0afa9d73fb3c1658c025a696b873269013f813ec189d9214416"], [22, 3, 1, "", "6:73 81163aef39eafdb0708b75f24ba80cb5182c0ef48bed2d3cf8feba5b9bef6f95"], [22, 3, 1, "", "4:5 2996c6bd3a3dcde83041a19b7e0ff0b4645e49e8373faa312d7d231d80add18e"], [22, 3, 1, "", "3:2 b3d69f435190dd57fd86cebc434e29483825d6b25b8f60120e3477fef36b44cd"], [22, 3, 1, "", "6:45 5d1d8604e42079634aa8e88ee40d69c6321bb9e01bccd24ed821e193b76cb937"], [22, 3, 1, "", "6:56 8b10910fa086c26e1e94705d9398a51c68e7a3c6a9a4578d4fc204abc3be6d40"], [22, 3, 1, "", "6:8 50c6910a7fc8c1b07b987b8c629d5666817afcdfd7a77af3e544b2df055354eb"], [22, 3, 1, "", "2:2 8efb96431fa13308cf8430377b0cc06be4e7e65b313828a429bfd56b64fbb69b"], [22, 3, 1, "", "6:28 8ccd07581891d7328efac206e6e8a5952ef3b60a40fbf3b2b43182fc636b4fb8"], [22, 3, 1, "", "3:25 fc7f331b6089c5bd8e347504d88e62078d5c4c846a9ccf65eaeedd8ffc094c48"], [22, 3, 1, "", "2:32 d54f897d06ae679945464622ed0a82379a5c0b60452ea600983b97b69902bbe5"], [22, 3, 1, "", "3:35 dcbd46a0126cc58845c6cb40ab6afc0aea44dac093a6f13bfa4fcf14b4b395fe"], [22, 3, 1, "", "2:10 35b4e67328db231c512e327ce5efb8ce05016ea1da017f138f262e2e2a227d6d"], [22, 3, 1, "", "6:23 2fba60344712b36c7e3d85a11370baa6cf316b8b2a345d1b4b3f0dd61383b631"], [22, 3, 1, "", "3:24 e789228b8563894bad59c2a9870a4324c5fde44cc790f00e4a45a0b465c8316a"], [22, 3, 1, "", "6:91 2937ec9b056891de7aab2b57810eba0528ecc27fc3e8075a1f852903bb9b994a"], [22, 3, 1, "", "2:47 138bb93829e388cb6e4f30afcc6d8172dbc34098c101c23ea3024f033ed853c7"], [22, 3, 1, "", "2:48 35b9f5170166cb82091a22696f9f5551aeeb153b146a6a8cc6fd0ec0f69ba070"], [22, 3, 1, "", "3:48 215a6f01fd8ef7a0ce0ca1e6aa8dbb82270d88d2f159c6bfe8c8aefe79a45c21"], [22, 3, 1, "", "6:94 93b5392211c91ee8d504d9868a7d68ac136546dcdbbad5d24d3f577f2c88e489"], [22, 3, 1, "", "3:52 e07e12484817e4c6487e1204a1f9510e836727735508f4ef691226c46e64bf6a"], [22, 3, 1, "", "6:42 588b531763a50551cc01572cee3f92331ffeca722aee95bdcef6579dc6a1df49"], [22, 3, 1, "", "2:28 6fed9a60e8fbe91b884ebe5950327802bbd098730e114fffad4de5c82403ecfe"], [22, 3, 1, "", "6:29 0557c8604fc016c9a1c036a9f02b61c95d2b7d1d6a0043aea89868044534e8f4"], [22, 3, 1, "", "6:60 5052100ae827ec33641989b63bb47e384a21c161e2fb0240e543ae9120df54ab"], [22, 3, 1, "", "6:11 30466e79ab50a4ce686cad40eea4346e303925d4a01f36024720a13e48a89b4f"], [22, 3, 1, "", "6:89 402fa34cae898d54c45a23952960408a04d5d8d41b0f81ab618f87b26930cb88"], [22, 3, 1, "", "3:43 f4b1e50283ac71505aad22e917efae5d7d1d0798dbdf1fbe9d80f65bb04514a7"], [22, 3, 1, "", "2:3 2cefde97b95cdce903b2bb16f1b7f2bb843cd1947a51d99f03b6edc576e8a815"], [22, 3, 1, "", "6:64 c22d990803ea4ee571303d09a964df44019da966c6d9a8cba436ae48cc9437c9"], [22, 3, 1, "", "2:46 5d19ac9384672776d1ee638f44540b560d0f10f40289e94044bc9fa144c252a9"], [22, 3, 1, "", "3:7 14a2ebfc0dc84e45abcd936047fdf03858f8cfa416f4c711cdb673c3029f2a1d"], [22, 3, 1, "", "3:20 34586dbc5392132b773e0f3aa90c23b3f4079ca79bedb9d108b354e0c15a9584"], [22, 3, 1, "", "6:34 8e96bbc341a6b1de1d507f569d8d34e94e53b067964a454afed96b6b4bdb7d05"], [22, 3, 1, "", "6:87 4d4e567b4ab8ca5f4a1fb1c8c3d8df91c67fb770bd4a4cace6b5edb67fac789c"], [22, 3, 1, "", "6:80 1a0181d42cf641e33221d4f38b0852492555c4ac8e15be51f143586d6b985c1b"], [22, 3, 1, "", "3:5 dcd00eff58f1f029b5a359bbdfebe7a52a9dda64e77847b71c38aa9ee577082b"], [22, 3, 1, "", "3:39 cefece0d02fa276fe12b8d7fa02401d8fa6a73dd827f6c8960ef8097b6ff375f"], [22, 3, 1, "", "2:53 89b48d93f4666e6e771a2628649e81f8d1f2de995e07defb06fff0282cffe991"], [22, 3, 1, "", "3:53 335cbd4c223a88ecd2be44961d7a6ce553d0352af438c9f034095d6c8978c103"], [22, 3, 1, "", "6:25 605267afb8b9036c0eee2345a972043cff7c21380f985f12caaba2f7d30aee0a"], [22, 3, 1, "", "3:36 89cc90acc65cd37645feae640026726577f4f4f0349a887ff00a451479f45b0a"], [22, 3, 1, "", "6:6 20eabdd38eacdb13f67b19026f6ad726531238743b530c057d28a339a5e5db77"], [22, 3, 1, "", "6:97 f42fbda3021b2099c9a16bf8df1231e066450bcc017fefa22f943451c146644b"], [22, 3, 1, "", "3:40 698fb05a30487c47e16c1814bf5989a6201253e9f222c440fd59e3d8cfabbede"], [22, 3, 1, "", "3:14 f631f3eaa473d36dc8b906892fb02d2afdfcc6ac8b36a88720bb9cbe268707cf"], [22, 3, 1, "", "2:15 5c234eaaaf625cadcba23e792b9c70b2a5d5a4bf733d3d1b874363f6cb4b4c23"], [22, 3, 1, "", "3:18 760728def307e32ecd93826afc55eb5b39477adab8e2fdd6b8d2c3445e9c6c6b"], [22, 3, 1, "", "1:2 3f12892eabfac9dd07124c6ca395e4ab531b1edab32e93dbf13a9236a105def9"], [22, 3, 1, "", "4:3 ebe3f4bdb59589737e2a8f2587d31e540b885474c990132b77755e7fe3118e79"], [22, 3, 1, "", "2:6 f1514e494d536e424cc53a6d932b2f0efeae9c0c1c9d38cdff61bcb32368c8be"], [22, 3, 1, "", "6:59 ebc67189c8cb991506019fe72864d2436c9245d633826ceebaf4b8277518858e"], [22, 3, 1, "", "3:6 2849e3f04859c16c3f699d20cb59e697e2d5ea761ef414a8e9f6a4bfebdad8a2"], [22, 3, 1, "", "6:3 a923067c037b043e99981b0ca0ebdb47199c07b67e084d5a7bc220e594b133e1"], [22, 3, 1, "", "6:74 546efd775e9d74760187551b78d221ef19b4646f33a34b4867f7a7f270798d70"], [22, 3, 1, "", "6:58 82e588ccaea063d84f7b82b1242d7802cd1df6d675a27ce6e2bd69459a9c21ab"], [22, 3, 1, "", "3:12 973dbaecfc13fb4ab65e325a94d44a45fc9c953dda41203951b7614d02670864"], [22, 3, 1, "", "6:78 aac5b083447e8a2e273adb8cb2fcc744493827cedc47c65b0b3baedbd7b9743b"], [22, 3, 1, "", "6:96 569bfa594da4cd446bcaad60663a04566c36afc4f5ad3d236f098f50b66fb41d"], [22, 3, 1, "", "6:48 6488fc5972643c8005b9ff665490a63292c4f336c2a0a5236c0539a65816b2d6"], [22, 3, 1, "", "2:9 5856553d7c3dc3037b3f61286c79224e0a36daaa9f1fc4dbb8cfa32293193d99"], [22, 3, 1, "", "6:84 6b0b0bc2f95b49ae5e152da970bce05f896dbf296e9728753d1d673ae72cb4c7"], [22, 3, 1, "", "3:19 b9ab7cd8a6ff174f7370bef719769860ab9bb78d73a887a2d266b10b9f0e356d"], [22, 3, 1, "", "2:39 3318b943515a14fe6dbf55e7ec47613c778490dee645221932ecbb4716e25074"], [22, 3, 1, "", "6:22 dec24d875b5094ddba99326af168b3189c2c89ffe2f65919c91d6df57ae7013a"], [22, 3, 1, "", "2:30 c50b057136169daf940732bafe752d5fe2c443eb42159455d87b433a0de3e55a"], [22, 3, 1, "", "2:19 e80dd4b7ce61eb512368a598539097c63700b957a79797c7632b07f1140b827a"], [22, 3, 1, "", "6:46 676707c30188643f9aee026a919dfa809da219d59e53f2bdc47e3e89d5e5c973"], [22, 3, 1, "", "6:90 a7a2ae8190de32bf5aee8dd116623acd4efd8254bbc6c440a4722d6acb532232"], [22, 3, 1, "", "6:79 330e26cc6685cb1dfa82a84d2178bf60165a81473d6eed85a81862c931f9a731"], [22, 3, 1, "", "3:15 af9ac95087820df12145d4b1bcdc5c2aefdfe7e0661d4ee8ebce4897d946cc54"], [22, 3, 1, "", "6:1 0733340fbfcaed4e1531c4bbd915b1e25c8a7f93c5258f26dc010a4fe224801a"], [22, 3, 1, "", "2:11 6c778d5632db97d3301836bfcb54ed7f9a4bf9ae7f59492ea0edb726e9760040"], [22, 3, 1, "", "4:7 70b221698272f53f393baae8c1c140264a658dcc9849120449671981eb75f27c"], [22, 3, 1, "", "2:54 203ad82032af14af279f43593fcd8fccfc929c8078778a6de310ca6d1f78e9f8"], [22, 3, 1, "", "2:16 71c2ef4eca01d8d2398c416f696fa413d2aa384ac63d110cf9c02fee44394c17"], [22, 3, 1, "", "6:63 526646cd5391985fdbc176a363fbee22aff06d3523b542342418b6e8503f0e22"], [22, 3, 1, "", "6:40 74689e53776dd9f93adcf731cfd28c8cf305612f2ba7174d640713d10f582686"], [22, 3, 1, "", "4:4 9adcd87a7fd208d21fe66dfbd16bfc8617403dbc76b33595031feae169ce3659"], [22, 3, 1, "", "6:71 bde009024b27bfe5ac2165324303983849b296af03f1d09a999b6ea05b2e33f1"], [22, 3, 1, "", "6:5 f9c9598c2dd792f8150bbc7db9744da31f5c54d1398f56477bc718402556dab3"], [22, 3, 1, "", "2:51 eab384e3f2e76b1ac0fe9ec7ac7cf230e58b0f6069105b253a18e5a57cf0f62c"], [22, 3, 1, "", "6:43 13a1275180d2c104a792fff30db7a7ca08c5753e22d660c88f6f8fd5714a2ce6"], [22, 3, 1, "", "2:21 ae9c6921bc2c5d6daea20516afa9d8caa4b58b39286ba4971eebcfd1ab4c0cd8"], [22, 3, 1, "", "2:31 66ba5454612352fff011f2c5f16752b6851b3f672fadb2f8c15fb1c70eddb384"], [22, 3, 1, "", "3:29 dd7bc2c44f433ffd630cffd6c4386dd7fbd5fa2ce7379e469299b9dc5c179d09"], [22, 3, 1, "", "6:66 67e11b06e517777ca3b49bb1108497bbf9f41dd3f7a6c03b9d584e8cd270105d"], [22, 3, 1, "", "6:101 7b85215a3effc40177a6c31907cde3fa3a7d61b57ff6c0c02e88d5e9ba01bd8e"], [22, 3, 1, "", "3:50 32a6c25c6e1124e082617948626bcbb07992d4275f54df0c25e6744748e4d53c"], [22, 3, 1, "", "2:42 6a5c53a38ac6502579f67680736ebeff29b1a0a8a697f84d17e10c795d1d4b7d"], [22, 3, 1, "", "3:3 b18d8bddfde5ee8721d48f3d414b5a55dfb48c98bf03d2412a1ab54ae0f93c30"], [22, 3, 1, "", "2:49 474c0b6fc42aad94745322806f94d0baac7f6f82466ba9b20bb757aeaf8f0245"], [22, 3, 1, "", "6:47 f8723a3646aa5ab3733bf3c732510697a8de3a235b3982cf3dd70d352f129ede"], [22, 3, 1, "", "6:12 6051ca9ecfe04a062d5a946c136ee02de33353f5ed963a07c287899720961af0"], [22, 3, 1, "", "3:32 65c7ca810e8b17133d894175777f2b3b7bc290fcd174dc128bc978c1bbf10464"], [22, 3, 1, "", "2:12 c4cce1e4f4599cca9433e4c7caa01c2370d35e7468cd75c25d05a45d4830868e"], [22, 3, 1, "", "6:77 69715763744f3c7fed67ba5ddc98229c812a0800cf36b28ee12f43fb82bf9a42"], [22, 3, 1, "", "2:14 fca446cea9b227ba6edbbd60b3d07b861687b7e6735b5d9430aad156d0c00cac"], [22, 3, 1, "", "6:68 37e26fff3428ba52d2fe60fe551dfdbf498213a5d36c669cda5b1014a30cad85"], [22, 3, 1, "", "4:6 b32c20afa5097b044cad383b2ddafd39d592f035043bc0e89d5c5fc9036d89a5"], [22, 3, 1, "", "3:22 1b30164bd90c0dbbcb47c87803c0841dfe9d3d772e1a34c7a9ccc4a4933b2c10"], [22, 3, 1, "", "6:26 fbdb2b0ff1c5aa038413a78be7e9a6ff41c0612db0648417cc31a20a682f98a0"], [22, 3, 1, "", "3:30 8e785eaf45c0dfef77ee6ff7b317a82aaf46b49c84f4c2ecdc296ee62568c727"], [22, 3, 1, "", "3:54 8fed0bd1fa0bfbbe3fd11a53d62ef209fd7e09e5b74a6ad1f1b86277f57d1d86"], [22, 3, 1, "", "2:17 688edd3c20f0031139a4a191d039bbc1cb4b3cf4e71953f32e59ca93e9e1eb50"], [22, 3, 1, "", "2:23 00d3c7f7b35c66e24e4a10adce31978ab8ad1bd234a231761dcb86dd442da7b3"], [22, 3, 1, "", "2:33 c9cabad366daa8e46a924d711447aac73dc93e60621905f3877aa65fc1a0724b"], [22, 3, 1, "", "5:1 9aa56a43b546255945ab60a08d9ae4aa90b591af22e8b4c1b7dc0c4f9af83598"], [22, 3, 1, "", "6:51 b5d0949443935576123b18cca27070bb53af6c5002605c2aec5715f19a860365"], [22, 3, 1, "", "6:7 ddd1c8f0bf52f83dc4686954218b0f4cd13dfd720d985efc7e5e7cd1fb987375"], [22, 3, 1, "", "2:24 195eb65f16abf0575d17f2b1be1087b9e206a49ffe16d3ffdef28cd89e788366"], [22, 3, 1, "", "6:52 e676b83659cdf96c2848aaad17275d4f1455977a2a1ec7bd5732238283eb9382"], [22, 3, 1, "", "6:44 f1e4f473dd23e3b9cf44076d9391ecb3e1b4acd8b5e43e81c022030fc8ee42e9"], [22, 3, 1, "", "3:47 39bf09cd84e3badf0caafcecd1fc51f3d0e38645e4d70876f6313e478f238928"], [22, 3, 1, "", "6:37 49ca000ce5a71f5ae340a653f432992078bb8394c14aaba4e946158942b0ea9e"], [22, 3, 1, "", "6:67 6a0bf506b4c1329bf0fd129c93e06a2ee1d0d06fcc05379daa9446f90b84030e"], [22, 3, 1, "", "6:92 4db1070a4a0b985d421c7c4686bb275d07c92be932852e255c6f80818a9a9a35"], [22, 3, 1, "", "2:18 000140bda99fc03cb461ae82fc44f00553e759bdefc4024a743226869bb556d9"], [22, 3, 1, "", "6:83 7bfe1b4191cc568f4965ea2ae5ca690ed51993b7fc4ec6bee03da8ea64653fb7"], [22, 3, 1, "", "6:53 0bf1dd0f944f4720a843ee0ff984ac3d257f69cc6ba1b5214da858e40de1d6c3"], [22, 3, 1, "", "2:44 e08654b77f30bda8b01a6f943f5f80454a4b1b139153afc6307396967f705b66"], [22, 3, 1, "", "2:22 e6f42ea036f99fbe3b1fb90f2cd2e17a9acf5ca1116043eca60f80c79867be2c"], [22, 3, 1, "", "3:13 8c78c768eeb8f1a02a7d182fed23128f8bc7bbf0ddc102ba2da4c71a08098ee9"], [22, 3, 1, "", "6:39 1819eb47223394c7033f3abd693ab921b11aff33067751eb8cd6863b755d3f61"], [22, 3, 1, "", "6:81 ec677f1076b9878644693b68b12fa4f88ab646f06cf6b311b260e4da1befb4b5"], [22, 3, 1, "", "2:20 f24aed54e03e3a739813f0003dfe5ba61269ea0b335234f058a75c2258a3a969"], [22, 3, 1, "", "2:13 e1774f66d7ec71606db10f7d2ea8bb346f4838230ccab723b87cc20531f9c9e8"], [22, 3, 1, "", "6:75 a5590b6dee25c97033f7305a0e6f936e9da7265aea3829f4c2e7c58e4d7884a5"], [22, 3, 1, "", "6:4 f0ad52d5ba7639c36c518c3720cb06c3552839e842057b6d3ee4ba143ab4be1d"], [22, 3, 1, "", "6:86 4e795302ddd133846579329661e9e97b490f86e981444546b66b4dd9022abb89"], [22, 3, 1, "", "2:37 f397d8cf8b8c7c3fbcc901785345c36b908996d3a6bd6464e4e20cc108523a56"], [22, 3, 1, "", "6:95 7f686eb11bcf39ea892c2d0e96ad372bdc601edb69025cd3e0629e638394539d"], [22, 3, 1, "", "3:21 b048851b08b58ee5809efccef3bf5a7a5207344b662eba5162de24e194352b83"], [22, 3, 1, "", "3:11 e94e4fd5d3c8124476595c77485d16348c94894082857326c18e6414d7e2ead0"], [22, 3, 1, "", "6:13 aa67d478f734851497c9592cfcce1e63452ca21e44b8f258ca57c2fd00174c93"], [22, 3, 1, "", "2:45 72049284c54176fc4fb1c1c255561eb7d7942a71235fa68202ca2bb3d8b79613"], [22, 3, 1, "", "2:8 ca8ea0205df206f0258c062e6a5214044e0cea21feb89cea071059c7e56920ea"], [22, 3, 1, "", "6:62 bb3507010c18cd505e9adb4b8c8a562d3ee002bee23c005dfbd3e702c9f232f8"], [22, 3, 1, "", "6:18 d8578c25c7dd2694e72bf1900ec0de0b6ea38280d2f75db22a3f5249f98fb764"], [22, 3, 1, "", "6:85 84a7593ed63e9466545fae000a156e8e448806170dea5f772cb868f68f526def"], [22, 3, 1, "", "6:15 b6a171c627874b9918c71b9cf66fa1fae6c874bb3359b2d6cba89379886281a9"], [22, 3, 1, "", "6:50 27509db5c82720088c62ec3e141b026c1e322a7186cb994b8a0d5e924203e03e"], [22, 3, 1, "", "3:46 5fca7b2b2864b7504bace27cb6390c5d3d01591a0d2cffda65c64fab8cd2c085"], [22, 3, 1, "", "3:17 3e2e8a463e825e0de103643132d6ac576478740d745d5bfada48884bf6a73f0f"], [22, 3, 1, "", "6:72 18a9afceee9c153ebb83180b204571112295c6c883a85c1be27d367890c63aa6"], [22, 3, 1, "", "6:19 53bb50d4c95b2e725abb10288ad64df42968237c86530bd3bee7f867075fab87"], [22, 3, 1, "", "3:49 096c4e463b9f21a7f6f450c919b54b1d2c68b8b6e4496fe0dae2feda9e403c36"], [22, 3, 1, "", "2:35 43358ae1fdf6051cf8ba48651a94f4d6b6e62ab05031e0b0e384a83724822952"], [22, 3, 1, "", "6:69 f672813590c7e0fa2c72a85763bf792b275fbea9cd74a4607794cb8f9ac171f2"], [22, 3, 1, "", "6:27 59854f2b212e191c9c0c639c1bb9caad6bdf38f48c95024fb3a49ae93818cd30"], [22, 3, 1, "", "2:1 5df68e7a28d0bf034a911d0f1ebabc63d83df1f144975513612741de324e087a"], [22, 3, 1, "", "6:9 cd59d75b8786aa2152a00a74d15960f972ee7b9efd9ed6ea6be282ff7bb0393f"], [22, 3, 1, "", "3:28 fde902a0dcf7245891be85fe02b53a36f549f906b5621552b11c7c0e83e5b3ad"], [22, 3, 1, "", "6:82 2a6207f713e77bf4b36f34f67ee44602ec627d4216450a3fd15002b80806184f"], [22, 3, 1, "", "2:25 1d9c72ecb4ac5ea7fc4fc3d2d75b5180c4f4a47db55dce93873e90df42e46743"], [22, 3, 1, "", "6:10 6f383a50f25c7293a36c28b2eb734e84299ba6ad3b35e8d967d2b84845ccebc4"], [22, 3, 1, "", "3:8 853017badc80ef7625757aa8b68a0cbf76baed161093698d90b35416d3ff25a5"], [22, 3, 1, "", "3:51 275c8b1744879cf91aaf7305f7ba2d9a59d6efce2a635c736da0131f3f9880ed"], [22, 3, 1, "", "6:57 7412650a46a74061d81ffa512d2179f23b1edf74b3872464cc7f6b596caaaadd"], [22, 3, 1, "", "5:2 d05a898c3b49c36accca96ad2625158f39bce97c30d6fb95823df4e3533194bd"], [22, 3, 1, "", "6:31 849706ce4bb64a8cb1a45280565a1bd62f3e35ac9862270ec8aabd354c93aa06"], [22, 3, 1, "", "6:100 4eb0f7cb1d0475f4762ea3ac14eea3f50eec51fce9d2cd082fa76a05b372905d"], [22, 3, 1, "", "6:105 2b0d9332d54179fcf153daa53495e5dcc69f8f1fc6183007301ea8d263db458f"], [22, 3, 1, "", "3:23 c1dda665688283c6458e52d3c3a8e7387bab58a818e1c1b871485a8e7d6c068c"], [22, 3, 1, "", "2:5 930299ef90063f38b5762819de8b999c9d6d47c338fb35b2fea53ba6308b392c"], [22, 3, 1, "", "3:44 bb81f4f7bb91b154fff3ff42309dea91e61e5a2ced8910f2543d14f89bf79a19"], [22, 3, 1, "", "6:38 6c39d9fa3aff34c355cc05dcaefa243378bdafc12a5968b7239c801d4ad37d50"], [22, 3, 1, "", "3:10 b49cdf0f2fb74d20d8bf9bd22739caf559f092b37874cc469a1fc11796b0f3d7"], [22, 3, 1, "", "6:104 35723ad98d3805267108e83cb916ccc229ff4ccba59f3dc700de834c2734089b"], [22, 3, 1, "", "6:70 8fece354838a30ef4ea331708e12dc54c63518c2e2b4a4e072f377569a53b15f"], [22, 3, 1, "", "3:26 61b8468e184c14f1902fbd43e6492e9b4640ddad4ae0a33a731901b147214f58"], [22, 3, 1, "", "2:36 db5b765c1b3a6fcb40b42cccb46ae92a512f298b4eca532573060af03314af81"], [22, 3, 1, "", "4:1 4f72ed3d4dc04653669e57b2d2f00cb3b728c967aca05c3d7e142f41c86239fa"], [22, 3, 1, "", "6:21 f5d2a97e84c341b7cc97283f2c6fff644af2eaa3f18136ae71b93c5ee9b56241"], [22, 3, 1, "", "6:30 04477f3988629a5f4ccf3df3153224a68eaecf8351936f7725a41cea78ead3b9"], [22, 3, 1, "", "6:20 229d0d5b05eb5ff42588ebd5ac4c95a095a29d82ff3f26152bebfe73e02bbc3e"], [22, 3, 1, "", "6:106 233f2aa19661d54999f5b48a7b7ceb27a0590d0f09de50a48967716f0de48064"], [22, 3, 1, "", "2:26 408947791758b2ad8dcbc3ecdcf9c5f4c8644d67bdbff00b110458292dce4e83"], [22, 3, 1, "", "6:17 7dd786d9014c1823ba3515b3ea9f68d750d2db96ee522b6f4546aa39d4f678cf"], [22, 3, 1, "", "3:34 8322e0c9269a64e591836ee24ecb8d377ce3093892b78053bacd698ed55a8962"], [22, 3, 1, "", "3:1 1c125d2f970819ac01d209699beabb24a85dcf91316e31ca2e951e98dc4a5f2e"], [22, 3, 1, "", "2:55 94dbd24c5170da391b4fd6bf809cc9f11e71dac5c7534862f9d4dcbae162ccb1"], [22, 3, 1, "", "3:33 1af2a2bba8399300cc1e205f0f7fee9618593ec4a2537211d6ba2bac7ca92379"], [22, 3, 1, "", "2:52 a08b517ccebf64dfb28aba3e871021511369da1be5e56cff2589a3924b3b9d1b"], [22, 3, 1, "", "3:4 4e13d35d1de469cd6adacba64653a8dc3a8a58eb96060d9dc2fa3c06a4248a7f"], [22, 3, 1, "", "2:34 104f0c1ee57173d019b23e0728dc5b6fb9bc04ec70b7666e5348f7dd366b45ed"], [22, 3, 1, "", "6:35 24c8209ffc45df2596e294640bba2aa7b42f5686d8a0e98b7f5df152a82815d5"], [22, 3, 1, "", "2:43 b27ba69adda5e65b3928999f9748285a16bee769d0115e2a1aeb237b6e4dbc3a"], [22, 3, 1, "", "3:9 1a7266235db01fc19f566dc6970836b039c783ca94c394b07d6f46f45a327bae"], [22, 3, 1, "", "6:32 dbbbf92cb2589a9aaaf11ef14b6aeb380d37d5f6b741d4cb2c5b1fa2e5a1aecb"], [22, 3, 1, "", "6:2 26ecf6194c3f105ef5dfdc03e0b71e4a1c8160edb540c06c1056e324e136e1e1"], [22, 3, 1, "", "6:41 27a406335ebbb1fd6b5a75a0757865b493c7c597c042bfc555c7188be7f10991"], [22, 3, 1, "", "3:45 b95cf2362fe2b684e6e861bef2924e960fcd813879dc2455367f8f620a534ff5"], [22, 3, 1, "", "6:99 030b457cddbacd3c66ddde1079b1b179afde8cd0c3147430bfce82fddff4d95e"], [22, 3, 1, "", "2:50 f77f51ab20e49154362e7e30356fa9048d737311587b745a4c109b6adfbd0774"], [22, 3, 1, "", "3:16 71e522755dbc28be6cd7a324a6a6454114e8e0244de6bbff1a5f0cb0ccb88cd2"], [22, 3, 1, "", "1:1 740cfb5bd47f58876ee5586174ee7d3acae1e4bdfac31a402c4461aafee6966f"], [22, 3, 1, "", "6:103 0cb1d7de2f135ef45509098cda1f169336b740fa28b6108348f05ec0f32936ce"], [22, 3, 1, "", "6:16 38de11a4893adbf77df8542f9ecbe28d5ee3b2986a809383ce4e0bf694d0a106"], [22, 3, 1, "", "6:36 e434416bfa8e8dffc8e6c1164cd594db7a1eb893254a271421442b4a889a0d70"], [22, 3, 1, "", "6:102 ba56f2bf9c4b4756691a32ecda47282715bc88ff46cf80ae2f7484635b80aa2c"], [22, 3, 1, "", "3:41 8333e75b01db4b4778f0b23b7e145da87834bc47ac828831f781b14f6b7830c1"], [22, 3, 1, "", "6:65 57584da05d3dc1e8f0c830d364af56f2bb21b7f6a8a932fd90cc629d6f3de8c6"], [22, 3, 1, "", "3:42 3ef2c70df3fbc39e3d8fe5bbe8c0e1adbf015005169243e1455458fed8ded361"]], "13.2.6": [[1, 3, 1, "", "5:3 0600f1f844b645dd649dcfdebecbdc3af837dcba7089013ae17dfc7ba6295fec"], [1, 3, 1, "", "4:9 4ea15c08520b2c2fb958beab6ad0fc324e6aa088b62d5fb1e6931d8d6507bc5d"], [1, 3, 1, "", "2:2 05939963a9001f26e930c1bf9bad738b146dad4bd95c5cbee3e0ef2503896e7b"], [1, 3, 1, "", "2:1 54779685564cfbdb9ff97ae91287f885632bf1e75e9e44af0e3115fe73cdb3e6"], [1, 3, 1, "", "4:8 ae7e1e29c04ecbee336f1381e8308022f3ad0ccb61bd5c5c7c353b7eea560997"], [1, 3, 1, "", "4:10 7fb19964f38021c6916eb50ab245d90c1f006905de59ccc42d0d0f3d1235641f"], [1, 3, 1, "", "4:4 0353cd50793fff24e61d961587929ddeeb5a7f46853756fa4e2d70319d7500a6"], [1, 3, 1, "", "6:1 10a4631db6c550ee4410b3605bb85beb0c3c0dc21dfefb51ce2f0d1b3e42343b"], [1, 3, 1, "", "9:2 02e72f828ebcd6f9f80b9df6af14c28f1e372a5ffb9167e596acda52024560c4"], [1, 3, 1, "", "1:2 31e103c274c243fd0657f6c9fb22d4587184086c9c66befda6643f82b2435479"], [1, 3, 1, "", "4:2 6eb5a07a373ecc60dd23324335a8b659caf2269885af5c3585f4df1c13ca727c"], [1, 3, 1, "", "8:2 aad978ad1b9b2134fb756fc3db820f6b58d2638aa0c07cf0f6910e996e04b5df"], [1, 3, 1, "", "9:1 515473b5a7edc71b0872a2f78ed4aac163ef1b1fd6716ca8b8a8a87717e85105"], [1, 3, 1, "", "7:3 1c20d78c53465204598d099ba8c270f12e905456c6b799086d88a295046e6b7f"], [1, 3, 1, "", "8:1 b264d167b04d1f62c99717023640f39c72ae2c165f8c8802648308cf461c78db"], [1, 3, 1, "", "6:2 fdb84e96608c3986056b7d198e88ed046825e6c72eff37d9b7ad5d107635d528"], [1, 3, 1, "", "5:2 089ca2eda0df3b0c76c2d4a1e66e7b57615201c37cb7791d3217d9bf7b581da9"], [1, 3, 1, "", "10:2 68ed1d8594d8c5b565c9c3ba1dad3e246f93c1b2b85a0620b07350282ecfb68d"], [1, 3, 1, "", "7:1 b9f69058d6cf44ac40747cbd7dd38c8689c1de672c433b6fd76c37a59413c0a8"], [1, 3, 1, "", "5:1 6321fe23e29ea0ad41b3c85bedafbf9ef00aee8ccef4be33847faf98c00dcc83"], [1, 3, 1, "", "4:7 b0db32db9b79b0e6ad02182b8befad2a9aa177097a1fa014a59781f5686d36a2"], [1, 3, 1, "", "4:6 60ae8311dc7a096a8d78ddf2ae480d5cd77d966a20facb0ce94dcea8d1eab84e"], [1, 3, 1, "", "10:5 7a8578b15d438d33bfe5ea2e9b8441da5cd13f514c196d3711fda2f876d4e701"], [1, 3, 1, "", "4:11 e9be1b611b17fb0d613033d31855e2094fd26b9bbc43a9b80f8182da2e833906"], [1, 3, 1, "", "11:2 0a18a601c320e54cccbb64a16e0ff23f67f5a8c9ee5e3fced2951001ef7cfd88"], [1, 3, 1, "", "12:2 34849743163e54f2380ebe33f0c44562d6903c45fbcb2d17d9b42cde2c5d27f4"], [1, 3, 1, "", "10:3 9865aff343470dc6f503617f53b6b0518ff23e429de527be62858ede954a50ad"], [1, 3, 1, "", "4:3 d9db9f413583821ddb835f34a03fd02f2a1d38f6eab189bb99008475e2400f3f"], [1, 3, 1, "", "10:1 d11ddb1c212025856ed6074fd11d79b465db9c57c2818f14597a4a2b51ef0028"], [1, 3, 1, "", "7:2 bae500fd492b5390f081b17a3c19a753b385115b83d2678de450e7fc08802073"], [1, 3, 1, "", "3:1 fa8489539e2aa3b8aa9a16e4531a9c0f7e082581000b26430071b5fe8bddd791"], [1, 3, 1, "", "4:12 fdf51bc6996e603cffe22c0b534103b20e91952afdf7739053ad88ccbdc56f61"], [1, 3, 1, "", "12:1 15b90a46b8d8e960e0c5c083b1de7c180ee05c88e6844587b34798d179ad1ee6"], [1, 3, 1, "", "3:2 35ac008e660d6499f218d0c11b1c822a4fda466a0469f3424a0c9aa028f72ea6"], [1, 3, 1, "", "1:1 61437013bccd601dda4663fa8275e8def835508d51f858d4584acb2816792d24"], [1, 3, 1, "", "11:1 10eda6760b60f8b3456de8229a6557a58fb131d2fbbdb50e40f210219814c453"], [1, 3, 1, "", "10:4 41b882e78b95a2fd3d2d109426bb31a61f34606a58d041b2592a662c22c5305b"], [1, 3, 1, "", "4:5 eef115065e6c96a05b7ae0eb410b3b05418ce07352bb23ed9baaf23d7f5d5450"], [1, 3, 1, "", "4:1 8f57b8472dff4cd91f355578e5c3bfa9096c22950b9766df341e266371a1a946"]], "20.1": [[17, 3, 1, "", "1:8 5ab36e5b8b233c50fbb634f2ddb85db4a65676e58884c4e545002ad8ae792716"], [17, 3, 1, "", "2:9 3cdc79fac2c5194ed7084ae18321fb32b4db88a78ed80cc4f4432b4894648505"], [17, 3, 1, "", "1:3 0e475930b62b5e6e2c4eaa5d954c01002c3918fb1243f5ffd3b8b5959e5350f0"], [17, 3, 1, "", "2:1 9be00a29faba4cce56b85af749378910166a176caaf783feb7f21917b113f4fc"], [17, 3, 1, "", "1:2 260a8af1053ab13b37c8171151aec029a2b0049a4db4d2fa4c072391caa7c788"], [17, 3, 1, "", "1:9 7e4c3dc1c34fcadf4bb70df2a2ca55cb16019fe78a19c5f625a3407c7f23de0c"], [17, 3, 1, "", "2:2 0afa98bdb2bc52d07887d1af628eba5846e5110da9bf813ba1906139eba01c98"], [17, 3, 1, "", "1:5 a7305e4a6c0db284c01d3b766c9526e183f139d0d6b3417b05a0a25448deb2e1"], [17, 3, 1, "", "1:4 e16b11f619d14521da5d28556e2228fd055de524ae57da0397dc5fb7f244b522"], [17, 3, 1, "", "1:11 3a94c395e86b915f016782c8e832229ac77ff7d26c4468f604f4d1346d410385"], [17, 3, 1, "", "1:10 ae189445a188e528fc320b0716648ea260e44624143f233a7a3d6594c319fc71"], [17, 3, 1, "", "1:14 6d1e723dc52e63b247ff2a9f36fd2a2448c78a8a6c0785d9bc962cbf164a68ff"], [17, 3, 1, "", "1:7 db57f38586128d0f797f87a3bec37a62e9bc1ffe1a0b5b3634c97bbbd3c3a923"], [17, 3, 1, "", "1:1 142bdc43ec20b9deed884f97e167a2a47e1cd8cab76ba4b6a81e5b3ec56b69ea"], [17, 3, 1, "", "2:6 decb59aaa3220c66f8fa18342f46b9dbbd8d79ae738262d7cc8d3276f0d6f871"], [17, 3, 1, "", "2:7 8cb8cbde345ddbe65efa4ff3d8e5aa2db38eaa6626cdd39220f0a691c264783d"], [17, 3, 1, "", "2:3 43358f7409e5fcf8e712e18e535f05897041a0c7ee20dc9c07eaae0a6a5b463c"], [17, 3, 1, "", "1:13 a397be8475f298d03d342d1d7922a7addc7c4e01708dbc748271e89ff6e4e91a"], [17, 3, 1, "", "2:15 e542a9b407077073772387ef8c3ca43d8afb0cf939f1285a5c47b7d07ad1979d"], [17, 3, 1, "", "1:12 10fac2b91182e4a802d41382e138eeea01e0169f14fd98576dec0541757d3d52"], [17, 3, 1, "", "1:6 161fa80b65b3bb28682283f1c7ce7e3a51f7a9079bdddfee8bdfed439ff215e1"], [17, 3, 1, "", "2:12 ea5e5013c9fbf8d7b889cd0fe21718fb395b30a9d7cd9f10b911a150dc32decd"], [17, 3, 1, "", "2:11 ada08a290b60070c6aae793052fba60f6404e5668f5da364e16a178044452d6a"], [17, 3, 1, "", "2:8 e94a58c9be4a3e503fe157cfb77e90b5e89fe37b134ffb1f6f08c47bd52ea5f9"], [17, 3, 1, "", "2:5 cc21d8251493e001ac2bf6dc3b6d9869a4525b75ff8bdd4a6b96569f649bd5a7"], [17, 3, 1, "", "2:13 e9e82608e910aea5e4b9b881e3bbc4f832130dd93a971ad1d979ae6b3be81ba8"], [17, 3, 1, "", "2:10 44e5e09eadfa0ef32f2aa42f5d86aefc29a08264af8ea9678ec830ac5d0d919c"], [17, 3, 1, "", "2:4 fb90822182dbef1ad0b6848a7d2b4784a72127a44df216ec0a2fc1e4f586298c"], [17, 3, 1, "", "2:14 31f297fdd3706a0010aae6400f9a4d0d7368160c1aebd8e60699f9e9fbdf2639"]], "12": [[9, 3, 1, "", "3:7 a8831e92d9d0bfcb4b315dbcc507de27e5867c90165c66bf816329d11fcff100"], [9, 3, 1, "", "2:6 533a4ad543c2a168ed772a1a1f3a17b837f984e04ed0006caca9e6af274aa8e0"], [9, 3, 1, "", "1:15 835447fa3ddfa7c5fd06897805b57986740381f9ecf8daf09fa6e6d1acb24377"], [9, 3, 1, "", "1:8 b76e6307e1cd2582b525354a84e5bc604d7d52679124f2807619890557dd350d"], [9, 3, 1, "", "2:1 64e83b1f5bdc0de2f6c5804ed902cd3cc1013057056ba936ee008c9f9fc6008f"], [9, 3, 1, "", "1:18 a39d6db0400cfba65a04cbc96b9586a37ef6f64de62ec283e56c4de6319823e9"], [9, 3, 1, "", "1:11 043b0fbba2086316df6f3152903a683a0584cc386e2b3f477ef71e328a293e4f"], [9, 3, 1, "", "3:1 6d430096779c94fd8eb3ddbedf7572aa28ac912896c0110048a311cdd9df5966"], [9, 3, 1, "", "2:7 3576fed5bb35f8d7f0dcbe136a5bc4184204ac3439c7f928a393292885b06fad"], [9, 3, 1, "", "1:13 ca1335fd71570adbb1aed7643857b961a8bb6086fb3b9f64925800c41ef14658"], [9, 3, 1, "", "1:29 3b21edfd98bd965b39de9b1be51cfe7cdc970789869e291378de930efadaf432"], [9, 3, 1, "", "1:32 b3ee8fb45410449e2ca276e3d66abc693b38dadb5e9e8ef1ceb39a221e3723a7"], [9, 3, 1, "", "1:24 b515a8d6e6d86a8e289e2b7aa5bc1159cfbf1cab572c45f0cdeb32a01bbe3f39"], [9, 3, 1, "", "1:21 b7abdeea8907fa3d7ecf4b6fab76bcf830d7e3beb440f7d181e32c35eaeed83f"], [9, 3, 1, "", "4:7 5e02e16f6c0da4bb4819ffb8a5e26e721a99432cf64b2e762ed419f7ad104c14"], [9, 3, 1, "", "1:16 65063a7df97c072c5bd36c4029e9de91a88b81719d83ee267e7c338688871249"], [9, 3, 1, "", "3:3 f7ffa174a2e33bf090afe2aaf7920f3cbd827290f14b80321f47c88133659631"], [9, 3, 1, "", "3:4 6233c170bc63c0936a92c1690c890775856ddd72117eac1e21fe2d129e41e462"], [9, 3, 1, "", "1:17 b181eee5f3b1e0741189576664df8a3753448934eca0622dc2324ff23f54a85a"], [9, 3, 1, "", "3:6 63142cba165b2178690155f575392011f1134c14184e81e36820ddb73cae4f92"], [9, 3, 1, "", "1:37 d94acf91ab922f3d4fab3151db5a559875aa4416a0b81a8c40460f9a8bb91bce"], [9, 3, 1, "", "1:40 cec64b26b4879d9cbe5f17b1fa6120340dc8781525f1a5bbfefca47d239ab328"], [9, 3, 1, "", "1:34 6a6f41cc694f562b1d6e82c8572ce7bf5293074d57b9ac4fa2295fca68a9c3b4"], [9, 3, 1, "", "4:1 d1612a32235e7d6f04d58b8aa1fd91f9a6a088559668f8ef79b51f4827cf4564"], [9, 3, 1, "", "2:4 1e4a1f1e63e1773a0421a5334c9e37808a94b3c0b255ce7c0595282179fb59fe"], [9, 3, 1, "", "3:8 971129d56022b37c66ec71073289a4dedfa09aa435ddc1c7cae97b1a9d1eaf7a"], [9, 3, 1, "", "1:2 a9b102aea4ead34bd9a1dfb0ee5d0b12b91ec2b099a59d0a4320521f772835eb"], [9, 3, 1, "", "4:10 c87ac00ad30f5b3d158b3eefc327e17f8c53e5f2a7004df7dc4efb8f5c1a2210"], [9, 3, 1, "", "2:2 a0586577beb2f969d6d4e05e56e5fd16a92fddb05d3708fbc5f6e39bb85718a5"], [9, 3, 1, "", "1:28 b74efa68baa45a61d2fc231677ac14b4c52bf157f20599fd69f77c0e64bb0c52"], [9, 3, 1, "", "4:3 639ff9a5038d7adda9b3bba839e6ae21c85e388acb2f212f48ea6695f318c6f2"], [9, 3, 1, "", "1:7 7dd9f9ccb26b4083d870e727d44fd7cb36573bf661c6ab932ad22dc96e4b6afb"], [9, 3, 1, "", "1:31 c3b9ce106b0b3bf0edb649f3ad7591f172990a957c1509351873ac6bc8e2ff33"], [9, 3, 1, "", "1:35 34dda9625c7e9e6e463b2eb14643e6643f51c44406e3f2549783a1297f60000e"], [9, 3, 1, "", "1:22 3aa8b3cd82401a8ea45d3df4769bb90080dd5fec794696e299c905bf6ef1f6e9"], [9, 3, 1, "", "3:5 ab86084835389c5804317b18cc5a85c36e5c031018783e0555e6ba607799deea"], [9, 3, 1, "", "1:38 100a96f35cd7e62ed2a2f4d2e022d3849f148e226cee8eb17737c46aed7f6e4d"], [9, 3, 1, "", "1:4 59bebc9aaade7a8e216d5acd0230c4a561df1b66eb30289c51eac737ae0037fa"], [9, 3, 1, "", "4:8 a93335cddb2ff0f239fd61961f0f4b84cf8c28eda2aab38546504a0036037239"], [9, 3, 1, "", "1:20 9d983e5bcc9005a2002c87f988931d048bb50221b71831ddf7af2d550d53e90a"], [9, 3, 1, "", "4:4 af4df9b3ddac7de4a5237a0d32e24c6c2da88af6502df4979d83552fec77309d"], [9, 3, 1, "", "3:2 b62123e2e8e883a4568f6e6c0ef85ad81748d23d32d49acc747eb1cfa2e22455"], [9, 3, 1, "", "4:15 139fbdc2aef75a36c1a73ea55319255892f7fac16e00d0f5da5ab0e832366b16"], [9, 3, 1, "", "3:10 a874a0d306f839d2ffcec82a884d903ffe0ebbadaca947ebaaca90dbad22f79d"], [9, 3, 1, "", "4:2 debb7f2966e0cb74a4f4216168dd052c70fd3d6a8c27fb2f3aa0c7fe47f76a98"], [9, 3, 1, "", "1:42 a1c9458d5c17521a96ffec4d47ed6083ff2d3bff11ccd1eb479f8cf0b126b77e"], [9, 3, 1, "", "4:12 9b6af5832d05ba38ea6da1de3aaaf043a9e42d0142f7294124fcbf2f0d95c818"], [9, 3, 1, "", "4:11 7a2547656618d6f84add7a3e50e946935bb92bd29224f1ee7a67bf7953e55b77"], [9, 3, 1, "", "4:14 07a280c09abe97494fb7a02a246eb3eecf3c280c763026b64c83005f8cace2fa"], [9, 3, 1, "", "1:25 dd989d910fcd0e9ef31de45877c6e06dccab6c17811741cfdcd8e3232a058440"], [9, 3, 1, "", "1:41 23631de104768741b7048e7d01c59e1fffcba54b9dcef1ed7c615bb826fd202d"], [9, 3, 1, "", "1:12 54f245efbc506709a192db34e53895d362594afb8f4ee96986ce6afca49b04d9"], [9, 3, 1, "", "1:3 090ffb52196f4e68695b1c484beb6bd8507d06d2f679ee8177decd8b6b34ca79"], [9, 3, 1, "", "1:33 3d225966adb08cb1aa29f3b24fe23f01e25214e9792f5d98b64e003b5304cda7"], [9, 3, 1, "", "1:14 05c11421678358c4279fc92f0982a56f16c452fb5b5d3c38d3ec77f99e14ca97"], [9, 3, 1, "", "1:30 a279226de7f4deabad4cad0f5ccc01b808665fe0b792c1440cd28ea0dee6a1af"], [9, 3, 1, "", "1:23 81cb87c32bbae85869876f23d65d0f1dfe05101ef4b92401e5bf21fcb3be05c2"], [9, 3, 1, "", "1:1 94863fbf1d8fdb0023847e7bb69f0c04a488fd3b0541bc6a43dfa580ab0d16ae"], [9, 3, 1, "", "3:11 4b7b540224edea54abc7c76442e8f3bcd837894f2694c4da61a31aa02132aff1"], [9, 3, 1, "", "1:9 d022534e05abd6632faed1f9a99e08afd782e729b0e5c46a046e8fec4761e6f9"], [9, 3, 1, "", "1:26 7e2a62316333f93e684c2cbdd31ae2f2247a93882350929bb5794b9012585c4a"], [9, 3, 1, "", "3:9 c8fdfaaca0e4c05cb61bbb042227c630e92a1a4a039e0f4d8a3c100941ff6a07"], [9, 3, 1, "", "4:9 c2a32969042fbf3a990f2fbb15ccc7cec1c1fbbec38d11829756846543bea7b7"], [9, 3, 1, "", "2:3 da1b8b29d9f0346fe7bd1d1c75f892569c746af9b54e1f7900d588a7e22887ac"], [9, 3, 1, "", "1:43 42dcf2a32ea53ad56eb6ea1adf717442e8315af52daa703ab41a67eda8007371"], [9, 3, 1, "", "1:10 4159da8372c73ecd16af81e45a142b09a10de3d7f3881a9c6c554040938dbb10"], [9, 3, 1, "", "4:6 91bce3d2e51c484c884932370ea99b161b0bf86288418a7b19cdaf1ab3ce5812"], [9, 3, 1, "", "1:27 1e8333574e56710e3d837173743f166a40ae1198a9bbe2db35bb65a9387efbd7"], [9, 3, 1, "", "1:6 09faa28093efe5bea8695465a1b6ccf9dd591a83377126e6f7ca32bffc783f0a"], [9, 3, 1, "", "4:5 d89280e4cf06cc3484d31ca3e0ae0d2e71ffb5073be76a1508c6a15273bb4b3d"], [9, 3, 1, "", "1:39 3aeb3e42c07a42c3929a4700140366be5e8244d1bdc00cdc7204c4793592efd7"], [9, 3, 1, "", "1:19 03a4ce65a6524d90af458d25675d8237300b3ed290fccc708255707b27a42460"], [9, 3, 1, "", "1:36 560df02838ca1936d23bf28b88e4da6c469ed343b26bfb566756052758e64639"], [9, 3, 1, "", "2:5 d294be65a9a865ac01935be20857d638bd76b15bd0cadf121963475263530947"], [9, 3, 1, "", "4:13 55339f55c4a3fa7c05dfb3379cd23dd3de7da6d00309d6c5af63eb38de6204bf"], [9, 3, 1, "", "1:5 ebd86684687d8a3b3d796280d1bd02eb718235e578e2e90f8b1ccf6fb6b90a97"]], "6.12": [[5, 3, 1, "", "2:4 9ada46e3cc4d5e3179d0ad40beda5055f1e03a4f8731a1ecf6c42063c4503ee1"], [5, 3, 1, "", "1:18 aa1779e54177d30714ce6dae0a7fc956dc3b6e27c0f0422515c3d30df32a45bc"], [5, 3, 1, "", "2:3 36804ef275767c0c846a921ac7826f0d024dc92fd5693a049479ead63e9490a6"], [5, 3, 1, "", "1:5 61df60b38a66043dc01ecc6700a991327fa2f1ae0e9956c368653828fb4c6685"], [5, 3, 1, "", "1:22 19955cb453cc6cf5333d430e4649c62d88c743b44f789cba8886ce1f291ca495"], [5, 3, 1, "", "1:8 5333d55aedef513667c5227237c6c2a2adbd384fda536234b46d3238ddb494f8"], [5, 3, 1, "", "1:3 8d062365937975e8505f2c4e8e71c063108ae0722d02b6e99040c29ba6a8b853"], [5, 3, 1, "", "1:7 5f9d8fc40d9881ee619a29f2d12ea46e15940dbea1dab46b859e16c018bdf547"], [5, 3, 1, "", "1:13 38706558f72979bd6e46834b20227eb0f154f24ae7c7fa6fccb6727f4278cb32"], [5, 3, 1, "", "1:20 21e3d01dda11c45adff76b28fcfb3083d76d12ffc5536f575f6eaefd9962ae71"], [5, 3, 1, "", "2:1 a8dec600a3fcacac3a907b723f1e6e0ef585b3dbe889172b859c029da1de0581"], [5, 3, 1, "", "1:6 3a26c47d58ffafc12d34d0e615b69f369100b0cf9292a10271dc8a2e63d46bbc"], [5, 3, 1, "", "3:2 777488d40bccbd5d4ec5c05ce041d775c3d195be15b1cd42fb0d35138547bc6a"], [5, 3, 1, "", "2:10 9cdea4f035eb5b139ec0b8eceecfc6fa294487f2903175a7fd559ca0904fa094"], [5, 3, 1, "", "1:12 e14331b5d1cbd3e0f3378e15c0cce322ecaa54746e2b6f14e67474f2bbf79690"], [5, 3, 1, "", "1:1 f8b54840ba0a9bb18d7f74ba88d9fb7a76db616cf3848b13c77fd6bc923701a0"], [5, 3, 1, "", "1:15 152ad98752862cbd3b4a4829db29e14e79ac33a18e63ea368a29290d48097015"], [5, 3, 1, "", "2:8 54e3d591b1294cdbbf43cb074a59a53292fb8519cd37ac21987259502e5da2bf"], [5, 3, 1, "", "3:3 dca568771ca28709d249eaa1b082ab978e3cd7765e42472fb5c2b00252ae3012"], [5, 3, 1, "", "1:16 cd3a096fadfa9a4e5c2bf1ff1d1b22e0e9058b1df938efd918cd58c66c1af587"], [5, 3, 1, "", "1:21 7effb599da8a3c1baea1c8701cccf41ab42404559a391e8c14c3665b26623a7c"], [5, 3, 1, "", "3:4 c72dd70b545db5369eb5c425b305a6a868aad21e7c1997c31e69af6975750d4f"], [5, 3, 1, "", "1:2 d99e0d245e03cdc2b926d8014cd2b42ff87a1095bd6dd4175f847952a046340e"], [5, 3, 1, "", "2:2 b1d01bd6bc611a104ed47aad0a7282f80b9aa5f9bb093b1e51119b4ff86dae42"], [5, 3, 1, "", "2:5 d3f3ff24facae2599e2bfe9babbd32657f2c52c856044b7f244f1fe481811850"], [5, 3, 1, "", "1:19 1359026ad0e5317d916d695218c4b4f58af2d7ec820416374aeced27f0bba34c"], [5, 3, 1, "", "2:7 aaba36795e60e7bef85ccd9bf0d7e230e951f9c1837db93c32c16f9aef11c013"], [5, 3, 1, "", "1:17 7064baa76ad2b7cbe4bf45037a3d3a43376b5c398589deb730e98f37e190aaff"], [5, 3, 1, "", "2:9 53271a5cc42f29777704b151c3231d90079f079f210d3dd483396e84a958bd3e"], [5, 3, 1, "", "1:4 0b5c13f46066bd32a398d531e6264e5a6f809db983a611e3b694af48b4280a92"], [5, 3, 1, "", "1:10 b0ba0abc763fe3595f7902c3a252eac21df8a5f5bf2a14ef0b827112e4d41245"], [5, 3, 1, "", "1:11 74ee6d22351bd3883e14871ea5fc6ceb29be66276f677bc4fc2b0d3141e6b575"], [5, 3, 1, "", "3:1 2f56593b719e88f913b2a91877bab40c8b6058fe2dc42ffa731142a4cc44b6b9"], [5, 3, 1, "", "2:6 a1dc6e9d768d9a58470a5b62a7f98741aebb317dd18c04561c5a42d074b864d6"], [5, 3, 1, "", "1:9 a2d1bdfa5553f148730d494403a917fe4ce046b63677f155ef67f743ee36cbcd"], [5, 3, 1, "", "1:14 aaafe3497cbeb87d20c2bce064dab71452f99fde846c3016a7adfde5bf68d2c6"]], "11": [[11, 3, 1, "", "2:4 428b016d82301c34cac20a058d8e9f87628abcd977fc4d1ff1557bc1bf2d24f8"], [11, 3, 1, "", "2:7 f3fb2ce2caeb76b89e224e1c88594d2dc95ddc66e180f8cb6d50b428f01eedcf"], [11, 3, 1, "", "2:6 aa4594177b713ab6ee2d502e2c0f20256ac5a5e546fab64bcc52db72ee407c5d"], [11, 3, 1, "", "2:9 31bad81c5be19c117a8675a891a00247edb13fe1ab49a36e1f439da9b3123b6f"], [11, 3, 1, "", "1:4 3a7e9191eb41e4bba88408faba2f7f149137b7df440996588e945fad99c82867"], [11, 3, 1, "", "2:13 1a07917d9eeb24596f2800e26f4930f6ecc94fc0027f33f7cce840c026ee28a5"], [11, 3, 1, "", "2:15 bc54fae0d59dee07617ca65931de1869df56a18c8afe575dcc287c8d2d9305ed"], [11, 3, 1, "", "1:7 79f486e433c0cc3589e42f1efbdc6df12866131778c2b136b5be7d27ff1b67ec"], [11, 3, 1, "", "1:6 90514614f2da8202c20d849b7c71d72ae95423a582d7fcb612d03343c5ce1b8a"], [11, 3, 1, "", "2:10 fe5486ca02f9ffadaed847c11ea13af8afba0eb18ea38527ec5b8cc5d45cbf83"], [11, 3, 1, "", "1:15 0bff693cd5c7bd24006d97966faf22d8ad51776dd27b155aa3c4c53705f1e230"], [11, 3, 1, "", "1:16 3a1f51af690831f150b9917ff7ed785fc0ad8572bfdb024cbbe419e2b1536063"], [11, 3, 1, "", "1:12 bd35a79daaebf148b48f637a939718b4e78fe6d95ec05e092dabf33c372e5045"], [11, 3, 1, "", "2:8 0b6f276c677931c78d760ff5def7e67a7e4cbd817e1f21f0343edb674c80e0b4"], [11, 3, 1, "", "1:9 cbf8117eb6e59dd31ff3217f236513679c4236d8d108c4451693dfdeb766d3d2"], [11, 3, 1, "", "1:1 f593f63f6406327889e137ab55ec05d98a6d439176ec14afafae261241a14f1c"], [11, 3, 1, "", "1:3 9763aff40d5e4ca431a133884a391a71d1e3434b2dd8e6ab1c928ba846346526"], [11, 3, 1, "", "2:3 f18161b732608a6732ea2886b4c609dc56b7dde6df16c57cf321542c887aa1d8"], [11, 3, 1, "", "1:17 a69a7eba188277ac25d75030529f9289094778fd2d87d38a1ed7ab9c1871938e"], [11, 3, 1, "", "2:12 2928f339f8abfbe9b10de44c5ab57f730fdc2e7881dc3cce685844a2ada75373"], [11, 3, 1, "", "1:5 46b1fe27e9a10a5a463205624c88ba78b4851fbf47c3d1e31d45026df49b1774"], [11, 3, 1, "", "2:14 dc51b8a6f90c2e32e2ec099057c7d4745f9082e4521e0f0cb64ba03ac87c95ed"], [11, 3, 1, "", "2:5 7e921c53c7799271e80ccbadf2d47a340d1ef1bd9326fe4e2bdf54e5dcf2d127"], [11, 3, 1, "", "1:11 16c8bf3ad79c585e2a19ab5043608ba5cdfbe59b334ba09913fe7cb101ef98a0"], [11, 3, 1, "", "2:11 43150bf6a5f61f75ca365a77174d7d659f67e1c8cd00dcd74b3f72cdc7282045"], [11, 3, 1, "", "1:2 1452e1e4d864f7a4178e6f1be77e9694766805cd6a0556f67f5314caf0a5d8de"], [11, 3, 1, "", "1:8 6b6dac78cb7d28fe378157a5827ca98ef8996833871c9acbbad28e04b8781132"], [11, 3, 1, "", "2:2 5f1a4f88e1dd9fd77d93c773080c7b2e8fa3179f7d8e4de72e39d0ff16a2a387"], [11, 3, 1, "", "1:14 881eb7081d32bca6dd31a402732083c1a10cfbb0703d65d4903481c9df0fa6cc"], [11, 3, 1, "", "2:1 235dcfef5a150c402f42c33dd6eabd7189375ddb2bb8e3cd3cc162fe22a53e9a"], [11, 3, 1, "", "1:10 35936abe2e47a3f84e6b97c5b8773f0e57035b2a2311e2ec92b001e91f057096"], [11, 3, 1, "", "1:13 8e6a64bbe4e6692fa29ab6cab825bed32aa92944541ab8b3cab95f46ec47ae1a"]], "6.5": [[5, 3, 1, "", "9:18 396f1dee7838cc8110a77448ca183590ed2da360fcdd48a9599d4e23f138ce39"], [5, 3, 1, "", "6:15 5b928c6c679fee56921ceea7439472b9fab36f828c42e529bf0fc44e4a8b12f5"], [5, 3, 1, "", "3:8 c3d4fd6b18a382defd7363f2c15d2f5d8517d65814a943df98884ccd5012b7e8"], [5, 3, 1, "", "7:26 ffdd939b68f5c1dc9c76bb481300346a0b76d4c1af150b24ba7a6ca40f85db37"], [5, 3, 1, "", "9:40 9a2b0468c8e7cdc699fcfa7a332ef5975090219a757acb354082c5759aa87e60"], [5, 3, 1, "", "7:31 0575886e7dc22f4c493b7d181fe07b8cadec4b14adea5fce90f5cded24a50f61"], [5, 3, 1, "", "1:10 6810afff37cb3b81e7cd6abfaa7a09a39cfbdebe5848533ec338be7f0901bc2b"], [5, 3, 1, "", "6:34 26b785a04cf74035de814d871a9df90c21744413f8775bf806fd138b7504702f"], [5, 3, 1, "", "5:17 a801683b49252019ce410e48c11333d669a2e57b9117c6704ffc4f631d98c802"], [5, 3, 1, "", "6:38 9ba04ea8d40c1a25a4642aed3c24bc53d56619c51958bd4387bf76dbd994ca14"], [5, 3, 1, "", "6:6 303e9f2d1f84be7d40c47e5d8f5742d86856b0d3b15cc3324195a698e9ee7c0f"], [5, 3, 1, "", "1:11 1cc271961169e83839a3e42a346dc67fba7f62ac7404861842da4b59e53a7e2d"], [5, 3, 1, "", "11:1 70304690f3abce9b70d5806e3646fd86c7c669ed6507cbc1f0f0b1d1983dd3f7"], [5, 3, 1, "", "5:14 40ba6bc4bf5bc64bbf7bdfb7c5bb2be20c50a808893a34a661e9d1453659455f"], [5, 3, 1, "", "4:5 f58980cc43c3a695e066d1fb882e84d2936c9fc0a9199a672a18e2c278af8165"], [5, 3, 1, "", "9:20 d8ec489d2055064a9c810698a96bc12deed753405290de3c55392e43eff72d30"], [5, 3, 1, "", "6:1 84a0bfe9ca4706b367c7fc61ce97d41de1f5b9c8fa6d17d06583fd15bddd1fd3"], [5, 3, 1, "", "8:2 d94febcd9c5097860d17e1a524ae04bbe93e6476a617726293f8e7d45f048f81"], [5, 3, 1, "", "5:27 45d80850a6d4d455e0d832ccecc3f62d2cebab16d21c41babb61a0500e491507"], [5, 3, 1, "", "11:40 0806ce2c7ef3707033cfa5b0c4f583a19e24558b3c3b42048aca9c6e131fef0c"], [5, 3, 1, "", "6:12 b7308da6bd3cbce68c8acf223b36da8dd80bd6349300ea6f5c635c5ab44eb79c"], [5, 3, 1, "", "9:39 cf0883805fa9cbc536249406066344fd3512a61fe348e9ec8f75c8e8cbbc8eed"], [5, 3, 1, "", "6:39 df76cca7b83071a4072c0bcd99560eedf1d831230c5514f371df536f276f60e9"], [5, 3, 1, "", "11:27 1fd0c33fcf586183d361b779dea413543663438cc02e17959b72a5b104af731e"], [5, 3, 1, "", "9:5 1b349b69479fd61dce438f778290ce16b45e72d4c44dd1a9f605af212796f764"], [5, 3, 1, "", "11:32 6ba71a563b4c7010ec0c5df34108f6d4be2d539e8294c8a15ed716d562e407e6"], [5, 3, 1, "", "11:24 065720bf3f5046e1a242276446af69db0ba393444e5344baaeb4cd2e1088e8b0"], [5, 3, 1, "", "7:23 e9d81054725f03fed4f879928978ad1c981033f08f7d0018ee97c430cd1526ed"], [5, 3, 1, "", "9:30 c47cb1a6295e9bfd6516ee9f54f81aafec671f38da5ad88d0c01a2743ab90e9b"], [5, 3, 1, "", "9:31 f8e6dfe7b18b50b332b93228d1d885af358ace7b20fece76abe84f5660f81caf"], [5, 3, 1, "", "1:3 261951477abf29bed5f7eb4f51a58054ed4ae09b35694119c21e87ee4065a98d"], [5, 3, 1, "", "9:14 818a6891c0695d400a9db754d972f1d65cd093ada81f3bd44f277b2b0e5234a6"], [5, 3, 1, "", "1:6 2792319b815169dc152f1374d64261936a99a61506e3b030876c5e0a4cdb807b"], [5, 3, 1, "", "5:22 17701cdba21c6e0baca8f595115ec320e5814b7d0382db5afd011e4815284d9d"], [5, 3, 1, "", "5:8 ff004ef562c5a5b41f9f7107ffdbbeaec5b9a4f9e5dbfae68f63162161d2e595"], [5, 3, 1, "", "5:28 64f326ea0a4ae3117a4678bc9f29eb8da3ffea2053d4d4b342158d5de10d3751"], [5, 3, 1, "", "11:16 8a1c5e8aff333bdd76805412a401b56a8739e72e836998f4afa79603949e1a38"], [5, 3, 1, "", "11:41 c08b0dd87b65f9c8d1e7245b1b012c81c36b63b6cfb73c7bf7358d25c8f631d1"], [5, 3, 1, "", "7:38 9047368a8239de0933ecc3949594279fa3de51e000bd4842cb09bdbb2abea448"], [5, 3, 1, "", "7:17 4246d899aae58ccec5761931073223131d6bb1fdfbead0fe71e27bac795785dd"], [5, 3, 1, "", "9:17 edc3242e28a7c7e5671e8adbfab3bddbe1e8257ccc33dc32169afef9f7c9bf40"], [5, 3, 1, "", "11:36 bfddbb63f9a240dbc5964993135fe01a4dfb1607c75a64ff2ca7950a0555e74d"], [5, 3, 1, "", "2:13 b22770ba76b69e3248df639840e98bc59ca865e515da69cc327b84d83d318b43"], [5, 3, 1, "", "9:26 dc2cd23340592788e2b33f874af0be578ab9dc5ec8fe551abef6c4946b0c2607"], [5, 3, 1, "", "2:8 4b76624fefafbe89f67f9634f8671e9768189ba2be891749d2cae7f88061857f"], [5, 3, 1, "", "11:10 0bacfa691cf9b02adb71480b6b81ae0b5fcb9955635d761f806644b2dd7089a4"], [5, 3, 1, "", "7:10 ef1a2911b0a4a2bd1fc9f0ead5a226ba5699ae02b2dcd42ecabdf631202d784e"], [5, 3, 1, "", "6:35 8d85229b2eb69a1cb33e8b332567f95078b56f70367895493bb53b3da0931f5c"], [5, 3, 1, "", "7:18 71f44b658d5f60358888166477d893099556625a56856efc9601af1b23ee44da"], [5, 3, 1, "", "9:15 61b4ed849409d7a1da6040af55c628c8bed21fba1448c97a30cf7b6e1edef1c3"], [5, 3, 1, "", "1:8 86055e47eba60af7a20a12a96e925c0aa0241aac95b1dbde209af8bb11ccbffc"], [5, 3, 1, "", "3:6 f98b5452ecf7b2c43aecf121ed351e093743b91ca044e66b807228b56f80051e"], [5, 3, 1, "", "7:5 ce0053741951cdd2317168496b52090a75e5599bf46bb0b35ae36c85311c1ae9"], [5, 3, 1, "", "5:15 3b601294fdc29f47f2d5ea41a53e52158852777635e4e18a61e75b50b4de6e21"], [5, 3, 1, "", "2:4 0340895fd04ae584ac9b90244a3650e4389de5b440519fcfbd43e90c2bf72e0f"], [5, 3, 1, "", "2:7 bdc85222a07f89578d68b14e06ee8d7f4e4cd516e7c70ceef67645f2d88b625b"], [5, 3, 1, "", "5:3 46e89deb7d936eb2f027aa97f89cfc72b95b5306f81da17435cd5da27b51a05d"], [5, 3, 1, "", "11:44 63c48dade2d45f58c29209b7fd62427f7408e9be1b34777e67229aa7e083838f"], [5, 3, 1, "", "7:41 b01336b9511f2f0bcdd400438da1f991279c25423b3694339c0c2a56de3297cc"], [5, 3, 1, "", "3:1 23b7bdb3a6bc1804b5be08868bde733e2b7a97ae0804d7cbc06aea2b59fd6e1d"], [5, 3, 1, "", "6:13 81582d3dd591be4afd63d14a8950ba0a7886253bc28a6ebdc004af9fda39ce65"], [5, 3, 1, "", "11:21 f07f914b9816a47a3803a8a0e4617448cf1e87a3d9879638af434fb4bbb87f11"], [5, 3, 1, "", "4:9 f63fca54c6f85459e84fdb4b1ce37d60655697a990bf2eae4b9bea18af1a3f15"], [5, 3, 1, "", "6:16 ad2526669f50751a7b918a4cddeb2300641acf4b2395f4a1a01df29469e7da7f"], [5, 3, 1, "", "7:27 9c5002f8931d3abbba38e2af25c9e26fde9574a782a54098d5c7b21336a27cd7"], [5, 3, 1, "", "9:2 27ca11dd40c94f7e33d729cb9e58a859e505bbeb187054989f68f076c0d0dfe4"], [5, 3, 1, "", "2:3 b7a8de951a21c65d72d8a668a0e505a25388b7e5a5e2e183d7b9f9e04269c213"], [5, 3, 1, "", "11:42 cc05bf582d5c4319a4456bc8b6c64f1e1efb92b83ce5a86e80486c70cff4b6c5"], [5, 3, 1, "", "2:15 e040c546fefcc0449ac185ee78ce0253f8a422a4152178bf19425f39082890c7"], [5, 3, 1, "", "11:22 c4387fe4f484f537a0bec808fdd45374c5ad2a94dd7cd9891b3acd6955055456"], [5, 3, 1, "", "4:7 afd2c64f1c23556dffbaa7b63b76751e5b52d1c9ea207d1c640cdec6d97bbd57"], [5, 3, 1, "", "7:3 8026571732f9f6267928a67e769b7dd425f07122736917f16cee06caacc37f28"], [5, 3, 1, "", "11:12 c927d4db9296e304c75ea935ba940d05a54420ee651d15b81fcad4aaaa1bcc23"], [5, 3, 1, "", "2:14 1082cd3a0c4e2cab05c42e2cf9fcd73902c976d592285073adbf4663ec94947a"], [5, 3, 1, "", "5:20 eca372870d1bb0bc4b820ac177e1b3b7998233a674e7b8397e72d4be23ab0170"], [5, 3, 1, "", "3:5 a7e8462f6f54586f7016c7be8dece9195cc5ffddcb493c00d9c08dcb1947b255"], [5, 3, 1, "", "11:28 1bf2eb3fddc1bda35cce5c0668c463f880b7275bd885b03616e2d50acdc71975"], [5, 3, 1, "", "9:3 47b8697be7c9a888bdf4d722617a7445c91071918926fd1d7b0dc5ec7759dc1b"], [5, 3, 1, "", "5:18 bc454d1b317c9bc88ad24d821d1e58f9bb10101e1f3e45c7a547cbf1897358a5"], [5, 3, 1, "", "3:3 4376b53a0608338ed35c699ced660ca17be38885f5a09a0ced75087fa8c069a9"], [5, 3, 1, "", "5:48 1bab9420ecb10646e486e92a21e7c194eff5c4c1351ae11ba919d46aa9e8a427"], [5, 3, 1, "", "2:2 9a5b1f7e7d7d38a721fe16a98b61e35a54dcc7c07d9828ea2e2248bef356dd07"], [5, 3, 1, "", "1:7 bbb012f406bbc016697a416877c67f8a8e7762859e71fe80b3772bbe6941a5ec"], [5, 3, 1, "", "11:3 6ba92b86bf853f095dc7e5a3710b658e32b00a7dc05a5a95d43121059f50f10c"], [5, 3, 1, "", "9:8 9a0b5c658e0818b0f365f2045de56630f28336ed84a1b9a7032e4eeb196094f1"], [5, 3, 1, "", "5:32 70fac8b1be1736648aaaa9fee2cab2c655084d862482bc22f6e296c2ab467a7d"], [5, 3, 1, "", "3:7 9694b3fa6f2fe93dc54f3037b9f53322423ad65d56ae4f6fc00870750dcb0919"], [5, 3, 1, "", "7:2 2a968cd3870a6603c37177067762adc544e4e07ad6b804a2c2aab38ae902eccf"], [5, 3, 1, "", "5:1 b0a840a217c602a32cf2e1de752852f1c490c0319cf7abad57d81b59e98690c6"], [5, 3, 1, "", "11:19 39b15a4da847904cd5adcbfa2541f35399dd7eae844e25492a6b28134997c44b"], [5, 3, 1, "", "4:19 c8effecc440dcf91f96f42e0f04584a5610c1561c24791e2c23b26be12ab80d9"], [5, 3, 1, "", "5:36 f678eed2b8bac9c6c67c93c05c9b053cceef52d72d84258ec037eba8a69da58d"], [5, 3, 1, "", "5:50 5ab58ebe71cc5ede6b8c87248178f2659e27187f857007d8c683d25510b4c2b6"], [5, 3, 1, "", "9:19 70cde08edc51a89343f1641793a1fc500d46e25ce677ed83e47cb308f673c9fc"], [5, 3, 1, "", "5:38 76949da2fa0e9cc8e7cb9df9af458fb19d53b951678809db92d05e00586ab885"], [5, 3, 1, "", "5:46 cafca8e7b36d756680e784bde8ddc838c4cd8196bd1331ba9e9d82dcaf5944d9"], [5, 3, 1, "", "10:2 f65275a0a091337596ea0d2d0452cd99919c500d44f9024dcc3dc0accc16f35c"], [5, 3, 1, "", "5:29 4eb93bef00f0c77a5e6ded4b73a4411de3d1597f25e03442d385e8953d179f60"], [5, 3, 1, "", "10:5 542e43dc718b5bdd7f38a403c460e2630f2aa29c7efb6070ec1048ca684c11ae"], [5, 3, 1, "", "7:42 b47d020a4bf52e4092fc90d68fef4ef1a455a67b8988333b6f7ef74fcd608744"], [5, 3, 1, "", "6:14 8493aa842fe4a83a4314ce4c5cfdcbc4004dbede23f86bc0726b3cbdce0eea6a"], [5, 3, 1, "", "5:26 fc135beb54169cc69ddc3205939375bc09adf919e1015819ef3c4d508636e056"], [5, 3, 1, "", "1:5 1b2c053da332d1395a04b7eee7001d9e9cf287d2680ad54e81f6041f88acb954"], [5, 3, 1, "", "6:3 05fc18fab6da50fb7b2ec1ed8dbdef6ab1d54584dd67eb283424ad2fdd5b1d8d"], [5, 3, 1, "", "4:18 edfa0f8419b3a73e3ff24890c87fd1fd92c6dc6d8818c3fcce02ab05b6c8c1ab"], [5, 3, 1, "", "9:36 6b0621264b3a532012193e8e8fa631c7176d6cfddcc1e69d99553f045cf235c5"], [5, 3, 1, "", "11:39 96b2470f5ad765c1e4f0b346e361780734a20847e8d7264e5c2076c95bc9ba46"], [5, 3, 1, "", "6:28 31252eaded45baa2ec5ff1465a0523416c26773b13a971aeca24c9f54a1ff1fa"], [5, 3, 1, "", "7:6 be7491a2b9729f338f90e0d71cdf9327852297b9681bdeb1fcdcbd07f3a42e9e"], [5, 3, 1, "", "2:5 46cd3d16ac76ee2960c5568740cf587ad2c6ceed1218114e80c3a9bb47df7a63"], [5, 3, 1, "", "4:13 a9d1fe3dff0cedd21947b255165dadfcf588c30c40a43c6e6ba0c3ec8e196f23"], [5, 3, 1, "", "6:5 053daf5a48155d9e3cc897400be3ef219ceba7963682f22e7aab2a9aa6831550"], [5, 3, 1, "", "7:39 2d9093eb49a4246b73dd600878aa12b7b93aa41605f6119cd2763faaa323dc9a"], [5, 3, 1, "", "5:6 c6aae217015f2015f44b8e8dd7508277c0d50120b59d841ff0bde78814a6b441"], [5, 3, 1, "", "11:11 3c8f98ad5df4fbb4fc9495db0937e079c92705d874f42bb18c7ba5ec55b24f25"], [5, 3, 1, "", "9:10 ed29ba4f4f0bf4e798b92e1808da08a9f7dde2636d2717f9bb76f606b0612f27"], [5, 3, 1, "", "7:36 26071802062bc2b37291010d1f9f8dee33a117f0cec69c457650ba59560c6743"], [5, 3, 1, "", "11:26 e31b4581f5c14180a6a1a8eddc70ceb2966929c532efcd1bb047761060d24027"], [5, 3, 1, "", "5:37 f146d32e9238902885a1de2e40322ffbe37f7d482221f3f29f09cd74aa10c986"], [5, 3, 1, "", "6:37 a8f62a13fd083f51c1a97aacc86e5c2ae2535fa2d41f0fe1aa07fdad41fc9654"], [5, 3, 1, "", "5:7 c84f922867411ee27c2da0f8d55a04f3f4d18514100b2ddc009d42f43f232702"], [5, 3, 1, "", "6:22 94ec1672b5572a206805a5f17f131b2a11dd24534874144bc815364ac11611a3"], [5, 3, 1, "", "6:2 2818a1e523dc8c69e39862ea386fbbab5b2558456ad985671a97f66bd39587ca"], [5, 3, 1, "", "2:1 2ca9af25277c175fa9ab6b0b74a4ba46f5038fd562befbd363a40be6ba27d2dc"], [5, 3, 1, "", "6:21 2a93c4b43a488a8715a6346277d3a51967273030d0229e7fec4dbbe3e22cc0b0"], [5, 3, 1, "", "11:20 bb68222b337dae8c4e07199340ae967e2beab8cdb28c86b0c31bf23155c048cb"], [5, 3, 1, "", "11:7 ea908393ac3ed6b06a8100763ed23f0bce1b23383dbb6018f7b2a9f28fe2c027"], [5, 3, 1, "", "11:25 6c3272702958207aa4819daeb158571ee7f953f56238a82b24462ac32f7161ee"], [5, 3, 1, "", "5:19 11788f05059c59c58cc708654df290bdcff239b6a6b7a3b84598208a77c99b92"], [5, 3, 1, "", "6:11 da193f8b1e127e029668399614ca332e6b587d0a8f272fb73bbf8edfc6cb0d1e"], [5, 3, 1, "", "5:43 ddc0c2dfbe1023732c1d00d8ee8a8a13a6ef3fb5f2ec27bf3af56f0f356621d5"], [5, 3, 1, "", "2:12 a1370288ab9df6143029b28cc57c082c16176e3bc260e846bb35545f9fe1d8d5"], [5, 3, 1, "", "5:39 84f604c240681edd7b71b1d29ef8b66a81b3f921feeefd7649950dad7829b18f"], [5, 3, 1, "", "9:32 362784273f3bf8ec2f5c6418248dc73d886a72024b899a6073cb6a8ad7940fea"], [5, 3, 1, "", "2:6 82ab49fac0f518382455ae1ff105c18fc25eac3f8ac00ffc53deff57a0b75dcc"], [5, 3, 1, "", "6:32 e23d86a834fd2dc7ebe1e6d37fc6932e7ecb671e5814d5513513d720e300795e"], [5, 3, 1, "", "4:4 c83826e3c7c0a48c572c71ec116e3678b134a80964cb0ded4dee83772bf37e4a"], [5, 3, 1, "", "5:41 4150ec47e0d0420937471ef411fcb589a50cf6da2b820a72bd39f3be021962f2"], [5, 3, 1, "", "4:15 aa3cfae510c0f630768b3fdad3056728d6d46645a5e5bc33ed5aae965d9e8029"], [5, 3, 1, "", "8:1 d083fa2a4b23d69ebf79cb39b3b435aecaa477f6e2bcddfaa6e8f2cad7ef9fcf"], [5, 3, 1, "", "7:43 b1d67e27cd64bff665fa4abe27d7bb3ffa248e472df78975e3e9b414d3abc215"], [5, 3, 1, "", "6:40 e5cdfefed3d182d5a193d06aa0c5b4d2b467c3186aa0cfba1bb680a1f789e7a7"], [5, 3, 1, "", "2:10 a7e8224d319471b493644e345b6551b79a0646cd520f3e10b8edf2bfec6a1f84"], [5, 3, 1, "", "9:37 6df51e5d36c7390d867779913759bab661984ee0871d432711aa97a2cb0a739e"], [5, 3, 1, "", "11:37 ece515541769464e97d750a9e5e9ce02a8b6519f896abff730bbd292e44e473f"], [5, 3, 1, "", "4:11 2c69bf1f447be7c6df6d51e2133843f0d576ab8a81ceb6e4f855ee26ff691a2a"], [5, 3, 1, "", "9:28 639df060c4399f91e08022f57836782fad21b3ee5016cbd58d43e8ac47373417"], [5, 3, 1, "", "4:22 7de9ba1051942b5d4a885fe293560881297b7f87eb22ce3a2900d5c4dddb0326"], [5, 3, 1, "", "9:33 dab8f627a03b7d22da6d0a9ef0d715729e41f721ea373e2972b24eb59c90433f"], [5, 3, 1, "", "7:11 0c6bb79a3001d63bf961a7f98a2b350801a2eee43c89c0af2af810b535fee371"], [5, 3, 1, "", "9:21 79ebe8f0e779f6f47a24d5556c49d46d5984dfda2c4e434b1853207bae1661da"], [5, 3, 1, "", "11:30 b102bf14ec0db1c14b2f2ab3aca382a3187d2c4042728a7fc47bfee75e767210"], [5, 3, 1, "", "5:11 2b94a36c8d16c7f222b29a99dbbaca845c851d263d6323bb9ae6717955d14294"], [5, 3, 1, "", "7:25 790b5f2286f9006f773c5cee8a79277c939604dbc045305f68dba735d4a8fab3"], [5, 3, 1, "", "6:31 4263fb211a3cf3f26ebc3048404cb784bfcdb6e89e7b8c3509d9bade52286fa2"], [5, 3, 1, "", "7:24 dcc537a9126843947883cb7463f2aa089ffdb70c3ce806d15282d128254e00ce"], [5, 3, 1, "", "9:13 34d4e2c24f03d923c5c554f7d83dc05b68fafde68dfcdec0b202bdd7f9e1b8c6"], [5, 3, 1, "", "9:16 3fd45f40c5530a4e28c7590e27b7f1d1b5b076ba4a56b93a62badb572fd34f37"], [5, 3, 1, "", "6:30 7c1f43885f0acb0412658c413bc3e27945ab92404fde60121712fc4b1b414a64"], [5, 3, 1, "", "6:36 a9e77d70b03d9ad5d13456e3b4ea3a9a40479bd0354018ceb716a20e5f0f6c29"], [5, 3, 1, "", "11:35 98a271aaa7faf59283854dfdf7bbcd0ba056cd59f558249a1382495825b750cb"], [5, 3, 1, "", "7:34 fc5c6a6f5d2c2fbd69a96faa707b88b69a02ec46f571e54abbba5b94262db700"], [5, 3, 1, "", "5:12 3bc776fd70017a15281d825de3a03c484a509ed361cfb8e529f3a23268837e0b"], [5, 3, 1, "", "5:47 a133ac246b8483e2376fb2e7ff45933a4d073cc42b2f5b2693c18610ab982cb6"], [5, 3, 1, "", "6:10 c0cf0a0884aaca56ec02fa11b697bba3c0be007b60befe09c8aebf753f176f71"], [5, 3, 1, "", "9:9 cd1cc473310dc5109e4b04c361ebc5387d25791159b28eac762db631a59080dd"], [5, 3, 1, "", "2:11 5bd3c5f7bd491a7f42f8c2da78d2064ae8679d448dc019897996d49374b0e175"], [5, 3, 1, "", "5:24 73f75644381d149ce6f4e854dd91d95133658735ed4344352f260f806357124a"], [5, 3, 1, "", "8:8 5e0c86a6b40357d25e18747cafd06d04626afc595a9d1d43986abadb34f378cc"], [5, 3, 1, "", "5:45 797469b1ee10b81ac9f4dd20b9f7943570bca6e9aed0f4c09efb4082502be292"], [5, 3, 1, "", "8:3 1c05b5e8f145c2821e9391efa0203c3fbde926b15242438460e0cdf1976780b1"], [5, 3, 1, "", "9:25 f92fbbbb0d0f93d8a96769e4bdafb81208bbea4de660ed93f5a0c2c25bc315f4"], [5, 3, 1, "", "6:4 170079796be6e0d966919640fafbf7d613f2a3d98177e61149106bfbff315c2b"], [5, 3, 1, "", "7:45 e8c6085c7317b0b22333a5e89d1757cb4024590c46e44ba9d2e121f9f7c30b94"], [5, 3, 1, "", "5:42 3dde9ea78a683c92e2324df8e9c8250ce8017e6273b1110e6b3c1dd01cb638eb"], [5, 3, 1, "", "7:40 15967dc98aa0ed7f84bf158358e5aadd9b853a956daa8e9c622ee666a262302a"], [5, 3, 1, "", "5:10 f9820d8865637e75d0948c7fc41784afa25e79d0df7479395cdc2e53e968549d"], [5, 3, 1, "", "5:44 8ad1f5e38027cf5c40e9d6661d275b0c692946ecbe2be3ff598372545ab1ce72"], [5, 3, 1, "", "7:21 61a081ab60d564acf7dac7b48da5bf545566ae3c1c82613770c74aa2155c8be7"], [5, 3, 1, "", "6:23 53b4736dd567176d0f358e1d043c68e4e7b7ba30fdd04e2c5d27f0cbbf2bbd7a"], [5, 3, 1, "", "5:35 c2e708f49bc1463e1f2c04def2f0b217a259a1886909d4af2b6e4abd63af421d"], [5, 3, 1, "", "6:17 dc895b6a59e6aa619431f0f93958d1527008c560c57242167f44385670ac0774"], [5, 3, 1, "", "4:23 5b41d324bf22e4bf196369e2e07e6371340536763b0d1ba7370c3b9ce1e1a3a4"], [5, 3, 1, "", "5:2 7d12112b7a06954bb102320e6b09a084143173d1e444b53abae9c5fccccf151a"], [5, 3, 1, "", "11:29 b2b36c7f8e91b90fb29e61587d53edc27026c2f4612ae0ba4f363a6d5be91292"], [5, 3, 1, "", "9:27 2675b576835d6946c6d9375780b8b55f46ece14c3de9b64c8968d19af5d44e60"], [5, 3, 1, "", "9:6 c4a4ce7844b954c2f4754e622f645440f63e4c074ab334ac61c61ee16234e647"], [5, 3, 1, "", "11:4 4ae0b14054f07ae1b39e78df52b07c317b58a3f9f809a8718873aa55f027b3cc"], [5, 3, 1, "", "5:34 d0809b66e9fdbbcf0f3f653dea3e490c17584873374daea4e4ca8cf7fb66ab6f"], [5, 3, 1, "", "9:1 08dfcbf5c91d7b12196ce6c1a1bc3f599df54bfa79c5adf69545a87cf36d4b92"], [5, 3, 1, "", "1:9 7fea9e09ac35ba97ec0aa1b1d6b6f78b5e456d7acca65d756b2ee58a2e64fdc9"], [5, 3, 1, "", "6:24 1651f680538ff44533e1024e0f14e3ad9c52d51916584a4901382c966fe46187"], [5, 3, 1, "", "6:25 15ed30a8258ed67352118ef07799071f10a8c36492ecfb2f87f7309bbece175c"], [5, 3, 1, "", "11:17 7e62f17ce3701a1aff0387ca92ffd578fcb6945d06d5684d51461077a3dfdb44"], [5, 3, 1, "", "7:30 d7ad85bcfcd0d633bf1608e3af7008ca9e2f70b1bb1f98771a1ec739acb3b24f"], [5, 3, 1, "", "9:38 50d14939f0af728c40900fbf0d6eb82adfaf73d5546b91f7fd0ab5ed57192d3c"], [5, 3, 1, "", "3:2 c321eada04f83e7afc3cece805698fd21bfa268dd8753424a0c7a6659cf9987d"], [5, 3, 1, "", "6:29 537cc3ef62eb6da99fd065eb8f9f9876eb47dfe3405d33c7b4e02a9dedc27559"], [5, 3, 1, "", "11:33 6a1e80e1e25a1830cf8a13e06a7ee8f0932497734f65d5dac7e8bcd2eb12b75e"], [5, 3, 1, "", "5:25 719727efa5d31656dd271a750d883da510fd0dc91a365c055995293e5f4b1d8f"], [5, 3, 1, "", "11:6 d2555608ba3de34e55980372a66a2a9d4d54ddee1e2a156da6a307bd61404d6d"], [5, 3, 1, "", "11:31 05076af1f4d61f0b6baee0ecee29a81adafb0a5a38fbcbdb68d18da0a27b22c7"], [5, 3, 1, "", "10:1 4304d0485281b3209ed00f106195484fe480a77a8493087e16b0c436448b383d"], [5, 3, 1, "", "1:1 802926b1cac49b521ff9adcfc0541ffec43dd504d15b57d8293b9d13b99543e9"], [5, 3, 1, "", "11:18 0a96b074b6c309f365d46e4d340f40e8137d15a81a2628d015d5a38b87545496"], [5, 3, 1, "", "9:34 4b36e49520e535d2feb4673f98d756faf98a4db9b6c8491190a61d55c0e4e7f7"], [5, 3, 1, "", "4:3 40bf9e05f58749baa5c051ffb2c5e5f8305e58040cd7962de9ad7e669a433737"], [5, 3, 1, "", "6:19 8086917758b14703edbbbf5a445239563fb866350442477479028fab06da0367"], [5, 3, 1, "", "6:7 952cc40d099771b8eed28464bba01b8eb07d87d3aefd4d8e2615dcb9e0cffe8e"], [5, 3, 1, "", "7:28 1f09a7d5f20dfa920da6816904f1d9a952d7223cadcbd1a2e02bc92e2eb8b6e5"], [5, 3, 1, "", "6:9 9dc068ab4f8ff1b86dee141016ae1c63df167f7b1a49de56303ace2d27e01480"], [5, 3, 1, "", "9:4 a318a86acd9c3f9af9c3f696b3b9c2c76a76f36d115e7f89219fb26ae40f8fbd"], [5, 3, 1, "", "11:8 f32d982e951a64a5ae23f39b6f896be6b823bf75a1402bb7f482c69b8c5f72bf"], [5, 3, 1, "", "8:12 081904a7612047457f00462adab410432028cf313a537c7d3eb899885660028b"], [5, 3, 1, "", "11:43 4274ecd1896eafd9510d63f0a215a49551f8821292f73f5d7af417d77511b0c5"], [5, 3, 1, "", "6:26 c598c63b8ad76764d80ce8990c8e92a0a204169649bbe024ea2823b4bbe90baf"], [5, 3, 1, "", "9:7 1b9291b98300943b6a4f9a35b2f0293eb26ad4edecb86117155dd7f868c02ecf"], [5, 3, 1, "", "11:23 5d8e7013a9e2890192910cd44abe74ed6f54b4b3d4e3eebf85b772cd83ecca64"], [5, 3, 1, "", "4:1 af3d9baa2e989c7389736af89273f065db34e0a05d834471606dd19b2928db1d"], [5, 3, 1, "", "11:5 136277e741015a5230de8f60eb4096bf0b58ad7c638b2115efdabc0d44400c59"], [5, 3, 1, "", "4:2 4f80e3b87fba67c8d18e93636623e678e1374f94eca9dc69a5534fae37565c34"], [5, 3, 1, "", "7:9 75c0bf567470cc284caa31e9a7cedafdab95750ec0c3d4493082eb5ae7390ec4"], [5, 3, 1, "", "5:31 064cfcf4cae6ce4f05d3725a102c1dcef135894bd8cb96bdb7429edfb31ecb0a"], [5, 3, 1, "", "5:33 6fd272034cea2fe81833c14eaafe524e4a0767be0c73c47320bcf29b97784202"], [5, 3, 1, "", "10:4 0591676f83b5050127846b1d974697123e818f7c6e564f025c468cf178fee8de"], [5, 3, 1, "", "9:11 77cbef9219a40b23a7018ebc71f71991f269b206f6ac09ca02d6374e08d34143"], [5, 3, 1, "", "7:20 8aa4fbe8cdd3993316bc9797d2e9c0eae2606dcf347454c5e8420d364eb6db51"], [5, 3, 1, "", "1:2 3d9a28b791947b2bac75ce56a2454e2a1fc73b1d6b40fd5902cc3db89b1833cc"], [5, 3, 1, "", "4:10 b3e235b910132fd26dffacdb2bad28a792618698a524bd1dd1a6be6065711fa2"], [5, 3, 1, "", "7:37 3f1dc50e13776facbc3ca274a5ef46f7a078bc0e1d73003d0eb034fbe9ae7e33"], [5, 3, 1, "", "11:13 53d2315ff692eedbb4a02576f3552f5fc7e273249f214bb24cfcd24028715bd6"], [5, 3, 1, "", "7:4 f9b985b336990cc31ae368d531d7c4ea08e1aa780e9d702aeadd46e677aff9d9"], [5, 3, 1, "", "5:5 5138acfb60759a1f7d1612cce1be84b6ac9130f47b5c8d8d88bc1f7fa0699d8c"], [5, 3, 1, "", "6:8 ba39428a77c8298ec6d00dde55b54582b28fe2b591511d210c070eeead4f4703"], [5, 3, 1, "", "7:44 74d5290848e5b132492e37c5a878b393585ab57f6861801568b33dd97e99350e"], [5, 3, 1, "", "11:9 a8f5728efeb8d521b310ca0018217930b4db9dc326d731f4b7f928ceb5551466"], [5, 3, 1, "", "9:29 96a976177a350ed96c70bbf5e1fc3c212be4f43da60a95cb1bddf43edd073027"], [5, 3, 1, "", "8:10 e16cc48f8ee8a84751ce4195d3680e9168f423ceac46d85cb7d9ade46e838061"], [5, 3, 1, "", "4:14 6904a946fe2693b6f425ca86a92fede53c0fe6cecc8598127afffce5d7e62417"], [5, 3, 1, "", "9:23 cfbbe48907bff6889c84b93a92f9aca7b25b8f23ef9d15329209cc8192873a93"], [5, 3, 1, "", "9:12 d8874d42acca88b1af3b118dff17f93995f48354579b562d80c5f2f70e7ca231"], [5, 3, 1, "", "6:18 426a9a0ea02cbdf9f6ab017e8d01561de18f041ef2783074463ed902da9419a1"], [5, 3, 1, "", "8:11 8aa3b1677686a272d98a21454e1e94aea43ab1745f3b214fe1d274e1b1d44913"], [5, 3, 1, "", "5:40 5e2ecaea3a29c5b97b9c76aec758b093b55aca3e89a8ecefee9b691d736ee6cc"], [5, 3, 1, "", "5:9 9a473e780a8fde1608816f5ffbb7b41a753411ca82e0752b8963a1997ab35638"], [5, 3, 1, "", "8:9 2c38f5ee0dee81eba992210bde3a9c3e5e17845a49afa11bf5ecb756e07b012d"], [5, 3, 1, "", "4:16 ff435742ce6e2e0ff8240946adf104bd9fcb520098854aa859d04c41ea02d3c0"], [5, 3, 1, "", "8:4 fdd6553d09d1a0c51cd9641afb80879d25d7066040d8a352725884773f92d2a9"], [5, 3, 1, "", "5:16 d5668e3304bc1aac1a9ad7af00aa04e0bab58efad11cd1aee9b877a2ef767129"], [5, 3, 1, "", "5:23 ae993e16ae5bc5ab9b01feb24dcc0507bcdfa1575b222fb56cc069f149fb55a2"], [5, 3, 1, "", "6:33 94cf2ccd91455de09c6784e79c76de895f6d11481f8ba1d2c6343e06bfc3dc6b"], [5, 3, 1, "", "4:6 b610ac74d0d701146031a0ac67bb95dd11a032f059a4c2c7e7b2fd03bc2dd5d1"], [5, 3, 1, "", "7:29 b26f1ae4bb9ca5706067a0dc7fcc96ff7d0a837066c3103acdef5036c0c54662"], [5, 3, 1, "", "7:35 5db519b4a3862ea81b67712e174ac1e631a8afb3913654c28c367cc6e4a717bc"], [5, 3, 1, "", "8:7 b099b2fe899cf3d319f0a36dd5af2427e1c29cc5f8afbe3e514a07bb160b21a6"], [5, 3, 1, "", "10:3 583ba1d1d9e8f8d1df72de286c88866da9343d7c34bf5f3ed16b880b4b1e054b"], [5, 3, 1, "", "7:32 227845ddcd0a132d50d7dd61e7a564d46335b6a22d2ce74a288f7d9200ae7c54"], [5, 3, 1, "", "4:20 8220fff5ef4bb72a0a7dc8f99cfe17f5e5aad6d75e146b2f33ed793b920e580c"], [5, 3, 1, "", "4:21 a643ba42ae84b70ad7aa7f9e7f43587505202b559c0101e5a40a6823d243e69f"], [5, 3, 1, "", "9:24 f4db800db3afa6225779fdc78b37b92b56513096372223f38dfedf62c62ebbdf"], [5, 3, 1, "", "9:22 d0224097db7f57afffa5809d8b5506189c8780f6d8698c1db3fb3c311b1c9ef8"], [5, 3, 1, "", "5:21 af587b33a56e6a0002edb893987596f76450639deab12d69c665eba6f4bb5f89"], [5, 3, 1, "", "9:41 812a1f24961f1a44cbc165897dede0820f61dbeb12e67dd76d903d192bba21b7"], [5, 3, 1, "", "9:35 2ac5953b5fbd06573be6f3e9d6a86261d774fe99356391aac1757ac4313d4ecc"], [5, 3, 1, "", "5:4 088bf6586c416b8d73b9bfa95d095905a510685c6833c5e231abb1553f25ba1f"], [5, 3, 1, "", "6:27 fae86360a1b7d2d77fbbc4365c5e99fbf0ed4a4fcac2256690e7c3d50bbff467"], [5, 3, 1, "", "5:49 df45cf4e04324577c2dcfa776a8bf7431fe98c041a2defa2c83564f63f38542c"], [5, 3, 1, "", "11:2 d6a2d58614610b6925bb6d9240e3cefe07479565323dabe03c90461b8c5e6ef9"], [5, 3, 1, "", "7:19 8974278dc5b60a16754de7eb076364e82284313e621b4c49992c20c6a9c63ae1"], [5, 3, 1, "", "7:7 d6831a752e2853991b540a6f71184363bd1495dcc4b3d792cc390c0e46566584"], [5, 3, 1, "", "11:38 c4a1816e02fe88f0e2f326223f92521478faeba2af43bd13fe94c439624e163f"], [5, 3, 1, "", "7:33 0ea88b20932e8a1ac321f37c0f71648e487ba64d4a8a174357f45c0a361a030b"], [5, 3, 1, "", "7:12 710411bab59ddc74d93bd9ff61bb2d8646a61f62f3bde811cf3d41bd58366173"], [5, 3, 1, "", "7:8 a8d5305ac628e58fe4ccbd9c03c6a69b6c8fe5f5fb5849aca647efffba438ed3"], [5, 3, 1, "", "8:6 5fedecca69f448e516ad8fdd4b22e1d9538dabd703fdf0c4881e56e12b0ffd02"], [5, 3, 1, "", "11:34 442e7816616309d222742e16b9e6f02a781a2e4782c149409e796c8f69b72b7d"], [5, 3, 1, "", "6:41 bd4c2c6af9a1f85023152aba188338a4a680bbc0411316984bea4e286394de58"], [5, 3, 1, "", "11:14 f409b5315ca308b8335b0a02dbbb76577c93d33536ca7a97c9df8a48215a4b15"], [5, 3, 1, "", "7:15 5c1c6dbb92fa6d031c159a452bc02516ab56200edd7b1829912ab9e1dedf582c"], [5, 3, 1, "", "2:9 1f706d90689273d6cd3ac4319f378aef1bf50f62e07e0596cca8a78f8ef5e23f"], [5, 3, 1, "", "1:4 d573fb1d9d84cbc07730e23f6e479b1d62a8155fc4b7e96206a849226058f1b4"], [5, 3, 1, "", "7:13 13bbc37a51d96873f70deac55cdbabc1b905394b23a3972b2c0551da7e10a040"], [5, 3, 1, "", "7:22 0881ded68a87d9c91315127f344b19aa1c1ba7a415be695e64255be1cd5f14dd"], [5, 3, 1, "", "11:15 f8e24d8041063b9aeff11b22e4199433af8a1eb8a19d83a6bbaa6cb259939ef4"], [5, 3, 1, "", "8:14 53ea72e1adfc38c6b9633432eff3b00824a954e6db484fb79fe14639eacc879d"], [5, 3, 1, "", "4:12 caaeeebd8c8b53c85a4aad7b3c42754cdc3a758b53183433bb57e22937db33f5"], [5, 3, 1, "", "8:13 a7e87563c4a367cf52d29f70b5299ee79561d872ffbcb53680929c57d329ac75"], [5, 3, 1, "", "5:13 c8ccb208ad9374a8fa9ac34680b8e8ce1fc4e958169b4470ef74cc9cd4116772"], [5, 3, 1, "", "7:14 b2fe01f1e7bd73ec40381b1feffe64d54c4a73adf9833a8973e8545b4a22735a"], [5, 3, 1, "", "6:20 bd305b6ab372b8e874fac3c5a5d7d59ba805cda093af356e1d23ed3bfd23eca5"], [5, 3, 1, "", "7:16 aa2489e740ac7fa0927e1ebf58ee7859f6c7fcb1c27a1fed065269e34d58945b"], [5, 3, 1, "", "4:8 e14bc33ac51819c14cf0968eead2fd2eb5cb0c7027e5b0b9bcf7ce69add7edbb"], [5, 3, 1, "", "7:1 9d05d4defa794088d8cb55f8f3dc1300dc4a1e8881df85cc8431e6b4bc9c6491"], [5, 3, 1, "", "3:4 20839942bb00d91e6bb509c17f8e66b69b91f16691c9ab64b82c867f3ae550ff"], [5, 3, 1, "", "8:5 ddd627fc1c34fe282518e5540e51987966234a13145ad8bae553177ac3d8dfaa"], [5, 3, 1, "", "4:17 4bcd968eda46af59fcb1ea1f55864281f8b0cde92d38561595d95b4e9ac3dd07"], [5, 3, 1, "", "5:30 c1f131262cc203adffef07cdfd70f939f8e44411b208a3a26e4a8dce1179ae53"]], "2": [[15, 3, 1, "", "2:19 6e723820ff0d3af2b33911208421ec93bfa3d9388535b353d60fe2a74ccc1c8e"], [15, 3, 1, "", "2:44 2f5232d2dd945c47f4332b95ce35d9d402898e71f4f7c411c663e301e2429cfa"], [15, 3, 1, "", "1:7 7f6017bf13927f894ed1460d26d072453606445d1dbff591da54b2f1eb9fe834"], [15, 3, 1, "", "2:16 da7de79db9b949ccd8272fe75b48914ed735298d02e452128b6f46462c2d48a6"], [15, 3, 1, "", "1:17 d5ae1cce239b620e197250f6a2726fc8f495aee8a7115926a963718c9033130f"], [15, 3, 1, "", "2:36 1849bba6049bdbc82b21b091dec81c60ec2b201d17fb46c10b00dd7008a75383"], [15, 3, 1, "", "5:15 255a7dcb2fc2b925e5aa49e3be573dcce5c450e40835c21a4ce5008439cdbeb8"], [15, 3, 1, "", "2:21 27d189b098b53140fcdc85a3f039a286f0345dd4aa05f64de22d79e472edc815"], [15, 3, 1, "", "2:33 d3f16e94c1af504357ac2df39037b3897e443574d68f41a97f3a3751fb96fd49"], [15, 3, 1, "", "1:6 2d61867ea0852e491d286632860fa0111941830a7af9e3240f26cbce126f5a67"], [15, 3, 1, "", "2:10 a00d2db187c054f568dbc3e78a1605de3149d3c6abc4a34aa93f2710ba6ca2fd"], [15, 3, 1, "", "5:7 7db44552637b47a7c80a482ccb21eff193aec3ef608b793139b79c90b9d259e9"], [15, 3, 1, "", "2:31 d1faa62ca541cacacd198a34628995933bad01292a21dd568ddcf474e4dbc4b2"], [15, 3, 1, "", "5:11 a34430d6423f60015c14850fbc8c713a11943c37acb592477ed6bb0ed902b6a2"], [15, 3, 1, "", "1:11 8815f83db374f9a454841fc1f6b6390c6ecd954fabc83881cea39dcc3e76bfc7"], [15, 3, 1, "", "2:15 0aa275a9c135534577ced486481a428aeb61c42968ca8a6ceafaada95c15ce69"], [15, 3, 1, "", "2:35 3b19d33ec536baf30efd81e160cddae06ecb9f87449e9a2f0eb4b7b41f45a9e9"], [15, 3, 1, "", "1:15 0019b4f55d1b71c339a645baf16461aa169dbed3b2d823b8af749a41fe5c41ac"], [15, 3, 1, "", "2:45 70b0b1197e263b4916e16125090cd6e9a9899d0554b9d920f0a3ea7fa28419bb"], [15, 3, 1, "", "2:40 1206752913d765884541bbdca0403f9d865f619f0a66850120cd7d31fdf9dba4"], [15, 3, 1, "", "5:10 b5cdea2b94f91084652299806e1a80b282c551014c7d65952547fca3a2bb7cf8"], [15, 3, 1, "", "2:7 eb78e3a8a8e977064b2d7149e4306c21f9fcdfb8f18ceeb51eb2b40b9ac4a9c7"], [15, 3, 1, "", "1:12 e0d4111521e0ef7716e900e64befc27972b65b3002d9d3421d0df6e070601ecd"], [15, 3, 1, "", "5:1 80a97a25c037e20dbb697978e3c79c22243ea2bb094a1a60f10b8cc358d57568"], [15, 3, 1, "", "2:58 146ed363f52681258de59c4c591f3e964f91cf5b1f49ab1ba0410c4b99fb63a6"], [15, 3, 1, "", "2:53 c9171c2be2e92bbdf83f7a6944a2ba47aed3227600b99f5fb6a50b1ee7cfffdd"], [15, 3, 1, "", "2:14 deb239c182541b9351e7079d839b668ddf59a12393d1595c39ea0a9e9ddb774e"], [15, 3, 1, "", "2:38 296ef99a61a7ee9d96f8b232724e9426eaf744eb4fee6e5a8d5f382bab039071"], [15, 3, 1, "", "2:46 5683fc048d59af88dbe3eab83e4bd8d23b94856307f288a6f6377f4037f4595d"], [15, 3, 1, "", "2:2 73d17b1543408a0260ebf6781483f768a98a08e65e7b3efd7a67056c0769a116"], [15, 3, 1, "", "2:18 c9313afb793a167c53fe2e63b2f4af9b33b23f6209fbf7e0b074de80d123e380"], [15, 3, 1, "", "1:4 2a0b32b27fe371cd7e93f22f0a2244eba0ae620a5b844fe722d308d5cba30392"], [15, 3, 1, "", "2:6 761bcfdf8467cee695b29cd8d454ab4a558df08126df0edde891a74925371be6"], [15, 3, 1, "", "1:10 82e2f578c850a061a6aaaad593ca77086467b3ecb1e21068c97a4c8d66c0aee0"], [15, 3, 1, "", "3:2 711b7898931cab56cb1058ef3932abe5b767cb86bbe9998c0d33d0dec68b7fc5"], [15, 3, 1, "", "2:29 72b90114176314f65b298489501e1763317985e1f90ddc834c7ba00bceacc339"], [15, 3, 1, "", "1:13 8d7234572699415553e79da17fd2524d1fcc2a7efe1e5033a320ab62a52024e6"], [15, 3, 1, "", "1:8 ffc345f23396d082ca468df1855e3f5aca7a1585cff5388705d9c1a3f70e74bd"], [15, 3, 1, "", "2:12 5f4e89c3e94a0b323a33d11a320cc4dcc9f49ad2aadb50b2bafe1222bc8ddf57"], [15, 3, 1, "", "2:52 20e185246054cf07309c6a13c1abd811e9488b5a85b5b076da651edbcdb233bd"], [15, 3, 1, "", "3:9 4e8345c2b229363a30e4c701ca308a343dc98f3fc1025d6321b4a101aa16e444"], [15, 3, 1, "", "2:1 653136e8fac3c1c53040add411c925009e38f8501d503a48b3c73829f59e7bbc"], [15, 3, 1, "", "1:5 66a1720f2e9d2efd1b01c5a8e3d89b8b70f8f707c0d5c446e6b1326f2e44e146"], [15, 3, 1, "", "6:1 b661cfaf9bef72a6f8070ed5158ce24d582cc5371b80a7c78f52e7d49157b48f"], [15, 3, 1, "", "3:14 b8d023cf7da2ee836679c97c7dccb223c0cfe0d172d661327da271ea51059628"], [15, 3, 1, "", "2:4 f7f8a0f54827276c6d4560722f7e9788d530dd5d345822294140f92d6b9bca15"], [15, 3, 1, "", "2:8 2db8aaaa096a0e58bd2ffc1db8997f6950ac40fd421ec7ba8b451a13f9a86de5"], [15, 3, 1, "", "2:62 d11919954e7ca0bf885a5dcecbf1173c4e7d47a9a0c9680cdfe30689bdc09607"], [15, 3, 1, "", "2:23 9919d5618da261c20fa0dcbe41e0e33cdadc04c63ce6b754c24cc21f2cea2143"], [15, 3, 1, "", "2:56 6031f088738902177f0a06367e797bbbed6f87b4be23c0317f10da0e7ca27224"], [15, 3, 1, "", "2:47 910783ea8b3d0346e1c6f25a4103c369012b37ccd28169fb7513ec357673c4d2"], [15, 3, 1, "", "3:11 9ae1eb42d553b7e7443d02b5b2d1e3a6d78bb9bcb4eedc72060780aa692d65bf"], [15, 3, 1, "", "2:22 cead86db2db6918d8b043df1bb6d9a515f70eedb704cb0533f19bf1a702786d5"], [15, 3, 1, "", "2:27 d68ed94fe4e38b43ce1f83e10bd9d63c0a70f2869947d5e7a3b05323020be8e0"], [15, 3, 1, "", "2:5 c9af1ffb3e58642391c41d16d4207e4f717098bcbe022bdf29bec6ce24663dc4"], [15, 3, 1, "", "5:13 6cff261ef0c0d257749ff6809ac237900fb6673ccb75e5186c7b4fa8857f9330"], [15, 3, 1, "", "2:34 f33b2927d4c93c042777b5efd14b10f479d4567213b07eeb39af2f226b208a84"], [15, 3, 1, "", "2:43 7d1d9f51a7a61689fd5c36e8bb1692e0155f452ed6ee445950644a177628e200"], [15, 3, 1, "", "2:59 db921aee3f65b1447572f308b1536051374edd08a46c64e1900f1f18f7d003e1"], [15, 3, 1, "", "2:28 2565056b10c31e82a75554c2f93e8566040b57a534228e4eb172894ee351df1e"], [15, 3, 1, "", "2:51 5646edff72acfcef1812fe04617d99f20bd1792169e20de2737a09248d9dd74f"], [15, 3, 1, "", "2:24 1db05fadca01dde48b4ba9f4c5941275523165e10756ef03f43cfa640cb2164e"], [15, 3, 1, "", "3:10 54da339a3e1b9269cf812fda1ad283d6cf0918c3a3807f8c61fab188ef3d2658"], [15, 3, 1, "", "1:1 40ca6b69e8a1f39dacde761ccaecbaca619375767abb05e925bec6c504198244"], [15, 3, 1, "", "3:17 cb6600fc3669e86c2955c97b83b7f6396c4187ddd330aa46e989b9cd1c9f0ace"], [15, 3, 1, "", "3:18 8123eef62794e72515c380c13f09fe4a1a1b30ee0516beacac7e93a43c943a7b"], [15, 3, 1, "", "3:5 7c0456add112d85b5342b18d8e5cac6ae082a3b8287b0cc800d54f8906612b2a"], [15, 3, 1, "", "2:3 11d71ea399510ce28be4e570347824ac5796e92cb7aeec1b5a5917ddac5f41dc"], [15, 3, 1, "", "5:4 44db9ffd84a7092979605a0738feeec5f4b7058b977a23c47673c33c3ece8211"], [15, 3, 1, "", "3:4 3a5077067bbd7d98abb0e8ef62f3c68e25a82638fe896907b96848701a6b9ed0"], [15, 3, 1, "", "2:54 6392d2a1b3e699903a3891e189ec2627cd4cdadb40b1901227056869728ed558"], [15, 3, 1, "", "5:6 270e8134659947ebca11488a29a6802edd92f2d00c5c5cc2cdd352343a96c6da"], [15, 3, 1, "", "2:48 425e9c50e0a6e99ab3bd2a32d34417baaa88ef286249a7ea4c40aff88803a88d"], [15, 3, 1, "", "3:8 3d09604f290b1e849a5430295209e2f6556f6c9f2024c7160c92b0ac7d91a602"], [15, 3, 1, "", "2:61 503fcedbff8acca4704b08fc4a18dd34eacb130b874da3393499d1b4b2767f79"], [15, 3, 1, "", "3:1 3987fd5d747ef2d4785094f84e754d8cae140017fa5f9c28362feeef107d4dac"], [15, 3, 1, "", "2:17 47d2b64fbe4f3b6669f313e326a56bc80c9e29d2609798c8fbd66944b711bc45"], [15, 3, 1, "", "3:6 198814e4e6f61528781c58b11e16a0038ae24778bba6d20a1a9a8dd79185cb3e"], [15, 3, 1, "", "2:30 7e8d7cb2d1db1915eefb51e0bb97b3578e2168dc029dbb4c6ce360f326d9f760"], [15, 3, 1, "", "3:13 14cfd5ffca7331e76e77c2fc7141bce89335774b3850f3cc90a06066c4660451"], [15, 3, 1, "", "5:3 21cfcc3e2a54f9de067b507a9febe04379152937834f9c805769db5f4f31efaf"], [15, 3, 1, "", "2:32 721175acceef5a74b065e1b446344787ec7a10cbffbef36ce67f086022ce23ba"], [15, 3, 1, "", "2:63 f5fea3393e5672ccf2f182c92ada0ce8e51b908b4c56d6e5dff341b04aadbdda"], [15, 3, 1, "", "5:17 4c1420ace1da3c3694b1aebd35cada39def878b5c4f642ff6950ad600c7138a5"], [15, 3, 1, "", "2:60 5b84c1b6b34b6a35f73d808399557de0dda5643c5dd061eab6fe2f70f841047a"], [15, 3, 1, "", "2:55 9cd08193b2cec929c6aa172a5dc0c456e7f5faf0dddc91f4a5010af10ff3cffb"], [15, 3, 1, "", "5:16 a8f479f20301435fdb8a2c41487c0cb7d5418c877b9e952dbf54836c18113058"], [15, 3, 1, "", "3:15 5d492f34dedfe4c347ae8fc5cc979751886b374d0f597aec7270a8850f233696"], [15, 3, 1, "", "2:57 c66c5da22713843633a8a9e39b2b20bc790ff265b578a9814659071b19adb6d4"], [15, 3, 1, "", "2:25 0f736355e9492cd634311cdd73a04550f157f18342e924ed85e3662ff008085f"], [15, 3, 1, "", "2:41 313032bcb9b35d0790c79d41a0ca4b969af9522ce30869193930e68bc013f5ab"], [15, 3, 1, "", "1:16 8a24c7ea76335af8905267c0228e0a1fb01b2367fb5def7030a6d69e27d6a447"], [15, 3, 1, "", "1:3 a2710a596348e56b2b389ff7a77765369a97fcd53c60fc5c39a42050c3aa2b74"], [15, 3, 1, "", "5:2 2dea71c3ed9833c779a0c63b8eae45c64771074fdbc263b67cd2115d7e9cf4ab"], [15, 3, 1, "", "2:64 0f4d81ea4a932a0b0c4ca39ea2ab7cf36fe9262611f07950869b94f715652cb3"], [15, 3, 1, "", "5:9 89aba4c16b95e9fa5e40e6f8fda1c986eb5097820542fc57bf4d63ee2641be25"], [15, 3, 1, "", "2:49 44095be1f456e5e12848444c3cccdaf9cb0595d285c3b9af792f68c3c6d12e7a"], [15, 3, 1, "", "4:1 4303183568664aedd54d9840d1fb3ca733ea37f08af4e8a629102afce83dc9bc"], [15, 3, 1, "", "5:8 1d2db5c6599512c9ff5347dd4643d081ca0ef713a638861316d0eb850fea2aef"], [15, 3, 1, "", "2:39 a6eb8fc79796023bbf80ae6ebebbe9aa8ca02eaea9e91dd0101a92d6502c436a"], [15, 3, 1, "", "2:13 6f99b7bbcf1e55392ad60df6c0625665b9dc85560643ad80f415189d8c7ea74d"], [15, 3, 1, "", "2:37 1e646156faf2fee7e2b56b8ba713276080504a642c80857cae228114284669d0"], [15, 3, 1, "", "6:2 9d03ce7dba3147733fdacd077fd30354c8d7b6a79883472bedba6a9643f63d6b"], [15, 3, 1, "", "5:5 46b1ba35f675d689f5cccd754f8935bdbf89c5ad8ddf1e0563957ca73a891019"], [15, 3, 1, "", "2:42 33ac534f7ecfa88d267e49b475398c2c99a9dc708d9947f300849180c325d542"], [15, 3, 1, "", "3:7 a2af446e5664b56514cde36964346072a3c31267e8e81fd5417885aa9f091b32"], [15, 3, 1, "", "5:12 fe2e7af7111eab22f62c00b2ba9fc0c53748fcdb5ec02a7e20dd1e4247706e15"], [15, 3, 1, "", "3:16 d8a9ddf03bd6e5fe69b23403d83fb785383eaa9e3e1b12e4d7a2d26f930c5843"], [15, 3, 1, "", "1:2 e82f4769c3930c55731cfdff64cba2bf3f3fe6f20f8bbb741ec95c4bce18f4d2"], [15, 3, 1, "", "2:9 f795577e13f973533719549c1acfa613203c8ccb340008307f46401e67c453d7"], [15, 3, 1, "", "1:9 02086e7f1249fcbd972c9e0518ee1939b64715df2d4770f72ce70c688b6338ad"], [15, 3, 1, "", "3:12 c7c123027fb95da5b47bbb45a0d262f1ccc8a67be78b8c5e6995d4eabf0dcb75"], [15, 3, 1, "", "5:14 cf00d52ba7c749b5e814bc2852d5e73d2b5454950abb829df0c20d7bb9ba9d60"], [15, 3, 1, "", "2:26 90ab0fbf40492678aadc1c1460d74be57bd1740b09977b1ac1304747e519aba3"], [15, 3, 1, "", "2:11 115718cd9f0c771924efeceb67f8b777b85cec578ef27ca2e037c38243f8f350"], [15, 3, 1, "", "3:3 17d71ec4c1973c054222c7033a9c64d1fd8dca1fdf82d323472445e8c7511c81"], [15, 3, 1, "", "2:20 d871501237f68094e868228be1c9ed208944a082241b0cf7a5e34375ee6310ba"], [15, 3, 1, "", "2:50 ef74969af8ed15f1495ae8e706dfd8210ff6adfe2b49651ba869290be7687de0"], [15, 3, 1, "", "1:14 e3b6a12dce515b8175a3e8b860650047b16ef9d3ca779fa9d7d654e44137ddc7"]], "6": [[5, 3, 1, "", "4:14 b8af4c854ae00c19f2c146e71416b772fb3d2d2312d68d2d6594d1a7889ad3bb"], [5, 3, 1, "", "18:12 d4a039ef3435b02a470dc1d412a131b96b9fac9aca97389cfcc27e0fed17b2ba"], [5, 3, 1, "", "21:15 70a39a1ca925fa68f61fe74478f904cf31ca13be09d7db398c5c16fbca0ad80b"], [5, 3, 1, "", "16:20 d30a7c9cf59ba8eee1317e7315939208349cb11f6cbb39fdb58a660731dbf7ec"], [5, 3, 1, "", "4:9 275a80e2e27ffeee61eb71c00cd5ceba13337bf4b922fdd28a3ed2dcabda48e8"], [5, 3, 1, "", "8:15 5cd43e21073bfcf8cadcce1518960b036bfe89bc84c8649e85bc8774653c380b"], [5, 3, 1, "", "21:23 6741ee5a44150ad2ec0c321b36747b2dd1066afa038ef8480b92ab126215ed43"], [5, 3, 1, "", "8:18 6ddcd54c076c63113862a4520f98cd2f8fce768efda1073f5f85a7809db098a4"], [5, 3, 1, "", "20:7 2bf24d8fa80ee0ffbea4bdab95ebf3e5bb8548ab9232916dde504fff506a692c"], [5, 3, 1, "", "22:4 df4483a0be687983a2f80e3a045c06692286121f4abd3c85b8b56914a4baaa27"], [5, 3, 1, "", "14:1 258f763536cd569ba0b21eae81bcf3b4d9cfd0cafaa068416bbe158a28c94e9b"], [5, 3, 1, "", "11:16 756313e2a5d855cb3ea595bb56cc4dde2bb98f40796e46b678e768367ecd32e3"], [5, 3, 1, "", "18:22 d845839ee3d13f10e6350246fd7aea5117dc3017658e097bb9822c40ab453f89"], [5, 3, 1, "", "8:11 ae5a443a2738de9ba0838c345bf4816bf7cd9370acb2a7911197c6d480314a1c"], [5, 3, 1, "", "8:5 7974b29d39e237f7b7019e8b023bc65e3ba22c2dd273ada7c3e6655264d52965"], [5, 3, 1, "", "7:4 4ceea157cc85755bb8711c51fb23271bbc1d673d4f2e6fd61d9356cda18af3c0"], [5, 3, 1, "", "22:14 0a845d30d4b029ed8ec0bda918aa521f9b9d0d65329349b73da593e609a49242"], [5, 3, 1, "", "8:4 f0f0247ee1270ffdca37f2133a1d7f104e658c90aa0684f8028eb2b59c6bf74b"], [5, 3, 1, "", "21:10 d6574d428b039bfa87429f66a994d89b9473576339d111783dc6a3fdb46b4a36"], [5, 3, 1, "", "9:2 85b9167ffe43e577abe2ffc662e3e62c0342ca688e1d20624dc5a39db1c988e5"], [5, 3, 1, "", "21:4 baa1cbc6ae96be8a8f4f047cc34af1e02542d64fa59a86860132f4126849ee7c"], [5, 3, 1, "", "18:26 b5b06a8ec68f8cc404232c87395c66a7634550ebcfb41fe026f61ec8e7785720"], [5, 3, 1, "", "18:17 6b2ccfaf6dbf738498a359ba99443b962f7e4e3e4acf6e47eb23204ddaaec6e2"], [5, 3, 1, "", "11:2 ea9e8ef3107dbe17a3db35ec182c1fcbe8fc64d450389cd947e13fbba936159c"], [5, 3, 1, "", "11:13 fa8bbc2efa5ec7a8d906f785e3b77771dfd096c32b87c0a0b78d6e8dfa804e8f"], [5, 3, 1, "", "10:2 f33b885ff1461bd9c3edce99af1025448f23b6f34719d2aada1b9371a66e3977"], [5, 3, 1, "", "16:17 3415e8d798ccb3986f3e21b2a1386f9cd327b61eb654ef6db8275472983bf2a9"], [5, 3, 1, "", "8:19 c151686dd6c86dcb91a93e83dc42259fff94d880d483a63df2c2065156f00daa"], [5, 3, 1, "", "7:2 d879f43c9d83baea30fcff3023c3eb6e4cefd38b2329e84eefb22c3a38fd2490"], [5, 3, 1, "", "3:5 e6423c718d6764768bee151401e902bf393bc0081d4828bf6d0736c363465b79"], [5, 3, 1, "", "19:2 964cb17edce65bff3f21bcace0a60f5cbf1e555dc894ff6898a12192e60e13e2"], [5, 3, 1, "", "18:13 5dcf378849bb441ddeaea2ae698f7a8fd5453cd13880145ac1656711d46c7d52"], [5, 3, 1, "", "11:32 de24271cf33bfa815864b5ebfcbc6988183405bef3c021b8e1b25580122ec11d"], [5, 3, 1, "", "16:22 33c5a2d77620d604b76dfc94b43df1deba183b280e340cefcc72574e4464f421"], [5, 3, 1, "", "11:33 e15958c4756b3bd003b782386a1a141722751eb4ce9fc36198479e4e13b251da"], [5, 3, 1, "", "22:12 31629d554e45355987d9a6d7c86bea4c88d35643ca4bf88b451169a356baeb00"], [5, 3, 1, "", "9:14 360d88c25da00aaea34444416884679e51030df7846dab9da0f094a535cce93d"], [5, 3, 1, "", "13:12 2de5624de002d9f4bb5a681605743df6efc7045c5bb8ed342cfbde01e76ae0e9"], [5, 3, 1, "", "19:3 0c8a79c75b5842528b1f28d6c36a9a0d505ef82b505c04410cf965ec63e3bbd6"], [5, 3, 1, "", "14:18 74db3a943063ecca182e015d816a2e8f7c71787f47f6aaa967357bb204ce2a59"], [5, 3, 1, "", "8:3 2f031a9cfde2f485697c756e9fcc79b907cda43251bb209b3d1b959e0366ca58"], [5, 3, 1, "", "14:9 a1aa4159e3cc968865f3459c148216cbb93a1b4eb83afd051f72a91342e5a23f"], [5, 3, 1, "", "18:25 b7e2794864f886686ee1f2c3393a36af7d0ad00b8d9d342bd6712091b6f1bc52"], [5, 3, 1, "", "10:1 7399dc1df9b884285bce9a5b8c11dc84c4ac1a56dfa88377b1364cb87d4a0731"], [5, 3, 1, "", "18:15 a8bcecdd608b33d4545878847b9586532fdf5d59d7e323bbaf48e998335caa68"], [5, 3, 1, "", "23:2 77c956644d235f20f56388e677b4d8beaaa57ed404080d89c723d92a8c7bf9d1"], [5, 3, 1, "", "22:10 ded68234e7ac8294cc13fb4d7aa6c754b45225dc76318b1142da37ba53c73f84"], [5, 3, 1, "", "16:21 ee1a6d56abdc0108429b4b67cd0d856c84167a672c4536ab6341f97d4f6458cd"], [5, 3, 1, "", "18:7 da5e7dad20db12da8235313f12dfaa6c7c4fee255e9067d80e1e54a475a9c70a"], [5, 3, 1, "", "11:29 73b0b3da5ffde72edf46a99296ff66d8c09b58f4e2b1902d323d9f9cb6a1e935"], [5, 3, 1, "", "11:23 394483b6ad1f27b2f3dc2ac653fd29e231d3fb38e54f517704ba85054ada35c0"], [5, 3, 1, "", "11:26 e51a92569bbbf59fea10e1f41d637ae830e52f806ac58f8fa19556a53b6818d4"], [5, 3, 1, "", "4:6 e163c464dcda586fa66030eccf1b1ba5b9bf52828e2075b9d81b0a6f3830b820"], [5, 3, 1, "", "9:7 2e21eae4b3ccda229d79c4f4a4f86c4bd703e1aba8d1118c7d7716b41d2c2faf"], [5, 3, 1, "", "19:11 efaafe3c78f2478146953b5fc46f3627c854266fc0a4fe741a9a548c03877473"], [5, 3, 1, "", "8:6 cc40a14f407c81a044fd4575f51d913e8693f738ef40ad139534f46b9a19f039"], [5, 3, 1, "", "4:11 86fa0b781562a13fcd5b9e6593f0fb31283920444492ea88757ae43e454a4ce6"], [5, 3, 1, "", "16:4 0c208741e7e3e75e8bd5586585edc747be3a9ef33c4a6fb340425fb7d92612fb"], [5, 3, 1, "", "21:22 c176fa58196e3b9169a21354de2d4e35cdc7ad169688eadce01d604523799017"], [5, 3, 1, "", "11:17 eab8fece1cd805ef10af3d99fc4dd15162f528e0721ee3b0165f345c61c44e56"], [5, 3, 1, "", "20:4 49758fd689272c0392826f2a3732543b6bdde8cbe5c4db2b2a7545c857ff396e"], [5, 3, 1, "", "4:12 68326cb71c2631710e4504a539081fbf264f5d77b8ebcf7736ad0be9bcab5ea1"], [5, 3, 1, "", "22:8 404ff264bbc3d98e0e0a537c1425f627b4fb7dc95b09f1d87c4e1f6bbbeba652"], [5, 3, 1, "", "14:3 07cb8bb8b2b5e0cdb6180c0299e313879b1505e490be99d8fa395a6b7e4528a3"], [5, 3, 1, "", "8:13 bbc8380a9bc21793c86fcd20a2b3fd8fa261fe3ac9374aed29e675bff88cbb01"], [5, 3, 1, "", "13:8 c110b9dac7ab14f90979a9920f5617dd8da3a32b5807989a446a23ff0ac59bed"], [5, 3, 1, "", "15:6 df46281065aeae6add6395484b3498c5cc1f56c1b6a6ff85071d30c1c1967e51"], [5, 3, 1, "", "11:11 05db74451ddd466b05e13f92f7002d1a5bbd98357e459d80505b0fc0192b5722"], [5, 3, 1, "", "19:10 082696c41973e38a1a35b25a89b46c05432f17d4e2bbeb5d917eba586f81cb5e"], [5, 3, 1, "", "11:22 dfcb1ce2101411371aacdbb15a17031666e178ffa3a77ebe197897dda4775b78"], [5, 3, 1, "", "21:3 dfda6e0c52f46c00d66221d8827d93115b0cdcad8ad51d9062a06e2b14f39d17"], [5, 3, 1, "", "16:1 c091d4ede2953dfdbd93f7b66ba436e8700318eb591a6906daa25ebbe45b07fc"], [5, 3, 1, "", "15:2 6b9aad456e20df8a4de1519c1ee093b2b3f13d98920642b1d2962cf4d410309d"], [5, 3, 1, "", "19:7 46b2bd419c605d57349d4c78e88591ca5c51aff04b69be70ec3b65f872c907c0"], [5, 3, 1, "", "8:7 99ecdba025304ba811aebcc29e07845a140fc3ba41095e33a8d0ea50f068afc7"], [5, 3, 1, "", "18:11 25b69156c5ec7a484b25307fd4c216b80ecdd701ee88b542bb71ec625018c38f"], [5, 3, 1, "", "11:27 a16846d9e33ce5a80d68efcb1d24f5c1e2e9934ba86b734882c989e20206c296"], [5, 3, 1, "", "14:8 7b4d34e53270867a1c6022c1d6c09dd73955dde1f5a9ccbf8f32155b641c84ce"], [5, 3, 1, "", "20:5 836feebddf1240d8e4bfc2f5c2321b55c5b9e2e2eeb8c866ceb852681424062d"], [5, 3, 1, "", "11:20 8e664ef278506ab961e1731480c81261ba08b7a02514217323708b4af6aff785"], [5, 3, 1, "", "3:4 7ef7642678c5437966b93e2c64abcdaa84e74185e3ce5c93de7adf4963eef270"], [5, 3, 1, "", "21:1 1ea58ec9460ef7859bdc28de3d2454bfd5f0d89fad0774e3f0dccf59d4c2fa44"], [5, 3, 1, "", "21:14 e33ebfed7ce388a0cf0033407562b3b4a63e5d7b6df56cb445f069b1d6196f73"], [5, 3, 1, "", "19:8 edb148b4cf98d6f392c6839fd5d5421e348cd7de544dcc6543eafdbaa13e951b"], [5, 3, 1, "", "18:3 65fd317e7555f0c5f1f52698ac1bd1429fe681957715153a930e9020fb092c9b"], [5, 3, 1, "", "11:7 f742d113591d2078b7ee2b2c7107d89b3550d51f804ad1c2d5d6a9907cc9890c"], [5, 3, 1, "", "4:3 8fa73f746bf6406507f179efa09d7e1416bd0bcbc261553178a1ed7ce5ffdbb7"], [5, 3, 1, "", "13:14 d37495b7fca2741f3fed164400ece2dcb0653279c33efe30dbc3d17ab5fc1542"], [5, 3, 1, "", "21:12 3ea4a68b843a23a1cdc9b81e4f0174f9c76a5ad73a060891279a41d78fc7c6bf"], [5, 3, 1, "", "18:16 48fe049c281a0532117b572c686a901f7a8fc2c108c67e1b42e1cf588a70d507"], [5, 3, 1, "", "11:8 3888cd4b2bf0b27090e97dedf37902806541ed4b1fe7499ab5d8f04942eeaa50"], [5, 3, 1, "", "9:15 fa58196075f56ac52b8d01e9cb00cfdb9529af1c583a3480a55001154f045e3b"], [5, 3, 1, "", "22:3 8da2358d8b54cfb271d4ef4ceed3480cf7703b2365a20b42d5cdf3522788d478"], [5, 3, 1, "", "22:2 97f165b9e62eea93d9961a8cd997dc9479497af6d7a188e181edf2788466461e"], [5, 3, 1, "", "15:4 dad07b4b2c24254b39ee962868ba851da3abfb4e88fa4ce0fef314f085672d2e"], [5, 3, 1, "", "9:17 b2c5fef9e306895e61c01a69f017386886e4f27a15ec910d892e2129c9f7711b"], [5, 3, 1, "", "16:23 d1fffaa1ad08e71849e32997524e5b534b53af3d4269c127b794d379f3bc2129"], [5, 3, 1, "", "18:1 7197f8e20c7dfa8c46878c8428779c2e06d872e3b47815cd767d14f1eb71d39b"], [5, 3, 1, "", "4:13 33e644aa682d5b680cc8538c20d96974c4692ef33e1f73e39d724aeecab9eb00"], [5, 3, 1, "", "3:2 024d54849ef873e36a69bf553b7f32c26c6e336777c9aec3ab1f8468de453518"], [5, 3, 1, "", "9:19 5dc619e3c7a42b3865b9e09a909cf74dd7733409a6dc676d5ce0776835ec2935"], [5, 3, 1, "", "16:6 12ba48b3f294024fc43fdd49467a28d82ac7c2a6e6e852a9bf8a9201823d0f62"], [5, 3, 1, "", "20:8 f748d724dc5d08a0afc5bca74cc6310d8f2d73e36fd9708085c26c5e57b614d7"], [5, 3, 1, "", "21:11 b1709454bd018cc25d9bb554a671bb3bd23206e58c426368771eb33c8b1902f9"], [5, 3, 1, "", "8:16 89234ce8ba73ca7e0688f892e1660c97f9dad740b312645882f0502e5a170b75"], [5, 3, 1, "", "14:17 96e2833e76ddface46f617de5b95f512ad2b35abd451f461327fe4fc0a76a7cb"], [5, 3, 1, "", "18:32 c442e637a527c65b19b05ec6346d50fbb5605aa1befe1daf2e9621e1e659e9c9"], [5, 3, 1, "", "16:3 7fc1ef96655d5961f2ac73c23730598d903635928712a8149267cdcf8ce0fc34"], [5, 3, 1, "", "21:17 00e7566e07ad29ae66ca966af236f682cd8a53c4e6da84b618dd37ccd7f1a423"], [5, 3, 1, "", "9:4 7e6555ba354de0496e6c669f9e7a6741d4b492484dcfcc2dd698365fa7a60eb9"], [5, 3, 1, "", "14:7 d81d41996d3332b44dfb6412c76f9014ca5e2783fe3b21f877ea56ca7cde0cd6"], [5, 3, 1, "", "9:13 6df13900857eadceabad33c0cb30734412f004ce22dd4ca7929db7825f12a320"], [5, 3, 1, "", "13:5 6f9439988b5641d2eaa940f1c522f3b9afac1b199078582b2c219d2205f2448a"], [5, 3, 1, "", "20:12 3a5e5763d187255a3ef457d3d46891e92783bc092c11c66c526a00876064f2e6"], [5, 3, 1, "", "8:2 743b62273b34b59350863d60be4496326d848680260ecd32e8129f1b8143053a"], [5, 3, 1, "", "9:16 6116e98e9979b81eab9a7ab0c7273d7762a8679a757f8533b345a57fb7e929fe"], [5, 3, 1, "", "2:4 0f726bad76f37f734cf2a31bdddacf357fa8a90a916dbfc89bdded32705c2f67"], [5, 3, 1, "", "18:18 1e2c82e1db38f740afc388f53a6718916315308d08a8fcf7b6bc4b1778b36f41"], [5, 3, 1, "", "18:14 77c75227aede40369c8e2fd1b338a09aa0ddc23971005f236a974a3d77d8fb64"], [5, 3, 1, "", "18:29 bf133e4ef0b4ff6e039b8a1ac30b2ea24adf705af5cf2a92af6a46b0542ab704"], [5, 3, 1, "", "11:4 7f822abacd536f4c7d392cf59a82a0070650471dfcc73a2f8de8eb09547bb5dd"], [5, 3, 1, "", "8:12 4f06417eb2b816c921050078ab93d2e2f81bbdc5682995739c56d6c2a428d828"], [5, 3, 1, "", "3:1 3b9e4cf4c144eada31afff6d82c75c28defe5281f0aaccd9aef03e1b77efc2c3"], [5, 3, 1, "", "3:3 c64594a113e6bb7fb595e357b4f5a5aa111db5f89f1b74d5c164010aa6394305"], [5, 3, 1, "", "21:20 ae319c9de59e01cef1c5875cf66e1bea865c095788ad753c61b22138fbb7d086"], [5, 3, 1, "", "21:24 e6544a9cd735fed1a4c5bf7dcbad5842d1a2911275d4625c2dde41f91050d96a"], [5, 3, 1, "", "13:1 0fff84454cb00168b6a6d5f137ffc3067c806ee13603a7b87dc82041c6cd2cb0"], [5, 3, 1, "", "18:8 7e6b4209512d832728f5d5b5fd8f06c27031fa1e50806d1bbd587358cf9c5acc"], [5, 3, 1, "", "21:18 398e12725f85d87fa51611c3ac78a9d489a257b0cd22f99296f4274a18115ba2"], [5, 3, 1, "", "11:18 4b9a135c41174a4d1b374036bec37ca58bc2dc1b5cdd02cfa29b818f6f6b5595"], [5, 3, 1, "", "9:18 39e66b9082ab41a3cb7bfe897f53ec7d894d3c0a2eedb848765d2d5b61f5f08b"], [5, 3, 1, "", "22:1 2d70f775bd55dcedee227416f24a3bc37fb9d5409b96077d535f6a5186688494"], [5, 3, 1, "", "11:1 493abab9453382e96f95834b89c0e5369e4813f666ac2b6457d230ce1809142a"], [5, 3, 1, "", "22:5 51b0d76f3369e3a5e62f5bf6b2365f97b322c4c2f6dfcbba47616d7ed963695d"], [5, 3, 1, "", "9:9 ca425abe5afef3fc3ff8c1fa8d087b47ff691c4e899e64f49add8e09dbe7f639"], [5, 3, 1, "", "8:21 30d959b0c05ae14096ec8a18e9ef45db9516e5df20444afd6789a6f06a342318"], [5, 3, 1, "", "11:28 89b109fa6381448c394ae86c65c245fc0e88e27972300ac7f167d84e0bbf79dd"], [5, 3, 1, "", "7:1 4b96644e63b3031bd589162d79d80f5f1f988db1395b4ea3cf2d135f2021ef07"], [5, 3, 1, "", "13:10 d4fb708b3a1b8a51749778acb59d9fbf03034f9398ce5c216e9c8c1b4de9abe5"], [5, 3, 1, "", "18:30 3a2f280736c3d305d7ca9e0547ba1b7b7f219322813aed47634cfef729fbace8"], [5, 3, 1, "", "16:7 bf443cd1c50e8fa7043e4b3aea7c4fc63e0aabd2860454a6ce5f04b4a01c2d84"], [5, 3, 1, "", "21:6 183754bda3a68ac29333a9920b7213129284f5d324afe718d3e7e1acc39ea78c"], [5, 3, 1, "", "18:20 315118e0f1a4b887efdc0b64182a55a6ae9a277af6fd11311f66dbfab8e42370"], [5, 3, 1, "", "10:4 24ed5e86bd386394eabd8a2ac4b328e9898749be29d66dab722c00236101f333"], [5, 3, 1, "", "21:9 a647dca3b224f2d82d63601390ff21febbf63c97e21b422fce1223a55d8cfbc6"], [5, 3, 1, "", "16:18 50f2d043bd7c1a6899cf0ac4004941ea2652c098001ea93bdf7dbce10b4719cf"], [5, 3, 1, "", "18:28 2eb26463fe93f6076fcf3752bb63be428ff5539a4061bee87dac732ca6182161"], [5, 3, 1, "", "20:11 fa34ee0051e0acccdf51347f463313b897b4227b5ea13766255ff2b0066a1512"], [5, 3, 1, "", "18:27 cd34050016c198eb7459bc1f8a89363f0daf54e667d2277770bcf88a43796ec2"], [5, 3, 1, "", "20:3 5f2dae4da2ea9520c29d1330b7448bfef4cf69e81cd8680d13349b19bb4da376"], [5, 3, 1, "", "13:7 3cd41126945c5607334845bb4664bfe40264f046c0340a017472b82866f65a30"], [5, 3, 1, "", "16:9 d1e65f1155e1acd346f47a814a51eeb8a7c9207a8e5936b4b1a1bd7d1f3adb7f"], [5, 3, 1, "", "4:10 27aeb45eea02cc67355b6940d80e6dcce1ac5dc5d0ce6a30e2afb8c7841c56b9"], [5, 3, 1, "", "18:10 48a640f2c735c124058c84096328af56fa56e10d68c3f4ba796121091e68e732"], [5, 3, 1, "", "20:6 782eb091e16c3a6b5052222092300db02c04546faa0f8edc38766ace20d67692"], [5, 3, 1, "", "18:2 530646a0bfd42c27bfaf45748d4f0b8c089e6d313d3c67905017587926ce9d17"], [5, 3, 1, "", "22:13 7017351a551f3038618b2d0fb7ab087e7f50230db15c87a1cfded0443d6c3796"], [5, 3, 1, "", "9:11 ca104df5047d4dcf3d9d6018e314d70e108caa663258d7d4078735ca9d5ec371"], [5, 3, 1, "", "16:14 b17a0ece3cf29a9af5df5c9a8b2301406bb89adbee4bda56aa4d0fa47658b5d6"], [5, 3, 1, "", "16:15 06d23443cbb3466875381e861eeb4acdcd6caddc9e7cbee7fab979d4b33863c1"], [5, 3, 1, "", "10:3 c4ab6ee82caa1cd55dc2e28627611665855885cd1d29e62c1ca3ff00223e9259"], [5, 3, 1, "", "11:25 699dc721a98b3b7c8991c04c5c3c9e87c9c461f7a9cd730d8456d351bbd31869"], [5, 3, 1, "", "18:5 9d8569c641c0d6d974ec123f03529ea557e3c78043b29ba6ed204b727c336170"], [5, 3, 1, "", "4:5 8a18cecaca838f1279baae3bd695a2ebc5f105487016b3277ec32fd2a592f0d5"], [5, 3, 1, "", "22:16 83dbe39f34ed5bb73bbfdc199bd2ef586623652688f98e05048c57e74c582d54"], [5, 3, 1, "", "11:9 28873afd657a39c226d5e6dfbe90eda2f198b5d2275e48d63d83fcff6666a437"], [5, 3, 1, "", "16:19 103de571717eea1f829b13cceed6230de05a7fa91e9c10b005e055f1db42a0a6"], [5, 3, 1, "", "16:12 f1e8b3694025f031c332d8b550a1ba567b40e183315963898b053e00bd60cdf7"], [5, 3, 1, "", "21:5 54aa2b80e6e76176f6c52aa25cc2b16b73a0526ec6aceeb71f1376bca1b8d23d"], [5, 3, 1, "", "14:11 7408f2001132dd253c673749440c7e0f86745254f7234df4df54f6145af92547"], [5, 3, 1, "", "11:34 4679e260d01f964df4c4854f527a55bc247efa22f9dc20b678ab35977531eb6e"], [5, 3, 1, "", "16:2 e98911288d83977a62fecbf208cd7217898c4496c84ba45a3b8a8d01581665b7"], [5, 3, 1, "", "18:24 a51004381cd393164fff1a2ba32606870a9d6064cce8fe9cf04d85b20f1857be"], [5, 3, 1, "", "4:1 9314640d69dac45b9a4f9f852d9060291e437f265f71d262834f32fea77d26b2"], [5, 3, 1, "", "11:36 95098df352a5e120808aef809396f5698df829ca3a4454751786588593c411e8"], [5, 3, 1, "", "19:5 76736f845693590923018fe78dbca8a616a3c75e4a360a8019e96c968ce1310d"], [5, 3, 1, "", "9:12 9604f4021f2759e85e5c5da7cde24c6dfee6185dcac528fb76a3dacf4e93e6d7"], [5, 3, 1, "", "4:15 02bc7e48facf23ffe3b4d2fd838ab6238ade7b0d00a1171c7f4850f71deb4876"], [5, 3, 1, "", "19:9 81ed732b837640d66610e42b451cd80d4596a9dac8492f30919573a8be46d259"], [5, 3, 1, "", "22:7 9aadea1792e4d8b3cf759598520f2d8a446a34c2dfafb731ff85a1f69dd3ad47"], [5, 3, 1, "", "4:7 74d548e2b7ae37d2f34907672a0ac128ac039d79985342fcb20b08a0cb5a21cb"], [5, 3, 1, "", "14:6 d921449659c3716930839a61143720879c0a3bc9fa0aaaa3edd2467ad0ba54aa"], [5, 3, 1, "", "23:1 5274391e12b7710b6f28a7ef79233dceaf69cef0a033e9d2a7f441e6fa3a33ee"], [5, 3, 1, "", "18:4 414ff72de304b8d5f51ed55fa6648080dce6821de269cd8d7f5a6927216e20ce"], [5, 3, 1, "", "8:20 66ac06814aa69e304c6e76a00971dbedf1387d5233cad520425e11f03d4c07fe"], [5, 3, 1, "", "9:3 db2bc9cf0ff07c2d83f7c42c19f1f26b0299fb0961ef65f745ffcb2ad15b3f89"], [5, 3, 1, "", "18:21 0f64f2e263255b0282cbd9f8bc2ec5df5d5f04cd1fe151353a3f58dd762a6350"], [5, 3, 1, "", "11:5 24f31221ee538a172dbd40ca7f70b47441f5d24619c0c7d71b11b60873ee1eca"], [5, 3, 1, "", "15:5 777120b3d2fc21a868a2ea042e873f59436b685b72a6032b485186ad442cc673"], [5, 3, 1, "", "11:21 0d739a4315b3634173f4630d2f989f3fda10c4cb81091788a44a982aeec6af27"], [5, 3, 1, "", "16:8 a794ca0dde4e9941ed5ae749e6b790ce7034083245dfd6d450ff1081510c71c6"], [5, 3, 1, "", "6:1 5ef7618ba1c0e1c7eb57702380cfe32fd40a101012baae722cc5017d09e187e2"], [5, 3, 1, "", "8:17 6cd7a3e96790491d8967a32c4aa6c12e7bc265fb236219c2798543ac52c4d67a"], [5, 3, 1, "", "11:10 bc5511c2c2fac0ba4a2014c7549d26dc3b47e1efc45745a57b9270b9daf8717a"], [5, 3, 1, "", "23:4 1ca56587481d720bd3655179adbe50c36370fe9b71c832a1a6271ad20e82145b"], [5, 3, 1, "", "11:30 ef7b100b52af0f96f406949aff0b22634f64963355f13f1c1b95f8d9cba0b44b"], [5, 3, 1, "", "14:14 2d7c48ba0c3b2b6c5741e38622fa55bef0f3d46a1b6a085b2e3c3126d21b9fe2"], [5, 3, 1, "", "8:9 1dbe631dc10dcbcaa14182cbc7292325ac986dc37e6435c88e0c8e171530200b"], [5, 3, 1, "", "13:4 51cac1aae8445b8f117fa167a6bd44ad5fe5127c2973a8a581fe8dfd3eb94ed7"], [5, 3, 1, "", "20:9 5b915ead9f543983fe6a1f6d4411aa0121d6725d22add9b0211eca93213eba88"], [5, 3, 1, "", "21:7 6b34617657c79788671be78815e6993bb19baa7e0fe35adcdcc2b21eda22dc46"], [5, 3, 1, "", "13:6 7d70af68eed186cc465c70dbd28390e81e61e14db425c5e779353bc99baebc47"], [5, 3, 1, "", "23:3 60b290c542ed976d056a274718878486258854ee4ad3902874547ab7e6f85f8d"], [5, 3, 1, "", "19:4 204b8d5c44f33462360cd6b1c4d32ec43476cc7fae9fbe3cdb7d202370669fb3"], [5, 3, 1, "", "14:12 5ff8aef954577166a2babd4efc99233e39df14747263949097875ebfd7d4d925"], [5, 3, 1, "", "11:35 709cca2dab61298aa182e48d151ce7305ba30a57d6df86d251d6e2b35ddda241"], [5, 3, 1, "", "2:1 cbd02ee8c02288e5b249e04aebfe259f50767f82a89a762666b81d9d62a0691a"], [5, 3, 1, "", "11:24 6822f178e5b3aa34dc40d855f3a712775268565250bfb20b6a8a800342a31c2b"], [5, 3, 1, "", "18:9 6790ea54211b198f819b8d618322dc387a7add951a7e9732ae8e44ba732b6557"], [5, 3, 1, "", "21:21 21814dc22378c585902121bfab807c007ddcb24268ba57759726bf98b266470c"], [5, 3, 1, "", "13:2 9334aee9e081b26024fba1b5e854cbcddc4023c922bbb04a008c2af41f581151"], [5, 3, 1, "", "9:8 4399a6c70846584a158da4f90dd876e825ac9cacaec36e9597d7ad9314f9c1ad"], [5, 3, 1, "", "18:34 f6ce6b0fca0ca80890c4285bd94cb537a986b8329e5ec02e54434f4244ebad3e"], [5, 3, 1, "", "21:13 26b534c9a0f23c8b9f12703a3170ddd07a657404cb64f1486d8bb2a193768a7a"], [5, 3, 1, "", "14:16 e8f3d28b8e350eebcca9318b8567852c70b42226ac7a6d2529996342e1771d0f"], [5, 3, 1, "", "11:19 e2fba67dc6e8362b2eb63f8630a99f82151d0ddf943e0be8719f2f2d15d1e3f6"], [5, 3, 1, "", "20:1 da4e5da6a4bdb42745c483a169cbf0174bac069a47d8e4fc4547d8a4c192dac7"], [5, 3, 1, "", "11:14 5f874feae7243e265174842c1705edb105460487394bbb55e89d57d48477007c"], [5, 3, 1, "", "14:5 5facc8962ddb8900252695d0175b7556877cfc69bc6d190d24f0f020b31d15f4"], [5, 3, 1, "", "21:19 2584e4c6218c7323c2bf24a2c0de7ae1caa256e05729adc630a7fe2b1e0f83eb"], [5, 3, 1, "", "21:16 3fd86a70e1d6ed044f78bae2520252946967ec4c75eb8cf66cdf99feaa4fe4a2"], [5, 3, 1, "", "8:14 30d886a7d822a23c278b2dbadc243b7709b339b7ed687043bd8f5d2781178640"], [5, 3, 1, "", "22:11 d49deed6d7344732b4b411d505da072749b5d33f69d71338411aa9f726ebdb5e"], [5, 3, 1, "", "13:9 840f48bd32143cc270de20c5fdb81ecce995e310ea1533781f30504f130c61fc"], [5, 3, 1, "", "19:6 340f5b5067fddff442d4f14b2fce354729a502a270245f8ee85a36b47cb19b17"], [5, 3, 1, "", "4:2 d02030de67fa90b6299b156dfe9325835e08dec1afc82ac9e50e7b416ed4edd3"], [5, 3, 1, "", "20:14 cc27da507126827f604fb160d118c199f79068f517609771fb231e681e94a615"], [5, 3, 1, "", "4:8 01f722be1236235666def2aec047d3ecb170592333dc2d5b19883b2db2863ef9"], [5, 3, 1, "", "4:4 d11f516c2b53db9e1ea73b2de1937f17529e46f2a7d101526fa2822cfb01be08"], [5, 3, 1, "", "20:13 efc0c00d248bd8cc51172623500bea993674403271c5e88d20e852c773d7e905"], [5, 3, 1, "", "19:1 fad4d074aede9aaedebde1631b2540a5e4229618040f881747a66eafcb2621c5"], [5, 3, 1, "", "9:6 3c8bd13b0796e21dc66b5379e63653e3fcb5a781ce71acb007b57d31835d0f3a"], [5, 3, 1, "", "19:12 e96c5c840968268932035da7dcdb11c1400fbac1564ceab31a811ecba499ec4d"], [5, 3, 1, "", "14:2 db5d318ea65c25f370cc35cd9802f6a817162f3487fa20540a2640b35e34ca15"], [5, 3, 1, "", "11:3 8e351f1080c459129073d0d8530951b8e82226d27242d9a1ff82271bdce4843f"], [5, 3, 1, "", "20:10 da18e7ef8881f3083b4c558241950574caa792c33598bd92c716e41a8cc53b46"], [5, 3, 1, "", "22:17 dbd28fc0d3ac8f76794edf422630af90e6c9801240cdda5a744ddd50a300e7af"], [5, 3, 1, "", "5:1 d4e26ca3cbd644e6b9a5b86d239f6b0e1a62f77aa1305bfb532477b731cfad2f"], [5, 3, 1, "", "13:11 54098cf568aea6d991b4f2f2937f77231043b31536d203e421fd0184f382a80a"], [5, 3, 1, "", "20:2 59ff4e3c6717c818b5ec41ac9bcdfc6f396a1d404c481e8b6bb7071eb4407a17"], [5, 3, 1, "", "16:16 579a72c0c0f0bd83e5d75ab49631dcb0a8276f928990bcc059a11b0d30d3a98c"], [5, 3, 1, "", "11:38 1c87e5610628063b209d50888670d8fbf0c116de208f35b62acd64b1701ea6ab"], [5, 3, 1, "", "2:2 041048152100f5969aed239f4cfbb726b0a5f11aafb03adcbd062c40bd808304"], [5, 3, 1, "", "11:37 1d38c6679b821e525c76297aa8c0e49f1304aa0d4f31f22912785b2c0960a751"], [5, 3, 1, "", "9:5 42f40f05f0350dbd74aa64e56c42a4c06ba726fc7a8b35e5bb3368d06a26a8ad"], [5, 3, 1, "", "10:5 b7b413e86deaa80c42270b0e67a9b7769446e927a1b9757d51ef9ea1a7c0e35e"], [5, 3, 1, "", "2:3 fc4778b02fb2097b1b5ab97ad2bea3bf7f026dcae8ad89e91d752e34946cc487"], [5, 3, 1, "", "18:31 99aeee8cae96d8f5aa2d485ff74576d7b559450872e3932b835df6d75692561f"], [5, 3, 1, "", "14:4 7c28fc0b7e17f3303465c055608659617c540771d11c39f7d3107392cddcb516"], [5, 3, 1, "", "6:2 1dac5db10a0607f25991daff12767344ccaeed3d4532c06f54c6f3daaaca117b"], [5, 3, 1, "", "8:10 68a2f4607ef3ef9af408f82e1bcafcc5d132a928549d34922543e4a7e1eb4af9"], [5, 3, 1, "", "22:15 2e9e24c1c65541c1f32df09a23b6947210f9071eca8be770b14640cc78cb06fc"], [5, 3, 1, "", "22:18 face359b764fc93328e325d67bde1b99c94e96a550bc044d9a5b7784a7742946"], [5, 3, 1, "", "13:13 3c17da1da1cc37beb254638ab4a54293270d991348e9aa7ce39f1e88d84c2f50"], [5, 3, 1, "", "8:8 00959a289e797eee5d2c26c92f851b2a5d78095f1c5c4ad231c077cf1a2b2218"], [5, 3, 1, "", "16:11 afd95e25d1673ff3ff51f1aa419a774d75c988e1c753d9735a8a1559c15f20df"], [5, 3, 1, "", "9:1 31490093979c511cc48f877705c29908857d10d31c22c513439cdd3e083e83e0"], [5, 3, 1, "", "16:5 4ef87517cf959f7fcbd556c7ec5b3bc137bc9084aa1cc12a22c2660c1a2ba0f5"], [5, 3, 1, "", "15:3 b64c37154896820db0ef51d026385ee987795486bfb5d7f65c754c9a8f52467e"], [5, 3, 1, "", "7:3 3140672dbfae920bc75f4d9c3c7ef03d41930b474be0b1df39c2574ac528c4a4"], [5, 3, 1, "", "22:9 1e4ed51853e5ecdc3b5084f8952088bdef2a10260258bafb3579524a407b16d5"], [5, 3, 1, "", "14:10 798f818850b1ef28b3bf2e11ecbf0a90593616d230f8b4ff5acb93f4a905c4c2"], [5, 3, 1, "", "15:1 09fcace93e1a1ae60500274dfd8e0a817f1b0a5f6c7a9328c5d114fd53a67ca7"], [5, 3, 1, "", "11:6 dfd9ce367d4bf290e7ae6dfdea3d576766c0e2190c615c7e1f1113f9305360f3"], [5, 3, 1, "", "9:10 3b4aa347cbd159f5838cbd0b0c14997b21a8cfc9acc3c4f85a283411186ff2b3"], [5, 3, 1, "", "18:19 d945d5ada6e85b123bd526bb61b64748fcc3ecca5d7eb4f7ea549d5c8594c855"], [5, 3, 1, "", "22:6 c5b1fde32b8f99342d49cd808e66462771d3c867e9e69074ec8d142325384c15"], [5, 3, 1, "", "21:2 55370b10da3b56c04b08da6b32c4c027699ea6cc687589a7849a699dde6308f0"], [5, 3, 1, "", "8:1 6d4f6471b2421cfcf0c6e94185848a12651a125d62316b31ecd723f993aaf11c"], [5, 3, 1, "", "13:3 be3f919b0045750a0943ace11de2c5cc39ba2446dcb07439e06c395b68932bee"], [5, 3, 1, "", "11:15 7c1c7e161e1e23fa1376c0e49c44e13f336fab7729692b3a44d0eb2823eefdac"], [5, 3, 1, "", "18:33 899b935a103f2e7391edfc0e0faf91cfe3c37b0aa755206025dc4706142bafa9"], [5, 3, 1, "", "14:15 ed12b9fbe4052a1ba7eb2fc4bd1f32703501bde79405e96d6c44baf94e90770f"], [5, 3, 1, "", "18:23 f16151a0a73fadcca22c40f8de991f4579a338f3bb1885e582c86f8995bb90ad"], [5, 3, 1, "", "16:13 a8670d453f14933a28fe2abe58141e9f74e15c9c8adb968d2b14fb70bb3f5503"], [5, 3, 1, "", "11:31 42afa78c852b518f88af6b77def436db4b5393c26983141a51e07dd6750eee0f"], [5, 3, 1, "", "21:8 39290d972682eb3439b41a650ce8dc55cc5618eb221b6539b1643da301f1e2fa"], [5, 3, 1, "", "11:12 abbd965676cc9c6c017509ca4f0db2bfac5d9703fadd03e8f5f4a98a4bd13e98"], [5, 3, 1, "", "16:10 6ba6fc0058159bd884a7dd7c3744da344c3e7870545e9954e409937d1c674fe8"], [5, 3, 1, "", "18:6 e6e31ca865a9b72286d7654782d65467d18a2cb625795e076e6086c41eda660d"], [5, 3, 1, "", "14:13 aa94fe62eff62289c35a51ba23338de692f26985dad5f1e9a184a2206e1aec83"]], "6.15": [[5, 3, 1, "", "3:2 dfc103919303cee91ca86794643ffd9901aa77325778c63ba280365f9d864217"], [5, 3, 1, "", "1:1 c28dc0d6919f99a8d5a9e3b50553301a0c76ab5eca3c73ad4880a6f00f5e3400"], [5, 3, 1, "", "3:6 d3cdb9b835ebb3138befce2f6ff348e0b0070506326d99c7ecd043640a577567"], [5, 3, 1, "", "6:9 35f41aebc07416037d09ff5a97c5253fce2de7df9e75c929d9de4fbe767e21d2"], [5, 3, 1, "", "3:8 06ba123f6bbe35320b7d84ef5d7e09b874731dd5b73c29660397c6fbff9ec26c"], [5, 3, 1, "", "1:7 1f13dbaf54d9630e2e6a595b0759c2c4a8d57f34fe6cf3c0c0bec126fc90dc54"], [5, 3, 1, "", "6:19 814a050d4fc9ee7f0bab1848c0223b4bd667b6757604dcae405c723fb3e9211e"], [5, 3, 1, "", "2:6 465119bb7fd453dd324afa0a8dc4238f16a6d6f166a3f9af2f36323c1c79440f"], [5, 3, 1, "", "6:23 d88f1c75f863c6cbffa69c29657e1115c53a70912e3b63cf47add2713ee6a72a"], [5, 3, 1, "", "6:7 ce00d8330f82a3349d3e60bcf3723d65a6615e7770383dd754ef0e99c593915c"], [5, 3, 1, "", "6:5 9f98b146f5e3f519d49c4a5cc27e5c636fc58009070d51a8cdba623f47fea788"], [5, 3, 1, "", "6:16 b4a2791affedd1510d06abce351328641e828c613c591847cc874cefa3bbd3b7"], [5, 3, 1, "", "3:7 e8d6e37169c33a35638460e2519303331bb0a51968caf4db78f6bf0a423227cb"], [5, 3, 1, "", "6:11 321bd90dbdfcaa9c7b4ceb894803b3b97b0a87dfd90b12002b5478f31bedb011"], [5, 3, 1, "", "7:8 6c2dd73a6b8b4a5e78015a12ab14a9efbd1519d9a162ef5db39c49d16fa51aca"], [5, 3, 1, "", "6:4 22ee000894d4113f8cb1e254fee6f2cb6156c3c3705be34e97c6b7105051db59"], [5, 3, 1, "", "5:2 8e78060ed87d5bdc97d7a80f104d547001e75fe63dda373498822a1cea769cb1"], [5, 3, 1, "", "6:10 4fd91645624561c1d1bbd9f575a8575e8b09aac121d44079892a624a618ab957"], [5, 3, 1, "", "2:7 edd1dfa6e2152066f44d29878644b07b69562f0cb1ddaaa46687407cd656772f"], [5, 3, 1, "", "3:1 76c3f0d9cbc82b5cd26d8e303f802a79c3cac14ee906d37fa08f3f82d738d214"], [5, 3, 1, "", "6:22 683d5c1557155d46d5564039411fab17d251fd2aadf6db08e29702326f7126ac"], [5, 3, 1, "", "2:2 c2591bbd597199d589f0828cc9b6c1493be8833f9309a09c85898684cdd284d0"], [5, 3, 1, "", "4:2 dfeefa3347cb093ba18b50bf4e870e07ca528fa460a0915b68b3804fa032a562"], [5, 3, 1, "", "6:13 4b8008568153111179d64a9818853fd4ced12608e93c7cb391d3bebbca4d7e52"], [5, 3, 1, "", "1:4 ffa6684591ed758c123bd99c97ac8f3c2b564c67286bc4143b4f6b7091c371b4"], [5, 3, 1, "", "7:3 377ef19ecd70653a9346c61d53ea2bcb592cba726b2701fec87e85c80391b5ba"], [5, 3, 1, "", "7:4 ff54a914ac772400ab7f8e1137740ab8ed4cb109a88eac4469cd396aaa3b0ee4"], [5, 3, 1, "", "6:15 8bb044e8939f8436404c3d077d1c30ecf3eaf854fd9ca77d18ce884f8a527f43"], [5, 3, 1, "", "3:3 caa1e7db03706c0b574634ae9a32416e067db8cda6a47d5adbd5164ff8d0814e"], [5, 3, 1, "", "6:8 8be6b0876309d2276c585936c4a66f82b7a0f32e63bbfcbb8ebbb5e2c256835e"], [5, 3, 1, "", "1:2 d45c4e602e5fcc8e446a29995cac45076b42eccda45b5e42890bddcaa67ad409"], [5, 3, 1, "", "1:5 7f491c33585f862cacf2ca8babd388b0f8535e316309b2ba3159cc723be6d9dc"], [5, 3, 1, "", "4:1 65769f4b7f0bf9a9fcbb5e6b26a1f58966bc356349e7c74d9ce48fc53a248d4e"], [5, 3, 1, "", "1:3 583f848b015193e3503778cb45bbdf89f53d1f9187871beb1ec436e304b6d588"], [5, 3, 1, "", "6:6 2294fcd2876d3e68ee5271da38ac8445007b7d3658522624e1ec58b99b815478"], [5, 3, 1, "", "7:6 fabfe690b8b6598067a744cd77a4d7aa3fc628d1441118ac4233532e401ee3b7"], [5, 3, 1, "", "6:3 786c9c18c0260006c1dbd6e14962cec2fb012e6d4697db9bd8a075e5fe0f8f81"], [5, 3, 1, "", "4:3 dbcd55ded2490510583c761de4a78678e93ec14ed0ce9f217dac1a86f1afb55f"], [5, 3, 1, "", "7:7 361c2bfd385803a13b6a123bc7e35986a8fbfb5c166507aad04479bd53e8c545"], [5, 3, 1, "", "6:1 76341e2e5ec7766dc0c0efeb173d69290676e7ddc2ae0dc881cc567505c9ab59"], [5, 3, 1, "", "3:10 12585479c350e3e0843e2d87f37d3677d4633473dca2547f15f57202375818d7"], [5, 3, 1, "", "6:2 3f63777511e3bf35174b31fe5c348a66c360584e8603e3ce47320961aba23159"], [5, 3, 1, "", "6:17 78fd4e85f7ed2bdde136e635abab8b71e8bef862ab9d2f0e1298e80b8cd25b22"], [5, 3, 1, "", "3:9 5ad23b0907a29189fa1a74f8bf5476fb33b2fc896867ee05578a56cb100c6a62"], [5, 3, 1, "", "1:6 2ae7fbc17de06563bab4b5def815bb8c614a97ec994c1b366a97986b82bab1ef"], [5, 3, 1, "", "6:12 53c790e0a17baa1dcef15441e67d7fe84f88a8a02a1b883733d73bc34ce24cf8"], [5, 3, 1, "", "6:18 cc7470153aa2f9c1f440ab45ce0dc158071c6ba5256ba0ccbf8803dc062ab353"], [5, 3, 1, "", "2:10 0696a4a3b5ed6eb90e20ca85c60062772b02baa6d24ebae318d2095a18fb4fc8"], [5, 3, 1, "", "2:1 d4c1d7e8e87bde117f7eef40c2ed32dc1c2a695289603f5334165e62e21ea011"], [5, 3, 1, "", "3:4 e77b64bb75965059fee8ba69865a044c98d24a10f4ff9b87845e4bf0c5be37ec"], [5, 3, 1, "", "4:6 8868caa2d82cf27983ef85d9c1fdef0ae951dce04f87c0b087973b7b2eee4c45"], [5, 3, 1, "", "2:9 a424a37a558f279d3eb06289eca3e8149712a515006853466b2611ed10a46123"], [5, 3, 1, "", "4:4 d93a03586b9947d27de86fb8e62b6a156cb8bb2f62500dcd24c757171cc8eff7"], [5, 3, 1, "", "2:5 e8f136a176cc0fe0f3606d8a8b17073dca041afb3be51dca7baad6ec757ed5e9"], [5, 3, 1, "", "7:2 74df3acc9f454cef49a7ba6430fa2714b9bdf1d480f791367943a7f0df8f90a8"], [5, 3, 1, "", "2:3 5e1a9650f85ac94e1206998655ac484d49b8d873790fa1466b26090a9c4e31b7"], [5, 3, 1, "", "3:5 3e51cb18f2c75e888c4486c269a44ff5c2f930b7d852028948bddcd9c20b982a"], [5, 3, 1, "", "5:1 854fe727482c863a6ac68633f1b03cdb775d6fd369dfc1555967870c794666d0"], [5, 3, 1, "", "7:5 09b36c35bd51fddd17ca377ef398ff6638506a4ae181b94585b82c3ce0acdadf"], [5, 3, 1, "", "2:8 4d4e481fa82745916564f6987fc8a2b8f1810a95fff0051bbd458414e8de7eb4"], [5, 3, 1, "", "2:4 77829c689886c3f3bb6c1dfe3b0fa04247f0751c665b3e8ac112a26ee181502f"], [5, 3, 1, "", "6:21 3bb40dd59b9591b997eb61cb83d0183babede69184aca68aa875556213ae03ed"], [5, 3, 1, "", "7:1 49b3e7e14f92deb7aa014630cbd240f23c879f0e06215675083e2cc8e2ea0ca4"], [5, 3, 1, "", "6:20 7b9921e75e5329e2cf5d41b41758b55590769f045e313e6ba78bfe34b35d3d0f"], [5, 3, 1, "", "6:14 ed86179c1505cf9edbac787d45ace6e323297724305d5a1ba5d37bd9159fec7a"], [5, 3, 1, "", "4:5 8591ccb83f7eceed6dcd5cc4e8fe84102a7018a1e95b2845425471f83a3d18ac"]], "A": [[16, 3, 1, "", "2:34 1c4d9cbfb808d36160fd3001c512e6887268a758682958c644bcbe07f04a32af"], [16, 3, 1, "", "2:21 ee98c5a9da1ccf20da27dc04bdfd4c6b0ee7b4dd5180bb435515d300e6aa7c1f"], [16, 3, 1, "", "1:5 38194322b850acd0ebe5ec95d660959c07d88f87ef2fe6c7912a773201dc4836"], [16, 3, 1, "", "2:9 a5fd12a0acbcca3ac4cfca07cb3a66976c749dcabc7c73c69ed9abfad2067282"], [16, 3, 1, "", "2:4 a423d8767937df97db94bc21dea4f19e65f5d2a464521f2deca8482ccd4eb2e1"], [16, 3, 1, "", "2:7 619babacc89fcc3a48bee87f41d8567998cf7926a806e7bcb31bef0bc1bf70fd"], [16, 3, 1, "", "2:26 c6ab38d458c9605260610ec31abaaf83a03d54cc4109c75ce57d5330b7e0ae43"], [16, 3, 1, "", "2:13 03e71fa54f500a9dba9a17354fc29921b6a6421fbdde23db702448cfe7f3d731"], [16, 3, 1, "", "1:2 ef760ed2bc838098d7e8efb78966c4cd75d281f71907582b05283c54343ba0ce"], [16, 3, 1, "", "2:35 9c3bd1dd9f6780741a46dfb5af593752082db35d8ce9d3eb8ae7d663e403c665"], [16, 3, 1, "", "1:1 6af57950721e83dae393e90ca8d980bdcca5c9b81a188fe360ec5adfda00b6d5"], [16, 3, 1, "", "2:3 511b49aedd83a0711011cf0a3d3ffbc8faa1c1443f13b71376c4ce8d0b1c6f6d"], [16, 3, 1, "", "2:10 aa73e595c7b2ef9149acd45a1b91fed2704f511303a5b2ae619eb01a1ffb9410"], [16, 3, 1, "", "2:12 67a79516239a86e9f3ac268c33cea7354013e2efe8dae4acf776dbee55bdf3cb"], [16, 3, 1, "", "3:1 43b7d2588a00010b6644920dff56e6f4652ec966cf564d52f3e5e87748e58bbf"], [16, 3, 1, "", "2:8 d902ee93c8c40420453bff915be7d882e3390fbfb7c3d38905a094dde4369625"], [16, 3, 1, "", "2:18 74231e6684fc04c3f1ed8c36da5619eb35f84411c9f9fbbc9354ff69182ec20e"], [16, 3, 1, "", "2:36 a3d8a030eaf80e2f2d7b0b8c819a8b4a03d2468cad162b5778d7535713e6eb54"], [16, 3, 1, "", "2:33 839ca0d83587df0f49d5e7af7a86cb4ed2526d3c7a4fb98ca1e7031d41e9c3bb"], [16, 3, 1, "", "2:29 5cb92d044eeac194b5d3a2e2fed02e650bdca56fe9e6386c4729f39717879270"], [16, 3, 1, "", "2:37 2caf6f88f365a1f0b8673022f566d0e34e5f487002cbb975f7a3810984aa2b33"], [16, 3, 1, "", "1:3 a5f9956bcdfc5ce615410d2af601a90ce92f066360a5467a27d39718da318796"], [16, 3, 1, "", "2:27 dbb66a9641f131e6288803d7b31289cc46c0c00d4bf70ecaade3c44dfb5acfaa"], [16, 3, 1, "", "2:31 df088a3e94ccbd2e98926c4f5ca34fd02f3cd8dfc3924b7ba3749ef0eb08b68d"], [16, 3, 1, "", "2:14 d890372e8c497682bf9b4b51d8b75a7211ca6e6b4ee30436e8c59dbbb0149bf3"], [16, 3, 1, "", "2:32 1a6497e3eeb694644723d0a451104bff4dd133960c27e3d4e9b6c5282cdcdf2a"], [16, 3, 1, "", "2:16 f0a11688e77729f1b2fa1e4efbc104a39c8fd916d1f58f90eefccd38b209c0d6"], [16, 3, 1, "", "2:11 c9b7d6603bdf686dc20a9604928e83ad51a6e432ce273673e0619de6904ad3a9"], [16, 3, 1, "", "1:4 20b03a1ea2320f89250e61fc875c4f01597a27856b189891293511d1c3c55df5"], [16, 3, 1, "", "2:2 6b9064c87e131c2318a938f837e161eb0c65d3f5fb3d76f34c6a07ac89c08f73"], [16, 3, 1, "", "2:25 c502f762cf1f733336f2b49fdabec625a400d1b9137ba436de9acfb180ea3681"], [16, 3, 1, "", "2:6 0c8baad676d0cb1c29fe117e5864ef351160f102c13d047d354e16c2145fc69a"], [16, 3, 1, "", "2:19 b5a621567e61cacbad30b9320aa5fa59abe37e46a15e890c42ad445536c69bd0"], [16, 3, 1, "", "2:22 870cf6f77ad5d8ef0cfde85af78b7c2a507c6e6c8db5bbe62b60548c02229cfc"], [16, 3, 1, "", "3:4 f227391839011fc1299d7eef9855e682ceab676478b839480bb5cdea3359f70b"], [16, 3, 1, "", "2:24 d3162aaf802254c584ffd111d733498e754b056c61bdb59144aed5024b8bc566"], [16, 3, 1, "", "2:5 bcc06c2a274e4878336dd5b4c71758d3b854dcf325e9f4ca54c1c6501dccbcee"], [16, 3, 1, "", "2:17 4a50d529d3ee650e897db5b0f8d99db215c718a75f11d527d5c560abc287de09"], [16, 3, 1, "", "2:15 85d7c24f5cba0d54181181872cf27f0cad45c28f1d281733ef26114ef08e1bea"], [16, 3, 1, "", "2:23 e4c5f14a1bc396e634f99d3e9c008a29af8f84b61dc6da057710d23ebb6a1855"], [16, 3, 1, "", "2:1 7659351efeafb9bcab1f7bded9384347863a49e48384d8b8f59f4aadc9c047d5"], [16, 3, 1, "", "2:30 a69bf85bf1838570613037b4423858a9a047187494aea6e78ae1c91c9d58f711"], [16, 3, 1, "", "2:28 f6437e117dc2304d057d9a5394bea1e927d97d91a0451366fb3bdbaa35556c6c"], [16, 3, 1, "", "3:2 efda707a511b8c7e80727098049e5458105f2960dc74c0d7faa11a43f7e7d997"], [16, 3, 1, "", "3:3 dc6e47d05ec79c0cbaa15dd61b6a60ab03fd6f9d7e2f51df6828fc53f4916265"], [16, 3, 1, "", "2:20 aa50ce2c3adbcfcae86514a554462ac599522a77d99072af00fd41aee7896afc"]], "4.7": [[22, 3, 1, "", "3:4 fef244abbffea76d85673c8b768c80e3998096122c5887ffacd05a346939ff67"], [22, 3, 1, "", "1:8 3a43cc40eddf138b65ff58d01174bf0f377be62e4998881c0e34b316af1831fb"], [22, 3, 1, "", "1:2 d51b172a0b8675c28c409e4d5ea5bce285ae17d936f4f4af0f5a80373b22ada7"], [22, 3, 1, "", "1:6 5860cccedbc0ac25984e9603b83f1259c4af97cecc8084f5c140164f6865c5e1"], [22, 3, 1, "", "2:3 82bd1634fa77a9d6d3b725fb993892cad15fbe87ece6afe59b2f171f2a7721bf"], [22, 3, 1, "", "1:3 2d95eda82b646831bce5a240ff70e298c0a039e3ac40cb6198cb334c8e980d60"], [22, 3, 1, "", "2:2 f69e8334863b9e2b7f3bf48725d48a8adf59c48c3dd802341bfd611dcc03d690"], [22, 3, 1, "", "3:5 823004ffa0528651765ee5a2a23b26f7a33b4255a564f742c3923781a6b70102"], [22, 3, 1, "", "3:9 fef35c5ee01a70578d0ee80139418ab1d555636b9d7a83d7cf5bcf38dc454153"], [22, 3, 1, "", "1:5 4107a933398a84d0b8af66fd006db6a72808511b4af3e4c47b71b0dc795fc8f8"], [22, 3, 1, "", "3:6 19c8db7f4aaa3f7224c336d60e3c57d17ef21d93e5ececa9fbb1d09175936b0f"], [22, 3, 1, "", "1:4 4c515636546df76626dc2ce272596af3a6ef395d6dc61f52cf315cd82732ef87"], [22, 3, 1, "", "2:4 6bfba3dbe307a3b99ae68a7d7ad6ee97648893f1aaa0a786262bff92bea33aa5"], [22, 3, 1, "", "3:3 989727897539b6eef42387c5f240b13d4ab9aa9f269a111e510879ada1ae0960"], [22, 3, 1, "", "2:5 9a80943af437a0fd5e67c5bd656fadb3ce16e6d7b59218c8685ae1e0a2c4d9a4"], [22, 3, 1, "", "1:7 d2541a3280f1d894821db0f1648bbadb29e2c211db75fba997f3d2832ee527c4"], [22, 3, 1, "", "3:8 585dd4699fdeac3e280d38797a9c9f9565c4194543b3c1c048a0ef33913a5e66"], [22, 3, 1, "", "2:1 1854f3b6844b0c2671dfc60d36c4b998358f29c120b234bec672c72aaed507cc"], [22, 3, 1, "", "3:1 e9a8f32c3bfd274934e7c471016afe023d42728464a9c6ad6934f0738cf79a22"], [22, 3, 1, "", "1:1 276ef1476e7ceccaf33821c0dfadd47de95e12defa884eb6eb9da1bcd89311d4"], [22, 3, 1, "", "3:7 2784f42b85409ac61fe875e01d21162c086f0411280475dac703bf1a2ae98fc8"], [22, 3, 1, "", "3:2 15503795396e6eb08752e159af664fcaf59c4c7eb0d754480fbef0251d74b28d"]], "15": [[18, 3, 1, "", "8:12 aa403db4f036453bba3271f4509a2302488c5fd4205bfdc4f54cde71db726013"], [18, 3, 1, "", "8:11 04f68fcba1cc880a1b5acaefe6abf4f93cac7e0150747463062aef3aecedc14f"], [18, 3, 1, "", "8:21 67a942cc52a66f9f90a3a9131beae16808a17f3f4d7d49fdb08ff42f734ce302"], [18, 3, 1, "", "8:24 c3e4aa156bda861e6ef22a6fa15d0e213a08ac8a395097b3bae8fb744bcac564"], [18, 3, 1, "", "8:7 e18cce725d7e3e2f64db15d95adeb42a7a9e3d806e422bcad663e4734ed8ebab"], [18, 3, 1, "", "9:8 4b4f51cb30705d0cc7632e1f0e4132697ef1cdbe4cb781a401e1baf0ec958fba"], [18, 3, 1, "", "8:22 1dec6a051b1fff3a1bdeae59f4b0c13eae973e22d62993017cf9176ae6c41ef8"], [18, 3, 1, "", "5:8 97a3445c9540e7ad4cee9865d34bc4dd2fa75219dffd54e92dded06b85c59541"], [18, 3, 1, "", "5:15 794dbaeb036da65d453284a372c0a58b55b03099b8433c2c1acea02cf3ebfd44"], [18, 3, 1, "", "5:5 1f5f58ea8bff9c3f06d08ec8804d370315b1c1190ffc8f6354263a3d92fe64a7"], [18, 3, 1, "", "9:14 beaea22f979a7a281290ec83d8d0ac0786a9365b64f973a51a5c48539df32310"], [18, 3, 1, "", "5:14 1f27a382873eeb1cbf8a680f1f4445841e31a6ca70791b7e72d1f0064c2e99e4"], [18, 3, 1, "", "2:4 b86bc58a37e2d666845ddee6d0ec0fd647264ab45a39b676bc6bf201782eb03a"], [18, 3, 1, "", "5:7 e84118fd70dabb3e58425bef7f6dff825e6a847042faa9129285c5a1ed911a36"], [18, 3, 1, "", "2:6 0cd3d0fa123e7c11a9a250acaa0cce74c5f8760b6099acac8e084cea9be81ebd"], [18, 3, 1, "", "7:2 99e01849a304562c74b7705792700bbb8f792f332352a99fbdf6a23f3f2749a0"], [18, 3, 1, "", "9:10 61f14bc12e0d1c55c7aa99cf8c4e500d1effa786d1f50cc8ac8463693abeb1fa"], [18, 3, 1, "", "8:28 690427f07bce841d8ea70b8cb0864491ae88e1b7d4cfcf9ca2fb45657c8c0d87"], [18, 3, 1, "", "4:19 03dd78205c60d4db34d2c0df7ae70512ef3146fca9448710dd95263fcd3f6d2b"], [18, 3, 1, "", "4:16 149e44f235c43374c698f45f8d37c9cc0f3fdf6259dbed8ebf1e378cd322196d"], [18, 3, 1, "", "8:14 3f43cdcc50a1a53af990b4beeb71262819034dd32a82fcb54484c052b19b44c6"], [18, 3, 1, "", "7:10 3a5360261dcb8e8292661839009fff3c71ef4a3d1c9f45a2d85f861f4b707310"], [18, 3, 1, "", "5:4 f8d36262285cdd2b4bef51b17a98103be0501e5e38a087145322a3fd9713f59c"], [18, 3, 1, "", "5:16 2f24b0e12326e4ad6c1cff5ea009d0cc6878e98b4f8f16fd738a89a432461c62"], [18, 3, 1, "", "4:26 6a5074176f0372826a30df9614dbe4e54b3e06eab80a1ce84b7b9d7c94e3740d"], [18, 3, 1, "", "9:13 095cc1d51b861087a618aa1e4e9fc0377405a71c6d4d02c44502cfbfb34e962e"], [18, 3, 1, "", "5:18 242ee9281937fc599be5d057484f99ff16cac54d4dedfc9817b957bbec3eac6c"], [18, 3, 1, "", "8:1 fa365174cbf5682b2addb5a47523a886be22f15c45e88cb5d01ef13a92c0d9b2"], [18, 3, 1, "", "3:1 681fcd31b82b3e32670aecd9ea9b4eb8068d07a7b2cdeaa6d9fb1442eb63ed86"], [18, 3, 1, "", "8:29 96c9a3b88a3cf78a0260b534ac8bac2c2676692e6504f28abb95658a7c723ea2"], [18, 3, 1, "", "3:5 71b66b39ac5995dd5408a51d900c9e4a4c0b3f6de90df9f32eeaf0c9f79a747a"], [18, 3, 1, "", "4:17 cc4a5686c478a89047c0820552383801bd383016256838e3863695f994f8b314"], [18, 3, 1, "", "8:23 92013afe5f273d886cf33357afa293c5145b38dd0ea03a2758611998c0ac0b32"], [18, 3, 1, "", "7:1 58a815029e5c5abf31dbdc0ae371a884c35141c19fa227ecd118d8ec5c7977c3"], [18, 3, 1, "", "9:11 2ac52c80f7a45d49874b8b452b7d5541e0200bef9c38d6f5b32c0e20bf9296b3"], [18, 3, 1, "", "9:4 14fdcee19609abf8aeed5f7e20952a848faecfba256dd405eca3cc49a24b338f"], [18, 3, 1, "", "9:15 b0246b982f33561e6c330d7de3f8c8d00db491873c9db1eda52117c58981edbc"], [18, 3, 1, "", "7:14 a023dc4d0c98b62c2d9576d70e51108a0fdb29ba3f14769c7d87ab09d1f0938a"], [18, 3, 1, "", "8:27 750908f479d13e69946a538f5a81e56c3d71d08e5c2493c6129c77568fe3de66"], [18, 3, 1, "", "8:16 05382bcb6a5dca3a3b33debf11b819bbb3b2b29f4559e6beeaad692d688c87c8"], [18, 3, 1, "", "4:5 3b7581ecddc33582b4cf58929333c27e97df213d56721343355ed7008eff2fa2"], [18, 3, 1, "", "7:6 b88a85aa7e4b1891ac3ed4ca23a4b92b4e035715e966e1f848f1e21427d23845"], [18, 3, 1, "", "4:1 de2ae1e7180e12235906678b7ee4195bc10b9f11839f8d171f9c875c94521eca"], [18, 3, 1, "", "2:5 5948683124b4a837517cb460bac495efff05e298bed8420a688b19d16de45eb2"], [18, 3, 1, "", "3:4 bf9feda03dfdc034cc70417fab5c0fb8c43e76acb709672e810538a059178ac6"], [18, 3, 1, "", "5:12 994382b24fcb146882e480cba7da6ddcbbb55a473b76161b1167a520daba8fde"], [18, 3, 1, "", "2:3 ba3e26bd692acacc422e0367466b77045e1802b133f0ba5cdf155ae1e2c0b5d4"], [18, 3, 1, "", "1:2 317ff352b8f0f3c112a25e2c334aa6f7e2c227140ef1153851b0068b65544c4b"], [18, 3, 1, "", "8:6 62c1b4c8906b7867a552ab0c166e92d1673c4e6c996c6e82c55fb18155b337a5"], [18, 3, 1, "", "8:9 7478e15bd141efde6f849fddd3e660a3198328261280e11802f707445106483f"], [18, 3, 1, "", "8:32 571f4508156e008bb63439e1b7abe647297d7fbafe515b8c2a3a24456a52e99b"], [18, 3, 1, "", "2:1 e347ab2d0c9e7fb6d14b8e7ee107a2220a39391724c13eeaab6b25939b1be2d9"], [18, 3, 1, "", "6:1 b715c62ba79445fc86b207de20ae057aeb387fa46fc4a9f8b5d99105c88061e7"], [18, 3, 1, "", "3:12 7ed63b28b2b7484eed35560cff9dd3420475b6cf99b8b7e943fe944ad33957d9"], [18, 3, 1, "", "3:3 f967a5d91406384965a89b7d358d856f9b96ad76e062a2aa0cb0b238c5053633"], [18, 3, 1, "", "4:22 fea10cfdc65f1e4d588fe2818f275ba47fdfcddd88877c316ca57791ba5de14f"], [18, 3, 1, "", "3:9 d346ee1754805482153eb4b0ca31367a70b20b0e6b21c40c6d681b5c9b3409cc"], [18, 3, 1, "", "7:16 9a3ba3981279a98242813d19ecc21dcce387bb841f1be9398442ba10e7d9addd"], [18, 3, 1, "", "8:20 a35aa796d1ab80a5df343d39e3e12923a8a46fd0df82325bf334669986e7d03a"], [18, 3, 1, "", "5:1 ff08808a01947415fb2eb38d55e453078c88c4c344cfdd584e2fcd09ce24ec29"], [18, 3, 1, "", "9:3 bc677cb2ecd387ad028dfeba3096263c7bc2aa8bdf981bb3fc76e9d4bd8d0885"], [18, 3, 1, "", "4:8 1acb26f55ea7c004ebe759dee3d3aa058f514f0dc242d2f980413f9e5269d8e9"], [18, 3, 1, "", "4:24 c316a6c432e9e7d33fde24e96df550a3e74333f7b65cd38e5a7f799997d5db11"], [18, 3, 1, "", "8:4 557bd0675e3046e13b7a004ef78b8b0f946bcca78bc242cb76364e3f991f1d3a"], [18, 3, 1, "", "7:4 25fab97c21fc263acb73e4f9c015d9ebb7c96ec0f09fdfa35e4550aed472dde1"], [18, 3, 1, "", "7:8 6700d76d9b324a672ad7ab38cea76bb82dc3777d197b6f7e89d0e5f3156594b2"], [18, 3, 1, "", "9:12 5cbdd388b3d5de9f7fcb63733ebb916504fce634b415f2fcd87d3683cdcb52c6"], [18, 3, 1, "", "5:13 754c9ebda067292c99d20bc43c433c797e386d1c651bf1cd0d37d42596ad9b86"], [18, 3, 1, "", "5:11 ce6808e7d0727241eb783b7bdfb02998d6e5865d3d0d97dee49053512f5a3943"], [18, 3, 1, "", "5:2 aeefde9a0ac87118b21744a83a1a7e010b3cdd7a6d484f2225c2909cc9256ef6"], [18, 3, 1, "", "3:10 e8deafe60392b60bd424d7aa0309647dbf4ed1e7325348f23f15970de9f05ebf"], [18, 3, 1, "", "4:12 958c02a18095324946b8dff0ea0a0e73b7cf7e255dffeaad921362798fa774a8"], [18, 3, 1, "", "3:11 8d9978a993a2da848a7a6a9e23d189173372b34e01fa6d81ba7a78e75f621064"], [18, 3, 1, "", "5:17 45a7939e44809197b647eab86a5bbb791bbd9b7b492d99ff134fd6b1b35bd6f6"], [18, 3, 1, "", "4:21 f183cb055a44d89fb2eb1b2848aa4536e06650cf6344a523690b83a29d829f61"], [18, 3, 1, "", "8:17 c38a81f8df72f87ccafba9e41d742d2b2de00acfe77e463a03ec5d0e96082258"], [18, 3, 1, "", "8:25 1f13a26446ed0aea0e199436fd0adb97cab249490f3e88c061ca7f09229125e7"], [18, 3, 1, "", "4:2 437a4bdfe9c8e90e143c24e1ca0e4cb8226d0c5ca7f02bc701a25d5adc9b50c0"], [18, 3, 1, "", "2:8 4f92e492c63996bf71cb5f3ffb86c48dd7a928decb62b7ea6fa936acfbef7a78"], [18, 3, 1, "", "4:7 20c3b044f90c2789882b18d6e87d0e3e641507a2d6af5c0de0ae5274181a7d06"], [18, 3, 1, "", "9:2 0c3b33caf3b9c961df39107ec74da60de4eb20ab99798df119cb2faed79efe15"], [18, 3, 1, "", "7:7 ce0fe2c8975789b3ccac42978e94c8cf22385f6f021e809465af734f19bbe334"], [18, 3, 1, "", "9:6 8da2ed90a465a8e65f20c991391be8fcdc1d7b7d35ec5e06dfef767d9b68cae4"], [18, 3, 1, "", "7:13 3df5eb307218abb09b95ebf9bab92992011b11bb1c5d1e246c3160e5a71afd94"], [18, 3, 1, "", "4:9 f6b207663eafd42b6f7e8445b48751f5e9f3ca1c278b649e94105c3b0c9d95cb"], [18, 3, 1, "", "5:6 e1dedaef11fca8fa7e09c7906b87ca804da421ff7b5ada8a981d024d16ae5c6f"], [18, 3, 1, "", "4:15 d898ade965c0b2fab9cda5bc5233816f4058b485ac65840643912b375625ae78"], [18, 3, 1, "", "4:14 358d780a2a3e8a51b742e63c460cc75632190978e72b9815081a4a81aa80761e"], [18, 3, 1, "", "7:5 e33f94694a42a7f211aaec4bd688778421eba9168af369f075a51652a55c55d8"], [18, 3, 1, "", "8:13 070c24d985ad07d4a8affc27d166c94f9beaee7f6c83f82c5249ef04eb845c8a"], [18, 3, 1, "", "8:15 38a763a575ed36ac0f33c0e4c97708f46f5634a6bfca712737225d732788d27f"], [18, 3, 1, "", "4:11 7f48612f428ed200a7e825eccbdeb3e446b9610271bd51fd922132fbe878f65c"], [18, 3, 1, "", "8:30 41cab1feee08b6f4c71f9ce9cb18a539787287a0d87320b8477673fd090b1221"], [18, 3, 1, "", "9:1 6d998923ce960019bd73240feb0f4f1e3e9d705bbedbaf213c73707899dfd504"], [18, 3, 1, "", "8:3 aa4f1d2f9b7ef3586caec5b558b58e35cb2b8cd615ba21adcf9234ba7283bec9"], [18, 3, 1, "", "4:4 25fd85d527ce1e92367c4336524809c097742c03ed948860ca2f57d950ed5846"], [18, 3, 1, "", "9:7 df8e0a488a8a05da58f4656abffbbd5eb240a8a0ff05293049814a5fdf5acb4b"], [18, 3, 1, "", "4:10 cbca8f374f46d1ef54e4cf6beede54e85406b5090edddcbec4fdff0d1c91b6cf"], [18, 3, 1, "", "9:9 1dd15f42037f9a83cd43f4dd42e7ae00f8d5a9e674152e738a0abc09c7f2ba8a"], [18, 3, 1, "", "7:9 27ce20568cf31821f40322d7cbca37c6e7f9a154497206aa2cd66da3c71e14fe"], [18, 3, 1, "", "4:25 2a70cecfdc326c846957ef22ba6e0c76d8a4facbba9982e01c2fc53517b16b2b"], [18, 3, 1, "", "8:5 89634ecd6c544d1fbf8a649d790b5173d2a09803e97525c89f9d827df73ab265"], [18, 3, 1, "", "8:31 d23e4c8eeb0eed8bb71e11637e19abe752abf0f59454434c187efb281833b269"], [18, 3, 1, "", "4:13 72159700271717da9f616eff159a367b6f9b0637825319d7dec05001f401a601"], [18, 3, 1, "", "8:10 2210651d12709f733124d5831bdb32f27f192f93fa3be518eb6b7334a6531966"], [18, 3, 1, "", "8:26 942aadd6edb16dc7e80b6f2cd3392f324ea9d00f9e61794c8fa5ec6b65b30d82"], [18, 3, 1, "", "7:11 2b1fcd39b5b78562ea6e359c8e98307553d5ffc8a1c9188166ffd9fc296d0a8d"], [18, 3, 1, "", "8:18 08316305ae1b30302790dfc45803df2f527f449747eb34b2a91b407beec878b4"], [18, 3, 1, "", "3:2 1a8fde4fb240539c10a88279cc4dae22433448e6531485e2124cb8558d6c828c"], [18, 3, 1, "", "7:15 69b3fa403d23f715b291788890e24ebd09e6b009e67a21e5edf9c25f29e037eb"], [18, 3, 1, "", "8:2 7fcf965dcbfb27fdef8959d59a625da3fa44a0d931095edf51cd4b5db75eb01c"], [18, 3, 1, "", "3:6 0f5c895a4ac62ecc6ec04b6282dff022b535c2a19bd75b50defdbb28493da899"], [18, 3, 1, "", "4:27 4478129ff7c47921151d2dcf57a362bba167ad848f1379667903982fe9676594"], [18, 3, 1, "", "3:7 f0435a5375c7104a39cbb51a31167f29e447129fae4e42da7755fd5b0d546300"], [18, 3, 1, "", "5:9 8c23071abb8829ee058cb57ae16a5f81b804ff2c1d55f7ec813bdf648a0e5ae8"], [18, 3, 1, "", "8:8 06a9f847c5fd97acf184ee400bbbe296accf5d480e6cef5d1766f5fef9270c17"], [18, 3, 1, "", "8:19 770bb15fa73a6c965d591c00604c440c7de7c3e3257c6f0946cf7be4e1cb394b"], [18, 3, 1, "", "5:10 5fc750214c56a9e1435062359732e69a801b4413b5f235c73614e41074c91c13"], [18, 3, 1, "", "4:23 3e31ed577d258e6cdf238a0549751e8b896d9c2cb6ae51fc176c88803e14822f"], [18, 3, 1, "", "3:8 94a208b99cd67ebc20f0f3baf1d225f9f8e7bd033c2196e35b0a01a1aa4c092d"], [18, 3, 1, "", "2:2 6ee782d7b7403e35dd81c6622fb5562c3c6116ef95eca20a6496d36f6acfe442"], [18, 3, 1, "", "1:1 5144c7d76d836132f4544481a5a0aa566e56d0824bc6757bb51dfdf413f2809e"], [18, 3, 1, "", "7:3 780a665cd5b58bccb729342e33dea24cd6f074a7109cee63ca9412cf67d69b2c"], [18, 3, 1, "", "2:7 063dff1709d956a48b2bb9876a5fabfda25c3ed4b35d8449d19f6163c27811c5"], [18, 3, 1, "", "7:12 622d773bd119d86de850502b8e92eee57b581476e14eff7478ba5d558629c86f"], [18, 3, 1, "", "4:6 9d0d7ecaba0ada2895a59198323192c4c0562b596b94bea2c49be0968c22b934"], [18, 3, 1, "", "4:18 fb76d5f2ecb1ceb8b3aa709c4729fa2ce46d3bf98262aa34f8d39dcdabc2aa10"], [18, 3, 1, "", "5:19 162688f5929bce2f33343b1dcf6263ceb3ca10d03307199ad9ab3e4ec746aaf9"], [18, 3, 1, "", "5:3 632e60b88c4c64ddd9b7398bf3476151bc5701ad1b4a760220667139cf7bb56b"], [18, 3, 1, "", "4:20 5812abb90fe17f8f0b9ec36241547534230a80cfd63db34d650ad71f90d18b2e"], [18, 3, 1, "", "1:3 5aae1e903f79062d2e7d47807976de140feb73932e1bd4d1db63f2eda9a280e8"], [18, 3, 1, "", "4:3 35970b8df578395e654434eed83f9a06ec63a12c4bbf7e89bdfb97e21a7b9620"], [18, 3, 1, "", "9:5 717f7f256a61d53de344e5a6553b5529ee34e430a67efc99ceab0162e8631a2a"]], "14.9": [[3, 3, 1, "", "2:8 72843d941971110fefb9a9b6995ef90cd5b564d6639651630b631e41ee4e491e"], [3, 3, 1, "", "2:27 64374639950e73d231a40ccb24e159d9cd1d7dd8e03cfab109bd17a57ea06805"], [3, 3, 1, "", "1:1 aaf0db1f36f8f15b96618b5a70cec4a15e5d625748a8590acdfb9e046f222dd1"], [3, 3, 1, "", "2:23 2cd76e3de2de59d6830b6ea7fef86225bf36e7cfcecb6ebec75030fcfb2efc73"], [3, 3, 1, "", "1:8 9f3f6ee5e9400959e3a4445be267664e3ccdec6bf0887f243d3696b27b6c2ac2"], [3, 3, 1, "", "4:16 f1bf72c3463050e387b72d2514a1d90f3ce47bceb98da6b23877d0cf3a67ad9a"], [3, 3, 1, "", "4:20 8d75724256d8acc0107bb9928323bf6eebea21f3cb90023f550e681bd0f4c068"], [3, 3, 1, "", "1:7 3c9f984a5a8cf97fecfc89b84a15e8ae272e62c460b0988610134cebefe43a63"], [3, 3, 1, "", "3:5 f9822b671141f854469f2aa328c18a596471e264a51e4f3c1630f47b3b828d76"], [3, 3, 1, "", "4:19 288a6623bd127a3853dec6c8c81b675f11276f49d7085cdc4252566638ef0cad"], [3, 3, 1, "", "2:15 66ebe678e1ae9102e4d8521706cef63daeae10b848e263ab3766e4aa6cc9a1d9"], [3, 3, 1, "", "2:18 04832d6c14ff2380c1a19024f980142d165adb58520a40c0c8af80ffe1fb55c8"], [3, 3, 1, "", "4:22 bba6464e5850bc807bb84138c417abccf4d8e863b7cc927a7dc6c4f574742d9f"], [3, 3, 1, "", "4:6 725b600fb8ecdc9eddfb8e2568ae2102893884fcb7c6aa4e1963c948b242dabe"], [3, 3, 1, "", "4:1 55361e7d41c5c24510d526001510c8bad4aef48dbd51f81ef0d1fe0e7aa4128c"], [3, 3, 1, "", "4:8 ed06a87167d12f3592d3f1f3fe6b1b8dee1445d3084186ca2eb0c64e38d0a195"], [3, 3, 1, "", "1:4 8a8e13fcffd5809ce5f90c8ea9cefec9fa5ca58b1bea8566b16d1fc9a6040f1d"], [3, 3, 1, "", "4:28 5090abee767f23b1aea068bdf5cf40ac88c35f6bab4a3fe0c8da122c592d1093"], [3, 3, 1, "", "2:14 8e4b764f8f8a09f136954a2bfc947ddc4eda420f1148fad92fc5fa7a24c12c13"], [3, 3, 1, "", "2:20 f01b3809e31f3e711b3d853cd5dc8d1acdc431c60f9d0c04452abeccb6190de6"], [3, 3, 1, "", "2:26 c3218b553ed9d95d1235f5fc0fd5281890f0bf12ace5c8649ae55530225d53e1"], [3, 3, 1, "", "2:21 e610b83f08f3c1ffeb1693c97a13b45472e77067e9caff1501681e6e4ff7633c"], [3, 3, 1, "", "4:10 8bc4d6164a3454b1f92bc7c3b987ebd35d035f0b570af2120160837269eb6880"], [3, 3, 1, "", "2:4 0cf16c00febccc266cbb1905aa697021947ef02980576e67df40efe5cf32c0a4"], [3, 3, 1, "", "2:1 506663a2566f85e068c82d0103f1ca78bd821cb68b77fbdbcd52c1072331ad09"], [3, 3, 1, "", "1:12 4e24dc92aa06d5b4ad0e1df6508c329176170f30e1a94c6692df3e2e12215796"], [3, 3, 1, "", "4:4 537b298a9d54dde06ac687138d86b76d85a21e75ce6b341493c8b394b5239199"], [3, 3, 1, "", "4:7 d67675a77fe3ac8c7c6a93c703b80fb47b1307005a8bca11ae42fe53388b0e18"], [3, 3, 1, "", "4:24 3ceffa06884bb95ce527ddb9ed4cc31c620d57a422f0938a8257f78e4c4f844a"], [3, 3, 1, "", "2:9 6d27f6b19310c77c713cea4e5c7bb344db8cbb3fdf479386c7233e155236809f"], [3, 3, 1, "", "2:16 17c39504c2086447190664d68d7a3eae124510357ebc7f144f3d1b25f7026518"], [3, 3, 1, "", "2:10 cb39263ec9ad7cd027df0b037770018592ea1b93c52e02c1e911048464995f86"], [3, 3, 1, "", "1:2 66cc3c2c1a5ec6dd71396911c8316e01e72ca51ce4bc489387e1e7b0b3371827"], [3, 3, 1, "", "2:22 4380ca472e236c4d884dc55c2ab8da71766dbea2d3cc0895b010c2c48c9df55b"], [3, 3, 1, "", "1:3 19df557d0cd32382f3a39cabc59987441fef33fd672cfe083367c1432ed20de2"], [3, 3, 1, "", "2:29 9977dc1614c53e251615c07e9e08e617d47505e3cdbc9b1f313d120c80533919"], [3, 3, 1, "", "1:5 f7516801073f4902b37f8c6a2860b920595b14089f145b432e64e340de0fca99"], [3, 3, 1, "", "4:14 e2260bf8d1cd6ed1f8f560bde5a04eda03749ba3b9698be0e9e830379cc526ac"], [3, 3, 1, "", "3:4 de3fc414790cfa7bddbc44846eff2f3816840e6b0249dd0e743b4ee447d3a909"], [3, 3, 1, "", "4:17 8048713e7609c52f8f92a383762dac9c9e3c99f7aa1e987e0d6e2fe1af9c998a"], [3, 3, 1, "", "2:12 d9a23a581045be380483ef64273fb0970eb3a080cffb32f83f6ff8e0922acd5c"], [3, 3, 1, "", "1:14 c7857117b11bfd871d7e3b709cd608d66f29d41ebccc028b2b47eb0a71ae7fd5"], [3, 3, 1, "", "4:23 d976b884515464965ab2b569d6e256a24cbdd97a74803de060faefb3dcf17a9a"], [3, 3, 1, "", "2:7 2f5e3e2a6ede7f8249c7456439a30d94da8d1baf1c53135ae9fbdde73ae46077"], [3, 3, 1, "", "2:2 29e3e853007709641b0c2182f3e9bc70020808d3869acd0dcfa131141a8c00a0"], [3, 3, 1, "", "4:21 b3276319834228734d7f152a0a6ee88d4760ced117b6e497f7775f79453e1247"], [3, 3, 1, "", "4:9 836b27b41fb978acddad30353606e589d3d7a0f959fd869e0363f5f4da38a1e2"], [3, 3, 1, "", "4:18 1bf727a1dcaab6f5e8df8590d6bb1ba357978668aa0b347d821b88b023b5731b"], [3, 3, 1, "", "1:15 bb0494028f9d19ce98975cf71392baf6f4b01e861bd44b13c4eec3780403a9fa"], [3, 3, 1, "", "4:2 8cd576cd86befd359dfe276c5f05be757f54ff4b4b44768f9a4b71ec18287156"], [3, 3, 1, "", "2:24 4b79cb54112a7172b9965ddcc0ee752f7f3490dd18a445e79bd25bddb06908c0"], [3, 3, 1, "", "2:11 e7745cebb4a1cfb9d08a5ec1b5827d5cb745348158eb1ab0b3677d950118e4c7"], [3, 3, 1, "", "2:19 3700640ef18118308cf59e04636cc5b6f1c574e9b6d802e29ef33f0d5814bf71"], [3, 3, 1, "", "2:28 63fa9c1342877193573e6c29b715d5deac6bfb9eb8ea49fa19c104c6063e6b4c"], [3, 3, 1, "", "4:3 a8a99061757e28c4776e91bccebf019763e6c7876ea81a92d9a1c528165aaf18"], [3, 3, 1, "", "1:11 0ac084f03e5a81020440616fa419fc5d5b6861d4a201ef74c1be61813fdeca03"], [3, 3, 1, "", "2:6 8e912acb711b0d365e2b30de2a8c67f34bfc9132756c0ce068ee0cccafb9d8d4"], [3, 3, 1, "", "1:6 7a2ade6ee042d2fa1254f9e3a047fe526e3618d2f949b87f34a08121a165eb4f"], [3, 3, 1, "", "4:12 12d01e64bed3fb1d93c2baaba1c990b876b01143f65e13549b16e2f86722c1f8"], [3, 3, 1, "", "1:9 1245cb0d297861a8c0266d9628d353be5f835d30038c5d29c99d6ebd0af2a540"], [3, 3, 1, "", "2:17 9aed381332445df712568775e61af445c35e6c942e4722e7a4d38140ff9b3fa3"], [3, 3, 1, "", "1:10 1fa259887a9405988fa7b3381ca5a486089f705f216bc750d058d170e8641a6d"], [3, 3, 1, "", "4:13 2f1892ee92de8c871fc2ae0a0108195b7e93d76975e2ed4557897be68ac335ea"], [3, 3, 1, "", "3:6 c7df7b2b6d7b1fbd91b08418341411ea2e0a68ee04bf8ab36bcf50f60d63f1b8"], [3, 3, 1, "", "2:13 d684bf9d23507a618c9721f7ea2ec85c2736c06dbee658fa864d22a5e32c5d44"], [3, 3, 1, "", "2:5 7d99ef0d1b75056141e26deea64ad1a7c9653284138e25b5fdad0f5c30a465b0"], [3, 3, 1, "", "4:26 d4f7baf7b1415e0ddd6d71a215ed14fec816b15d9e58dcc2454d7f27e69004bd"], [3, 3, 1, "", "3:3 d569ecf4ccc75ebed4ac9a1fd2482c4db16dcb459e321909013b8a42be1b4bf4"], [3, 3, 1, "", "4:25 10ebf431ca0e173e09d0e95cc99d83fa560ba88808dfbb3c22cb34e450e43483"], [3, 3, 1, "", "4:11 28e96aa4ab999e28d472ac597a459b4f3cf5355e1f3d4e36729f80527e38a9a3"], [3, 3, 1, "", "4:5 48938e27d06bad943ff87be97fcc21540da3b77868b16a71eb117137d09d23fc"], [3, 3, 1, "", "2:25 5f2072da8fa1e8d184be3da512c28aed044a859e8fcd3ffe93c952419a84e822"], [3, 3, 1, "", "1:13 07f1cdb38f9bd8c127759860f4a51b104e71f573c2880fceec9bb97d393d32aa"], [3, 3, 1, "", "4:15 e869f661950b3fb36bb49810ed4fa5897bab056d9061a5614f1f983004a68702"], [3, 3, 1, "", "2:3 c89b01c453ba585643631dc3b2963abc8b1e4c53933b3721b3dfc7101393d2d2"], [3, 3, 1, "", "3:2 18e91497757f3ccef6d3e37f0ab6fa99650ef04419b74aa5cb0faaf8d646c8c1"], [3, 3, 1, "", "4:27 cd2421eeddd4a05db76bdfc69b504e9b4de55915c2ef18bfaa6e927a3e72ce16"], [3, 3, 1, "", "3:1 e00de8ccb48972edb964b7efe2cdb1840c249fb526d14c3331b293a3cf8cf79d"]], "22": [[13, 3, 1, "", "6:11 9227d85264bddc464ffe9527094d6daa871bb3d8c05d00cb821528e1c241cb04"], [13, 3, 1, "", "2:31 38657e66bcc21e14e87aa5238007bcac36dce73156c9c5af823e904c25658fc4"], [13, 3, 1, "", "7:2 95dbbdf815af777d799412933cfb1c6139d1a5a0618aca24c1ce9095e8a3bf75"], [13, 3, 1, "", "1:31 4230c88382f71375962eef4624b0fc37fa2ae2ebcaa2c7b401f490fc1fa26ce4"], [13, 3, 1, "", "6:6 e2e32a90c459f6211a5915bd66ddf72c97e86792880aa7a5af68a1028b4f1c27"], [13, 3, 1, "", "2:16 ae959551a354c13f23e569b07e21962fd29e91edad42a1637c61c47ffbba3178"], [13, 3, 1, "", "4:3 a9365d11f22e6d0282ff7a7829d262dd0237bb7df54f65c07d06cac38a8ef4e5"], [13, 3, 1, "", "6:18 b7cabc7b0d3991a23cd2b6064e873e856d12f722b48c78eb4f1e5c68cb9e9fb9"], [13, 3, 1, "", "3:58 719c2d431cf4fa8f1d481db9a1a415bbdba221e1f78a967d89e4fccfc93fa6bb"], [13, 3, 1, "", "6:8 6c6abff15d559e67cfbee302183c6b6cd9e2d0b27ef17f3fc6c2d2b1b8dc247d"], [13, 3, 1, "", "2:21 9a47e3602b2201c92e0dce3aa02e6d20feae619aec5f1e0369434cb2af047e9e"], [13, 3, 1, "", "1:63 770cd7d9c31bbb765ad40be40ea824f38ba9e412b3e507365f9c6a754c17551e"], [13, 3, 1, "", "1:68 641caa94a7b88594686c64a9e6c37cd6597bc61fb18259f047eb9c3a31ae1428"], [13, 3, 1, "", "2:25 5f20a84f69b2f4df1e103ed21420855eb0edd88111d65c915c9323f4e86af1d4"], [13, 3, 1, "", "1:43 2ad948609b5dfb44bd6f0f3b491e171298e449c937fe7d727429e71a03180fe6"], [13, 3, 1, "", "1:29 7c1cd463725b7565f2460515d804abdd2d46fec45b4ac95a28c0b1ff8e554c5c"], [13, 3, 1, "", "1:35 d8849406f6b817683c149ab81aefd6d29b706724c6023b66047d2edba3924f38"], [13, 3, 1, "", "1:7 bc22aaa1e0a33be94f875c5a08d1d776471f1e063929ab385e062a1114dde726"], [13, 3, 1, "", "1:13 f7001d16fded0766de3bb30882a297cbb7bd22abe36f34fae3214176bfd9411d"], [13, 3, 1, "", "3:59 9b44340bf99e2336f97d4544df886ba2d990b67388ac619ac2d18fb6b917a484"], [13, 3, 1, "", "1:33 e2996fb9db79d277b33c4f337dc25fa4d319a5b8869182db47869241a7d6deec"], [13, 3, 1, "", "1:58 c72b9ed4c401c89d36486c8d501951d76d0d37f6c2e0e8b06a1d4e20c2431428"], [13, 3, 1, "", "2:3 f507ddb8a4d78d5f4516c08061e3fd00ce3680761f88d8533d74cebf1747d8e5"], [13, 3, 1, "", "3:1 51ff09ea4d125dfa2dddd25429197d68e0ab90254402dd2d93ea531c65a622a0"], [13, 3, 1, "", "5:8 c7a214a478ecba87863b838e3cc1dc1e0211c41d45b466650cf9e1ee4af781b1"], [13, 3, 1, "", "3:19 bcda305ab21eb743bfbaf94192a7f091188f70e80d49d4ecc69cd944d560dbc0"], [13, 3, 1, "", "4:1 e080d5e0ebf43bfbc4219d2d2e397aef7c54aa4e7a03b032120b3ba79a54a4d6"], [13, 3, 1, "", "7:3 8b4f18328e73d75d6d74d43fa45304ecad3929469d9cfbf55a766168dac286fe"], [13, 3, 1, "", "3:26 8148c38c96dbc7562e0a236a6f7c2bf76b1224b0b409a58dbe086b5bd1d63c38"], [13, 3, 1, "", "3:40 c1e90e11afbfaff93f5efda1e0676fe9bc08b30d4293f557d10af6cef6e2f5b5"], [13, 3, 1, "", "1:61 bc842bb6d2622c3a029ef4614723d21fd262ddf085253092dd84e1a420f77ca7"], [13, 3, 1, "", "3:10 0f946393a931cc5b78f9934819f7aa4ba6b514ee373b349ecce52f591ebcf435"], [13, 3, 1, "", "6:9 9a59466198ee2c628bf21cf3451d438f7b681c05bff38179d054b394ca87b055"], [13, 3, 1, "", "2:29 fd2227497b01180261f81adb03ea6a85c78ad4ed2fef19428a5722d64a04012c"], [13, 3, 1, "", "3:54 2a483ecef64dcb6a3f27eff5e1df5885c60546538f60c4dbfe1df9f84440e25b"], [13, 3, 1, "", "3:31 3aee30c9effa5a942a1ada18c2ffb67bead416de8b1aa12b44d92fba4836a4e4"], [13, 3, 1, "", "1:30 2b98ca72c3cc9d2473a8d91c2d66d0d938ba4fb430280f13c5a0d23e30124b4a"], [13, 3, 1, "", "3:33 2bdd537d58814885175ea0a364633afe6412e67633eb7dac5eeeebbfce4eac16"], [13, 3, 1, "", "1:3 12f179e5416873944a2cc637d0784da3593495a2183782ee5eb02950eeae9da6"], [13, 3, 1, "", "3:42 07f663b7ccb32c2c12d99fcfcdaf84bba2f001085ffcbdc46af147dbd632e2bf"], [13, 3, 1, "", "6:4 36d8b0665a541f55861ac8eec58788b1300271d197914bcef79a5366d764a54e"], [13, 3, 1, "", "1:21 550d7fbd6817adc4a359813352ec379bf58efa791fd796c493eeaa84183afeda"], [13, 3, 1, "", "3:16 29c83fda93c055d8e8e1b5413124cd7b9321a5fcd2661ff0c6b2ad53c3a0cb10"], [13, 3, 1, "", "3:2 fa26d928624b04e379be24a2fc2001a49d414a019eebebf261e5a6c5951a3532"], [13, 3, 1, "", "3:41 cc1f051a457238506a16c5250f10a10b89a5a6c4be1b61afbf9fb31e8db6299a"], [13, 3, 1, "", "2:17 0e6100d8c3a6f0652c904a5a5da3ac3fdbc07c732bcb94f9ced925a3a67ea4df"], [13, 3, 1, "", "5:10 02ff55c63d8be9b67db3379370d75d0fc64e42c2a63af002328807ef6040df7d"], [13, 3, 1, "", "1:64 5c59322286016f2c772ca739ba5233cd7e28720d91ce9189183e1852db7b095a"], [13, 3, 1, "", "3:17 8f3aef39cde848c0aff944c3688510c0623f11c4956e906b2c149933ca1bfc31"], [13, 3, 1, "", "2:36 a04359b7328e6f0222e6c4296470962b896234b8db289d9a7c215eba9ef0a7db"], [13, 3, 1, "", "2:19 96cd932df092222c77d3bcb7d31fad0c2be26093f163662b926fb5cc7acf7f83"], [13, 3, 1, "", "1:55 d7a0475661c593f7c0566fc7018842861e7876cde7b82b1866534efc7c2e0443"], [13, 3, 1, "", "2:37 2c9e81813ba55fc43a7bcbb08d580d2da6ced81202c68a5c37a3be0227a000a7"], [13, 3, 1, "", "1:8 7c3fa30aaa8c0f3bc6f842ae4f591e7d875e79c277ac8f86b165d0913d3060a2"], [13, 3, 1, "", "2:1 bca76cef1fe93380b4b2764a1780560ecfc7d399d0133d974aa8b4272185398c"], [13, 3, 1, "", "1:42 32c579a792bd4dfc3a9a6d6af1d96694c344082c3e65ab27cea73e72c5b24be5"], [13, 3, 1, "", "1:59 81ecd8fe1fe33b56420762ca519c95224c123ed4439893049875d345aba5c512"], [13, 3, 1, "", "3:9 b2936dd6ad92f8cfa53239fd025460f7d3e1b679ede4b445d3115ece8999ed98"], [13, 3, 1, "", "1:53 c6aa9d96351da3b4fe364c7887ea1ba84b5643d1d7a3838ea2efb41907b794de"], [13, 3, 1, "", "1:52 1f33ae168aae6dde1001c1413bdefa412cf8161d3e84988f35963972258881d8"], [13, 3, 1, "", "1:37 c8194fd8db5397f0ac15a419724a3e5891b702d2969fb1bcb372ce18c98f8601"], [13, 3, 1, "", "3:51 f531c0d0ea7572debc684b12dbc0edf4d3924d960344eb4cbe9fdd03c62ba2cd"], [13, 3, 1, "", "7:6 76c9be8a2c13f41d46c1674de81af3faa54bf6a070033c81d62a9c8d437ac6ed"], [13, 3, 1, "", "3:8 1a6421d6b7caaf88bbb46cf868ffb92933d8f68b11221f3cc918d093f8888e72"], [13, 3, 1, "", "1:19 1cbe768ef7b25e59f62f8866acbe1cdbfc5a93786922d54a7ef4a8fb4496c6a0"], [13, 3, 1, "", "6:10 3812da6e1f78fd4f04190a7f0b03c53c355e7fd9497bdbb2cc363720db6d7f05"], [13, 3, 1, "", "3:14 a383ba34b050c0c54cc8abca1eb3edacee0c31437bceca025437faa04647913b"], [13, 3, 1, "", "3:44 080df59e1c6daaf9dcbaf8723b6d2151909c977c1ca58d4543b4648be9c8db54"], [13, 3, 1, "", "3:56 3ace63d8c3c27df97ec81e12c7db56b091597dd8e85b82a39419826a4e0e9964"], [13, 3, 1, "", "1:25 c65f4c6b8db4f51f6eaf6ddacab1fdb08f9479f2b15b0b5f882da8c81c84054f"], [13, 3, 1, "", "3:36 541ae9ba48b53ec96b54e4a5a32502dfa1000cf8754fe5ecc7d2312b34d2ee37"], [13, 3, 1, "", "1:67 5b49f664f474f3d6edcb8801c7593e791e1d1ad1349e8d219df81fa95929c9a4"], [13, 3, 1, "", "2:10 6b05bd0ba53bef61a1eb498458f8f387e92b3a84409fe2949e603bde1d9a915d"], [13, 3, 1, "", "1:41 d7006f1141083f004dce3c7fcfd3553336d9f21e9cddcd91cd327d990f2b43ad"], [13, 3, 1, "", "1:32 b481fc8900e3203d5e51d7456b51a12825e1ffc5c307841c43da63a0b09eefb9"], [13, 3, 1, "", "7:10 ce7ddc33151dcfba8a36c91bc23c8438759f7fce66fff26d097a1d2838d4028e"], [13, 3, 1, "", "5:12 61e5e0531c0e617d3d424dfdfc8416bbf5aeb5313b8b85f8073e6fac4da59243"], [13, 3, 1, "", "1:65 c7750120307aedb80af8ae7313dd6345535fd86e2c63679b6d61344356d21904"], [13, 3, 1, "", "6:16 2d7523471d7b595463ca7ca9c55972764ee91e9b48fd28620896baccbfe97aa7"], [13, 3, 1, "", "5:7 4a320730472da6e94d6e7eb0e60110ce54e50eaf2bd689ad2d9e77d9174281bb"], [13, 3, 1, "", "1:54 649109caddec8bfbd71e14d93cd7e1c50c27a223b51ebacfd28ace0d02e1526b"], [13, 3, 1, "", "3:55 412c8164a6ff9c0f787cf54c8a347a7a17608a58d8e21510f1752e83c5090438"], [13, 3, 1, "", "1:44 2db64ea95f20d553dde55920a82cd6514d6071a691fc62a0a2db860ef6134582"], [13, 3, 1, "", "2:35 8ef8f937a7b7b7adb9ce03d888fcf5148a91620cc4af1b10b59ac502f648b5c7"], [13, 3, 1, "", "3:57 b4b8fd6cf4f2c93377215e7dc6ab80bfd0fb116d3f2aa401c9b213f57ec725fb"], [13, 3, 1, "", "3:5 40c4d335089982458288126ed9615e8a2616285afc565532e391dd1ff35326f2"], [13, 3, 1, "", "1:11 34cd0c382f4f6e1a64167e53b3bd89895d35af1d3829d9d540bf6db843f635f8"], [13, 3, 1, "", "5:2 25daebb16bac887b6a619f1c15055cf292b836403ab183382752976a02a4257c"], [13, 3, 1, "", "6:7 7ef8c5e5436b9b3ccf1d5ddd8f024651de630ff3a775b15cfb2dbec38833c4dc"], [13, 3, 1, "", "7:9 f1479feedda5b57e1e5936f05df2da01ee75eb433febd48f24327a86fb66916e"], [13, 3, 1, "", "3:53 1e37a5e34d46afce6f7c07e6ac3a4bf3326a0f8b0b5f47b6398afc090f6bfe24"], [13, 3, 1, "", "7:1 b192c064956d68ec4e19d2db778867c39cd0ad9e6a3070f71d7d91ce413a2b61"], [13, 3, 1, "", "3:39 0c794e05658bfc67f5509b086682137d1e225b3d3125bc988b0f7dade8a602dd"], [13, 3, 1, "", "6:5 81f05b034ad37fdb0de0e9a2242a963b2cfd4886a5fa12d422e3944d67f850a4"], [13, 3, 1, "", "6:14 6156a4e0aabe75163b3c333a7cc831ca44acd71d75015372430ca8c0d1ca7495"], [13, 3, 1, "", "1:51 cb975dffbdba381c89169413a7000e7dce7ec25ef91c34b0c74b850f3647a2f4"], [13, 3, 1, "", "1:14 3344b7fd47aab10734e11041c74314f0ed34b6cdaf296d6d01a6c691f0c13183"], [13, 3, 1, "", "1:57 d3cdc1dbdbdaf3bf51d1c1d3e15c1fa5aef040e28178566c5cb0d654ebcab926"], [13, 3, 1, "", "1:6 a070ce88d95ce414fcca9658f1ecaa93e57637fe94c94a90c0d5f7c2674a098b"], [13, 3, 1, "", "2:4 4f9cf8829042709ab419bcfdac8f32f55808e17f6f72d0a868bc08b92f89d719"], [13, 3, 1, "", "3:11 4c9f00fb04a33159473b68a31e8ee74f70f23444dfe8e434256b0773119cc988"], [13, 3, 1, "", "2:30 22aada8b4f1f9e603a61146c28eb2887803435066842ef0118a7f1917ebeb814"], [13, 3, 1, "", "6:2 bab672735ba4bd11338fe18ef154010c328d60c6904b856a7e71670295861eb9"], [13, 3, 1, "", "5:3 3151135e30ed0eaa0046c0a2c933b3df4524b6ebd38636be511d97edf1093142"], [13, 3, 1, "", "1:70 8e992777ce18f719a5a9f6087fe030f71520760bfe4215255991b93ae2a6775a"], [13, 3, 1, "", "1:49 f7bcce04d256c567958ac3c7b038e42b735b6997898d7ff47aac48170c896eee"], [13, 3, 1, "", "5:11 544d1d040690c1ef7a2b666dc2a809d33f42b0b1114f00dc05d36f203757cfd5"], [13, 3, 1, "", "1:22 e940f5a23bca352679d2dc94ddb731f3a7a16e94572cc09fb942ecfe75186792"], [13, 3, 1, "", "2:28 80f90c8b08776edc6b8d2896a8d06cd39c50126b7b0a36a79b50b336f5e3b3cd"], [13, 3, 1, "", "3:50 d82b2f675143ea3e841f686833a7a7a875694a71bea0a335101d9f496b02b415"], [13, 3, 1, "", "1:16 988c5d9c0ec05e872a195f4cee6b0aa813fa0e0d2ddd4954cb63400dda9c839b"], [13, 3, 1, "", "6:17 44e6f48245cc97766452666dcc62fa1d73508669f7a630f942edc2e6047d67ff"], [13, 3, 1, "", "3:27 fc4d057ac8b2c2a9823f6f4514305fd0ecc50af30f6f7ac3ed854e7f8a7e14c0"], [13, 3, 1, "", "1:20 2950a79b4c2b514e58a5e7111b5028fd5c547bfac4ea6877f6a9c0caa7e705ef"], [13, 3, 1, "", "1:4 b9873fd50a4bcfa74822967e3a60e5e0de2ddcfdaf3e20b8687b32685ff64c0b"], [13, 3, 1, "", "6:1 8a3a017f2afb0587c55dfb386c7e5d180d3157b04f01968b1eb489ce80ca469f"], [13, 3, 1, "", "3:37 cb91ec0812f0c384bf095f2797ac51734ba4121d8e8ab16363d157860a106878"], [13, 3, 1, "", "6:12 9947ef35f98d51e42642de4b89c7ff24c303708a6fc048d6baf420acd0c2e144"], [13, 3, 1, "", "3:6 5154cd8c69374c45e9d741be110ba567134bb0b39eabcb8c458adbc972fdd2df"], [13, 3, 1, "", "4:2 3ec0655943bc0361bb5ee51dee65ef55fc0cdbba100b9689c377aa00b58bbfcf"], [13, 3, 1, "", "6:20 e09645a3d913b01ba7b2da0538ca2a8cf2971062f274bbb7b07eb2fcbdf50eb6"], [13, 3, 1, "", "3:34 3e4ce3eefa93e708f4edf4590415a8f929092e0676f38915c2d3bb267538656b"], [13, 3, 1, "", "1:62 7a946b3318f99a6748a231b8c03c16781c4292e0fcbbc4ac706a962861f317b5"], [13, 3, 1, "", "1:47 d044514182338ccadc9d1a05981c817324f604a615020a9507188e023305649a"], [13, 3, 1, "", "2:24 2eabf1ca886e5459326f2967d018156022a1148d68a4f0cad387ba9857bdbd77"], [13, 3, 1, "", "2:32 f12f6d554c25c5f85af01ebeffe90a992373ef8a69195825942db06fb5c04ea8"], [13, 3, 1, "", "6:13 1f08df8b8d9ead71e6d2a2b97ce398fa198247177be827becf8b36abac2eec70"], [13, 3, 1, "", "3:47 07b64182b91f96ec3d687a71dbf44e3ef75125b7a754d09ee0c8274a774ab7c9"], [13, 3, 1, "", "2:14 ac9efee8bc991667f505b75c53a5d2409171184521200c1315775ac64f7bfc7c"], [13, 3, 1, "", "1:17 cc0d67b9c4b0380c9a19ee2cc5f245a03585452dc63cab72a429c021d97dc83a"], [13, 3, 1, "", "3:13 503348cabcbc12fa0d9d17abf0e2019e91f2b649f8a985f9ccda7e84e2ac7ba4"], [13, 3, 1, "", "4:6 a8ae2c3d3244053dde269a59221580fbe43986dc1e0db3bb6a587f6818456d11"], [13, 3, 1, "", "1:40 fdcc738daa05173b5609e74f2b89807360390675b83c3a52323024cf32c4c93a"], [13, 3, 1, "", "1:24 5d80d07626a153308f8addc2b5e9471836ba12ce1bdb076f4af716b9a4e18c2c"], [13, 3, 1, "", "2:22 fba730a9b194b9c95c6372bcd456c87e55aaa5d71933a5ffbf3afbc6ce1bdaf8"], [13, 3, 1, "", "3:7 1fec5e0696f6525d77986c3fb4fe9afdfc0cb637119ad785681ba1c292856bae"], [13, 3, 1, "", "4:7 df6f74ba0870e9951d73e552be2119d9b8d9cde3bfe76879dbc0b4d621f4adff"], [13, 3, 1, "", "2:34 fe29bb239760aa31dc2989d7ef1b1e0c39eb0b86dba45b014c7a1944e999b5e4"], [13, 3, 1, "", "1:18 1c7dc5e2b8e5778cfaca9e65467b897d26825ba493e2eb3cec5435253680cdfb"], [13, 3, 1, "", "1:23 2910e2dc873a5bfe39300faefa630bf1d91844c07f36271ac590d8320e12b73d"], [13, 3, 1, "", "5:5 c9961878c937f4ee5de1788b5a9a58b77076276170d875a58a526fa90be99665"], [13, 3, 1, "", "2:33 15d41d994ebc27fa82da90d54388cdf07ae3e0f9ede2cfeb23369a24746bdeb7"], [13, 3, 1, "", "3:62 7b31b5b6ead309666eb975b9d0834ba47f9a3fa55195978c7d27e62afaadd0f0"], [13, 3, 1, "", "1:46 8acdb975ac984cda5246944ae4bb019bf2a339227c9774d52bc7a0676f46fc87"], [13, 3, 1, "", "2:9 e7b421b9d33bd170c0b1cb09c6bf1d3514538ae75bad8431dc915f4629b428fe"], [13, 3, 1, "", "3:60 fa9005c5774af5498655cd144555d0013c40b6180373f8c7e8918e1ba12e03aa"], [13, 3, 1, "", "3:46 74f321168c8014a105d3fe61537f3cf35443beabfa8f6fc079c2b904d6de8b85"], [13, 3, 1, "", "6:21 2e64f7a7609904f62a789b1086409483bd975bfc91a04b82c0b5263044395404"], [13, 3, 1, "", "7:5 cef34131dd6ae60d425b87a2ac6d953390e2dec00e679df1e058873e45adaf2a"], [13, 3, 1, "", "2:8 22f409acc30151195193e1ac9bc8011511fad86bb8a83517b941ceba06117903"], [13, 3, 1, "", "3:28 a8f57c97461cbdfb32ce6148c10dcf2b2deb5070adcb2fe1bb4850b3c211ba8d"], [13, 3, 1, "", "1:36 a32c2a79d6b620d5519660e13751e5cc22eea8de15c0b390067701e98f30a2a7"], [13, 3, 1, "", "6:15 6e26d5ced9abcc14efda425d56724492c38c2a89dfaaf7cc53fdcff38153f695"], [13, 3, 1, "", "5:4 9d980c1d9a3bd3147ff52fa56ba95e975ddb9eec707b8dcc601b03993a6bfbc5"], [13, 3, 1, "", "2:2 072e7d6791f5c1d9aca09df3602ec2e87a96ea771b13d9baee44cc7da4745443"], [13, 3, 1, "", "4:9 78dc81cd3902f11ea65d5e75e486faeb11ca34a926001792ce627e4c3f8fd23f"], [13, 3, 1, "", "7:7 29bb7394c69509f75799537c989b895449d8782786410554e4b948bd0a38ada0"], [13, 3, 1, "", "1:27 68737b33213261aa2bc36b9d8e4d651c615017faf9304e654e7db3705b897e44"], [13, 3, 1, "", "1:12 29847045f981474ebef77cf27630d2c65b6b9cf14a6df2196c16f636c42d885f"], [13, 3, 1, "", "3:49 9806b7c79391b43a6ff2c6de978f08dbf262be1f09d5994c4a3b5176b86d35da"], [13, 3, 1, "", "6:3 387233953cd06bc333811fa124272c964f24902926b1502b30fd6a1be40fc044"], [13, 3, 1, "", "1:60 a44bc0de8a6ee0c018ae873e38b231a58ebb326951a3fd5fe21546388c740593"], [13, 3, 1, "", "1:38 1fb8568338e94e2bd2cef7b0aa0fb1faadd19bbab344274b1b54a2f404f8e783"], [13, 3, 1, "", "2:15 0eaa7e064279eea86a9d365b6c251eb9d9b53356bcf44f642cefe63992aa99b6"], [13, 3, 1, "", "1:2 73d6369a132933d1c5b8a2cfddbb5f48324fe1b292208ff88d01629411bb9802"], [13, 3, 1, "", "1:10 763f676df4ed30cc6df7cd82179c4d111f881ba1c05d0d9cb16b54676f276e17"], [13, 3, 1, "", "6:23 3a414e98a1f7d173475399458067467182305c436b62978e990ae3071bb8dd27"], [13, 3, 1, "", "1:56 03796b443d5b6bee6e75a9e91f79f885c5c7a9c39ba82beb8257fc4d9bb65116"], [13, 3, 1, "", "2:7 19a597e10c09d8cd5266148bbaa227ca26d47e590e8cbe4a3a0b4a3b7b65ebf9"], [13, 3, 1, "", "1:66 18febf551f1317bbf8aa6f68c01133df1bacd637fbb0500335b6725a840eb292"], [13, 3, 1, "", "3:12 ad39aebc78473e0d03c855868bf7740446e20ac900ed24bdf0f239dc211dfb67"], [13, 3, 1, "", "3:4 de9b4bea7caed53ee7b0afc9fdfb7ce959dbe46af01b3c32dcdaca669dd8a0c0"], [13, 3, 1, "", "3:21 f7df1b813dc778c45c902762fd85f901ebede6cf627c93ddffa2731614f81305"], [13, 3, 1, "", "3:45 f4784be0f3397b59835c7c80fc3fa280f40f0c5a558cfeb0dd74943416b87ae3"], [13, 3, 1, "", "2:13 a2eef70002f2666dc49f2def9707cdfa752018ddd635ddf2f70e7086f1782b72"], [13, 3, 1, "", "5:9 90b9e3c561e86b008b46a75c32a8381e977ed63097178f6649d726503e1e5aa6"], [13, 3, 1, "", "3:43 7f8e00a6debc5e2204cfaa0b86e6518ec9b97c56b7803af2fb2df7eada835828"], [13, 3, 1, "", "7:4 fda22eb8953825d6e52da828c1a9d947bb194cfd63115300442e862a916c0b36"], [13, 3, 1, "", "2:23 de2789ffcd9d02a9bbc9c39b7b94cd196bfd6f0167acfd400d37b10d6188efc3"], [13, 3, 1, "", "3:38 e2937f6d2545e4b849a96cff1214ad6058a60ad6ba062f6d3f55147d0b5bbedf"], [13, 3, 1, "", "3:35 bffcbb94249f82f25927f78213e778f1a7f985c4920412526cbb8efaef4b7845"], [13, 3, 1, "", "2:5 a745f47cfa17415d3efa516e8a511b98dc10024c933e4b234e51839ab8b2c4bf"], [13, 3, 1, "", "4:5 818e1461216ec078c22ad83372847074fe214f98afcc5de45e628dae31f6c1f9"], [13, 3, 1, "", "1:69 d1c20d9b16467ccff234ee51ec9f7445d1242be7328a3b7fc74105e82aa6848f"], [13, 3, 1, "", "3:3 c48eae85f32cfba112d97ce5307d7272d0911f9df4e67ba250f055efc0a0be0b"], [13, 3, 1, "", "2:20 e0ac82fc15ff715d9cddb3bdc897151a9a4cf2819d813ac6da7a07d48fd07ad0"], [13, 3, 1, "", "2:38 240ab19a4ecb8be24c7140737462ed6c98ed2adeaae044fc076f6af615f3fa39"], [13, 3, 1, "", "3:61 435b90abb518be657a6bf0d3065224d00b9a224cd9f274e5cf1aeb3a1270b306"], [13, 3, 1, "", "3:29 a2c973cb292004179620ef85189058fef5ca0a6338ee56b885dfe5087c24658f"], [13, 3, 1, "", "2:27 68b2c581d553c7dc02a6bcb848acc9c08aaa51f9dfd03525f402337590b1c00f"], [13, 3, 1, "", "2:26 f98c5961068bd12ec95c8e6cc0e0981321c82dd46936f9674f1da53e1f4da5d9"], [13, 3, 1, "", "2:12 6481ad4cc845d4e7ffc277d6a32513834168222c01697bb90ede7f041f4b3ab3"], [13, 3, 1, "", "1:5 0c60e99f8efc707247c3e040ba544bc81e25f9c00c6018150077ad6e1e2b7015"], [13, 3, 1, "", "2:11 aea699b2678adf58e4f4bf56b5b412b83f1ded902ad91eb6d363bfc48e11ecb6"], [13, 3, 1, "", "1:39 2c4843ee0d6e3e1ad8d3a6bc4c387786a63a146301b093178a14861ed7e86461"], [13, 3, 1, "", "3:15 a674121d8b1308d5f75d1d8bee7bddb25bdbca12b53929f1b1c447349980e532"], [13, 3, 1, "", "3:22 7dbe8e81fc6ab3a89a0c7db915942f414747d3e1426a7f0a9e0eb76bbcf6f54a"], [13, 3, 1, "", "1:71 22204cedd5304e36d4991c6ec1da6276140e3d0d2decbed86fe6c623c9a4cd8b"], [13, 3, 1, "", "1:15 a8af143fd34f01e8f65e9f888d7d760a3b031967381aee5176d597fde23be59f"], [13, 3, 1, "", "5:6 e99e85bd28b33b69146abf6665f55cd679b81c2d26e54ed077ca48c986466401"], [13, 3, 1, "", "1:9 948be818103f72ba1df6ed3e5e0ca91049b4ccb4cd3b6ef73f2a2555d14fa31d"], [13, 3, 1, "", "1:1 39d60a2f6181ef9205caf904fd95f7ba0a390aeb492700ff04033297298fff41"], [13, 3, 1, "", "3:24 2eae510aa3c0984999efed6c99d780375dd3245fbf78f98b65affdd980165179"], [13, 3, 1, "", "2:6 834825290b52066ecedfd94cfeaaa564b134590cadb34cc3d93faffcfa68982a"], [13, 3, 1, "", "3:20 0937925a39e22d804ee545814336d49c733f31ea7756377335fefff6db62282f"], [13, 3, 1, "", "6:22 ec4f1cc8bf22f706c2134897ccf8d68dff4c3a033f4ca1578e692769fe6fa36f"], [13, 3, 1, "", "7:8 fb17b760d5c76e48d93d08f1722c8da1fd927224135f46c206a4d3fe54d4a55d"], [13, 3, 1, "", "3:48 f173b49637243cd66db248543679179b3894437aad904b62189d0106a6448977"], [13, 3, 1, "", "4:10 67eac47f7353bee4b01c2c0155a18d611ee18841d560d9d21ef05ad20fde5032"], [13, 3, 1, "", "6:19 87fde9a65891debe011e4dabc743129a995adf7c4605b39913aa4478ab811aab"], [13, 3, 1, "", "5:1 059896cc2c79a9ed0b43866fe3d923d7239e3a67a128c7e89e6869411edccc1c"], [13, 3, 1, "", "3:23 485c4204bb3fc6bde480eae99cb508323f08d53843fe840b571c140e2d09efaf"], [13, 3, 1, "", "3:52 f7e4dae4c4ddaa16ca26afebb3f35a670745389e64b88c65844e029c7a0cd97b"], [13, 3, 1, "", "3:32 71c84d73a44e48e642f979b9a86af1793a323f1925a436f71dd359c01bb520e4"], [13, 3, 1, "", "1:26 57205b0e3779a9c0f99384a2e74b444075d08f48e6ca14466b92c6288be50961"], [13, 3, 1, "", "4:8 d5f187840f02cfdf21c191f7e410d01ce205cd27e448a8ed69b3b623d6a75434"], [13, 3, 1, "", "3:25 bb5fda81378ad922bd59db0c0afb2d1243c2d1e2d61865303fb327146cc086cc"], [13, 3, 1, "", "1:28 a05b1f6d34aed3cf3fc1a88b0e4ffde453b1c30cc42ba145fc45a0eb33ae7654"], [13, 3, 1, "", "2:18 c763cce07ab00dfd3323500717b1eed3e55412bb79178870af3708ab08e16908"], [13, 3, 1, "", "1:34 e6bbea8fcf8570922fb2dbb84419a008ed40c04e0333e8759a764083b6de6314"], [13, 3, 1, "", "3:30 a70c379b4de9989a193e6532e92d5156358a876a75e38c960fda76d0d60c3647"], [13, 3, 1, "", "1:45 8967b0adae59edc96e1b580347bfc98961cd1a02ef5b17848e4d07b31d0bd2e0"], [13, 3, 1, "", "1:48 2aab1e6272ff7b563a82b6b37c18bca96b4c87c262d8f2e8b2c9cc0e81c7ec0e"], [13, 3, 1, "", "3:18 1d170272d80212e9ab38968ac21b6adb73b67fea20a811908cf097679cd04403"], [13, 3, 1, "", "1:50 3b2f9835bae0171b78f5e494a3aa32451cd8c1785291f2d6d8393e0839e5bf45"], [13, 3, 1, "", "4:4 f0766d5049dcbb5d0c9cd71d282ee6fadf59ca4944f8fcfe3f0a3076cbee4359"], [13, 3, 1, "", "1:72 d8eeb48a603b537546fcc36fa3e17ccba43d166b30fd0d2792edc9e29f75d4ba"]], "4.11": [[22, 3, 1, "", "1:21 a50cf2c5f56fb453ff79b573e1b12129846b5614280b059f31282bdbad00120a"], [22, 3, 1, "", "1:3 07e54228ecadbf143bd9829ea2af5cd942e05ae28f70c0bf04ece785266561b3"], [22, 3, 1, "", "1:8 65566a896e699d4581061cbfa9881b61ebbce21a79ba3ae60cfebc267d506a43"], [22, 3, 1, "", "2:3 9af98560b964faa10575d6b41e63eab6392b21e562bd53d52334986e8d562170"], [22, 3, 1, "", "1:7 596b59e14342649bfc88ebf54917a1503fc3ecb4de2d025b3df3a6048d0516ba"], [22, 3, 1, "", "1:17 b8f0794e107a5077c3c243a841267feca917797abb0af99397715c0652488ec7"], [22, 3, 1, "", "1:10 16ddd66245cad2e311b9193a332f01ac5e3875c354baf1b3bebb93bc4dd430af"], [22, 3, 1, "", "2:9 2df37a1590825b869d3fe88027b64189cf4a81a9bf29a7fbcb2ba1790f600026"], [22, 3, 1, "", "2:7 e149df36aa01e86286388dbbe81e921138ff3db34c7e3b70fe56471e82478501"], [22, 3, 1, "", "2:2 b57e3b6dad3a8e0cb95ec2f29b9c0c03d35a3d2274ce1372f790c18e6d8fe08a"], [22, 3, 1, "", "2:11 7705e77c0b72bbab2b260c177130bc9c9b2b0cd780adfef1c71bef4a3fa35b1c"], [22, 3, 1, "", "1:11 56149efe39f3ec896b5d41b41f82964eebe02b0be71a3cda53763e854c3559ed"], [22, 3, 1, "", "2:8 eccb8cf4151d93a2f40c470c83debcdb0664c35fb9b1a56d77688b9bbc34fa14"], [22, 3, 1, "", "1:4 3d989ed20cee6bc9220874459a4ea548220f9e445447a73f0477590d4aaa0908"], [22, 3, 1, "", "1:23 2875aa4e4c755754de18f56c5cc62a1f1dc459dbabf0d399d69338748e6c76a7"], [22, 3, 1, "", "2:6 6d966d386110f51effa3166dbdfd2297301ac38191e2cf2c2fb7bd2786dfaec6"], [22, 3, 1, "", "2:12 bcb966f534ed9405fc751a9c095cd83a0ebf9e78d42f0fa542522fc9ba0ec64f"], [22, 3, 1, "", "1:20 5c51e84731e68ffbfb71d7770138e0e073c19250eef8f79cfe653382420ed1eb"], [22, 3, 1, "", "1:26 69bc4664319d5665fede7b3cce71149d020a6355095a53a2e4628588ed83b8a2"], [22, 3, 1, "", "1:24 10f4ec2a3b2055e8ac3f6ac122c55a3d72a69b32bc92531cb8cd3174405fc276"], [22, 3, 1, "", "2:5 5f34cbfe6622d2c818a60366091bc5da0bc271de40adb90bbb62a83edca10e7e"], [22, 3, 1, "", "1:1 ec574263a104f5220dbeec30e0118b25ac35e37d6a614ad3bc5cd6e58681532d"], [22, 3, 1, "", "1:15 0824d734bae0a452fabd30f7eebe1ce756436f484b63cb76f82a47710b2b2613"], [22, 3, 1, "", "2:10 ab1548f30cb5de39a5164639b856c80192fe4565c992ebc857d91f330cfd95b1"], [22, 3, 1, "", "2:1 5f5949a619afc73e47aec91fbc3a9a63a26a1c89ac23fff54dedd659fa5ce152"], [22, 3, 1, "", "1:2 9fce4f034a0c87f5dc66db7b3e507d3b8d4ccadac4c182b83669e0c361da3f13"], [22, 3, 1, "", "1:27 bda0b012a16d3a292ca3bd3cd3bf7397fc037ec2df84e2d98d42f8caad457108"], [22, 3, 1, "", "1:19 b65cf13de25acfcffa5571a788c21ffc81a25f4caf34236efd82d429143e4f38"], [22, 3, 1, "", "1:22 16f17b053148dcb88c3d4eac54d2fa3ab5c26241239c5f849b5e78a7c1987c27"], [22, 3, 1, "", "1:14 4d8795302b12790cc45fa4ebd52923e953f775313a4540fe398a33d90911f943"], [22, 3, 1, "", "1:16 f3191b0a3434aec33dea3707cfa15d73aa4eed96e7edc9ef18c8d26970af27f2"], [22, 3, 1, "", "2:4 4e17b1a0b34e4bf31d8a8074de82b29eab2771c248d198c7505d85d025d02401"], [22, 3, 1, "", "2:13 6ea20905fb18b0e4a39823e4d29c64d3000f65f803a757758399867d375784b8"], [22, 3, 1, "", "1:25 e182b27b475774c568aecdb1bb2f1070177f14e235e96672e4884e9085b0e263"], [22, 3, 1, "", "1:9 ea4301cd4ad66803e16f0b4f0d2b5c2a336a7cf59a8a11148379d67b5d3371e0"], [22, 3, 1, "", "1:6 955ca7ce99e58bbbb5f65e867911434aaa20ce3d4b5859af83963a91b4528556"], [22, 3, 1, "", "1:18 93a93b729d2fc10096d6f3e153b0d420ed95d0a2c40e7b3766a6775b99f2d23b"], [22, 3, 1, "", "1:12 711825cc745b9af39e7e4048a16c47f77125cf76d5cbe980e5ff38079d76320f"], [22, 3, 1, "", "1:13 e999468acaca0c1905fc4050b53eecbc0ba5d19207fe6a97efd97bad0ba0f84e"], [22, 3, 1, "", "1:5 509cfea09ca67250d7134d86496da2f7ddccb10a30cc84e8fe0614e40a946388"]], "13.2.9": [[1, 3, 1, "", "1:3 074e1f0751b8cd12b037a8b551dc3d753dae8a3d8c8238db1bd5f168eab83a8f"], [1, 3, 1, "", "1:1 82da18a25355abd0b9d6d12edfe37ae45678bc9c547052772f63a9a356614526"], [1, 3, 1, "", "1:2 1779cf2215b4d1593fa40611459d55cb2246586eee4503f9d2e823cc1871c703"]], "4.6": [[22, 3, 1, "", "2:5 8acd4d89f0c821d4aa22815001aca5bc9e977dc1e2712743e735bcf6aed3c248"], [22, 3, 1, "", "1:8 db27fe1b97d6577e59cc0f00cdd1fab1ddfa6645da18b3a83e52010a01ff8caa"], [22, 3, 1, "", "1:7 b0e41c86f561de826ef136c25682433aef7f5636c0352e3d8756137e1446ab27"], [22, 3, 1, "", "1:5 2a45235137530e81bb8f2281cf9deca9542bed2f95dd65858edb54f18e243164"], [22, 3, 1, "", "1:9 929a4c4a21afe2d35b50abb7d7250277785667e33d2692b7c52fa2b6eecd4608"], [22, 3, 1, "", "1:6 3bd0fbff2aa919bc05fdb9a7a301baf9be62bfb0c6ebf65df45c88713582d37f"], [22, 3, 1, "", "1:3 6509cd4ac82ace29c2f9a29046a8fc164311d5de6ffc2956bb878dbbe701c889"], [22, 3, 1, "", "1:1 a13570cc647e2fe3f7daa098e9b82168dd6556c25ddc1bfb7dc12f25e9eae54e"], [22, 3, 1, "", "2:4 d667ede8ab6893069841a33b2cf0e47b19b05d5fa2872b3bebec06b8852063d1"], [22, 3, 1, "", "2:3 1d99ab5849365bb230cbc4a782bb93bc919bb2f07c62b63a7f63b380e66ac908"], [22, 3, 1, "", "2:2 6e4e49c145170caf512a89a36aab453064036bab3e47a5b7551d769810a454a8"], [22, 3, 1, "", "2:1 ba8be95a7ac75beeb55990710d7b232e90aaefa46fbc965fc5ee97ff250687b1"], [22, 3, 1, "", "1:4 494dee99ed22dbebd0d0ac76a1fa787b15f999f68855fefcdb9cd603d22489da"], [22, 3, 1, "", "1:2 94c7fbe22c296aee3cf9ce06a1da0aac2dca927a95d394cc715b6fe61265f90e"]], "5.2": [[19, 3, 1, "", "1:18 2406df736b1c1b7e052beb8d6a704041b3804de21cf83ac7e64bb84ea5c0180f"], [19, 3, 1, "", "1:23 d75c1d570151a0c0add5bd9dbd8879ab364860d21ddd5a1981f20b5a358d8ac6"], [19, 3, 1, "", "1:22 da482f0aac1389101e1acc7d29df971ea52cbb5a914a549589717f367179ec59"], [19, 3, 1, "", "1:5 6645895b56834ed4cc394b448f835a215f06b82857dcc694fa41f1413c2e8780"], [19, 3, 1, "", "1:31 b61a46d5ed3d3618df19128c327bc64de735101d00f7fc3b645d60b73ded72dd"], [19, 3, 1, "", "2:14 9d386d3779e3a03ab5fa632bb3790b3682a87d11304efd42205239ba9080f938"], [19, 3, 1, "", "1:2 62c9ac85366cbfb730c4705821715b95ce875f485a87b252fa3dd810128a62b6"], [19, 3, 1, "", "1:14 6103ce2aaa63552db1ddd1712d330355e209efd8b3f05e2ee118128d79c0f57a"], [19, 3, 1, "", "4:2 512af904f1afbc0ae83e21197bac2017c65eb4d2820eb33ef0e964251753ac99"], [19, 3, 1, "", "1:6 a4aa45e4d07c9304ffcc9d862e913507d5000a1730b669278ac285dc603a771c"], [19, 3, 1, "", "1:8 b07b1a9330e57dc967b57e196fbc8f1a408952860995a438d3d757900c0a9bb5"], [19, 3, 1, "", "1:17 cb358844aa1dd3a9c5395b092c62c4e62c28a58e0b909d2c9d99344e409fafac"], [19, 3, 1, "", "2:8 ca44a0d983f6a2c58de0d0da866f70042fb1589545be9d179d6b19542bf94f4f"], [19, 3, 1, "", "2:12 435aadfae6890acd5b2f7c089d2bf6c6bde46b865278bc446f816f2900ad444d"], [19, 3, 1, "", "3:7 bd944455b4e5b2992d60a0276dd284685483fbdb2ce0a6e8b861676e3d2069b7"], [19, 3, 1, "", "2:5 88a50cbe98942f52e03b0825ff7e25f2b0c89e3c3a66979381da5376a170cee7"], [19, 3, 1, "", "3:4 208f90ce72da5d32c30755d34df67702194f5fe887e9c7a1bd0554c4718eeede"], [19, 3, 1, "", "1:13 f951f3c203a03b558cf318fb35a3313fa155405830ed6d804fcdea0b828eb716"], [19, 3, 1, "", "1:12 3515e0658c65c83d72e0dd7ad0e82d86216d338c31040d3e27832951a2aa83b5"], [19, 3, 1, "", "1:21 b0f4dad87afccd06af733d465607f36dcde450f57438e710856d594b3dfb6e8d"], [19, 3, 1, "", "3:15 c479906bca39314417e1caa942e7ef8efbb0987857a2c5ea2e3dc30d69cc4a20"], [19, 3, 1, "", "3:12 46bd974ba3f88ec8c528de9c9907e74139719b19f51d32a06f37cede033afd44"], [19, 3, 1, "", "1:9 a8132d829bf34f884995af4cb9ae77e246d14ffc39f464dfd0579841244ed1a7"], [19, 3, 1, "", "1:33 5f55bfd0214be05b8229314e347c9671c485811ab7606a2c8c5a06c39aa89aae"], [19, 3, 1, "", "3:5 d4a0b43d9d6a5e0b17d67fcdf081a940f340d1b85d971f31c684778d9986fb2b"], [19, 3, 1, "", "1:11 c8519c37bf9a85c68075db3cb98c5ff8ab8db77174740ac05497368044b20534"], [19, 3, 1, "", "4:3 4df12d4b4abe0cd1029651c34033e70582bd69ad83cfc6a3a733e4bf20d8da0a"], [19, 3, 1, "", "1:25 5dfa02c07c1e043d1fbc3b8eab7d4555147d7e61752f59b311c2486f4a53c2ef"], [19, 3, 1, "", "2:9 d8b0cbea39dac23dc53d3b24c98a4832ca33e84bd17e7a35598838c1ec69d58b"], [19, 3, 1, "", "1:16 b71b81a6c560dbce28bfa29908e6476ea8fd75a9b27df354ac6d310149124194"], [19, 3, 1, "", "3:14 176644151cc57b936a43b35578e7182a3c89ac881b62ba4e3aa5bfede1008ecf"], [19, 3, 1, "", "3:13 f1887b73be484d54fe02b6a04ea8aee012209872ae40fb9179a705c3f4856242"], [19, 3, 1, "", "1:34 013fca3143fcb9507c780ebe41cc1f74a40222e55f6c4b695758e3b78c605d12"], [19, 3, 1, "", "4:1 ffe05e2b6f44aab3204db8f037bcbabda722b0b2a4c36233bd344165b0915664"], [19, 3, 1, "", "3:1 86e5cf86cc1727a1ec3d2c9b3c7770ba2d5a0a0be11e05f181cf89208cef7e8f"], [19, 3, 1, "", "2:4 52efa16e2d2072309e596e1e678e1ed4c435a2a10a044d200823d457ae75c86b"], [19, 3, 1, "", "1:20 c02d71a02dfad46132450d2be620a7cabbd2eabf47c6bd9b01945121cd5d3aa0"], [19, 3, 1, "", "3:10 80b589c7aaacf22228397ab8de7f859870551fa23bbc58316341c4fe297455b0"], [19, 3, 1, "", "1:1 939f66a2cc6a712f7ec20d7536b02ec2600f18a1799b2144aea19eec95022846"], [19, 3, 1, "", "3:11 d0a0133555000675455b2bf5ab37681e6e7bb93783c7e8ebd5178f80704e6ce1"], [19, 3, 1, "", "2:6 3dc2817ca063542426c88f985729203dbe054c09d6efe49d7eb52097ec52bca6"], [19, 3, 1, "", "3:9 325628fddc5edcfee5dde126d580262949d54d516c4f6d9243baff7c4f607da9"], [19, 3, 1, "", "4:4 8ae58cda06fc53f1738c98075991062f64264fcb87108570d670eb709bdfc97f"], [19, 3, 1, "", "1:10 6e903cc0782eee63efea8b0c7d9bd83aaeca3c3659c72b4f1b64b24dbae63273"], [19, 3, 1, "", "1:26 bc8d158c05838e267c985dd76e4808b795b9c9b82d65690a8d2744bf8753e87e"], [19, 3, 1, "", "3:6 289e79602b945e44a6b259d8d0c1e225e914afa943874c7698ef97f89f8f3def"], [19, 3, 1, "", "2:1 398db4748805660067dff91c2d8c07f0ce9a02f750eedab4d786b7097ea8a772"], [19, 3, 1, "", "1:15 b94ca5c69e41ecdd7da89cf82764d0e4561528548bd0a3491afd0dcc1dc27452"], [19, 3, 1, "", "1:3 e1814d800e0feb6269bf895ed95022e6deb5cc33cc635c2bb63b14baec538159"], [19, 3, 1, "", "1:29 3dda2685fefad7736c09572d77850f39aea37aff6a75b4775df949965c478004"], [19, 3, 1, "", "1:32 d75819f44a8d7f85c50196f3a44487fcbfdaa07c19627675b6bb09b4f2fc97c4"], [19, 3, 1, "", "1:4 3e48a4f72d15cce2c39a5d3dc6ee479532f77da0b1bf93691b99fc840384f6fe"], [19, 3, 1, "", "1:27 cd32c48d96ca8821d8b097e61f7031858e9955ae4cb198bb1001a71624f77a7f"], [19, 3, 1, "", "2:13 c18b1eaabbf21d6d906c4d4255fe8e1efcf58af3fbebbfffa7348ac6b6edf3c5"], [19, 3, 1, "", "1:7 7df489a39e2a1942c161d32a9ce2ef5ce0e4848eab53b9ff7321c1d546572c74"], [19, 3, 1, "", "2:11 9e91b8f7ea80554c6c9d801b284fd737f8072273ca2869a7a1a7c23f6cba1e10"], [19, 3, 1, "", "1:24 014416678ebb189d6688fb5242e5205e11770c286ca59a48f79dda7f6ae4a8b1"], [19, 3, 1, "", "2:3 caed82759506953820cc05207e2ff166b8c73479f82882f1d52cec340b5ea5f2"], [19, 3, 1, "", "3:8 47877ba9b3984b4661b6db0b34526c8edb770ea1f800c33d64c5523a6d44b8f2"], [19, 3, 1, "", "2:2 c49ac22e3f94f28c61a3b041503608d3e3f6a337ad9fdd9162106b3e8a729ddd"], [19, 3, 1, "", "1:19 685de37c2ee81a66dccabb7f81942c82479d896f00e1e1334d4a60a9ea3b6bdc"], [19, 3, 1, "", "2:10 f47bc7199534d69e8491c54e3507a6dab7fa624a91bc061b87c451e8ed8af807"], [19, 3, 1, "", "2:7 541bd9b4e34b9b13bac861950cbc1ff7a06f887ca4d3a08d65ca538b08a21639"], [19, 3, 1, "", "1:28 892be146ad066dad2bd25128cc3091054cbd49abdf7268f54e6f21339362e750"], [19, 3, 1, "", "3:2 968065a0acde4dc1fc6772c9a80d889371d997d4d812bece3bb143b855b791f3"], [19, 3, 1, "", "1:30 ae7dbf4db5d0804bb1b4f47f1a3d6ac4f752d00aacb5fd25e7d8f748f4760adc"], [19, 3, 1, "", "3:3 c046f561eb355602680f839ad87e202a633dd889397bbc12f7027ffc7b5a284a"]], "5": [[19, 3, 1, "", "4:9 5b38e89f8e8e644db16464772877616b08bec8b5dc081183f140b1944cd02d7d"], [19, 3, 1, "", "4:5 b919a4d8d9ed226bbf402a3d3d51992d55a4159a5723b7534992db054a299aa0"], [19, 3, 1, "", "3:8 edc7cf534c55c29625cd191432a05763797465d54cbd387fee8127a17ad0f1ed"], [19, 3, 1, "", "4:3 d6e77f76c3b70cd441241b2ddcb2ece4258490b36edc54866617c3d56b1d1db9"], [19, 3, 1, "", "4:2 b6d21ac4978904629594c63e865c13ff0e8188557a1ee1fc16bf38d292273905"], [19, 3, 1, "", "3:10 c9dfbc0519fed7bb3f112777102c928f15a4d5c3cfc13d4d3017e9c15259ce08"], [19, 3, 1, "", "3:4 1a8541da9715b497aff0fb8fd6116cd249a0350898d3dd89d00b2c30c7e82671"], [19, 3, 1, "", "2:2 1226159f94faa8a70839d078914f48a7ec073bb47550a83a77554fab5106550c"], [19, 3, 1, "", "3:14 94de4c12fad70f9cac54c2a50a2c65b9a5d0f42b1847bddbbb2e5c23d1e9917c"], [19, 3, 1, "", "3:1 ce737fd6a8e0011aa5361836e179e7da00b62d001685d8a3099eda2e5f94ff52"], [19, 3, 1, "", "3:15 7b6cefba0ed64069e11e48d9eddf7bdab4f5ec7b32d73b3a9c0c92d7fd078d3a"], [19, 3, 1, "", "1:2 97aa1ac1d06fc804666c43daa72ee75966f2d95b18e279d427a218d76ae31229"], [19, 3, 1, "", "1:1 74e294f01efeecaf5f7ea7508839e45750aee3872825525951cd7e1a5a369127"], [19, 3, 1, "", "4:6 7a5e47b54e578d0454d02d99d9d1735d8480757b894acfedb724f6f4945d4557"], [19, 3, 1, "", "1:8 9e80bd2a9954f565738c5bdf0455cf342bf2fbf27b91fa6fd9b86def2bfde161"], [19, 3, 1, "", "3:12 a30925ea032d35a24204cb5c81fc5ad636e77d19ce00fb38615985b1bec396d6"], [19, 3, 1, "", "3:6 0871ae0bb0826a8d223e8c2cee52f184b7c0e39f86c5063fcd676f7fbc614365"], [19, 3, 1, "", "4:12 0f085b2b200d131b0f3ad93e901232589ae5185e8b937688595401a2281802f1"], [19, 3, 1, "", "4:7 0261db6dc821115e2d72a8963d41e3816c27ff5dec58ab612b4b0043bab2628c"], [19, 3, 1, "", "4:8 d8bde8dafa190be72dc04dbd04f9dcc381ba9e56fc7c59ef14e0adf12d08da99"], [19, 3, 1, "", "2:5 c8b65f1ad8bbb7a147b1cfa9636cd2ebe6b61c1727898f08637df63d004a8391"], [19, 3, 1, "", "2:3 4951a056adbfabc5da1900d164468c7f4be7716b2094657ab9e28e53f3b985a9"], [19, 3, 1, "", "1:5 fb93c07735fd3880cae598758a01af1eb04fd98aa6fbdca79a2fd2e8a525c26d"], [19, 3, 1, "", "1:6 8cbff3175ce2f1524fa0ece5a443ba2edd4a78433ff410a98a31ed00f38a2bde"], [19, 3, 1, "", "2:8 8bfb976bafb3e725050a2a415fd644fc9981cf4b45e809c13c254477bafe4502"], [19, 3, 1, "", "1:4 788cc1b098646556626fa9669f0f2c05d8907e582b4bc899ecac453fcfc61dde"], [19, 3, 1, "", "2:6 5b84c7b52bafc282a2d2f47804bec3323bbdacc365ee09d0099d08c9d131bf81"], [19, 3, 1, "", "2:7 0bdc00a13a57ef1c0b6611c62de6e170f3d281e81b68d9cf86a7b8f227180905"], [19, 3, 1, "", "3:16 7a06ffc02f7927cd15e2513d53f8a618b2100301b066a92e111ba6ce488b6941"], [19, 3, 1, "", "4:4 6867ae30832eda7ee1fee559e718d1cc657447cfdb727917e47a405431cbb8fc"], [19, 3, 1, "", "3:9 174692122d916648a54e197fff15a1e7bf17984b9523fd06224c71a7484e0445"], [19, 3, 1, "", "4:11 7e28619896a113dc0b4fcbbfbc7c0e60f3fbe58465cdd9e0c57ae6883ca75849"], [19, 3, 1, "", "4:10 e7cdc075b361ca70248b735173fd1ae43a881787197759e135ebe311f34f316a"], [19, 3, 1, "", "2:4 b68597321297c9f745d6b9be53beda335702f6e28a1bb97a08c277dac931130d"], [19, 3, 1, "", "3:3 3689001f3e5a3fadb5bce3f16c76e8babf3aa8a1b12b24dc1d08cc2709b6336c"], [19, 3, 1, "", "1:7 9a88f2c440cf4fcdd3f5bf99543aa48a1574d061b3ee71b3dc371a4bb568af80"], [19, 3, 1, "", "3:13 e9940ece8b67430f6507527efb4e0837eea8ecd615884b2d4a3773018ca5df88"], [19, 3, 1, "", "4:1 6b0c9b448ffa1317860d5ce72327a183542c035ca71f57b637fe069226784ff8"], [19, 3, 1, "", "3:11 61b076c4aa153ed7b1ed996845d08b881a2327bfe131501f20b3ae9b3a2c042d"], [19, 3, 1, "", "1:3 37e388ffc7dca1dd4a94161e0cb558418e13e628a5cb1789796cb37117591344"], [19, 3, 1, "", "4:13 1b7c6f4e677eefe1fb3db44988440585f0a06c492b2c55de71cbc12e1ee26149"], [19, 3, 1, "", "2:1 d667b4f41510c041296f0f8c9950b33a0e697269e268024bd87aac1d04c4b450"], [19, 3, 1, "", "3:2 ee24110781d1935c43cf0567d764e1aadf2cc3db7f17740efe4e767ac0ee9632"], [19, 3, 1, "", "4:15 fd13d0bd953b8f054714e974f43ba2b7fa374ed3ffd288303907a4242b346c4e"], [19, 3, 1, "", "4:14 8bd4950f12c3fc2761c334a84cb412e80a671197a21ca640ebe447e01836d826"], [19, 3, 1, "", "3:5 0b306a42847f796ecf6339eefc0af21e5781a2cde421ae3141018b146e11ffb0"], [19, 3, 1, "", "3:7 959846317dd64ecd23fd6c93f96608048d818682c7cd48599dfffcd231a8557a"]], "18": [[20, 3, 1, "", "2:6 fa07c91c0b0de63411270c072bdc923db3f1db860082d3eddad31ca6eed189c5"], [20, 3, 1, "", "4:7 06a0e85326100e5036cbd423c273ca615cb80431541ea5e8806f3714ffb46193"], [20, 3, 1, "", "1:1 55f6d3282e08235092b6157374cbc8fad302ec5965229b94dca69fbf5a239934"], [20, 3, 1, "", "4:6 0cecb1f1189c7f1a06d3c8d132b1e51f25548a0bf043f3ed3a93308b36f1506f"], [20, 3, 1, "", "6:1 1a29f8f4ec010a8c63819db415dfd3ccd84eaad03d75e2973e3fe3313e327406"], [20, 3, 1, "", "3:2 a6fb6914ba7b4eb15927a700f8807dc472322bdd250e0bf7d0651861d8f533d7"], [20, 3, 1, "", "6:2 b3978159779eed65918ef78768828461f8b34e7ba551de7a8c9048cac3b6edcc"], [20, 3, 1, "", "1:2 7555cb7065456e8c9abbac7b69fc1d5e7a6e631762739806e629635a718a19ac"], [20, 3, 1, "", "5:3 232503cded53dd7221dcff57d6ac1d42bde0b44a3d83a1af322de4c453e185fa"], [20, 3, 1, "", "2:4 f54b92d3867600666f831b9a1ca07de6acba61ac72937335bd0451a3de4cbb27"], [20, 3, 1, "", "3:5 24cfe75773c77d73d1f5bb3607265ec98dccb02854a636db3ff8b96cacc593cd"], [20, 3, 1, "", "4:1 dbf3d3e47ad3d7220f2ffe8d071ff0607474ea6e8f4c3edd18a553ed36509d07"], [20, 3, 1, "", "3:3 5ac27b3cd3ea1dfc7dc3f49e598adc90192ce80d0ed32afdd344789524db1dc0"], [20, 3, 1, "", "5:1 3a9ce035689a8fb35cebf8668b6c24df7ee70eff17799938db3029dea0b1edf4"], [20, 3, 1, "", "4:3 c98120af9e1e4f6ac518733e42a91af54ae118579dc4ea7355c255e9b3e077e7"], [20, 3, 1, "", "6:5 483be06af44f42bd953cf6480fb4ba9de360289eef475b6671f2fc106a97e109"], [20, 3, 1, "", "3:6 7285d85fe56e6377849b918e1d006071c4bb14a18476290ddc8cce3adcc11a30"], [20, 3, 1, "", "4:4 662c29b5a73d3fc1aa97c39557c1a8401d2f480bba1ec488dba0c4bf1833fed3"], [20, 3, 1, "", "3:4 70f4de38c7e4be7d2cf02f89023684e7d042ecc57c81e178147630244368220a"], [20, 3, 1, "", "2:1 ec4163446ba1d6053faea2c9be55ae44b49f9e489b2fb4266106708fe16bdda3"], [20, 3, 1, "", "6:3 547cdabd4f386341f56db0ee6332a762b67d119af87f9944ebe2697637857ef7"], [20, 3, 1, "", "2:5 ddcd4deef3d419dcbf8b2c18aaa5d8bb453229bce34e4d7180d9e8f93d2bf303"], [20, 3, 1, "", "3:1 c64331512493388d716b5e98082811475682dcffee41348b82483eb48cd91fc5"], [20, 3, 1, "", "2:3 1233b4977ef4e5fd6c5969530904ff70690f361cc5fccddbf8952e1cc7d299f8"], [20, 3, 1, "", "4:5 294202b2babc6658a990fded4bd4d3b7339acad054913a48ad0243ba8a907189"], [20, 3, 1, "", "5:2 f870a40ce0c25e251e0e8856014efc6ad4611f1a28cdef8c9f460cfde2be372f"], [20, 3, 1, "", "4:2 fc37a08d96af01fa9eddc305c921ac70c13dabc6a3a41c58f09f74622cc29075"], [20, 3, 1, "", "2:2 43876d9ff9e824879a24c72af81dd273e69c3a6f6646e9c7751272942fec04b9"], [20, 3, 1, "", "6:4 82d166eb360bad50b80bad46ce10a4d656966e94303a0fced35f59151561be1e"]], "4.5": [[22, 3, 1, "", "3:2 92febc08b74e580a8eccc9d1233d135ee4e59041e9ad926ad857fd36d22ce44e"], [22, 3, 1, "", "1:14 788a386db9bca5ece0658ad379be6e9720a7502dacc604b6b7199c62d0600a86"], [22, 3, 1, "", "1:12 864ba312cb813aaa2c285d358764732ca53afa7b59f44b4a26e959f8ed5d1906"], [22, 3, 1, "", "2:3 ddd7e64188789d0613207e30279466396e9387d4c837a9a700715c38aae1c3cb"], [22, 3, 1, "", "3:8 686f435b04adf578310fab3434b24706f77b75b4b7c9a189b81799cd033a4244"], [22, 3, 1, "", "1:9 f7fc7e37e48e1d9beec7400be5000d3f97bbaf12e49da3f3db7b8478895128d1"], [22, 3, 1, "", "1:17 36a62c297e5ac360801a96f184401b9074a30dbdd36cc171b0c48cbb24144c7d"], [22, 3, 1, "", "2:1 a39b4fadca9c6209a8eb00ee7b0ba2b4d03af79dbb8378379345c8836b5bc7a5"], [22, 3, 1, "", "1:4 8fadd9f05034847f538c7ea8c1f61165df9bb4c87e711d4b4a4cfc7ea2d2aa76"], [22, 3, 1, "", "1:1 41a04bcc279a52fe4a0d644f08c7974945044713d151a621e622736caa79f834"], [22, 3, 1, "", "3:4 0ce4ccb5dd76241dbc1faba186867478c49bd6a850f7c9a71d95a3a7a4e406ad"], [22, 3, 1, "", "1:6 dbf85d1dbaa9e65e9ee411a69098c8ff2c3a6b0a9372e68ed8ea0f1f7e0e87bc"], [22, 3, 1, "", "1:2 6ec5fbcdfa7bc0e2e0fa597521d52d44f4cdb850f944944654faecd563781897"], [22, 3, 1, "", "3:5 8837c04fd5dbb01d08026d2cafaaafd8ab2287f60e984d4fb1792425c0089812"], [22, 3, 1, "", "1:10 9276d9aa4b9d2a7a1fb0208d0f4b3b20336b00b99e8f85483048116ed6672925"], [22, 3, 1, "", "3:1 5367bfc0baaa05cd86579ae2623abf07a4ae259cb95582431afbf551136ca939"], [22, 3, 1, "", "1:7 d3209c56e335f945e3a200cfdae47cd6e4386e6a13052c36cd96cb27f665ee36"], [22, 3, 1, "", "2:2 99627103e41c406457ad5ca125407339483d91f6d8d598e7da9524f857d3c7c1"], [22, 3, 1, "", "3:6 5959734aa5fddd303916db4c88648c4a0f7e216586b20e2ccc01f56a202afa58"], [22, 3, 1, "", "1:13 c34f5ea6b85e16a716ab014d804766dbd0f681269e22f5fb113072b3aac7b40a"], [22, 3, 1, "", "2:4 943e0f1a6572313a255e14bc95a0134edbbb021f031683bfb43b344ea0342979"], [22, 3, 1, "", "3:7 f66f5248019636eefd0a3849d4710a419847eb4da4ffab3af715a08c5c7f4c02"], [22, 3, 1, "", "1:11 5d6b1172331de835223d74f329d2a086a76f5d59d89900a06cb5022f9e99e1c2"], [22, 3, 1, "", "1:15 0e045bf46b8ce2319bc906617e1284401c1431e818f333adc0a52da4a692a36f"], [22, 3, 1, "", "1:16 b34358c9f5a38221a3128afbba7bcac38af1eb7ef2bfea390d1ddf04c523b76e"], [22, 3, 1, "", "1:3 b933c4ceea18830211cb015864f5ffc6aa7466256320ccd3eaefe96a2ad46495"], [22, 3, 1, "", "1:8 2a4978216847213cc9cc89c486697babf78f3a02b2df4a408a19dc42fcd37c62"], [22, 3, 1, "", "3:3 ab71eea2a3c33b3222811c295c4dc83aba111daba6b56f8fe94c3669bbf808b7"]], "20.4.1": [[17, 3, 1, "", "2:24 2b361f50a42eadd00c2c0ca748063e0d34342f34e39bae540bb8802a83f14882"], [17, 3, 1, "", "2:13 b45c38305f3c3ffa6bf27034b89cc6b8baac7a4e72914a0cfdf7eeee7da69266"], [17, 3, 1, "", "2:18 8a369cdda5e38c9d0c9235244570dc6350c8f7513c2a5dc0ce5b97503f92b7ef"], [17, 3, 1, "", "1:4 d6cdc5aaa72a1fe038b82e1c7963c4446c2bc7668ed2fae5540f1dd6416a865f"], [17, 3, 1, "", "2:14 d58dc97395dae9ccb1d8fe2a21911f6287c2676be72fea50a94301b4b85614fb"], [17, 3, 1, "", "2:25 225d33e4ff2e8e37f77d0d4ba4811088ee088d027a6ae4a1a4882ca9b039fa98"], [17, 3, 1, "", "2:17 2868c75bd1038a056153d19675c38e727498801f62dcf998f97e79d1feb762aa"], [17, 3, 1, "", "1:2 4c41fb4fb8823d556cfb539659a3c4703c73a1c321684dd511b7f178f2ee5439"], [17, 3, 1, "", "2:2 69d0900d72789c738bb16a2cd4d7cd0938784373e5835a4c87c5655968e72f06"], [17, 3, 1, "", "1:1 86e93126d0e6c567afa83d3532a9dda63596c2a3a1b8fa60469481ff4891e786"], [17, 3, 1, "", "2:8 944fc29dfd11666e10802285b2515966d675e8dd3dba1e06c0e50e2db56199cf"], [17, 3, 1, "", "2:30 4538f5121ec15ee6fbd7d3cb0bb690cc955c3d8655feceab5333045461750c15"], [17, 3, 1, "", "2:32 3f33b5ba4b848845ef3c885d9b0b6d3309d5d903bf48ba507cc368dc25cad1ce"], [17, 3, 1, "", "2:22 622a0124d322fc811ce341d23c250c1d22df2be7065199c523a053e04f93655b"], [17, 3, 1, "", "2:19 235bfe3d83907a5ee61a001a2b2acac3b0e021e603831aed451c1cc984b6a784"], [17, 3, 1, "", "2:26 17b373ea759d5c509466cee1cd0f9941a470f136a1109fb7f745dd87e096bcf9"], [17, 3, 1, "", "2:3 9676823aa002fa0b34ed9ceb6cdf528e036dd054cc9680fd769fbfbabbdf2f33"], [17, 3, 1, "", "2:20 273716f2c264d37ea340ce796a784d1e2b3cb3a16578a954da0dcab1900b6ca9"], [17, 3, 1, "", "2:4 485dc2a03abcfc575a18d12f44392c25e70e3d6c8c7defe90be8b259721e9cf2"], [17, 3, 1, "", "2:12 80a04645ad370bbb071324afb5d55d19b18f915e9fadfab568496d6a3a18fa5f"], [17, 3, 1, "", "2:9 3a4366c2f44243bd2284234dca5b270e4dc4a86d1f32a617a269adb290fb8985"], [17, 3, 1, "", "2:6 8bad01afe18f0792f1545d920186e04ba62d8ee647e2fa200dc707f23996d326"], [17, 3, 1, "", "2:1 939454db28503818aeec06820dacf2ab2a82bb11e9ebd50d2b097213c7223ae4"], [17, 3, 1, "", "2:21 1ff9a6a6d1f6eb7b4c668c7940b8c2e1490c37f93b536e4b0f4468a49095216f"], [17, 3, 1, "", "2:15 0f22177e56930189a013cc165f27159e88950b6309aec5aa8f36dad4fc00070b"], [17, 3, 1, "", "2:23 61ca7e8337e433a1f27f8ca82eda551971c4361a34cf11fb7c23f53368ee2593"], [17, 3, 1, "", "2:5 4e3b1a4397f68e72da8d33b18764d344b2cdc18f83b97ddefee8dbdef401dc87"], [17, 3, 1, "", "2:7 9beee8340868a57b1052f0fc0b375a60221fffc91fe52f2b2a049ecea579e62e"], [17, 3, 1, "", "1:3 6ff3d3159841229f8392ab25c21c4749d84f44f9448851671427adf3fa2c97f8"], [17, 3, 1, "", "1:5 b69c21d1eb5931b6f4848c2e230a9199999a3b94ade1ff93a4c66ba685343958"], [17, 3, 1, "", "2:31 38cb0f7a2daa5611bc22dac0b50c555f9d3ffb1127900a2f86ba5a79ff08498a"], [17, 3, 1, "", "2:27 34a0742ef58a8b7fe215596c5252975ec70b4b86687272048bf5ccbee1c21eda"], [17, 3, 1, "", "2:29 c8977ccaa62d4c406898dba6432a60322e5b401d6bd0f7cda07b4b0979bb29f6"], [17, 3, 1, "", "2:10 e4f9ae7e642ed779024a8e69cea6afc9bd400fd2105ce496a574bcc9be0bf3d7"], [17, 3, 1, "", "2:28 408711d561d0aa646b34d91388c4abb3e0e292eecb966dc171c8368efaca46c5"], [17, 3, 1, "", "2:11 a6923eaff6739eb4d6492f970c783cfdabc71c275843e5ef6405fff5af5b0432"], [17, 3, 1, "", "2:16 8b44cfe64ffb38c055354fd03755c38a67d369899996d279000749b6938b4130"]], "5.1": [[19, 3, 1, "", "4:1 6eab6a03669622290fe084028190344d03230efeca455f6bd9e2891ac8781c05"], [19, 3, 1, "", "1:5 e7b226edcf6dc4bc129b1212d923d2b0052764e5f3087f635a8f5c48af37d436"], [19, 3, 1, "", "1:15 6827708c08fa8d7048aaf70d448f1ed456a018a5621ccbad9e38ba38eb4f001f"], [19, 3, 1, "", "3:5 6b2bf289b930cfce356ecbd497063fe3f045ee08dc3919d303a7a90c52eae0fb"], [19, 3, 1, "", "5:8 785db35c5291babacd0f8648588325297f8f45c2eebe7fb665e52b8ac76eca68"], [19, 3, 1, "", "3:4 52b7260cc5a853d5a086c015be7f8a33e52909e289883c03c7dd49664172129d"], [19, 3, 1, "", "6:4 b78639be70162116c61abcb66a81cfa0e2adb505b2a71ffb60f9639cf7a038d5"], [19, 3, 1, "", "5:13 5d22fc340f1c7e324df48a970cf5ae8a4811f8a5ad3880704eda257dd3d2add8"], [19, 3, 1, "", "5:18 c5f72fee7eaf39bc3ba6e09ef2aeadf91898aa80c3ec33ac0edcf6154204e82f"], [19, 3, 1, "", "1:13 11934cfbec627d51e8441eeef28fa1983d4ed59d73d9dcbff26e5d4cf4007fed"], [19, 3, 1, "", "5:11 b55a395def7ce875a26f0fe8a3f186342864481fa72edba9c13c5d5f3f93c9e6"], [19, 3, 1, "", "7:2 d787720d08f2fd60c09276b2b5be62b0bd3a0ad5aef799a71bacba9691897fda"], [19, 3, 1, "", "5:16 0315d5b53fda43c91943de2a08eda96b79f469004237b8d0f02f52f4c1f35567"], [19, 3, 1, "", "5:12 fe437f18136d4053707f9c2e3b8a79e527d78c77863abc6bfd04f4a73204d3b5"], [19, 3, 1, "", "1:12 0905da49ff8fceb1c24a37a019ba80b02f466cbede9db934f3506067251411de"], [19, 3, 1, "", "5:7 6316acea87cf2eeeb7b2e0acb3d99f9f56716dc64ba70e167716659033b9bde4"], [19, 3, 1, "", "5:9 0c9d1f2587c2e5d8ed9ee166a68762909b9b7936245dc9d2341c1f7df6670e6e"], [19, 3, 1, "", "8:6 b7fb9cf107baa52a1c3140dbb24ee079813601a2c74f83321a61e14127737833"], [19, 3, 1, "", "4:10 686e4dfe42f5f913ee2465c883ade027d7e59e9e065e490993681639adbc6114"], [19, 3, 1, "", "5:4 2730f4be7e58310acdcc2e8df0d5792b76b2437850f3bea63f0e94ad25e46eee"], [19, 3, 1, "", "1:21 b32516046ade3590c7036c2a5ecbf17d55a9f6f00da394c3d5281096f8cf26dc"], [19, 3, 1, "", "7:7 3e6c88357b38cf981ef309c03b2df1cb25d9f796365ca21fbbd67f2d4571cd42"], [19, 3, 1, "", "4:6 e3791cb88451803cd0eccbbf5f370fc3c972abe87f321825dc692aacb617742b"], [19, 3, 1, "", "4:8 02aca8f7474b9b51097bfc5d6ab6e5f5fe22f7bd5eb8847ee5d4f3b70392c46b"], [19, 3, 1, "", "2:2 b5e4dea23898449138503e31ca3616865806df2f2af08e0460bf75c15cfda0d0"], [19, 3, 1, "", "6:5 cc0ee91216508f36e23696e7ee09cd4fa77b065e4c323a2cf3610c891336fe3f"], [19, 3, 1, "", "1:18 7d886e7fba9c09e14a0789ddb951c710bb88a50cf8e06a6bcdd6629fb55562f6"], [19, 3, 1, "", "7:1 071b1b905e799a04118d9b0fe22e82b9944ef00a527e80a327c0c4f6511fd52b"], [19, 3, 1, "", "1:16 5938b3e5c53f5eb860f3c7aae1864e4e5b74c0a93b9460455798ee597639f3bd"], [19, 3, 1, "", "1:19 655158cf590f06600319e8e2695db1b56219fadc4cc034888e17c53b07a84274"], [19, 3, 1, "", "1:17 6853dfde9579870712b9fa937c1b65941c6cd04e82272bc721064e696c10938b"], [19, 3, 1, "", "6:3 cdf387e98a664c3724ff90541e30f67670be603da49923fcb4e3a4ee54ba432e"], [19, 3, 1, "", "6:1 0ac86e5a12c490f5eb80008b0e18cc9da39af2074dfbdc99545777192814afa3"], [19, 3, 1, "", "2:3 9523bfb2f8baa5008bc1e0027689e39ccb5e220a0549096f0b83c5c7246298fc"], [19, 3, 1, "", "8:2 948b35cfd7619032dc69a5d84fa17b28a615e792a6f0e0d49e140816b136e7e9"], [19, 3, 1, "", "4:5 c1c27a19deb008cded1ee11e11c906c699c4a1a086d847190fd58dcc97f4785c"], [19, 3, 1, "", "1:3 d9b79bd4e33b5e5d59d8f9ed2df014f66c7fa0c487fc3b0b70e3700fdc7dc420"], [19, 3, 1, "", "1:8 a52f9ed5eaa2b34c018a779a37184c71defa111f92bc5a73d7642178df8e755f"], [19, 3, 1, "", "8:3 b21f2e9bea39902d97b0a75bd48f584b5bcb685635cecfeab096b27a096de184"], [19, 3, 1, "", "5:2 0b382770b9780b9239f762eb87f95835b03588805b1a4b3def28336d666ff7a1"], [19, 3, 1, "", "1:4 4f2142d8ccdb2e64efc1eaedfef6bdc5b02f5ab32bf7ed59698ff61681fd7384"], [19, 3, 1, "", "1:7 e762d3ac05f362349d87a2a26cc37f37eaa2148eadb4ab7a97745abed9a62df2"], [19, 3, 1, "", "3:1 24403c83d4acc034aaa73d968a14afbfe7d9f1bfdbee90b17ef960075453aaac"], [19, 3, 1, "", "6:6 a25a7095fc72a731e04329d8ab3d3101d3671e76267de53f09aa6d749f866a5d"], [19, 3, 1, "", "3:2 5f42a52d41b664edb742dfd664f01990bf8432d041e601e283d750cb83a85f90"], [19, 3, 1, "", "8:5 93891609dbf9042a20ed470adda1893453d146707a716c6a05793ff9c64e10f0"], [19, 3, 1, "", "5:6 656232ce77042076d43593f3f21939aac2c7066d0c750836345ff9ec0a42124b"], [19, 3, 1, "", "5:1 959fe2ad28f3934a1ce306646ec29b82f95de36f84a5c69840957aeac1b88eb9"], [19, 3, 1, "", "2:1 7afee4377bf01eee53e398835c943ac86067eba24c1cf64551d7f801915e5ece"], [19, 3, 1, "", "3:3 41b7c39a45d4144509bc833e84ea455b7d86c0a67c5d58960e14e6337b2c44d4"], [19, 3, 1, "", "4:11 0156b2335414d9b4db2b75d75ed55fbca446bd1b5b81604e0171ea7872fd44a2"], [19, 3, 1, "", "1:14 05ce4678c850feb8fbdc7b0bf9a65ccdd82414dec3163903b5ff487cf3cc1b8c"], [19, 3, 1, "", "5:3 1cfc9d659ff30640a5179ad40746d5c08c3c187b5271f28b88305b4de6ba138a"], [19, 3, 1, "", "8:1 f9dbdad2eec41e1e1c60cd8c0cacf14973b904c94631089f41ca0e1bbda98a17"], [19, 3, 1, "", "7:8 c6203fbb28f63565945031f16bc7f7096f16bee4c02f2c16161cb0c3cf80c7a5"], [19, 3, 1, "", "1:11 dd8b86458df1b70addc97086f4ada7c7692ff5103622010059fbf0283f8ffbb3"], [19, 3, 1, "", "8:4 9ea93d82c4cebaa6550a0787f2925118cf5370ed8a0c02104b3a623c197ae9c1"], [19, 3, 1, "", "5:15 4993d699bb304cc5b32245e03cfd7425d322876b5dc54fef12048c5874c667c0"], [19, 3, 1, "", "4:9 1c34cc598291b31ea8a8e18057c24a39a3b1260ccf47acdefb76df1c0ffd1b05"], [19, 3, 1, "", "7:3 3bf650bd8078af8405ff969b3616899e1bc80ef2ef591d2b291cf99f03008f32"], [19, 3, 1, "", "5:10 88a5cfae2ddc1c38d1df4a2dc1b86e99bcced79bc5b40afef543633e7c48bce9"], [19, 3, 1, "", "1:20 d3b46f205bcb595fe85d75191fcd80dd7933343080fd05b57200c0118ad6b609"], [19, 3, 1, "", "4:7 7f7d5841b9bc8e1f3eca2f3f52fb1c78bb016e93d8212e3225a673fd4bc4b053"], [19, 3, 1, "", "1:9 b439ed8b20762b4889891571152f54745dc81b2f6b4abc45db0448e2cac4888d"], [19, 3, 1, "", "4:3 853158ce8e75116be9bf2d63bc0d49626010b9d0fa0c5ebe80a595ef4da37aa3"], [19, 3, 1, "", "1:6 3ee68e9c11cc6de58983cada3e69d6e25c9096bea32debb22614bb2a25d155f0"], [19, 3, 1, "", "4:12 828f48eb56377d3b46c0da453d4e59253c0dc1419ef356ebdec3471ff072a7ef"], [19, 3, 1, "", "1:1 12df3c9420d70b5492aee216c48d595bec10c1bfc7c95589c1aa150787788c68"], [19, 3, 1, "", "5:5 0ba8c1ec907ade4c15c689e735f0a5a8b187b5496f656c893968eca7e5468b54"], [19, 3, 1, "", "1:2 241eeb37b7dae1635d202ba61372dfbf4a693e183ca1ece17e3818904f6c809d"], [19, 3, 1, "", "7:4 11486a40e40c1eaa6529d06f4f52771cd804d9d0cea29d215e5e9e6748877b01"], [19, 3, 1, "", "5:14 0258d7139362363521a799c8ad54725da66ba2ef0bd98e5d4a941a507679ac3e"], [19, 3, 1, "", "6:2 6a57abc9dd69b10cfed97889b75688970d20e1d41ef2a43eb713a41472cebe59"], [19, 3, 1, "", "1:10 db308f657bf02a10ddea3390b29681c6eccf4bb81b2069d5f1b2ecfbc7853dc1"], [19, 3, 1, "", "7:5 318a513cb1fdf4e37047eccc4975636818c7cd86126e00b5b3e132411c629003"], [19, 3, 1, "", "4:2 6b5457b32a2fa8723c542bd4b63d6de477dfc4e8406457a6b0ec05a421fbb295"], [19, 3, 1, "", "5:17 9f6d9020a6778f7a34629150159b8a67764f0aea6638d4f0d47a20fc22fbe70e"], [19, 3, 1, "", "4:4 32107632e6d0b56902397df91b587c925c1cf6ce0a1f364dd9a3708ce1e015f6"], [19, 3, 1, "", "7:6 de50b523931b5b23b262977da389190179884668be06d4b514d2908f9ad2aeab"]], "14": [[3, 3, 1, "", "5:1 4836b7a81f95f97d95f77726c269b4aa77f371889797ad03dd5ac5df22bb36d3"], [3, 3, 1, "", "1:15 79a170cb7c345638c6755e2d61f7444d2a35b53530a2cb6d81638b4f002de86e"], [3, 3, 1, "", "3:31 177724d6510ea45d50120fed6c28c92b69dca2fc3124541b67c96e933917bc0d"], [3, 3, 1, "", "7:9 5b6924c18d30552bc9b8351dcc65a6bd1e5d98680cbcb35bd254e872513eb96e"], [3, 3, 1, "", "5:15 6cc5106a9453f6b24aa3d1b25413993384c934c46830703cf83d6aea69144c37"], [3, 3, 1, "", "1:10 9db5af7bb0d5b4e2f0254774b4d7490d11b8de8e608b0b73eab3268c19fb91fb"], [3, 3, 1, "", "7:6 6bf1152c602ed8ba48c73c7fa1915bfad897fb93875da88dcb8ba9ffbffd7dca"], [3, 3, 1, "", "5:12 c2df785b7f8b4c342a0cd204655bf38f1cdcdf6da21e8f7033577a0779ea7dfa"], [3, 3, 1, "", "1:17 9f6fa9d43fbf2924e1c1ecc5b6eef6db41f10e0eda261f898fa00b0db1afddce"], [3, 3, 1, "", "5:39 45f1bccebe0303da8288a05a61a1209ff3203d962d252fcfa1fb0a549f9feb28"], [3, 3, 1, "", "1:2 3ac0c135867846c8545f48d505c7223de228d3c834e6c35369d20839f30645cc"], [3, 3, 1, "", "5:37 ff385d3524d4f2788d893d77f024a5876c248a7eeee84ac5626642a07c55e0aa"], [3, 3, 1, "", "9:4 1697af6564bdffc62e51d3c846e72831c1c12e73fe2790f11c7a21ebfaa07a71"], [3, 3, 1, "", "1:11 e602c23f513b2a0a4e008c3ea5961a7ed8f80dac05e98ee7a31d32e25387986d"], [3, 3, 1, "", "3:32 a16e3a0e1a36090a7b32f972287f4cdedbddc5e240a9b3c08929277f4696a99a"], [3, 3, 1, "", "8:8 c67d0f504519dd854e9530bae15b45de6b718e9b8c41f7cbf3e5178c96e8c04b"], [3, 3, 1, "", "7:30 0e8c1af4192bbb151c8e0d0e48a61bbc1f113b36ede83721e90db3fc6229e35a"], [3, 3, 1, "", "4:1 43517ff3b8cb455dc43e97cf0f608edaefcb7c7be9cbed87555264c018d5f507"], [3, 3, 1, "", "1:8 9cd87b048aec0624e781b4917dc99e0e3956051679365ab7d33211685d93833e"], [3, 3, 1, "", "1:9 43a9474bc05f5cd0e56b671046a19f56d4d25db70d02d706182d94772fbd9525"], [3, 3, 1, "", "5:16 6de1568e937c91c9d59930b38b47a437c2f0d6c186377eb0f20facbfed8ffed5"], [3, 3, 1, "", "3:5 5acaf482d5f5abc1db1e3f4e641bcd7d6c807d43c02ce713887758947708de2a"], [3, 3, 1, "", "3:6 a51e77fdf7a71f0b0eb300f601b6c822e9ab150f5103aa44a1d5ca3df82f5d6e"], [3, 3, 1, "", "3:7 ac1d3cb4221100b61e82b61f5b77c09f81760c8ad406f8180479d1578f69aad6"], [3, 3, 1, "", "2:1 14af7dc4459e85c32c0011005e8e1d05bae942ed8f5d4cb54aa713543425be90"], [3, 3, 1, "", "9:2 66ebea6978cb1daf3e00dfeebbba4e819b907b02a40349e360a6b094881ff7ff"], [3, 3, 1, "", "8:6 83eb26105dc85d77872ef84d2a9ee034d52e70b80e1aebf1653955eb3298caad"], [3, 3, 1, "", "5:7 b25e6462bc8422aa888e0dfcd2fce3eb82d9ad592ae8442b03f73c12fb73f326"], [3, 3, 1, "", "3:24 8902e7d1f80cd0a6e4e560838c03d8a2949169ae5cf6ffc22f241884a23bdc84"], [3, 3, 1, "", "1:16 25dffbf70cb2bb0cd22c431fd0a46235618a589b0bdbf4bf180b51ed37a9d5d6"], [3, 3, 1, "", "5:19 e64cf0d2e680eb773614e1b17642212b8071fe0e2601a1b4c95e71731c84a4e0"], [3, 3, 1, "", "3:3 a598a12193d0fc3d17a4719a6654b5c3e5de057fb03a8f36364aedb05933e05d"], [3, 3, 1, "", "7:15 64222f860a3b80479b545a9e1668b362fc096bd84fd135b83848cab59f535464"], [3, 3, 1, "", "1:4 1e043bf7a4a6c40020a77d37fba4d646c5e5114a2fd0ce467c817c77746df26f"], [3, 3, 1, "", "5:3 9d7737fbed1d15d12a68fb7556505470fade9e802af7fd449a008b5b02bcfcdc"], [3, 3, 1, "", "7:31 6a1fe59e480a0b1ad4b849816298fff68ba63985da52c560be04b860192302b0"], [3, 3, 1, "", "8:11 849224ffd513f258a847928a943322879b28ee64055165e1ea8d3bac7ae0e624"], [3, 3, 1, "", "2:5 66f72eec45e87d39e392824cbccd92cde109e25c1ee3731ca8e7b27a1bf1b778"], [3, 3, 1, "", "3:20 038e052fffa92303139c1be17bb4f7521e552611f2647cf22270e8358b9553e4"], [3, 3, 1, "", "5:29 3ff5dde150cb5c944aec2ecd5a8349fb90870bae072f2f54544f3c820bfa7fee"], [3, 3, 1, "", "6:9 77446948cc77c5f2d38ee156686b5607c4f0331f371b47e54e835ad173f80ba9"], [3, 3, 1, "", "7:19 41745bc2f1843a06a54a672f54f86ac947143da2a368e20e62f8df7a9d67ebeb"], [3, 3, 1, "", "8:7 2b077c03fd28171c667fe2cf4b197a2f463d319e9fc967f4718fc7013e240522"], [3, 3, 1, "", "6:3 ec28e48bd9269897b4f0446e74ae493289085d680cbdc44336623ee5d261c82b"], [3, 3, 1, "", "5:2 db9113301feaaf01f285b54f58e061b2b4b3902f5faf3d7d227eb0b315c29ed6"], [3, 3, 1, "", "1:6 62877b7edbba7547c96ed213430dab1fe6be842fc13b0905bf1e0e39c1574c5b"], [3, 3, 1, "", "7:20 00e9aea779512a6b5660ecaf0702c0d3ac4c3c845a967ca739fd4cac1be0b551"], [3, 3, 1, "", "3:13 6b80947a0c4468e18fade3520519a9b79a5d2d8115001c1eb8bfc0a4a029399f"], [3, 3, 1, "", "5:11 4e6c9e8735f706d3ed311192bdd242aebefbc9cd8b79ed32481799fc4e4d54ab"], [3, 3, 1, "", "5:5 a19dd69d00d64c388eab5b3d9c048c0137016955c4437b1898ac721c57e8f994"], [3, 3, 1, "", "3:29 21a2d8cb523c5773ae29d50f41763ed7ddb60176b8c96ed994bbb76bef1bf401"], [3, 3, 1, "", "3:11 0810d5dde86b8556c45ed507bfbec7f51260bd25badbaf62080b21443358840c"], [3, 3, 1, "", "3:28 c3776124fbef0e532209f8f067a47e7af3a3bf7032ceeab5cfb896c7651d07dd"], [3, 3, 1, "", "5:22 5cd65fc00ce58c6713964263dae05662f477e761c5b34c5bd4f050b3608b12bc"], [3, 3, 1, "", "2:14 d2248a6b249c97703150accda87c18ce1d43c45ffefa58683d93eab6824434a9"], [3, 3, 1, "", "3:19 8ed372f7349a77552ebc1390e264ac1254ab102736d6e6455ffb3143c4602dbe"], [3, 3, 1, "", "5:26 daa0b3886b8ff9f6ff8b555ad965ddbc2563f2cf44e1b869d632647511fde7f0"], [3, 3, 1, "", "1:23 87567b121feb41fb49a72ba0f88e7147e1ba7182f665fcd3118ee7cb4e446d2a"], [3, 3, 1, "", "3:27 3f386dfca473cbbe5216f7579aabaa0cda4f6d9bfe53ab258a43c18168692f75"], [3, 3, 1, "", "5:9 be6570673f514f4a0d3d22cd860599d6811f9cd474760042c53ed220001d5d06"], [3, 3, 1, "", "7:21 43af72288bd22a2547f54bfac05285b72065c3c2cb06c8de5b5ce6ba9efb055b"], [3, 3, 1, "", "6:5 6bc798373f758197663c5691e9bf15b398a778e6f199a05c44fa7aa932fe6c11"], [3, 3, 1, "", "8:2 6e3390d623ef6fb40f9e1687c6a8225b9eba4a6e72844ff3d2c96319a35975fc"], [3, 3, 1, "", "1:19 3cb5bba3fd185734dbe976155c21323253786de2fe38287190058d186d71d532"], [3, 3, 1, "", "5:20 8030bef3d19c581e3a4a96c91f3fd57388b1fb2bedea44b40c010da243302e7f"], [3, 3, 1, "", "5:14 e2e5c5f30f5fe02da3765cc72c29c109ec1284daaaacef2440cd86c7dca3ce84"], [3, 3, 1, "", "7:8 f9a3c4f788393bf20c3f6e2f1532ebe181eabd6d14c64bc76bbde37f384cc86b"], [3, 3, 1, "", "1:24 d9efa486af937ab8018d16e3b87ca3ba0732e7ca8ee67d91e37f85f401545d65"], [3, 3, 1, "", "3:17 6ea02148b0bd9c494f779eeaac0fa983285fd00082c3df4add60a7293f1b4d54"], [3, 3, 1, "", "2:8 80ceeb14a02b69d81e041c8aa913ebc5ae529cf2ee64c36a4e3d2490d9362418"], [3, 3, 1, "", "9:1 9dc68fa012d432e6ce69d9945c40a38ec3fa96e38601d3106e03acfe663fdc95"], [3, 3, 1, "", "8:3 db3d661af677fa5cf3df3f945d076f9f7636833ffe1dda2753c0bd7295c67912"], [3, 3, 1, "", "3:25 272e37c850f521889e6d9d7e6813f0a87f44a727cb59102b140179debf821a56"], [3, 3, 1, "", "7:26 923e223c194e910992be0f11cedf10480449de62681514efabd485fd092a163f"], [3, 3, 1, "", "7:14 3bfcbf98de455cd97691285c1acf7f4818c2d6a62889ebc042f7444e9a36d98b"], [3, 3, 1, "", "8:5 7bb5774d32bb848596abc22f98835526687c7290c92e9a0c480006e2ff78fcee"], [3, 3, 1, "", "8:10 28721531162ef5d6094a8ccb50a419eb494630777d043b260cc2e84dd9e65180"], [3, 3, 1, "", "2:9 5b655efb0d1d9c1ebf6eb86a27556a8c7c7f88e3eefb54012f7a4875c62c4c65"], [3, 3, 1, "", "1:22 d2c4cc3aa6df1ff8c7acad8083bd97da4c7bd274a886f15fd95a0d2495bdbb3c"], [3, 3, 1, "", "7:24 8cdb7a1fd01eee9c13a292e349acea9eb9ac949a2fa9265baef3c16015ddb27e"], [3, 3, 1, "", "7:4 1b245fbcb87f36b4177fc03be141f12a61d6353063182660fab4e0cdc454c0da"], [3, 3, 1, "", "7:22 2ddb4b51369e74bddbb00fcd04f1bb773bfba5a9e5dfc796d8df300f808159ff"], [3, 3, 1, "", "7:7 79e5b1e6a7d289558aff645ca9eef17ce05e04fedcea56361c3c5c8e0ee8da88"], [3, 3, 1, "", "3:10 804ea247d1050feb630c47dee50038329c0f8fa4a1c7bb724eb1d19b29eaaaa0"], [3, 3, 1, "", "7:11 7645908217267b4bb43c4e7b5562d641d9bd121bc47c13f2301e854c768d2dab"], [3, 3, 1, "", "1:20 d3626b9e94df64ec6a68712a8efc764bafebfd1c7736ff21617a39badd0aaffb"], [3, 3, 1, "", "2:13 651aeacef587c3880996a14a105866d5887bfa31fee311aca7513f5271e0ab59"], [3, 3, 1, "", "7:12 8e0c213bf3df7e68bb3d5a37c5d28f9a2951831f6a212231d780248a26766802"], [3, 3, 1, "", "1:13 fa112b87d033633e63c7f4216a3dac2dfa3bd0d440c7f574ab7a8375752d577d"], [3, 3, 1, "", "3:1 faccaa19e7b0dd16805a53e9927816227b3f4124f6860de31b266715a59bde86"], [3, 3, 1, "", "2:3 5ca85d6ded39a41b0210496968063f04f76d7902d519e0044cb431f2888c032e"], [3, 3, 1, "", "3:12 0b5983245cd5346dfd1276ced7307c04d4d81717e265035c72319454fbdfac52"], [3, 3, 1, "", "1:5 cc53b299dafa70bd4b1bc538690c6759ff1aad962a25dd458050dd834792d02d"], [3, 3, 1, "", "7:17 b5a17251d386bd737a55045cc108b41a18740d77abb50130269d9ebe6303ec72"], [3, 3, 1, "", "1:3 387b393db8ebbfbbaa31538cf9d1ed1fbd883a62e99cd43daae557d55d6e3778"], [3, 3, 1, "", "7:23 fa0a3046e6eb99fb80810bb3178f02f5e79ed989591df2df0d2770e7a189838e"], [3, 3, 1, "", "5:17 da1ee981a9e1da0bcc03eb523e05994e90313be4bbd2f3a91ac1cef0226944fe"], [3, 3, 1, "", "7:1 813cc34b517b6e85c804618d58441cbaec0e01369396ee4e16225d853a8ea8f3"], [3, 3, 1, "", "5:18 1f6a93e2bd7f34e4fba8c83590318721a361b61a42c82338c30914ca994e74b0"], [3, 3, 1, "", "7:5 e517d4937f6b8b583887c5043676af52be726cafd61bbc680f13f5656221172d"], [3, 3, 1, "", "6:2 9110a045c9c8c940ad03c36e93d5155d9143317d35c55691fb325a15db4b8607"], [3, 3, 1, "", "3:8 2bbb4365668a8e9949e6ea226fc1c4ca1bb0c3059e7c2972f064baed667ad506"], [3, 3, 1, "", "3:18 2356207dea29ed2d5aa6e5a78e4994316431b1fe5a8a50b76c7d4b8cdeddede4"], [3, 3, 1, "", "5:13 b626273c028df98bf83f9cc308f4b313b40fd4af9a828d4baa99d514847b7e4f"], [3, 3, 1, "", "1:7 df0355bf9d408621ab3501afd0c95fb72223e5ff74db7d62eaddc72e96f02fe7"], [3, 3, 1, "", "5:10 039f5baf7e3e9350742076c571ec8701657413eb2ab8cf7c8ba7e4a9c6525e47"], [3, 3, 1, "", "3:30 1efe56e648556f44aad0d45dd15797ab9f64720e38e3df135b9a6f95869b49b6"], [3, 3, 1, "", "2:10 ce3d4660375205a9a7a05150a0d32054e4b084831f3597693559ff0ac6ecc11a"], [3, 3, 1, "", "1:12 f8bbcd5c0b5f9b29fea6dd2805dd0de209e9d9b443342686960740d64e79321f"], [3, 3, 1, "", "3:15 34501af716aa34b93e15d351af04e08ef899126df7109cba1f2037f7ebaf9b3e"], [3, 3, 1, "", "8:1 eb93934c961caf16b01776dfdbf9b28bd8d888368b6ad7e96ed926a29f22bbf4"], [3, 3, 1, "", "6:10 9a4a1df8c10224f0c968a22de8bdb0bef1914575cfb19ea0eabb39bce468dd62"], [3, 3, 1, "", "3:33 3d7face163b14a1f83f142fc864a2664a8c9ff279c76d924be5a0d78c9df1a62"], [3, 3, 1, "", "3:4 a04567d394d65300bd24d7a6f612dfe96ab09a8e1d9d24007027cc4d257070ef"], [3, 3, 1, "", "6:4 51511e88fc1929d2b8a82b1599001557503f199917df1a80d734152884ff7c77"], [3, 3, 1, "", "5:30 d4015ccb1d4717c0b29f6d3f48fddfad1ac1f9f8a397e4963f0d571b37bd4a4b"], [3, 3, 1, "", "6:1 38d62c936f206c7f1e48f785bbde2d34f1bc2865287994876e882b1c0f65d05e"], [3, 3, 1, "", "5:27 120d3ec4ef8b8d96a2aeed9aae90b73656762d0a9cad70696c487cf430845448"], [3, 3, 1, "", "9:5 f79f3efcbf1195ffe54c0a60acbf4bf5874f53ef8c0b36f0851ce886a40598d3"], [3, 3, 1, "", "7:27 7b947c9844d14caa57b996745fe9aba3027e04b17242edb5d6ba5c93d9247024"], [3, 3, 1, "", "7:13 9cec53e98886d395fc8df4d58bb00bfcb91617b34acaf616395d8e52652246e5"], [3, 3, 1, "", "3:23 94b5df1f402d9ada3134d26046016aef437a8e86533892e27c5a99f4edf52a58"], [3, 3, 1, "", "3:22 87aea9dbee8a48f85557797bbc2d29f8e6fdb0dac7615ebc8e45ed28500441bc"], [3, 3, 1, "", "5:31 650724cc8ebda80bcd989f6e99e585db43a4590a015f45fedea21bb82f33dc3c"], [3, 3, 1, "", "2:2 fca421955d7d461ea14be29c223491277febdafc297c8580073d5de797c6d03d"], [3, 3, 1, "", "1:18 79b617624b18e886c67a3fd5303e3c3701a1bd761fbd598742fa457fc62de196"], [3, 3, 1, "", "6:8 27cab7337ca595be01ad78b78429ef14d328fa6a449fea686acad8144ea79c34"], [3, 3, 1, "", "2:11 58a169c5015aa314a9ea29344a5fd52675e580674d1e2c168b5a1cf37a662248"], [3, 3, 1, "", "6:6 c92c07a0326e48234f51c8b6a55bbc0ef651cc56135b5f0f5b5203095dac192e"], [3, 3, 1, "", "7:25 12921489bca7899128033af3093a7ba86cffca5d616df55a4805a78bec860c60"], [3, 3, 1, "", "1:14 e61e4578e8cd0a2124be00366bcc0ace261b47e5cc829bcf30274cd2b97c588f"], [3, 3, 1, "", "5:21 df9b14ad6a4ce87a81cdbfcb59cf04e07e8eb0a0c2de14823a7b87d1ee2a5700"], [3, 3, 1, "", "3:26 07fbe740bf19563ae613bfea97ef80ae7a163aeeb40db28860b3e3271f30dec9"], [3, 3, 1, "", "7:32 450d1f7e6a218347a2975757a64915986a919f11db07da137f1b613c0651d553"], [3, 3, 1, "", "6:7 4346e39808389249844816dc52643e4e1c2e04e1990eddc603e94ad0e797c809"], [3, 3, 1, "", "7:2 60cd8ef0b9e4e5913161b5314d0d298edd34ff20cb398eb5e69afcb53c884a65"], [3, 3, 1, "", "5:33 cc447ee2f7a5dac66d5e22eb032c6a31eb21d5526ca66fda96ebc2ad415fe6e6"], [3, 3, 1, "", "2:4 f5f0a1362543a52c48a0832fff6511e7b9cdc663430d2e625d748329455133e9"], [3, 3, 1, "", "5:6 823ca05b98ccb7e81d9e549d58a3aae35ebbed2f14813b3715bc9e393835a951"], [3, 3, 1, "", "5:35 42dffcc4cecdc17b20167b7319ca32561b6c3bac4a546b72a18301ddd55a407a"], [3, 3, 1, "", "2:6 3e16d751015c5913b6d155171e1fe22c30d873dd4c5557cff7f046161cdcea45"], [3, 3, 1, "", "5:28 809a2c313aa61cdd28a44cd5fcd05bcb52778a18127ddd942da86fc441d1c2de"], [3, 3, 1, "", "3:16 612a8b592294352e6c67e0fd45f33a2baa3584b57d904a270e78d4339281dd9e"], [3, 3, 1, "", "8:9 77ce43e27ab83c36305d9a185a5ca04f7f8829673d2b5697f77fd89d032f6cbe"], [3, 3, 1, "", "5:25 26d2b1e1d098bd315370c984c209e9bcfe05242d062331290c72be6bbe298b92"], [3, 3, 1, "", "5:32 ba289fa126ce5f48c2046c9cc9e5e7cbd13217e772757f9c2d12848473872ebd"], [3, 3, 1, "", "2:12 807c234d700c1c58154b62858df9203ffd5320127beface925513a72d43746a9"], [3, 3, 1, "", "5:8 1d855f70942b4b97e20f7a8c2376293535691ffc63e1a3c00d9ff48fbed1c016"], [3, 3, 1, "", "7:10 7fbdb92123ed136d12204172f71af7bdf831c5cca0d09fb88a8446f8a976e9cd"], [3, 3, 1, "", "1:21 65940ab579200a562e9131adc24d67f63cf6751522972925d98e3eae88aff033"], [3, 3, 1, "", "5:24 52ce21886a1f1adcb3176e37769e7fbf75f96b161b8f1ff617e40e254a1113b6"], [3, 3, 1, "", "5:4 1ca9460a4376c7d597c332cf181c59202868d0b5d8d5fe8255a7b430c6025ed1"], [3, 3, 1, "", "7:3 eb328b409e1e5b1f5bfe01c443065950ff895ff862c758235178db6ea7812a7b"], [3, 3, 1, "", "7:28 17b551577a4582157ce3c9a4dd5f1f653ac4f0fcca4d9b35db57fcb2edc04dda"], [3, 3, 1, "", "3:14 f525bc5d1cc46a6aa7cf36eff8be2a47a90c9803c8a06fe6f8dc345c61c9b080"], [3, 3, 1, "", "7:16 0e4fdf65d5d96641f5f69fd73231dc0d8b53d0a8ee40c16c7e62fc70ee53f047"], [3, 3, 1, "", "5:23 1d817e252ce6759b84635d64a683f45d0081ab7c687143959331fb141cce459a"], [3, 3, 1, "", "9:3 f1ca8332615aeed822d795872f0809ed29a4e1d2160faa1ee7da8b3e1f6e6346"], [3, 3, 1, "", "1:1 92b15a7349815675a6ada6d976e81b32a73c72307b7c303744b672b2b79f3ccb"], [3, 3, 1, "", "5:34 61fb8303812158a4adfaef901dc1452be9cb24ee1b643dfde5f612d0d0a7eacf"], [3, 3, 1, "", "3:2 6f1bc5b5d9ddca435a18802abb0879b3e878d2b97ae4b40649b17237e7aefb96"], [3, 3, 1, "", "5:38 a2c64e06759e68c6b0cf453b6868f12decc89182b9e88d83b02190bccc393951"], [3, 3, 1, "", "3:21 af34b5b94f5c4f453bbbfd85b46861f49c8a88f06df9ae12aa2283441c4c8138"], [3, 3, 1, "", "5:36 40f27fcd73d87d8592e01e22030b08faea5b83cae412960f492dcc2f8a684cc2"], [3, 3, 1, "", "9:6 a131476f47296126bd7d484e19183efe874d331eb45abb3ea465295d1c0645ca"], [3, 3, 1, "", "3:9 46a2d9694956884e4ad1725c0e2505ade9aa39d6718a015d2850e0cfd1d66063"], [3, 3, 1, "", "7:18 2649f9cf8cb9cc5a2907d411e6134e4e0997b0ab85f19a07509de9ffc29575b4"], [3, 3, 1, "", "2:7 452fb25c8aa516688bcf11408b978c40b71cfd10786c03becf5b16b12856c292"], [3, 3, 1, "", "8:4 418ed55705f495765526f09bf71b0e5b2725b130e6f0fce6aef783c6ebca4258"], [3, 3, 1, "", "7:29 96787ea2ff0300ae0e9ddc0818a3d47b177e6ce4c85c2c850a2784a954fa5c27"]], "4.9": [[22, 3, 1, "", "4:1 676be38dcb5032a5b66c95c6e0c85e8d4f049bf01933b118a0967607b5fbbf6c"], [22, 3, 1, "", "3:3 a31ec075c01c1bf5fe6b674ca2fa9dd54e2f8402cde5540b9faa80e0cb2b6d9a"], [22, 3, 1, "", "1:2 1d559796531e476dc3d85e19f7dc9e8b9e85dc14e75d7e22f7fd0d9cd3e0753c"], [22, 3, 1, "", "3:1 c2d4459a9d3124b6eb26bd54c1d0a2741f70e371c43c323dca07a05f424933ba"], [22, 3, 1, "", "1:7 8d410f326c8e233e5773842346d9f3d9783f75fad42585cb76ed490065470f5f"], [22, 3, 1, "", "2:1 e42bea781e368e51e6a841e48a716968a41dbbc44fbbebc2447280a69d1d25fb"], [22, 3, 1, "", "1:5 ea3bbe8655934a40bc687f54cf38d663ed640a043e0a93e57b63097ed7b378ec"], [22, 3, 1, "", "1:3 a61fcb03ca3303b870d5a7bf9412d89fa8c8a999d7275efa89ada3e204974f57"], [22, 3, 1, "", "1:4 f472521e59830a8a2807dd85f1821de685a14eda76e2e46a580818dcb6e86b8d"], [22, 3, 1, "", "1:1 45bfb5537d2e07e5037870981039b3817a257151920d49f5a8939e10ff7a0815"], [22, 3, 1, "", "3:2 77b18aa146d69730f692da58a1c8e9a4953cad14ad3289ca106e7a071fc98a83"], [22, 3, 1, "", "1:6 1dd464889720d923a6efc632871acb0d7f1fa780fec361617485a85c8eaef334"]], "1.1": [[8, 3, 1, "", "4:8 f6d36c515bd4436ca87447bc369bb7b1c69b50ca9215b1d6981dabce39f33593"], [8, 3, 1, "", "3:10 0fdf723a1e989eb9434d0479b0af810bec67bf6b5c463ca83f170e87ac426737"], [8, 3, 1, "", "2:3 913231e2b3ec529bb3f2e3657b340d11fa082044e00ab94da54e14e109b7d0ac"], [8, 3, 1, "", "4:11 0eda08ae37976f0d7d15570d790c9bc3107ea4533794e554872ea0d77af06d9c"], [8, 3, 1, "", "1:7 585a289861cd9b12366dc2314022378903323fea3cdbd6863a2e5bd96ed69446"], [8, 3, 1, "", "1:11 cd7a1f68c81b43b8536b355596a13da9ddc2e33d7b37a18af00eee2456c3fd06"], [8, 3, 1, "", "2:15 7f053104dd4947498f1bb5121b9fe28a23d78ead65d37dd580df0111d558d8dd"], [8, 3, 1, "", "4:10 d7b7b2e401f1bc24ffd16c1f417d18c3d12336cc2d2325ecc1c07d77ea0e513e"], [8, 3, 1, "", "2:1 cf3cbc9c40c36b3adb1ed7688c9146dbd4600e0a3b26d22e0a8e2d2787004b20"], [8, 3, 1, "", "2:6 11c90805ef23752a416f5a6a8b69230febfdf97b68edaf26f6517bd359492443"], [8, 3, 1, "", "2:17 6efef41c7a703e3b3562b12e95047110a954b19026060d22099de222c142ed8b"], [8, 3, 1, "", "1:6 7c348ba84b24afee5a0a39c44f15af8c05a07208877750c9a766d44ab767da7b"], [8, 3, 1, "", "1:12 a695d7fe1b36b6516b8530ec034376b8c43e7aa53cd0795f48e39482be5a38cf"], [8, 3, 1, "", "4:4 15f27fa3164d4f34e687dff0589a9406f64fd304a5cbac1d917e215a3420b24d"], [8, 3, 1, "", "1:2 818ed40aac2e52250ea0014e5de7fbcbcf1e8f325b74a015ac0085699523a43d"], [8, 3, 1, "", "2:16 44025e9b54bdddecd35c847f5628ffddbfc9e4721cd733f41c9186c904ef15b1"], [8, 3, 1, "", "4:14 87380f5c66b721c614a404b1852a6c1f93b93d02b04517c8be6e401f85832f82"], [8, 3, 1, "", "3:3 07f27f39d36356ac4cc58744dc4daecfe8c97cb7f9457db19d9494fb1ad0dfca"], [8, 3, 1, "", "4:5 bf197e4e3db74f8f9189b2d39392b793c47f8e26908e5ff493a91d3567e2e58d"], [8, 3, 1, "", "2:7 fdcfcebd0c9395a151b773b35ef5d5e2720a08080c54f279652f7668a0182897"], [8, 3, 1, "", "3:2 8b9c3254ca795d197ee149cc6a05067039977d8d19cfed0ec3bbf060d371ba02"], [8, 3, 1, "", "3:14 f87533ba7b47cb56f59c27e8d99d031d3c5c35b16c4d3ae271ddb9b3ee18c33b"], [8, 3, 1, "", "2:8 25a56f970c722a9217989c3250b9b75798453ac229d32dc74b97c2a6c84a2109"], [8, 3, 1, "", "2:10 97c8f4b93879c48bdb5318e6566c1d1354f510b903d8d6b9ecef494153773737"], [8, 3, 1, "", "2:14 acf02a4a250adb8e29284b356a6f4a386a936d32f0e85d3b304e708863f10929"], [8, 3, 1, "", "4:7 48013ee45666937c8ad55fb39de161c383ead549216e3bdc9e2882e83bcf0a90"], [8, 3, 1, "", "3:9 617b745c8533d592398a9cdda6ababa7108d653724d221af49db01201b37f99d"], [8, 3, 1, "", "1:14 94c8f2e37b34e95fffa62df717bbcd7d87653a8506a65f52d91e1706e0dfe9d8"], [8, 3, 1, "", "4:2 5265a200f292feb3f40a0a1fe1884a988c50521945182e3581d1e04067c1c746"], [8, 3, 1, "", "1:13 65c2d0a375d2b29b8836f90cfdf174fc8fe72f5198073097bb9401add5d0880b"], [8, 3, 1, "", "2:12 db3c5f8206004bb2cca82ca219a417ec2a4fe259773ae667ab3d10114d5740ee"], [8, 3, 1, "", "1:4 dc11c0150f1c1ea89b5e2e31e3d90c45c62fa5d26005eb9ed3a16e3f7a3fb68c"], [8, 3, 1, "", "1:3 85861dc839d41712fe2a39712eb1dcfd1dc88ba30f3782f92bd1986fe355c196"], [8, 3, 1, "", "4:3 5be24f2bcda1727c3b6e1ad27d2d7c8ffe6e487d292f2b48bd528e411c2ae1be"], [8, 3, 1, "", "3:5 dda9b4ee8e63bba9e91cfb85dc3d43db063c22f72bff45cafd2f6876bfbfd0e1"], [8, 3, 1, "", "2:5 7a81481a7b99562194bdd68e36bc46a25695efe04833a417b9408a585c0d8073"], [8, 3, 1, "", "3:1 42aa78f31bd39d9d54d95d846fc09f42910052efc6f2cb7eb50a7b34706f7c97"], [8, 3, 1, "", "3:4 150c7404a99f5330be2638cb2ac1bc7b36d679a98051361a985d7711fc138e3c"], [8, 3, 1, "", "3:13 534de23af559805d2b96e284fdd9afc9838e9e3f65b120c5401aa7cf130d439b"], [8, 3, 1, "", "4:15 d05cec36bfece44c3203af30f098975bd0f3d0cccd9687f0956cd9eca66c810f"], [8, 3, 1, "", "4:1 8811c1ef8e9707861f67d171dc813cc290188343fde68d68304072ab9d422c41"], [8, 3, 1, "", "3:7 563ed3d97a65d96209f45e597d0d76b8b47739154161a7cc64f041addf71436b"], [8, 3, 1, "", "4:17 afb0e775413f09199a584413d501b6ec88d107c1be87cac6e07bc33ecce6ad74"], [8, 3, 1, "", "3:8 1f8c2956cb9f8b946f0f56053a038a9ab8efaf6dd7881bb5d1d65e1c87b05900"], [8, 3, 1, "", "3:6 bb994ebfd651f73153ab5b7d1a32ca6551ee593448eacf3d370e164a3dec5eb1"], [8, 3, 1, "", "2:18 525edc88be77e71d6777eef00907902bcd024abb3c401a92d67f1ca997971c5a"], [8, 3, 1, "", "1:8 fc97ac93c58134f54e07f9f6ff5334dbf3afdc8b1e707525ddd8eb232a915c74"], [8, 3, 1, "", "2:13 1594b619675d7802bccfee40ca10262be9916e29f70d8f7fecbf5dddd00246f4"], [8, 3, 1, "", "3:12 849ea928df375ac126378ee4fd16534119a4f03f42721cd25145edc4d7850294"], [8, 3, 1, "", "4:9 949f3857c5bbb056b780f44c08df02afc05d59db42be92d94a86c97a20ae4943"], [8, 3, 1, "", "4:6 e53521056d56c3f85475811368708e304047e64d39a20604584fa7f38d9c7f86"], [8, 3, 1, "", "4:12 bf1b757e4fec099109dc75529b8709e0177c379698e8c762c5c27fe8fe0ac2d3"], [8, 3, 1, "", "3:11 ab0e8dc4979784d434b36c0192e6ae186044669dc49a67740bcea941c5a3fbb1"], [8, 3, 1, "", "4:13 ca3586f81ab3962899f5a1a79386ef8637003025a729a5b76bebdb5d1e43cb28"], [8, 3, 1, "", "1:9 8adc0c63aa968e623b7251ecc0776057325470f81d39879bb6dfb23d1985a407"], [8, 3, 1, "", "1:5 4ce6c16caad38e7ccb47adc109089c53cc047073ebba0a06457cbeded05f68e0"], [8, 3, 1, "", "2:2 13aa072e39fbda618587953663ec86d1a188fe0eb4db97252b906ca8e9c2fe51"], [8, 3, 1, "", "4:16 9a579e74f8de12da445c5197e2555aab86fc739d0defc1f685c0aa5dfb44cebc"], [8, 3, 1, "", "2:19 3ab99fa52627e6796ca7e01a7242052885523e5e0f93b9dd98ec22d483688e60"], [8, 3, 1, "", "1:1 07358ef439d78086f970b0606b6da177cb6cc2e64318f27af92832c21a67be43"], [8, 3, 1, "", "1:10 2f2276e84ea3e0251d343a2c859bafeefc4eb09d8d7222774ce538650c01980b"], [8, 3, 1, "", "2:9 1d6b46a99af9d8d5a9922ea6bf1c4898d71c34759d9b8533b122fe70c0df9c02"], [8, 3, 1, "", "2:4 a3dbc58c5b6f14fcb934d8fe2816aa264d6ae3a56685f6bae01cdec5e2cae935"], [8, 3, 1, "", "2:11 a24d947dafa49ce8e2c37571c7d28c4b895b8bb3b09bc1fd250ce2eb3f7b9a01"]], "6.17": [[5, 3, 1, "", "1:6 14a5fdd342f43c1ff636462e60afe9fe909a5f38112627348b199ae2ee002edc"], [5, 3, 1, "", "1:1 fed2673ffa3a36e3d8eea0ff13a1313ace5bd91f22d1a6589ae9660c512118e8"], [5, 3, 1, "", "2:3 cb91721c2c002487d3e82e8dceacd7595beb7cd8fe5de78218f6db9ec3b5ae27"], [5, 3, 1, "", "1:2 712169ee265f92b134c3f6fb57963cd9759c2cd5683f0424988fe3bb68bb64e7"], [5, 3, 1, "", "1:11 56c965d3891816793bf7330f4c08c63924c6a0b54ca2b9eeb47ea59f3ccfc2ae"], [5, 3, 1, "", "1:12 63a306e9f8570a302ee746010c5e0e69b20d7386957aff9338e0f773e20d22f3"], [5, 3, 1, "", "2:9 61a7161cbd8deb105732aa6f31fec380f4a218fb64f1a62dcf0a5596974f4a48"], [5, 3, 1, "", "2:1 89d8336661af98acfc92ac73c9a7646d5685ad8fb9a9c7ee727522c13e40f937"], [5, 3, 1, "", "1:13 20d907a5cbe82489d0014d547facc267d3c0c97e818349083a6b2185fd51dbc6"], [5, 3, 1, "", "1:5 d43533dc4e30c579c4621913ade291f4b6ce36cb6a11a56fe5604995829745cd"], [5, 3, 1, "", "2:6 3c569b4b1a7dad55b309e8e602764e8a557ccf8b0ee06a5f865bb3ef7d1eb28d"], [5, 3, 1, "", "1:4 0850025c14ab883b37fa1861427a418f09ca3b6e0847d51a890ffaa2652452e7"], [5, 3, 1, "", "2:5 ab6b81b2725ca076df34546e9b8460637727d1373cf69dd411daa57b1dca9eb1"], [5, 3, 1, "", "1:8 6c50b2d33d2418fa51153578714c4068528621dd3a445810a81473047b4a5d5b"], [5, 3, 1, "", "2:8 c6e6c37f75c0e92c4b7ad3bed59c5bc6e8cbbaa12fbb531e90c5623ffc57d20d"], [5, 3, 1, "", "2:2 96787d1f2f03b1bcd23cb76fa0744a90d8a5b2378657d0cdd8620ae8852855e4"], [5, 3, 1, "", "1:7 e99f63a7d1d8d378bdcd5535ffac111aa7ed9148da25a75e8dab381f952ed846"], [5, 3, 1, "", "2:7 d30896d56b0bcbc14b8bd25c419011f7f60c59d2d837f98326500728db352704"], [5, 3, 1, "", "2:4 bc1bd4a44da1387d7a93190dd68ebc0396e1ecd754b7f47c469dcfee25264ce1"], [5, 3, 1, "", "1:3 24d6b64329dc27dfdf593e76d519f5ae054d199e4518e0738c4de51bf51a4e94"], [5, 3, 1, "", "1:10 5fdcd07260c9fbc40cbe285b674e158c7bf751f43e92b01e3880bcc6aba59521"], [5, 3, 1, "", "1:9 8c2fd758de86a4133bb6563e754fa800418e8e439e99df337ded2a469af6527b"]], "8": [[21, 3, 1, "", "1:11 9fc5558523a5dc96084b645182a9748a4ea46e67b31afc2341107cee0b0121aa"], [21, 3, 1, "", "1:8 6e23f656fcfe54a647a2278c5484a3fc80ed08112e18b6d4d6a5f11a8c2f6b5f"], [21, 3, 1, "", "2:8 93c30bb9a1f379d6fce63a4b7aded720c5328d70432fdb6c05a7aa2312426a73"], [21, 3, 1, "", "1:15 017c4fc4f03e296f8d96a0a62fc006c647bf0a9faaa94ad561061c93e9402928"], [21, 3, 1, "", "2:6 fe5fb38b0a811437c9b5e6e9f70af727c9013f79573eee3673146cf030c660c4"], [21, 3, 1, "", "1:7 1635f6e94205f0755cc45a4da9f7272940034fa7496b94ccdff8a2284b0b8e38"], [21, 3, 1, "", "1:17 3c6ccdcf4fec0d1389605503a83c401562b7c707fe92ad33814c8cd10b1d3b1e"], [21, 3, 1, "", "2:5 cf7b0c182db5007a86bf5c05bdfb68e63de338e95ef2e377bafa1708a7c00738"], [21, 3, 1, "", "1:1 fa270e107510c6e1cbbd96841a51e304e617eb94f030aaa20c17913ff260d725"], [21, 3, 1, "", "1:9 271df8c51d41c031901cb4d22bea984e6f6a8e260e878213b8ed7c580900eabc"], [21, 3, 1, "", "1:18 14d436071a7dda876a858e8877ad564c71299dacb6239d9bff7ea3299d8d6a65"], [21, 3, 1, "", "2:2 0c5f0f107d5b1e196ef1a3003b0eb3d235bc6cbebd98a9537e5a9caf9df0c146"], [21, 3, 1, "", "1:4 925e4f38b1fdb1037706134fa36069b0e1bf99946535bcf9436afefb7f125751"], [21, 3, 1, "", "1:3 be1f15f55c52d38164795fc8324e4f7a5b3ca997e5de0de3c0c4ebe283e2d68e"], [21, 3, 1, "", "2:3 28b62503095184fa5c0dc9898c27c50ecaeebfef606f663370bdcaefa1c68cea"], [21, 3, 1, "", "1:12 99c4feb3265bf0e6b3a0c606397811171dba2b964d2471c4ccefa87af19ab501"], [21, 3, 1, "", "1:13 ed71cf991f9a7542c7a7106e4754bb01cdd386dcf21b1c27e7f21519ac4a12cc"], [21, 3, 1, "", "1:10 5c3b2ab8a0b6d48dff5c50e3ca9743ba453c77aadcaa49d6a9485a5fc393c244"], [21, 3, 1, "", "1:6 14989244832f8c7b3fd3884340df2f4df49e5f8442fe0aa7848cc011cb94a6f6"], [21, 3, 1, "", "2:4 f02ee18552936ea98c3764181f5651c46b54e5af37f3149b17bd6906ecb33556"], [21, 3, 1, "", "1:2 d10976aa00e76b2bd9ae4e6118e2bb91d70d4093d2416f3c38179f5e2786f112"], [21, 3, 1, "", "1:16 ab96a34396479306ef71b507703ffdd2fe9dd68512c87538bc972ad910a8d508"], [21, 3, 1, "", "1:14 24c8c95a02e8ee0e3828c7b00c71b666881c4ac437e3c018d06b7d83ad58b70d"], [21, 3, 1, "", "2:1 990f51f353986bd884828681d0f82474e27e8ff3042cd1c0b1908f048e7c7315"], [21, 3, 1, "", "2:7 737bef4656101e6322af305e26b7c23b0c56fe07e9b5404ed0fe6daff16a8d02"], [21, 3, 1, "", "1:5 26ae7688e4cf12ac86f435a74e0d59c024f99d84becc12e274a1113707e5bcdf"]], "13.2.5": [[1, 3, 1, "", "1:1 b5b9bec9d76d46cbea5f3747e5f7b0132aac36d1c007bca045c1a1e350d88cde"]], "13": [[1, 3, 1, "", "2:35 f207e9ce744c5b946fc10ed77f0e4d48c9805dbebca1dbdb5557c6a076c1e78f"], [1, 3, 1, "", "2:44 ef068eea3b4195d63c4faeaf8ddec06130b9c97886f65d6a735641fdfa0bbe99"], [1, 3, 1, "", "2:54 044666250ed6ab719cc195deadec75751cf88ccd03d5d74f0424888448852461"], [1, 3, 1, "", "2:20 bdd154ea0f22fca637f51b6c83cb046352335e01a835e7578c6131621efacee3"], [1, 3, 1, "", "2:21 994a15d14865c9ac299a469fa02491a079be98f08e532c1842561696a2b061a9"], [1, 3, 1, "", "2:52 8aafb6d088ea34e1340f6dc625d312ae87a35784cb19b992667687abc8f9bb36"], [1, 3, 1, "", "2:37 9d7b1a8681c416a8fb1ffb7f988ebc46ebe4d70caee8109ff9f24e727f1f94fa"], [1, 3, 1, "", "2:31 f89ffdf2e417fe247529cb8ada441fde754938c091666370fb4a4907947ff762"], [1, 3, 1, "", "1:7 ddc3357e11fde52528c561fe21918b1245bd5e8f4b51c556ad29d044506d4dd5"], [1, 3, 1, "", "2:25 ec2aaeb5be71ab80801008bbbe736f283e0d5966c61fb962f3e0eeca5c099c6c"], [1, 3, 1, "", "2:43 5ce7389b0120f2188d0456318c21e6e97516400b08b9931e9fc08d0e36c18a35"], [1, 3, 1, "", "2:18 e79694d1fca990a102620dc1063eff04ea1dd5c1dfbe2141a22745bbe30aa92d"], [1, 3, 1, "", "2:36 dfd603b48e4714c2db10e165507f36aabf589e751ffecb158b59124480fe5b80"], [1, 3, 1, "", "2:10 02a0c085b317b40311d3351f46a1962249d001ea8178f149b1db9a76bfa770f6"], [1, 3, 1, "", "2:47 cd700e1e3816ad09e427ed80ad2362eeff80ffa5182360299496b6583c87ec3e"], [1, 3, 1, "", "2:58 6212b84580c14ced11ff1299672bb121d44059cb744a474b7e412ee35d653f43"], [1, 3, 1, "", "2:49 b241235f00eb9bda3db61fcee7dba7a5a395a008dda75dba1c18489f5ec52c23"], [1, 3, 1, "", "2:8 d49e8eff84e5ce88a93c8e6b4f4a4ba514b0028bb3d1b7d17254dc7f599ddb15"], [1, 3, 1, "", "2:1 8831d99bc357aecc925ce16cd58e47b873e3b06390d5fb7a155f553383be820f"], [1, 3, 1, "", "2:40 953d885e7fb1e0ea03c0ade5eaa5934bf60dd032fd3261d585adf05d7da0b2e8"], [1, 3, 1, "", "2:2 819b429cae29c60933aa33ed73c325f87704b027ac0198d05fae9f4bf69e4f9e"], [1, 3, 1, "", "2:15 9b687112a84218dfa3ca1c0398bd960887a07dd5a6bc8638b5b8d2cb839101cc"], [1, 3, 1, "", "2:39 83ee9ec2496eca5f9f1bf7225a184b339394c8fcd2aa146177bb9bffc0eac79a"], [1, 3, 1, "", "2:13 323fb400bdae437ffcf0829ed2261a1544d5ce01aec7bf434039ecdd05963f85"], [1, 3, 1, "", "2:11 124eb05c66c007133b357ef970ea0ae8451920e4a7920d8b84d5ec680201b0ed"], [1, 3, 1, "", "2:14 b475a70894edc2d24474d317e039db5c901e1875b816cab114567e81bd8ab90b"], [1, 3, 1, "", "2:48 415ad2d08817bd284d6e72dfa33b0e8321eb4afb36b1cad3da54238b9df07fd6"], [1, 3, 1, "", "1:6 b4754f2c355f2072357c0a755bb404f6751667b43571d332db5c965114f6b906"], [1, 3, 1, "", "2:30 8c88e030229dcaf650154b169b91390821d8dfd437a0dbe05acfc8e30cba2e0d"], [1, 3, 1, "", "2:7 a1e7b39f6c99e32a187f228c19c2009de7fe6fdb93f751ce5336f2008300d9e9"], [1, 3, 1, "", "1:5 9ea853c8e48bec469214a2d9b52929d6510733dbfd7da35ad72428a27b205528"], [1, 3, 1, "", "2:55 5b250c789906dbcf10378e94398f0b4e5540359c213277369259c48af0bbe0f9"], [1, 3, 1, "", "2:28 e318a8fb125755feb4d3ff217ad94ecfbed347ec2d3b5fc6b915785092ad356f"], [1, 3, 1, "", "1:4 3c8df296f170a3b399899cfa57fc5da2cb24c804bc939039d3e9458c342b6334"], [1, 3, 1, "", "2:45 85810ed8c5e753c8587f859f84c0c189be76078846edaa0d4b9844829fc5646f"], [1, 3, 1, "", "2:46 634ed90b7e9a1e93528b551b7e87ccc2f19cabaabd8cfe119731630c1555b2f8"], [1, 3, 1, "", "2:34 f1727bb25344abffe152fe96b9ae047c50c7467805d094633f7c5ba7a263e76a"], [1, 3, 1, "", "2:26 7272a1c6f97c65a1a242fddb8442c6a6775d841ecf8e6dca74890ea2b21b90ad"], [1, 3, 1, "", "2:53 90292e11d3564cdfea3b3a715f63a2a2bc7ff5c0e0a7bf7394d45a73612e1542"], [1, 3, 1, "", "2:32 f975580a1b931d94c926c545e6f59accc6089800804e55bf0d717b7fc1f63015"], [1, 3, 1, "", "1:8 f304103b55d7d87cca0e19cc4a96ed5406fa81e32277ba35a91b20c6ac85614f"], [1, 3, 1, "", "2:42 b5faaae83480acf33dea941d05390fe8ad7ccec79bfab2b30e87b0b938047593"], [1, 3, 1, "", "2:22 3ee32e5e73d9f2f1211fb65ca1c0f0d9d62156fe5ed050f460f1912ce3b036e3"], [1, 3, 1, "", "2:57 bc97a9ab750dc2ab4e8945d338a63dc76c13eb9d172e00871b1bc6678c592cfc"], [1, 3, 1, "", "1:1 37140f4cac4f331316da767c72dc2e92fb5dfe383af30c5eb742a269163ccd01"], [1, 3, 1, "", "2:5 2f27a78e70b3ce7bcc2fa8fbd9d7e48bcf5f81303e22b4473c9ad67be8183e5c"], [1, 3, 1, "", "2:23 cc38d8d58ef7f13fe4397cce653d8d17edbbf4e2f403bfbe1a8b43ec4ec6bc5b"], [1, 3, 1, "", "1:3 cebd4af12f069c0f4ce742eabdd258723662de0e0f1065a6bcfe8772e5e7194b"], [1, 3, 1, "", "2:29 45520f65cdd77c53947a088461ef31fee2930bb2ed25f58133a20ba182466c85"], [1, 3, 1, "", "2:19 e7a9d3069445027dd0df2d0ca2be3467b745bfedc8fda368fdea9ae8714a07b1"], [1, 3, 1, "", "2:27 7488d316ab0bbccd6abaa4b7e9fac3051db8b6b7e7abde9eea639f605061ae24"], [1, 3, 1, "", "2:17 d69474814037b5865fc97976164e1adab1e4e2d50965ee20568962b021550b4b"], [1, 3, 1, "", "2:24 c162024d8e33899473123cc87be077f31a4f25434418bb05acf6f8b0020d6d36"], [1, 3, 1, "", "2:4 2e27368f11256b44dd2ff0e2e21daa255d6bed7e9e9c923ff8043070e7560521"], [1, 3, 1, "", "2:9 8bdce4eb7ab793087e487d41f14318daea55698317ec8c2b834f93716676d8ba"], [1, 3, 1, "", "2:12 0b3817e206a78ddd0a8e8b4ed610b9f55b12348279d741c6b73e04f718ad7af6"], [1, 3, 1, "", "2:38 469d4af2bf4bb8bf7d70abbc6b17c1c1bb6fad4e1fefe9cabd15d3451fcdc72e"], [1, 3, 1, "", "2:51 3a524553119d48abe6bc7fdc94871d5862f0815aab4e5cfb1f63f69d71656f2b"], [1, 3, 1, "", "2:33 561ac627fa6ab3ebf3be1dfa0723e9ea019b53340fbf84caaf46c3b23415887a"], [1, 3, 1, "", "2:3 44b470444d5c0ced9e021ec324c2d117754a70bf3f44d00e5303fef3bee9f401"], [1, 3, 1, "", "2:16 21c4c3f4bc27f88194a4d70c18fea7e0c0dd30914282d878277d915ff3696c35"], [1, 3, 1, "", "1:2 e3cc14af5a12637d401f768630f9f0596ea7cd5c05458d5e49c6242fc7e178d8"], [1, 3, 1, "", "2:50 ad228252c455413a9d11054129ea0a307eb4301392fb4dc7aaaba0db8b102e6c"], [1, 3, 1, "", "2:6 baed00b7e77547d373721bf0e05d646d88cb96ded2722b7505577f118cac0b81"], [1, 3, 1, "", "2:41 276f7f393035ddb571a6f1e00ad388e9854d9e0dcd79acd44e10b7e2f2939fcc"], [1, 3, 1, "", "2:56 546608d35bfe5a90d5a66a076a3d517f618f561c82800080bab893cd87c9f7aa"]], "4.14.3": [[22, 3, 1, "", "1:12 c20fd04609ae44c467a3be462def3caaead0ee6b0c11a572851ac3bda8e9e7db"], [22, 3, 1, "", "1:4 560234cb87c2e6ff7cdbb0d27ca2bc465b9ad0c33b073139a622fc945d297d65"], [22, 3, 1, "", "2:5 686ca62c3062007fe2a2c7112962d70308c2004c4e6eed04508f5a30e22ed81d"], [22, 3, 1, "", "1:5 b16b3fc503b0ef9b2bb8a6286c781f2bff6bdc26cebcef598491234908bf0fe3"], [22, 3, 1, "", "2:3 e2a84e07dc44c60162e59d18213737a3fbdbe13962c4e3f32178970f3d2927ea"], [22, 3, 1, "", "4:2 a0ad068ff94137edb05b75c066208d34c26cad7e567ccbea22214e4480f035f5"], [22, 3, 1, "", "1:13 cbcb79548a5d9ac2995323208dcd3a9ccb79c785569231727fae4a32af08e791"], [22, 3, 1, "", "2:2 a4e8a63dc12eaffaf473b18138e9e501b7fedc18b8b3cb4105a41724426cd35a"], [22, 3, 1, "", "1:15 0a93ba5afb72ab5a83c7159ad67dc0478704a55a3d3ef9325b44d0aee4a5a11b"], [22, 3, 1, "", "3:9 b9f5585c56ad53d5720ebad44d77024dd47add4769f1886a76551f07ddaeb2ca"], [22, 3, 1, "", "1:14 3c29c57912c09c10856a76d6d990de41d91e40bfd828547a00735e0b544f7252"], [22, 3, 1, "", "1:2 4e446345859b9323669a875dd49ec52cce3e71e7f65700097e1ec21cf6f60506"], [22, 3, 1, "", "3:5 5ce3569a487aec0ffe76efa0ebd2f980162b7540452d2800b92474ac6b7fe730"], [22, 3, 1, "", "2:6 87777c1e9a852ae61349dd7554488c91f20c43dc493ec06547aa740dcba8ac22"], [22, 3, 1, "", "3:1 9792cf5e24351dd23a21b5298dab4d7c7f182536a15cd1082d892ea56f6fed7e"], [22, 3, 1, "", "4:1 f6a449af6e0ee8f776a596f24acb1ee832b6830604a4f17b42249cef950b08b8"], [22, 3, 1, "", "1:11 012616fbf6f9d9c37bc76e01c82464fb6d65c6787d308e10f7e7f8d4eb477716"], [22, 3, 1, "", "1:7 3bcbd78a434bf0ba38571a7dd6ed85585dd4e92b865edc90332ecf4b4daaa3bf"], [22, 3, 1, "", "3:8 3ded6c067304c60cab3a670cb056d96704403c4fd5c6719d0ccfba410623ced1"], [22, 3, 1, "", "1:6 2733e9f6847d7d23dfbaf715feec476d91d9caef20c3b3b354287dd0c3eebfe1"], [22, 3, 1, "", "2:1 362c1e5e7ef9d1bb007461a6e77c25fd2bdd4146d43523089f709b4eecdb11f2"], [22, 3, 1, "", "1:1 8fc35e5cf136f57bafd43ae857a0540f3e6377d540a98f10bf9575e151baba5c"], [22, 3, 1, "", "3:4 d14fa2465cadaa9f9404de8d4f1dc2c83ea23291fb5a15f281ccbc77646725a3"], [22, 3, 1, "", "4:6 c01105160b098b089c2c01853293cccd8231a07686ae97a7d7aba145d987c330"], [22, 3, 1, "", "3:10 d6269aed267968a9a469c7003f9ac3e0b12044648f1246e40ef2eea39d5610b4"], [22, 3, 1, "", "1:8 16c08c00ce2a3df58129efe63027ec80880b95b07f01d9fd2c0c7f505d079150"], [22, 3, 1, "", "4:5 7e879940c036b1acde707493ab1511307ccc68d03e5e0c62cfd4d9d230a8bc69"], [22, 3, 1, "", "4:3 ddc3e2f6339da6c1ddd05ef0d487698b078e2c06a7456b12337e4b04720ec88d"], [22, 3, 1, "", "1:3 a52ef65ad59c6a03acd104f52921c0bd1ab194c0d933c3d187455e8266facccb"], [22, 3, 1, "", "3:6 416a9c7f994a10348666cc1428fe679ecfbb5cc34c3fd991214116fd5405123c"], [22, 3, 1, "", "1:16 b0b24169a682ebd4af464f022caa0e0bc52dc45c2ab5969c01b1b6a2a313b7f4"], [22, 3, 1, "", "4:4 23b6ef8e94104fd9bfc08bddfadbc0e6b45e3af1816b852b6542fa4ef26a99b4"], [22, 3, 1, "", "3:7 9a1ce8dbae4264be182622bdedc1cd24fb5bc4c9c3d2a9805d7e83d22bebdac8"], [22, 3, 1, "", "3:3 b8dc302081286801fab56e83adfb0c6641a4aabc8e37c977089243aa1c6eb354"], [22, 3, 1, "", "3:2 735f380f9e5867b7964548adbbe1ef171e6362a7165d946fa2f88f1c49835e00"], [22, 3, 1, "", "1:17 98fed21cebc3cecb0b210e636cc45a37121a883718d0ba5e64b36abb86d70f58"], [22, 3, 1, "", "1:10 d8fc6c8065816c13c111ca417994ff7168f457d619f2299e9be1d36a9eb4e6dd"], [22, 3, 1, "", "4:8 68c7b26da67383cc4c0a68039f093046d35f47ac193122f01475bcb83de41546"], [22, 3, 1, "", "4:7 3b91fe9b60e23bf9452baf8b3ca1624e42e4109b50e88a340e7c1998b9a6772c"], [22, 3, 1, "", "2:4 1eae2df72c51ffcad42ba90f5618089142bb9116967a5bcd8c0f9f34b11bfcc2"], [22, 3, 1, "", "1:9 90c63f8b0b6e4ccfd99d0308b04e2980a4b53f0de2e3a67cbec4ff8019bc7e2d"], [22, 3, 1, "", "3:11 8160bcf42506146875a69bae6334ab1868c2957f6f1b085629deedafa0ad1914"]], "6.1": [[5, 3, 1, "", "2:1 de1b9a859c46ecfefda5689bb444367031a50378d16a3087529244fbfacc7a14"], [5, 3, 1, "", "1:8 38170dba00ba7905b21fcc6de0032cbe2a9a755064656f9471042b75a766087a"], [5, 3, 1, "", "4:9 32ed377e5c9c2596f96a684dd90844ffdc229f264ed21a3808700ab4504da3ad"], [5, 3, 1, "", "1:5 c25b90c83c8804de349ad596c8edc8441f9fe8e39ff8a624ad0833546a24ae23"], [5, 3, 1, "", "2:28 a769fb663d4c130101ac1256b738337cb674757045a4679d495dcbfd33b58fa4"], [5, 3, 1, "", "2:14 7d19f6d941207761fdd66c288b587bc5db2078e20c1090ffa7bd6c26d2c4b326"], [5, 3, 1, "", "2:36 44aae2e4e8860762d2e9a8257badc2d3b4e15d99c8c1183112c63da5a4a97767"], [5, 3, 1, "", "2:41 cc77160163ddf5f7888c6a059518c2ac68550018fad496be971cc878a9fc7936"], [5, 3, 1, "", "2:7 0a3334c8981286278440706cd534605dd5d26fd7728339f4453c3c0656a505fd"], [5, 3, 1, "", "4:41 7b686442be7876153393b5ff4396beffa63b880adc6f85d9ec57c64910ffdd94"], [5, 3, 1, "", "4:19 fdcfcd99d144b775aad90f71eb24b6100e2e7479ea4f930e27ec176ad1bcf45e"], [5, 3, 1, "", "3:6 2b2c1f21c6c47a7039204424df6509ab2e234eb00cf8ac170d92dea1c46e7e2f"], [5, 3, 1, "", "4:33 d3e2d2af5f02248e16a591d51f148029eccf722872db25063330ede8b6a8501e"], [5, 3, 1, "", "4:28 342c018f0de28ffea76b86b5ab53420bd7ad1e970b84e3fe2159000feb4bce6d"], [5, 3, 1, "", "2:43 b9568c7650933529d82ec97933b47ca7758c6acc5913bb42e52d17cd9f27f32c"], [5, 3, 1, "", "4:10 77a556beee4c1ec72f5a1678b30fff2abca44b0814767dc0489a1636d387ab35"], [5, 3, 1, "", "2:11 e1901939dcf94cb784e9632a7e67b2c977120936dd1cda31caed15974d1e6744"], [5, 3, 1, "", "2:17 5c6751a8315b541c35cced5cf85aa22ae15161a094f06a99ef59d69f0278d0f3"], [5, 3, 1, "", "2:49 f1e397dc12ceac4f862c1b38ab023057914016448490fbc8103227d260b67421"], [5, 3, 1, "", "2:26 3c9b370271add7bae1fba3b37de85653bf0fe577b8baba3bb9fe79b98e753b42"], [5, 3, 1, "", "2:5 a477daabd5c582a70c94d5bab888ce31a9067b4b67d3d3ddb98becdb8ebc2691"], [5, 3, 1, "", "3:7 8d84180501d511c73659c8b39c51cc56a9e0b643e8f8066b443d30b7a5c578a0"], [5, 3, 1, "", "2:21 4e17a33e1fba6baf81402a56c6561471e61546844fb7097dc554f10fa4929778"], [5, 3, 1, "", "5:1 59657af5a3d7ea75e221dd8f57fc291073859b55dcc28ea21acc8b6ded645814"], [5, 3, 1, "", "2:8 759294b08a5248e641c30cdae1634e7d0a607cbe713295dc177466b47ba35103"], [5, 3, 1, "", "5:3 654c72a974019f16a7138b882973ab8de2a0ae2d8dbfe9d9a5523ea10dd4f5f7"], [5, 3, 1, "", "2:9 b9f96f90499bd6bbd558e7bacdbbad3fc355aa23ae9e251b1b5dbb76ed7c4e35"], [5, 3, 1, "", "2:37 77716dd5cd96ee41a8745441d48419c274fefbea836e7c91d66326bfc5a593f5"], [5, 3, 1, "", "4:37 e37053a8b316b066e2adc833e9b61430341ce7681922450e1a6261795b2826e9"], [5, 3, 1, "", "4:5 e936ad7c41ed0a523e0faf110179d618e501a9859e20165109df8884466958b8"], [5, 3, 1, "", "2:27 56d424ef413f593ce60c84181e8a5f83929d41553c626cb36562bd0ed5d561a9"], [5, 3, 1, "", "2:50 ab7bcb73bcdab153eda299904b6530b93d546941dc2a9f1fe469c71a5d9164d0"], [5, 3, 1, "", "2:51 cd483894f0b24cca762db3e942673bbc3f69157bd4471bcabd6ef6bebac9928d"], [5, 3, 1, "", "2:16 b02deabfb27be189c179e72fcc8ef208927e305f0509bbabd1b39b64224750d8"], [5, 3, 1, "", "2:23 fa3aae99a5b64aab6689772966cab04c2b259d40ee747f5c6583f76fc3519dc1"], [5, 3, 1, "", "4:40 82d5e15e136abbd6e6ff175eff2bf1ae8a648a9eac9fc3e354e8fb962357eb0a"], [5, 3, 1, "", "4:13 25c0d061e2a3c9b25578a45ab2fb74a50fb9f07444e09ea9f8157c5cd42a04fd"], [5, 3, 1, "", "3:2 8421661fce97e956eb513ec4438a85672f6b2b9dd4c22ec09b6da1eb67e42ce7"], [5, 3, 1, "", "4:18 d09119cc5c2fcc6e8b84d570c685ead186c9f683703a7221ce13a35f660493f6"], [5, 3, 1, "", "4:17 9e93b8580cde2fd0c66a53470306bed82a53df0e551e80b90efd61ce4147e90a"], [5, 3, 1, "", "2:31 8fef4aa286d46e0b0767d45db83aa8d62ef879c4b31a258905d60aaa391524f6"], [5, 3, 1, "", "2:32 b6e03f526a8452468e623bed4ec289b78641df3140fae3d2647ea1d5baf04d09"], [5, 3, 1, "", "2:19 d78272015b933abc20846cd4159619480896126232de8bf6fbc87d628a93689f"], [5, 3, 1, "", "4:36 ef216b4956c9c82c492eaf33aa42b180dc04003c5c54b572e706d022ec656b5a"], [5, 3, 1, "", "2:38 c70336e37bd438cf7f23f90e11eed66a8b6c54cf7c17bb4e407c69e3e63f7f68"], [5, 3, 1, "", "2:30 c6abd6f66925af9e73351029d0689a15fd2b794d279be4a54cb01ca1434cee76"], [5, 3, 1, "", "2:44 0446046528dbd1e07766646b22eba2192eb014bf1364522b89a01dcd054f37a5"], [5, 3, 1, "", "3:5 fcf7505ef34f3b2536bb1c62facac6e82b7560f993f5a172a1e20eac4e552fce"], [5, 3, 1, "", "4:20 c48d7f31ca2fc7d1824b49aaabbadc6c96b2f1a67a8373d08b46e5ca9f66549e"], [5, 3, 1, "", "2:22 49717c7cdbf319feb99849ad9db98121620f7be8b82ffa9a612a31411b1408c8"], [5, 3, 1, "", "4:27 f7df761607610d04510f2afe7be1961f85aa037b3df985ce6816b252eb21d7c1"], [5, 3, 1, "", "4:7 1af57119939cf184ae0c7f698a5de9c73f8b5affe3969a6c6312a97c2ced8f8b"], [5, 3, 1, "", "1:6 7d0348796b44af2745ab732f9ca4c1ac8555cb7e9dc2e06a505306dbaf271804"], [5, 3, 1, "", "2:29 d753a742a21af7c6cfc9f1893ff4ee5b9a0ef089d0af76bc165411fb4c38b37e"], [5, 3, 1, "", "1:7 84cb5e1b176d63a2847bcd00a1e723d09f61471fdbd83c46dc4f1ba22c9a7cdc"], [5, 3, 1, "", "2:46 8012748a5a9f0df6b5ac50d6cadfc2e260145894007b76e558e68866ec8c495e"], [5, 3, 1, "", "2:4 d0d7680ff65e9d4365c3f3207dcd59cea17ce72c3f6475dbbdd5bd6762fba8fd"], [5, 3, 1, "", "4:15 b9e19a33b6f7298b9f07a4c4ae3dde602adf87fd2ac7151e3596eb02c4566734"], [5, 3, 1, "", "2:45 16163ffa5149a61156b6fa9822bd38c1dda85cc76895b18e45f59a579c78df48"], [5, 3, 1, "", "4:30 2a98510245f19b2c170b5e631738582547bafb0cd7dbc85065c606d2c34501a2"], [5, 3, 1, "", "4:26 ee945af2b118196e6ca9326841531db1d96dcd364df978b3110414f0deae444c"], [5, 3, 1, "", "4:2 bb6677a9dc0649570d5597a09439c6dcb77c13ccf031be9465c0b4c0b231f2e8"], [5, 3, 1, "", "4:39 de4767a880c9c8d3022d26accad869d8eabeeab119835136fb0594d46405d621"], [5, 3, 1, "", "2:39 3651a3d2d8aaca8d17e1fe47b3138585d5b28ed9e904f43961482867fdb88ff0"], [5, 3, 1, "", "2:13 8d94c902ac09fb3ef23d83106f3454d99a3c6980a3c488d3a5bf350cd7c115bd"], [5, 3, 1, "", "4:8 a86fa18a8c5f28ca1d4fdcb6057bbc8fcb5f9f73e20f08da2a49ceb506f76453"], [5, 3, 1, "", "2:20 ff0b985b3bdb5f39343fb2dbc69819ec1977bca9aa11748b2017b231464e073b"], [5, 3, 1, "", "4:23 7a97e95af16f54b01477dbe2da75f8a7b4f6e8c14800739cca2aadec4ded838e"], [5, 3, 1, "", "4:4 f37f0d22ddefd16a571b8bd9a562198423f0af50d7c14eb572d13e5a97bf972a"], [5, 3, 1, "", "2:40 515154f2ac48723da0d14f98872f3256c88d0f9d3194c4dbcb5268b9792c5c7d"], [5, 3, 1, "", "4:16 5ec103acbbe65af793d28ae454718aa627d30f80b637e1660d1dc5bad8480431"], [5, 3, 1, "", "2:52 b33fd7caed2c7f25c3d1ea22886e9ff2581064e5bbf75546c0c060ce623c25f1"], [5, 3, 1, "", "4:29 6157d0f70d0f638550ee4030d5e0c903aedbf4b30498d294d3bc171091856b76"], [5, 3, 1, "", "4:25 b22c92248f7691f65a628d02c08cf24a9047b02400d6a29c8b6dc20c64bee2f0"], [5, 3, 1, "", "4:3 5666d2be7d12a4b03c9634d49219ac173536d59607e2fb6b594996c27c1c276c"], [5, 3, 1, "", "4:35 d4860293b247bd862ff7f52f19df94330203138d7f331ce7064449e737085b44"], [5, 3, 1, "", "4:38 b7fa266e959f034fb8027350cfea9ce01444695e7e515512581302d9c3f8cb54"], [5, 3, 1, "", "2:48 c0922b72177bb7936fb1812bef8b7f4c3c04e5def41c08c3744d6c40c83416e2"], [5, 3, 1, "", "1:1 60b906dd347f40699e98ab1a2baaa4aeeb7f013757c103e406e2096bdf554659"], [5, 3, 1, "", "3:1 5060238ed0359d5cf017fd54608baba39f7484a5c262c3567c973dab5a3b2401"], [5, 3, 1, "", "4:24 a93bb37b3b0ded48637fc647acbfee3216df9f6e4313a3c9c2e6310c44ca889a"], [5, 3, 1, "", "2:47 73287ec37c278d47149516ea285d4901af4095df9725ce4ef23d63d2a88baa16"], [5, 3, 1, "", "5:2 cdb48fc283d2317f9e373c3e846c83ddc15b1e08c3586f226a9701b8fd1f6670"], [5, 3, 1, "", "2:34 a9b547b6bf662506793bdcbe453c85921749fe52183da9d7a851c9dcfe3fc529"], [5, 3, 1, "", "3:8 0fa4999d15c5909e9c331090f84b483c3f1de9dd8b6bf2785c2a4b9be82ce8e8"], [5, 3, 1, "", "4:1 5f85774d4af3b4503dd719ebb1c9c13936bb77a4d77eaa5539863456b86f6442"], [5, 3, 1, "", "2:15 d85083a7c7efbf6c5f2f30ff3b383e34fb721f2a53627e94a48aa095adc01022"], [5, 3, 1, "", "2:35 cfec980b14b64251c85de2818e75a873d7cb9465255ee4870a55303ac0a86589"], [5, 3, 1, "", "4:32 2ba416a11b94658791140c4b85a8ba28c2ec4ef4a778b59038105208dfbcb8ee"], [5, 3, 1, "", "2:18 e27dbc7a5cfa4584c075296125becf0c47bf01b4556f34e99a14431c2f5c206a"], [5, 3, 1, "", "4:11 3bcbb31dbf7a42ccd4882c4df20a73b8fe4169f3b44b0e93f75170ea5478cdb9"], [5, 3, 1, "", "4:14 cfc1a8dc708b20eefb9c1ffdb6f76cfc6b927e7cb106c89f58857d627b7f671f"], [5, 3, 1, "", "1:2 575189a16284541fb4bbcea4fd2cd80a17540f1900878b9907804b626afbf1ae"], [5, 3, 1, "", "2:54 49624995c2fe8bb8f83498d1cc6cef80c8e2621f8098235179ed89c68ecc1eac"], [5, 3, 1, "", "2:12 ab77fbf23a95c3856ea49c5147e46adf5284b4b9f98d28b6f3975123bcc32a80"], [5, 3, 1, "", "4:34 fe5533b1164a5ed44182fe95abf4c2f62bd09f82e7786433bf589bf505b65d95"], [5, 3, 1, "", "4:22 c7859a194ef5acc89935304303c6e48602e3e96c193f66dc0e0c704f89eea83c"], [5, 3, 1, "", "2:10 252e321eddbb83a6536bf06612aa9ae26862520ac3febe3596676ec5fe2adf75"], [5, 3, 1, "", "1:3 f757e802590cd6f5714520c2e31d6b89f187aeb5fac01af3c10af2139dc19037"], [5, 3, 1, "", "2:24 f88042b7a17f204fa49f503a68da4e3dd00eb96010156dc3e89ce7e65cf85a31"], [5, 3, 1, "", "2:6 410eb988349831e9c9de0dfd3fd26eba4040d5db0fea795b92247c2fdd32b111"], [5, 3, 1, "", "4:31 38f331a73b93c154c708a182d0ff821c2222cc48d99af70efa0b53dd5967dbcf"], [5, 3, 1, "", "2:3 59ece0d56caafd3f3b19ffd73ee6d39bc43e3de54f72aa7ba961c094ead62584"], [5, 3, 1, "", "4:12 0af74cc3c79b8880b899f2e3faa5630ff17845b08db731fcaca23547dff9d583"], [5, 3, 1, "", "2:53 2e795ad3e303a1984376d0a215923f1c51b1ab362c082535b139f2a06ffb81bf"], [5, 3, 1, "", "3:4 025d4b330cba16ffba6c33fa8eebe317dc0aa2fa9762781ccf41fa3de3e209b9"], [5, 3, 1, "", "3:3 2be99cad76924c6697893416fcc29c4e016f80d67774faeb2db12c941e785f24"], [5, 3, 1, "", "2:25 18934c346329f7a9ea9765917175db6b45dc7c048013afe01459922d25a7bd62"], [5, 3, 1, "", "2:2 9dcd0672817fd04707e71530b3b2ea692843494c1fc724212b7170bdee0c57e4"], [5, 3, 1, "", "4:6 0e9c2d5b424df083445425b2eb9713bca7a87391b4a01ff7d5245b787dfbbb71"], [5, 3, 1, "", "2:42 19eb90436a5d32615593180082eddd69ea6768b7d84fbfe7706f603d07efbd2a"], [5, 3, 1, "", "1:4 3724b6486cd33fb55e2fe722c65814be93fdf913e013b3bd2ad12604bd114e92"], [5, 3, 1, "", "2:33 3bf0e02f2616b8c7222185ee3b336d41c1307df947f058084ce1eb330bdf1900"], [5, 3, 1, "", "4:21 47d6c8696f4c95779f7fc9cabbb952ffabf2ee35fa15de6e5d50e136660c67c3"]], "2.4": [[15, 3, 1, "", "6:1 9222cb981e760f03c8b46b8708ecf54b556f6fb343a0017cb16fba2bcb98c10f"], [15, 3, 1, "", "1:1 c40401452c29d8db5b9b193597726e18789ccd7a194187365e54cf4fb4b57067"], [15, 3, 1, "", "4:2 eaa3a29da7d1231106d2806b74071e86016eeeac6bda726a1b67b7946fc688fe"], [15, 3, 1, "", "5:1 c886554b68518a6cb11a6671911a00850d338a207bf5813cbf9a2dfd6f6ee63a"], [15, 3, 1, "", "1:3 34306366aa23941d86cf2fc0d347e2b007703424de36480b5357c7c4583e3671"], [15, 3, 1, "", "3:1 d35bc8c4c792333754935689e43e0ed039b2a0b85a1730fd03f18091f05a6c19"], [15, 3, 1, "", "4:1 74e9ccd35447ec63b8c0425e182a07fca94414ed3f7ddea9fa310ad919d551f9"], [15, 3, 1, "", "4:4 e33f767e24f5ea1c1341bf515463aec11114c952dba17c8c17dfa64f277d2291"], [15, 3, 1, "", "5:2 6c653b805698505c3026af600e00b55406a4b8149cd3a8840cc94e5ad0ff0a9f"], [15, 3, 1, "", "6:2 68a6151c72c232478bda2c413c1552acfd1e8304956b5733ef8a13c86768b079"], [15, 3, 1, "", "1:2 59045ce2e31e65cd7b1195587644af1891984b02d9dc612c1f7a61850d140332"], [15, 3, 1, "", "2:1 28f4df70edac5734cc64ff6089f04d400be4ce9f2af1664070e1b0326cb24d26"], [15, 3, 1, "", "4:3 22ca23a599d712303316952fe635355f16bf2f9ff55658bf7a1ecc55ecca4ce1"], [15, 3, 1, "", "2:2 b095fb9c6f26adc7950fc1088d0c04c0f72b0debd22e082dfe50903faa93af8d"]], "4.3": [[22, 3, 1, "", "1:38 b64f4f41ff39543e9a12b4c7c0a292db35c6c2a3b0ae33722cf7b5ec71852ce1"], [22, 3, 1, "", "1:33 cb35c3709e468c678e9fd298ff75cab85223c9b69520bb115ece6c07f023f163"], [22, 3, 1, "", "1:41 24889b443c8a3583df4a999169a461d56a81737c8776d003ea3e7968c2670737"], [22, 3, 1, "", "1:43 938539d9e20602a05fe699126091fadcead0ba21c69cbe4a271eb3dc3c3ed250"], [22, 3, 1, "", "1:8 09b53e4da86723e2bd2011d45d92331dab43e0172cfef5543bb7c74a77d1fc62"], [22, 3, 1, "", "1:39 ed886b0d040a0415b87015806dc7a838d193bb1e227659410f6314a41feff113"], [22, 3, 1, "", "1:7 99e00eb99e3b71db0f644227f19ee709ef82e2c6f386deaa36c2a399f7979685"], [22, 3, 1, "", "1:27 1a3ae601414d01796aaf6b322e02874830121fe0ab9b9bf076606a5329772a19"], [22, 3, 1, "", "1:17 ac4e3a21890e3221845618cc38dbace293fd0e68d017770aa5e7e78e2f5ab08e"], [22, 3, 1, "", "1:30 2e6d782fc4fad2d1e3f018b424d77847ffab9b7df0a4aa34218e81df37554d42"], [22, 3, 1, "", "1:4 ac65b3d93d3994e5d0068317e02275db13c2c1913d48494bb2de79b24ec72eec"], [22, 3, 1, "", "1:24 d3df0e58549b33e4a804eced95611bbf74505e40e62fb919b895a104ee2cdd93"], [22, 3, 1, "", "1:36 a86bf07935fb2c1b2bb4874fe3bcea6b86ba3cf8ed709399288fd302b122b3ef"], [22, 3, 1, "", "1:19 441b5d0aa5e6c402c6beb7fde327f5827525511f230577ba7c6fe5a18d28539c"], [22, 3, 1, "", "1:20 9480e4048cd08398ae0f13cb516a29613f3e742d3d99bc779578398b92272c24"], [22, 3, 1, "", "1:28 581c5941548d5821d9a034095690bb3c131fc9ba9dffcc9a2e85aee1b8d8cd88"], [22, 3, 1, "", "1:42 7b78ae0a4fa328edf20bd1ee52ca050c8a7913beeafc6215a0e8f6cbbab2a236"], [22, 3, 1, "", "1:12 1c7470e26077ea7a073dc2a1445c678484af7588bb3235586c9091f71603cc7e"], [22, 3, 1, "", "1:10 98f3e91912ee93fd291d169f31739e7c2c7b38d644d27336dfff508ebb7dfb99"], [22, 3, 1, "", "1:21 166b43ef343f45896926b2fbb09d952a0c23d942c2a113f0860ffe979b8437b3"], [22, 3, 1, "", "1:9 6cb77addba9281730832f2bbc4ddd2082c3530a2c17878646b47db6c10dd80cf"], [22, 3, 1, "", "1:26 699e51364da08d56388376c014ee12beee95aeae6302a1234dc8c567774a82e4"], [22, 3, 1, "", "1:1 7c27f15ca1c523ef1db5071f2a63bedb21181cf04aa94d9878250ca53b434971"], [22, 3, 1, "", "1:3 9858c13d3708357c30873cd608d2b3383dcc3035f0dd687ef3896541dd1695fd"], [22, 3, 1, "", "2:2 f9760034f4a5a74b8badb11d87b6f5ef432d7e91e80802425e89bbbbe5a20476"], [22, 3, 1, "", "1:14 bd7ead8e9ea1b7683e87bfdc7788222d47c759c66c031ef374dda05805dbd6d3"], [22, 3, 1, "", "1:40 865ad088e423aa6b12fff0c2f48ac1e92557389ec93b6582e7643d28c1707ed5"], [22, 3, 1, "", "1:34 d296305e4aa3dbcbb0a1effad25118ecc1395dc6b1b33bb86459f96b9531fd3e"], [22, 3, 1, "", "1:25 5689110f0fe899e7c5dff9675885b2c735444de21ad35f3a1ba69dc76fb327b6"], [22, 3, 1, "", "1:16 f3145e61ced027d25036f3200ca5bbb0618bc0477cb9b3603a1413652b3ac917"], [22, 3, 1, "", "1:29 d2b050f0a32abdd45281470a08c3d6427a82b2db396f1dc7ff325370895077b6"], [22, 3, 1, "", "1:37 a6a7931eaf2965dfdac9021f4d8a09873dfdc6abf5f148f661c3ec557f154dcd"], [22, 3, 1, "", "1:32 3737ba54b255bd74767127bd9ba5b403b1b0aa6d139fffa616bf524ed612b7e0"], [22, 3, 1, "", "1:31 b50023ba7c3a0f6e5d60727a63cc05db279f39c522363df22b0dd73fe324e5ff"], [22, 3, 1, "", "1:18 2385dd82b0f0349c33f8b5af00d47e3440494e1faa8b63553050feb2a8459e67"], [22, 3, 1, "", "1:13 32464bf4444f9dc7d6b1679119e45d5351fa00d79dea5e7ad487d3ddf76fc881"], [22, 3, 1, "", "1:22 ca76c9fea33319ebf91566f9a4e1cadfeadce5282e098010c5ef67471d744f45"], [22, 3, 1, "", "1:6 b94216bb8df77b4a82ab94c901933b3b6d6d065364960315dab51522e1c8c31e"], [22, 3, 1, "", "1:11 8a7e7470fb69b8816a48fa5e95512a5456665e561c4134f050a155f985eca72b"], [22, 3, 1, "", "1:2 930adef3b1506fb337f66675f973e54769ff8fca1db32c838183ef22a2422029"], [22, 3, 1, "", "2:1 de3e486bd6bfec35ccbc18c244a07b0400fb7afad866d64ad99471d9b5fb3d51"], [22, 3, 1, "", "1:35 1b458f804645a74fb0e0cc1aa355732c67172fd9e75c6ea28177303787c8e662"], [22, 3, 1, "", "1:5 1d12935dda46819ad41ab1cb8f82b49105c7771bd832109bde39a210a366c23f"], [22, 3, 1, "", "1:23 a2d98732aced3240075311e8a7738d2601f8a1e817a29a0b1d2d0ada3525abea"], [22, 3, 1, "", "1:15 9a544d8e0daca2681dbcfedf72121255fea14ab0944581480d57fba0890b95fe"]], "13.2.13": [[1, 3, 1, "", "1:2 d921bf1556555621ac4497f95036f2b36a900b3ca72209b3c8257b411f3434aa"], [1, 3, 1, "", "1:4 a408a04e473714cf160f9d5888fb173e91412fe640b793002c6cc41c7426ec78"], [1, 3, 1, "", "1:6 51678d511ec9b523bd052b51dce30e863238b3e09f7cf8640da14f382d4df5be"], [1, 3, 1, "", "1:7 91faee15159779bdfb246c3082526e3f01c0b8b71644bffad0bc701a7a23e5a0"], [1, 3, 1, "", "1:3 2b72505af01da754c8938fcc663e58c83b4bbcaabd1dc98ae2ab5e8da65fd8a2"], [1, 3, 1, "", "1:5 6cec52bab3d21f307cca338424ee3bb3802f2d59a4e3b224c7f00f72640ffd19"], [1, 3, 1, "", "1:1 db123f9e8d90ea8a65b70081bc86bdbeb74728f7fbb3abf94a19106591eacfd5"]], "14.9.4": [[3, 3, 1, "", "2:14 39b97104cbe16fdf9cdc1acf3f079ade2fd32c3ac33e7858ae07e79a0bbc7907"], [3, 3, 1, "", "2:5 b61a1df0de63c17349e99968166779c0689667f68065641b1e2150f748f65308"], [3, 3, 1, "", "3:1 148fc3beb5377b51b5edacfbb4ace5e23c7411944c711b49cd4964375b6fc241"], [3, 3, 1, "", "2:18 91a7d385f03fde69b74c5358096b89c7db65599637389124b36104c6f45d2b53"], [3, 3, 1, "", "3:7 38657ebf4baa69cb441b05dfa17a0c65b100642cb9c9c766425c0db3fd888577"], [3, 3, 1, "", "1:2 253940a0312803793da657e8bb0a7e478cbc89857c2a237d03548618de1ec256"], [3, 3, 1, "", "2:19 6737364b72e672ce8f63321ee00914ec76f3c688ef520853fa9e96db1550f2e5"], [3, 3, 1, "", "2:21 b5e402b7df0a8601f86f4a9fe385165d3998a9a9d0eda91d847641c00cac3469"], [3, 3, 1, "", "2:4 d10ea4290290cedc3b93488c82b41a90c8b0f81d39b7086609ec5f0800847605"], [3, 3, 1, "", "2:1 89af848f7138b85e851a6fce2956808b14f21021ce84337948db5477059f0233"], [3, 3, 1, "", "1:4 b3db0521d2ccad1a7ff3c83e38d7bfada206a50d8fced514e5605a753bcacab8"], [3, 3, 1, "", "2:17 ce270746d595abe4f9d7b06360f034018301bd6709bc75fe5c1fde0bc1629b78"], [3, 3, 1, "", "3:3 752f0ff05ebaea022db0ecba55adfcb69b6f6c23c86019b367b3543af220a26c"], [3, 3, 1, "", "2:7 f48db4f42fe8c1ac1316b5e2c8512944ed025def1e5c0e37911a3eca62f9d2d0"], [3, 3, 1, "", "3:2 fbaeca87efc96f46effc5215cbf8bc344900a3226501a59b1a547bb863112ec9"], [3, 3, 1, "", "2:3 947403e0d43bb6cfb3077d98850a6352967094b8f5cb8b7f5c87720092f9c7ce"], [3, 3, 1, "", "1:6 f036f3d708d6307e0393c1e54c59023aa992026100787bff26b010ac6a22a467"], [3, 3, 1, "", "3:6 6689718fd77318ab2f4a94867ff442dd6bfa733fdede8a658be7cdb6eabb0281"], [3, 3, 1, "", "3:4 a2d543d3938e4eaf6c88335ab06f4b99d478110d46ea60d86ee04356b323bcd9"], [3, 3, 1, "", "3:8 b41f690747dc7316182fec64bdba0c0beb06900a8bbaba23f018fcec1330a29d"], [3, 3, 1, "", "1:7 5ac0651992734c49cdd19081a8d8fe0dc4836c3ac46e8efe50194b2f7e10729f"], [3, 3, 1, "", "2:10 447a699862b4725e7b22ef7e24b1ab0783fec4db871aa6703ba6a7001eab753e"], [3, 3, 1, "", "1:3 8459bc1ffb9ad72f9f9ce23cfd6b93c218419c6681b8e4a7686dae5b8ac9e309"], [3, 3, 1, "", "2:16 f5d76df40ae4cadd8e2d9663fbe3c5b810519b7c72d0c10a68e00aa5f027118b"], [3, 3, 1, "", "3:5 12dd80327fd8a5c538a2841bd1c0e0122e4159042245c5ffce28e72f8be6691d"], [3, 3, 1, "", "2:22 e6032bec4cb34591f1ba4d23d2ce789f2b98a66582dd5c3aa70faf8101bd90f7"], [3, 3, 1, "", "1:5 1650a4f513fab2754fe189d6a8993c9c7855378082856282662768a8528dc575"], [3, 3, 1, "", "2:23 b1754db3d3ab0eb3fe598859fff3a8179aa499eb840ad97eba99417063259cb9"], [3, 3, 1, "", "2:15 57570b48e6c6c789ee1bcbc956a0f24f79597a3ef49766fcff1d1600dad9b834"], [3, 3, 1, "", "2:8 82ccbb720ea64a252b72a8aec77019bb5127c99487c3f35d9e6dadc715a2490d"], [3, 3, 1, "", "2:20 a6ecb99abfccb4f9199fc7b11b6264c36f5e5074d9a587814517d58bb28b0397"], [3, 3, 1, "", "1:8 07a8a2eb540fa895244a934632b5bf01b28d65714143604e47094193df81fafb"], [3, 3, 1, "", "2:6 aab266bf1130186940d08a2295560fbf7ce71f175fd96c37a30e54fc2c971f1e"], [3, 3, 1, "", "1:1 c1ebb5064acb14aea9a28d26b01046f531294fbbd5ca6410cce82bf98b8d7261"], [3, 3, 1, "", "2:13 9ac0b1cdc63a7e767baf563d906d9f2d9c9f560ba05a020309fdea70f031bf47"], [3, 3, 1, "", "2:12 15004350a8a539c4ce31613578db742e17945883ac27c5d3bf184e757faed1c6"], [3, 3, 1, "", "2:11 82acf15a92dae67f822e95bc38c6423ae258c77c41fe7312c0a6d9fbb981207e"], [3, 3, 1, "", "2:2 36e698199bc9da0c6a50931da2b24831e8a0c0750e8ce52aeac1278944de27a5"], [3, 3, 1, "", "2:9 bbeb20abca91e618378dccd524e3d3a000f6f9e7f3141dc46ca1370b9efb0aeb"]], "2.4.5": [[15, 3, 1, "", "1:1 ac492dd896d3af7d678cdc44d9708f856cbc67ce41ee48385f730c82f0fb65eb"], [15, 3, 1, "", "2:1 cf9f7d7333258a4d9a235a6a611a80fd87d664cafd5732da2eb6c1155dfad367"], [15, 3, 1, "", "1:4 cb50f037e2188c9a58f86b87d2c9d1f90186b0dcbe6117c343aa5fba6b2d7daa"], [15, 3, 1, "", "2:2 d3b402e15a8bff639df20fcf15d4306d568a4d8b0e65132224975ba1cd7ffd25"], [15, 3, 1, "", "1:2 8eeeebd628d07b2ea71c78a21c61dd978f7d9af4bd0b88a95768966881dd52b4"], [15, 3, 1, "", "1:3 4a6e317133ecb5ae53aefdc730f509e09e0c3713395895908d88d18e106527b7"]], "20": [[17, 3, 1, "", "3:9 f9383478e84fd632a980198c467de216499b1b303f98a98b7bf135b8d1439489"], [17, 3, 1, "", "3:4 180d58067482f5f9c52f37cffaf0d523e0d0e035274ae448c35b6fda359340f1"], [17, 3, 1, "", "5:2 950f5e9f05dfb90a7771b7b56a2c154f09546fdb6ee7b4947d3598357e680977"], [17, 3, 1, "", "1:7 41d7cadc4529963b5fae05cea05d12721cc023eac8db3ab3013c78712f677f92"], [17, 3, 1, "", "4:10 3b01afcc0d4c9f2696ea110f2556ea0c37503ac92544dd77a5853e2bc4cc735c"], [17, 3, 1, "", "4:3 bf49814afca1afc4a1ea61da7acaf9bb0ac3da4e8a3d40a8a0ad770017aaf4e2"], [17, 3, 1, "", "4:12 48dbce0bae72db846dd146bad2ff656a10cf5dd99c403720ad8a65ff71bf965e"], [17, 3, 1, "", "3:3 9331eac9772bb3030cfa592afd0542c15f135b1445df9e764e483111e6e799e5"], [17, 3, 1, "", "4:4 f2e3b68bee58b99bd43a9238014702fed0da098493aea6cd5ee8c35d689b2cfb"], [17, 3, 1, "", "4:5 74b6ccc123fd68357e50a1ba7a24fcfb694a68271bd2c7156e558945c62bb744"], [17, 3, 1, "", "5:9 82fe4be1744d0478a0bcbed88a26bf676ea9c239bd2e996210ce59ad724a104b"], [17, 3, 1, "", "5:1 dd8bbb6eef9dde4a235a404d36082ffd706c870db1421a4681408cf45d6a6bcc"], [17, 3, 1, "", "3:6 d1d17973e9a5ff51967bbb1a18254d34daf4d5227c030010273eb809898065d9"], [17, 3, 1, "", "3:7 f0c4063fc1e37447cdedd5fea1862370d0c86e3a81159fe2abded13af32e03e3"], [17, 3, 1, "", "4:29 9e9dd4998f98b6a17410d0f5050a5640b8a7d12b16d5ccc1fbf5ddfc4fa2c910"], [17, 3, 1, "", "1:5 b549b18e6de60d1ec130ab38737806e6ea0cbd0d471501c476916eefe2be7228"], [17, 3, 1, "", "3:8 00301fc63c37839058ebeb42729a0bfcaa17ba716e9b05a4b07854bda2b315de"], [17, 3, 1, "", "1:3 af67fc9d046886fb7c793c0a9eef775cd020529cf8ec85a93167f1e58f4122fa"], [17, 3, 1, "", "5:3 341839374d80c8018873df9d4ddc4bc416d5bc2dac1e9b09bc7a56b94374252a"], [17, 3, 1, "", "2:1 40ae367af875e89e010e4d22a7cfe13aa5dbaed9fc46011de6b52d138577092f"], [17, 3, 1, "", "4:24 8336e9a3dc539d94ebc4c3f4d1db0a002daac4a11ed04f66f0c8944f7c59dadc"], [17, 3, 1, "", "1:1 8cffdd9962e92466f819713aab704c780ae0d98dac229021c576afa2742830ba"], [17, 3, 1, "", "5:7 64745f1bbadaf610e425de55287699402147860a4554484ba0071db41bc7ed34"], [17, 3, 1, "", "4:18 8738a7304a24b50b3140d449d1bfca2c9baf6da9f0d078a51401795554fd4474"], [17, 3, 1, "", "4:6 41396541fe1131f8e3a05e47eb4dc795aca82ca7744db28c5808acbbcec8c548"], [17, 3, 1, "", "1:6 238647cd9313b6607667d9993c8bf87f5406351bd4a87045bd0850f5063f6b84"], [17, 3, 1, "", "3:5 f7aca0e43d4cdbae814c988be6387b18698d49063b82af0d472ad957e99f0b16"], [17, 3, 1, "", "2:4 b0d421770e39ab6631e15b540881bf6453ecda3a0bbc8c78183bba9be46e6c77"], [17, 3, 1, "", "4:15 57347ca4d51ad58880a851280bfb8d8e529e1b9951a52ca4929e47b94f19be4e"], [17, 3, 1, "", "4:30 d54d6148b8f96f7ae615b20d921e9536dec2d40191387304db5912c07457039c"], [17, 3, 1, "", "4:26 56c2e17cefa41716653ddebd7376d5e765866b6b48613007cbd6fa266ec588a1"], [17, 3, 1, "", "4:16 9a60784d14b99e43a10674a97c9f853c1fda603311694eaa435886353f7102ab"], [17, 3, 1, "", "4:13 10c68086f5de7156157c189ebd2864036d21287d9219fdce6f5e9df7658f3e2a"], [17, 3, 1, "", "4:8 73e7c3d42509b26c6836a37c592ce6b5f8b4b8d51bdd13b1e69c781dbdb074ac"], [17, 3, 1, "", "4:2 81bdfdb7218e324273181015cf2a0058601e53a6f07875e9c55f6b9ccd110600"], [17, 3, 1, "", "1:4 13beaa609262aa0b7e0b3212da54ac78e68086106c14cc11e081e7132158286b"], [17, 3, 1, "", "2:2 a154977cec887d19447bb9d7566684f5f07b10108feaad22add360f52cade411"], [17, 3, 1, "", "5:4 e4746196f1fb7989f818766502b19a237f5b3740241baf2dfd8cb4211c05f424"], [17, 3, 1, "", "4:22 42ff8c1ac6cc0dad7129ac746debad5fa96d773994a30fdf5b71496e0fe894be"], [17, 3, 1, "", "3:2 974d06554ff28647c4f903fa86768f1e175bc518e3c538c7d26f09ca32580f3a"], [17, 3, 1, "", "4:14 303da91f4606ee986ceddcb3a6dd2990ea1a5d6f4d8ff9eba1411b05f9cfa29c"], [17, 3, 1, "", "4:20 9cd6b3fdd12de5819ef5f034cd512142d9ea7275dd351bb3364534aede42230d"], [17, 3, 1, "", "4:11 39601be41eaf38c2fe68a562e68628c4c897e8c99f95ec75e583dbefab3af157"], [17, 3, 1, "", "4:25 862660c9a7927486f4ab97a5219efca956468b25a372e7f0b8778d938fea614f"], [17, 3, 1, "", "4:28 4ed573b9e2ba6991e0c8cd77151c8f7fb439090236dff6dcba9b8dd9d06d2604"], [17, 3, 1, "", "4:9 bab993a513c3b50842e8f5f1326263dc800e7186ea89baca43936ad3bdf15c79"], [17, 3, 1, "", "4:21 785c20cd4ee512f170f8821ae84ac3e0164356afb744c5eb7766d1b428f43f95"], [17, 3, 1, "", "4:31 ecc18764aaf923e05323ff7d8dbc3196f9c2a677d000895c4350a34de447d370"], [17, 3, 1, "", "5:5 93e969fde4270a39d3cee8c4a0b19185228c33e8b24df9d0ef270765e9824d81"], [17, 3, 1, "", "5:8 143bbe1668afc34dcafc68eddd7634b71e3847e8f9416dc8dedcee0d2d5198f5"], [17, 3, 1, "", "4:17 04d7c36c59b8db5f9cd9d437097d1287b1462b3d1a28b1af866979139758cf22"], [17, 3, 1, "", "4:23 75411eced63ec88091cc61ad48545c56af50d13cdfbb58da468cfcd471b1d753"], [17, 3, 1, "", "2:3 0f0739a1ed671f541972aa194b63778a35eef1f8a258625357bad1dfb79126ec"], [17, 3, 1, "", "1:2 4e9e7f12e6633dbb05180c17c6a222b11c2760152ee1a091050e70af0a2f4238"], [17, 3, 1, "", "3:1 2d88086f369da9c00a710d6478ff80775749dcb789b8f28b671fa96d22b5c01e"], [17, 3, 1, "", "4:1 8026222297277fbad4ed1549d49f0c3e75d7e5157adbb94d90360ceb716f2a3d"], [17, 3, 1, "", "4:19 d26201e9ec1b8ce4e8d0ce918281c597b4207dd5c717ab9d2f690dc2d3fa69f6"], [17, 3, 1, "", "4:7 145096281559894c5fdd9c34f4c59020e8018a542a295c4718a2158eb1c24db6"], [17, 3, 1, "", "5:6 20c309825d7777388bd6af5804c0c7762b4fe76a90f7d2eb118d92ba8f547c1c"], [17, 3, 1, "", "4:32 61b9b13308b8c7583de5aab70fe1644dee9867664a812351e4a713132df8f246"], [17, 3, 1, "", "4:27 6f0481d9039a52034b6e9c95142a26b01f4af587546d9d2ca76ccdcdce2cf14c"]], "4.4": [[22, 3, 1, "", "3:2 b76cf1e29c346895c7a64d1ebecd1285879329d64c6a566ec2b62a40874a44bf"], [22, 3, 1, "", "2:3 fa8054851ecf8587aa441b48e5bc8cc1e660b60f0c0542b45df2390c5f7fcea4"], [22, 3, 1, "", "1:5 c944934ba19e6c4ebe12cd9453b9f0747ab302ecb654be487cbd6b29567cefc9"], [22, 3, 1, "", "2:2 c1765e314370989e27d28ca48d5189af4457e08b3395ee284192a5060a4dd3b7"], [22, 3, 1, "", "4:1 0e048e80d2703d29c830283c91c9363981bcaef3c5713dc5917214cdc99e0a32"], [22, 3, 1, "", "2:1 1dec4d96c2383bcd59d32a561f257ee89281b2f6079093fa3efe7c807374bfdc"], [22, 3, 1, "", "1:1 a0e28c81206aaca44d668b56c00cdb06b2afcb1957637817f895be1919625591"], [22, 3, 1, "", "1:3 a35f25747728747c44c65bc742d89871b9d8fe529451364d18b141b6ef1d5512"], [22, 3, 1, "", "2:4 12398a33d4062f70cdd542b837f7158f3015de99e28242ccb150779a45e440da"], [22, 3, 1, "", "1:2 3842e56226791bfaa21a704608441353c9476f08a8ad83197c785ec4b705b6f6"], [22, 3, 1, "", "1:4 101671326f28fb3bee73ae610842cfdd0b7e1f09d04855a7041d29d72688b48d"], [22, 3, 1, "", "4:2 f90d6cbe2f05a1690b19b882378e0c5577f7f70fd8a6b6c0a9ec01d3c19d14b2"], [22, 3, 1, "", "3:4 31fd188232e88dbd814ef19206f91c486077f1d7d40d1682c48152055d1131ee"], [22, 3, 1, "", "3:1 4741170fc77c3caa889d2b61c37ca8bf858103e8dfb471f5259bf3977733f2d3"], [22, 3, 1, "", "3:3 c7d00bb480fddeed611bf8a4b29accfc6ba24e9843f57af35f84b92b3d91af55"]], "2.4.3": [[15, 3, 1, "", "2:3 de707bc1cc7a5d7d39af4acc4398ef7e645ac259968bb70066966823e3320d0b"], [15, 3, 1, "", "1:4 fb04cc8a0da09c17517d97ccfff5433116894258fe657d52d61fa56ae4f58b22"], [15, 3, 1, "", "2:2 49113c092a3bbaaee5ecc5e237faa3a1d6b023cb7963903b2987786386b06cbc"], [15, 3, 1, "", "2:9 3ab353f0319f1a988557a20ca5d4cbbe6564a0901c1e800e65fdb0f7d63244c4"], [15, 3, 1, "", "1:5 39e541881b32e1399af9d22c81f2c9acf7374597615a6e067f19a2a1483716bc"], [15, 3, 1, "", "1:22 7addf8fc9c1954d1f299f518261046655b25344da4e2566f4a6d2ad56af8f9a2"], [15, 3, 1, "", "1:18 b8c0a318a752dfac35fa253f5eaa5d86aa4d60c81746dbef4f79760bfbbb910e"], [15, 3, 1, "", "1:17 5cd753841d4cf1b3ac2e299d851b9d7d782ffec5218f862a6145c1bb97fe48af"], [15, 3, 1, "", "1:19 def3e28ea7543e8f1e3cd2976118a6057928353e8c252c4b3dbd25c489171d9e"], [15, 3, 1, "", "1:14 9efb52c23e09f3c839307b622ea91a74fb827775d9312350956fc958a2a13a48"], [15, 3, 1, "", "1:10 fcae3d231f80f39da6c1244a291d2760710458e799952561422e8c9280d35453"], [15, 3, 1, "", "2:6 1c3e432fbd868c7c0e6f540bab2df3a5a05a874a2cf90c0c008273c8750df94a"], [15, 3, 1, "", "1:11 1f4a7189ec6869ed715b2809e1dfdf0d1da660f106391d0ae75419cb2a3bc674"], [15, 3, 1, "", "2:5 4f2baa57a7d41e696d29d2b12dd05976c69c2dca1d26d41b65c2ae18930aa583"], [15, 3, 1, "", "2:4 8851975681aef35016e51dcd1065ff3a7c4dcc59185943068c52b5f39a45220c"], [15, 3, 1, "", "2:7 0ed79abbdbc256059087c1f145e130bf6ae83c5d9ee2cf63b10c872203678b32"], [15, 3, 1, "", "1:6 e930d37f51da1de444b9cdce508609ab005c7df01cf636cbae19629ed63527cd"], [15, 3, 1, "", "1:20 7be03faca47fa6b3d15b6e1bc4e6cb7412ac921daeaa997fec6b05a74ebf315f"], [15, 3, 1, "", "1:8 56156e06e89f2c8d0e82416fb36dbe038b0aad5dd5d553108e3cd3e560351052"], [15, 3, 1, "", "1:9 f684fbad635257607f2b55c5da42894852a1ba30d630ac6d1e217b81f6bfdf8d"], [15, 3, 1, "", "1:21 a0e4b322fa7da7cd532ed7b176659ab4f67e9391a98e3f8ff3a6aee868b8cc88"], [15, 3, 1, "", "1:23 f00c3c8190df9c8356e8d00d40dc820ee8c2066ee14bc6fa8b113f1c2338df01"], [15, 3, 1, "", "1:12 da4e7c81f503ecc2ccc9f9996edd96f76f669a45826eeb0bbb333d2e4a34dc91"], [15, 3, 1, "", "1:2 45573384a56c61616dc2f95c2ed80da8e157435fd2eaacf7dba7d34bd26d9f5c"], [15, 3, 1, "", "1:15 90e73387f32e74d98fccc01498d6b81106bfa39272684edd996c6bdc2ad8f099"], [15, 3, 1, "", "1:25 15953208cdd66d1e39876632dc159e551d824c61166d95fef941338342da8c30"], [15, 3, 1, "", "1:24 a94d2d7881175e1f816e2299655e250ae163b1ded65deba1d719d1480c2c8213"], [15, 3, 1, "", "1:3 b53030bb2f4fce14a508b6f1efada25625e0fd5ba0b3fecfd8c97e0cb04cda6a"], [15, 3, 1, "", "2:1 5fbdbcd887fb491134091fc535b453fbfc99b8b158a38e18667520fde61df8fd"], [15, 3, 1, "", "1:7 0c2fc993dbe174e0cd94651585b88f744f4e4a827c5145dd0137aa6eab3387f4"], [15, 3, 1, "", "1:1 838a11239236c63c53764779b279c93d7dd7d3de4c52d1940ac02c6568cca205"], [15, 3, 1, "", "2:10 da8b316abb73b8a595ca4e315dca897882f91c0dce9825eb81538e688460e26b"], [15, 3, 1, "", "1:13 c1fe3c1f3f5a441d07e72c6702bc49ef8f801249e1a6b368c41d41cb087234e7"], [15, 3, 1, "", "2:11 8cf076d0fe9b1af3dae27583a7489cd5da291f7a3ad82ee704b53d75a6b88bd3"], [15, 3, 1, "", "1:16 a4c17c7e7b65883a7408b8cb26441cee4c5a98f040aec9f252015fc7fa72a28e"], [15, 3, 1, "", "2:8 5af8baeae865b0b892668889094599d1003adefb8ca8775954c2bbb981df6244"]], "5.4": [[19, 3, 1, "", "2:3 fe6504c691ded75e993e4d66b216f7260d30ac52c0a60e35151af31c01905992"], [19, 3, 1, "", "1:3 4aef617035a62c693b0db6e84d556a1afe10c28af4f9b0ca18065503767f6015"], [19, 3, 1, "", "8:3 d0da6696f0030559710cd9ee013efb4dbfb95b1df235fe5f469bfcd2d24034c4"], [19, 3, 1, "", "9:3 6b75afdc8b9b09fcd7df94b0c730c87e30d4bb2de200714adf3a08575e90a90a"], [19, 3, 1, "", "1:1 dd60a44dea7a972ddea069491ecd9f406558f404e901527ddd0d2149eeb48ebd"], [19, 3, 1, "", "4:1 b62c95bf3039a32f793c95cd983bcc5cd80b8faeb5d469cc963c3a487f437fae"], [19, 3, 1, "", "7:3 00b9a97b9280c3716ddfa172c721a2bf0e2081a9fa912cffde3cda55d1197952"], [19, 3, 1, "", "5:3 fd8fba85c57e8cde11619040e0cf63b8bee10a4ad77a5a663655cf44f7527d00"], [19, 3, 1, "", "8:6 8b8f1725d0cf2ef6489bd548eec9d59fab537eca1f33a509f8141751325cba76"], [19, 3, 1, "", "7:11 f14008365b9b2173763090e4ac8e371acae7932276efa64dd5c4bef234a9b625"], [19, 3, 1, "", "5:2 4e77c3805f9c1fde39877a54a3b99be7582ff7dde64d6f8b033465fcfb625c8c"], [19, 3, 1, "", "6:2 9932447e7ad4cb062a332bea07f5eb902fa9f0482de8917d2a3bee05f86c2fdf"], [19, 3, 1, "", "7:6 4925bc389627a9c0258c8b5aa732c62f27ea3c62e2b3c0bbfd6e8f9c1350920e"], [19, 3, 1, "", "1:5 1cf4f4074ffc3e6745944b1dcd726ac4b7d65f44568c669f04ddfcbe8068d57e"], [19, 3, 1, "", "8:2 202123ed4c141cd00114f671cc7b4a9caaafd86ff150c865e93c8e9dad4257fc"], [19, 3, 1, "", "9:2 03c31f4e25eebbe78169c4bc173609effc1e8269dfe4f263b29363409e316dab"], [19, 3, 1, "", "9:1 ed45c176d905341bee988af8640b3011dd6a97d9c8fe53b45410925a79d5e056"], [19, 3, 1, "", "11:1 b9ccebce07421997dfd958ff40f0aef3a1b9e546fb3bcf0c2cefe7fbfdd64d01"], [19, 3, 1, "", "10:3 e86a7e2ae632d8ce6ffaeb404902846bb48e160aab297c2c2652d9b985f7982e"], [19, 3, 1, "", "11:2 33c34bf81e9f7a3651a3718b8ab5b88c0ba416ea85e283b4fbd4a7e30e78b48a"], [19, 3, 1, "", "7:5 3f7ea24067807e7941333db26d088679f21fbd2c64a2407cf545ff6861841872"], [19, 3, 1, "", "8:1 a64d7a8315d7d5f47ec10463a26465d1b20225bc5c426030b5af68285a662722"], [19, 3, 1, "", "2:1 ffb06275d46d70835ab2e118cff4b0071d02544ee94a260f428fd2b5533bed1c"], [19, 3, 1, "", "4:2 ee205e802f76cf743647cd0b8c7be7f9d118ea51ef62a9f8ccd237ee2a7c874c"], [19, 3, 1, "", "9:4 13343ca1b2a108f58c91e7fcdb4c9e4c975f5fa11d841db4951a8883a4bcc7d5"], [19, 3, 1, "", "1:7 de66751e709611b36e4517f705acf75d052724e2501a8c5ee5ab8c40757115e5"], [19, 3, 1, "", "4:3 10a9ff549fbafbc317a299a46f8f61ed3ec121a3f1c97d94c1a3ae2aeee961f7"], [19, 3, 1, "", "7:1 545a7b4ddaf1e7bfb2237db616a2cf9a24e53676e02591cec035c44ace0b0fd1"], [19, 3, 1, "", "3:1 7f3d87f0e2bf7a6dc15e6e0bcda2506008be955f016459a792ea2b99d16bacbf"], [19, 3, 1, "", "10:4 37eed365431808077ba3f82d504515f343520002fd244c7649305e39f6c96d7e"], [19, 3, 1, "", "7:8 ff3c524edac17baef16b63f1da2eead531f9c065f671838de8c437b87e87f859"], [19, 3, 1, "", "6:3 b76bff46c3fb725fb95fd036da6eec2951e358e24662e16fe7a2b277948422eb"], [19, 3, 1, "", "11:3 8e3a3ff978133c3bfffe09986eace47f5b4afb21f6c71af39fd93f4f27ad2860"], [19, 3, 1, "", "2:2 d04dcff15efbb13e790e1f78948bf446426570ec9618c3b921293adfc2012199"], [19, 3, 1, "", "5:1 74c808f389212d771098798db71f913b01fad773d198d3babf0a21ae6f4ce792"], [19, 3, 1, "", "5:4 7ee404fd4fb97fe0f1daafdb86a76994a1056bc3cbc4571522f37b405f651572"], [19, 3, 1, "", "7:7 0a3498e1551afa3c7f492391c8187746fccf5ebb43ae48f55741d4dd39aaceab"], [19, 3, 1, "", "7:10 8f94a20f9d18e18084cc5e7931d668de6254cce6b14813fce2f2a16d4a699598"], [19, 3, 1, "", "7:4 c48b717f055594a928a658edaf02b1fabf8a096bdefdb3fbc8f24437462635da"], [19, 3, 1, "", "1:6 5003a32c5e8a49a9e7d778d70ff05edcf2411bd284272a8bf7bd04d2df3a40fe"], [19, 3, 1, "", "8:4 b11dc2c5dfcaf758c45e4029e582f72a53c74e7c2c98575fb2b7461ae1e7d805"], [19, 3, 1, "", "10:2 5f1c0e7fad583c2e4331c5805f1dbf89717118d493a01549a42dfeaa3f0279ca"], [19, 3, 1, "", "10:1 746ffe5085ba7cfbb59d3c44688b6f8584fa574128327bb37f2f051173efb07d"], [19, 3, 1, "", "1:4 0db8e23416d53e90ad73fa4df5b10d7e3ef8d53418d42a8860380a85d5d1163a"], [19, 3, 1, "", "1:2 aa285e853a6324a841c40d2b74e066fb6002f1fb6707b20a81ff680616eae3fc"], [19, 3, 1, "", "7:2 a08c2a45fe77ae5f047f5e6cf64b8f743c4433b940e5f5fb0245051c079e7e8a"], [19, 3, 1, "", "8:5 36081581a365a6503d56139e07b8e1749757cf878634d805e84663d3172cb005"], [19, 3, 1, "", "6:1 b6dad8a8eb45a793423595800323ed5f357d864241174e7198f4101b4d5c9c9b"], [19, 3, 1, "", "7:9 624d69de485ef8707d6d98a26dcdfd92081861894d0c06dba07882fe19de3ee2"]], "15.8": [[18, 3, 1, "", "1:13 44d7f93b36e564d7dd23acdecf6d4a1a3a7cf215632d946a757ea1b25f3d6f7e"], [18, 3, 1, "", "1:5 cab57995b7b7f326223f4f7bb819e8eea5a8ad676cdbed06ce58b66817c6a3c9"], [18, 3, 1, "", "1:3 95c5c42ea8af76e5ec13e3556a9f4104b818bf056900164658866e0c491b17bb"], [18, 3, 1, "", "1:10 ac60d872c2d76afebdf1240a5b1a41539175dcd095ba1374d768e8bce3e15b83"], [18, 3, 1, "", "1:12 d24a178200c6d509f3d2649dd64705b91fb52709df2446bfa5b4e8fa8ad62f32"], [18, 3, 1, "", "1:8 103c691d3e10bb12cabdb5a93c6650a85e45c7e566560b225feecfadc4cbed76"], [18, 3, 1, "", "1:9 f9d27231592868802964cc99b81ef283fb6e96cd3abae622cbd859e5d1dd4caa"], [18, 3, 1, "", "1:7 aea23e828f184cda611d99e160befc6e9e895758347678db72a4029a5d852fd2"], [18, 3, 1, "", "1:1 5c3d236f194a8a669a999473090570b17a9c5b62ef5f44c8025bcba89e97b82f"], [18, 3, 1, "", "1:4 5034d75dc865e69bdf2efb3059a8f9cf91eff07283969d9f524cbfabd137b3c7"], [18, 3, 1, "", "1:14 42a669613202095a2133d66d495e0e881e4d7819d202aae70dc008b2a1f19724"], [18, 3, 1, "", "1:11 46590c95c001116b2b295d3fc9fa40d5606614d0db1cfd11751f0a52118c3ef7"], [18, 3, 1, "", "1:6 0836f8daa7f6588b9456d90b372c0946700d6eb342da49b2767e6605dba0c21b"], [18, 3, 1, "", "1:2 3261611ac54de3039f960d9c6a30c641626dd062081332cd0f8cb2e0db746c2f"]], "6.4": [[5, 3, 1, "", "3:1 a7432b290848cdb326249e41d85385bac2659f0c92a8910f5c4b99d0265b5698"], [5, 3, 1, "", "3:2 7138ff944bcb923505b9d2fa4a30aa458818aa139fb4984e581b3596335e20d6"], [5, 3, 1, "", "1:6 b4ca6e91fd6bb90201e1e60835720f1c24be9a3661057d51f74690cfb994103c"], [5, 3, 1, "", "2:2 55757b88b705045f14beab3a4d65b0322a4cdf93f6af7899259f023fbbbf19d7"], [5, 3, 1, "", "1:1 1d4d9b99c7ff55d188fc8016b22f47344c4c3445fe35e679b333494f12734d49"], [5, 3, 1, "", "3:3 030ea8f4788a3fe7352fd7cd5cae6b11246051da2ac11503021c46b689a6efab"], [5, 3, 1, "", "2:1 e1abf2626df40e58da556bcbf1090df55fad0782419d41dbae13e0d9560acd2e"], [5, 3, 1, "", "1:4 c778823466dda65727a8a0d7f36aa37564e056f58967af9cb158c4a8dfcfb520"], [5, 3, 1, "", "3:4 dd0d4a61f5776a3375247b226efcfb5fa58dfe453c3e8f8f2ddea7335c79fce1"], [5, 3, 1, "", "1:2 d029e4b409fa40ab8cb0723ee7541138703744c5d7f7e56f7416053cab3d75eb"], [5, 3, 1, "", "3:5 b525933c45b15659e45290ea33556f571313cd311572db7e944dab18d1eddf97"], [5, 3, 1, "", "1:5 a57114810d90bea4121cf2db0f3a6c62be0cdd60a8c6825d1654343e98e4219d"], [5, 3, 1, "", "1:3 db276e68d194ccc4d62df06b66ac0a0795f660ac571e227dcc8f8ddecfbcf258"], [5, 3, 1, "", "2:3 6b86f7170a1e3af586e115208768566779108a41d3159dfa073df5621234f93d"]], "22.4": [[13, 3, 1, "", "1:24 5f0c87c237f4329b033b02aa1a4e501b3ef81ac67ae21f801fc66e6f1860dbdc"], [13, 3, 1, "", "2:19 3a38d11b37270cb84ae0f2d6aeb76dd4852810ab70083e2f74a868de0b004dcb"], [13, 3, 1, "", "2:43 e12629bff77cc49dd0fd9697926e543b3db783726e728995ab6dcf3eb21b6637"], [13, 3, 1, "", "1:1 df3daccc1134fbde7da5c81da7286e4a8aee9877bdc758f10041315d7afdbc82"], [13, 3, 1, "", "2:6 b253c450a0ba8f47f8d9771eac1d50f4af75e1f2c3a1287d83242bd3fe0dece5"], [13, 3, 1, "", "1:3 c4b970759ed150c13e63c36cd2534ef92a591c902367bfc2ecccc00302882d45"], [13, 3, 1, "", "2:2 c5968dc1b0f463f09aeb9cd4b2aa570644d895641c7b98e829068c6a3b7bcead"], [13, 3, 1, "", "2:25 553eef4baa71f1f46de56c071450919bf2eca3dd6cf7bd9f4fde72bb42083db8"], [13, 3, 1, "", "2:32 db73f3b0c8c275ef4f5be8518eac860264aba6acc6f606edcf905e67a01f825a"], [13, 3, 1, "", "2:1 273042489d4acdfdbbb4c1c21595ddaf45d9567bc4f222b33e969448bfe38b69"], [13, 3, 1, "", "2:44 3906f6daca8c9ecacb9ceb21d3511d2db168376916cb202a32f59cbac41bd889"], [13, 3, 1, "", "1:4 2aa77d6c13b1986b1ca71de2a9193b60d5f2ad0e8326131351cbe4785d63394a"], [13, 3, 1, "", "1:9 a46c8e5b6d61001549276e9ceda68d5082cde5d8c411b9fcd4322e415159f543"], [13, 3, 1, "", "2:14 540a3815a037e2019aa295eebe637bce2924911055ffd22655e0f7105361d716"], [13, 3, 1, "", "2:16 7b42846b370887a3f35c3a27a083518bb3dc29223630fbcb50980f0b92d4c3c5"], [13, 3, 1, "", "2:31 3066b6559d893177f8936aea6fc3b373621f7ad26e0b80588ac312291a2c572a"], [13, 3, 1, "", "1:10 69d1797e8dae4213d66892c3b2df1eccc2ba619132a731ed8578a80930d8b125"], [13, 3, 1, "", "2:21 b999de4283114f3434ff6b2f3d644c97f9947cdb3682846f9e5cfe9198c41071"], [13, 3, 1, "", "2:9 d74eb6d81576b2d4afe799e9b3c3af708fffc38c914243232b77c7da8763f198"], [13, 3, 1, "", "1:19 a9dbcb5f2bc6a82cb619b70700efb6c5fb95c9028afc2ed8d33d54d9b8cc4285"], [13, 3, 1, "", "1:7 f2a6f18c824fdc7760e14c9983e4f55bb428d7bc2e926c5336d84aebcad96812"], [13, 3, 1, "", "2:8 74b6e657cec0604048f4b316ae345d1d3607cb8345b45d3c19a0762e701bb114"], [13, 3, 1, "", "2:24 1b9a50adc4326cc8e3aa3e0191f596d700af6e1ee878fcd463eddc88796901c9"], [13, 3, 1, "", "2:4 327bbebd420db49f61b331ce68c29a03205db8e1034271f35724e3bff4967225"], [13, 3, 1, "", "1:14 c267be0d4596f4e187e1217ff192f745f74d1ed2d2e60cffc633f57ab23a3d0f"], [13, 3, 1, "", "2:3 b3410bc20ea46ca83da705dd5c3d4bd7e5dbcbb0cb06be3739e98bde74815d2e"], [13, 3, 1, "", "1:13 91e48c407ab94676b42f914c8b5e3d221426fc65422e434aee70e89bc2a2575e"], [13, 3, 1, "", "2:45 0706a9b6e7d90d7b3533057e27539a37cf1b148a53e539ae61ad9dafdd8286f0"], [13, 3, 1, "", "1:5 1dbdb7b1cb424770dccf1f1ca6a22190bfded4e3a864ebe0c70138dcb08aa376"], [13, 3, 1, "", "2:28 ef6d7d774ab1ca21f1aef251798dada30ebf5aa565f69e642e4ce2ef193ab470"], [13, 3, 1, "", "1:17 e8ec5785b962e9d67a7073c3f3ed029663329777ffe7ed04740bb5bae1a2ca3d"], [13, 3, 1, "", "1:27 d6f5bc80d218fd2eb5f767c7df3d43a0fbb3a4f9d611ff09ec5e2db2d73b964b"], [13, 3, 1, "", "2:39 43d9d2ab6988505415d82f7db889a536048c143771389684c62cc7e58d4650fd"], [13, 3, 1, "", "1:12 934b550a3ace7fdebb140b888b4c6b0bd6fc15ba51a11245c09777b143e31c74"], [13, 3, 1, "", "1:33 7fbd7be9fcd499335adb0893a1a8a65bec287ca73feb1889dc5982a40247b238"], [13, 3, 1, "", "2:27 24edea8823258cf1aec3574d325ce870b217dc84940d5cbaef8363f52c84ce84"], [13, 3, 1, "", "2:36 251021164436aa4b642498f6a3d30aa2af316742c592de939c3153c932ff6d94"], [13, 3, 1, "", "1:35 6790bb787a1e84d353705bdf02d3ecff05ea2e3e901235703945395484fba35d"], [13, 3, 1, "", "2:10 bf756baa1fd54ce8e191d9722e682a9688658b4f09b5a2d2adc2be66ec71f671"], [13, 3, 1, "", "2:12 8f07653c7f5ffded5888d86d7b90df75357f168c0520bdf55624bb2c836d2f9b"], [13, 3, 1, "", "2:37 e493e8ca70b894b223615529525c358bb19c570024d3de0d8bd36a9ffa32c238"], [13, 3, 1, "", "2:34 7c4f40ae43ddedb5dc71bae0dff059a430abcc5ef5dc36e38ce185ef2631ff54"], [13, 3, 1, "", "1:20 210fc5aba0385a72ab09974dd17ebe68a03a97d12721b43936fe872062b67039"], [13, 3, 1, "", "2:35 d14404ffbac7fa6b204f853222509a2a09e59f7bbd912577a5a7ff4aeff0d298"], [13, 3, 1, "", "1:15 fbd2694649731061bfc93b035df30a2ffd8057aa228d378e6a1bbbd4d0c3b01b"], [13, 3, 1, "", "2:18 2237d36080e7a184ba2787ef43ea4309766b3fe20fcd28e287f48d8467f79652"], [13, 3, 1, "", "1:2 8a38fde192b47c9883e5f9c64b28fc71e84f6027fdf2b6510307bd918adb2c36"], [13, 3, 1, "", "1:32 4cc9da7a653b181d53c273bb4262f0da36f474bba28cccad6515df9569c34691"], [13, 3, 1, "", "1:36 173a7c080780f8a61d2439061e6ae4d2d179116636cebf6c3b387311b75d8cdc"], [13, 3, 1, "", "1:23 13837d13ce9ed671b2a8b76b9831fa0d911cd1db7ef3fd3c4dc3393776c153e8"], [13, 3, 1, "", "1:21 99debc3917e79cbba4f44a5de1c26fe2a35a28b999da0b9e0896c74136c7f55a"], [13, 3, 1, "", "1:22 4646e2e4cfd3b465d1c592a0f0fc10fc28890d013e8bc48635645162b72b1c25"], [13, 3, 1, "", "2:7 38d62d0687777daed55c786318f571e04236edf24b0be2be66fb64bcc79a1ec0"], [13, 3, 1, "", "2:15 4c30c61a09b304482477071c1e8940277819245caa2586bd24d5f47c8f0604ea"], [13, 3, 1, "", "2:5 322b37644fe5b701127925bfa2b7e952ba5a3875e5ea4488a332ddde869dc5fd"], [13, 3, 1, "", "2:20 913c7a58bd440f285a8792fb9cb87bfe92b9d9e3e781b519576338a87006b568"], [13, 3, 1, "", "1:26 a71927d83c22a012d774779a46a3cc373fd770ac798eaa5bccaa5727d5fc7d23"], [13, 3, 1, "", "2:11 d0ce672b39bf64337b97f071c7ba60f06f19162e6e462862b7d3ba89bbf35177"], [13, 3, 1, "", "2:26 f79e3715f39c38e8e39df76757e19cba8ddf802007d1b76f19778e8c66455608"], [13, 3, 1, "", "1:34 72a5a17c379fbb6bacbacf067b17b2ceea95cab6686fa06bc8a48211b01489fa"], [13, 3, 1, "", "2:42 538abae4915a252a44ef56d9fd5d1e9b54e0a5256c3493cfd1ed292abb455257"], [13, 3, 1, "", "1:16 a80431476395f4d9b37789b614a02fd3ed653fbfdbe231393ee74f8ffa344d62"], [13, 3, 1, "", "2:41 b5e53d8a4f2d5d92ff52782f5c95785d1d304ad5347ceb94c72d18c10a07aad1"], [13, 3, 1, "", "2:23 5cabacdc42396ecdc4239421e1c94751f7e18bae7137ce2e7a90b826dc77137d"], [13, 3, 1, "", "2:13 8f0cc6ef2c23c8cb4bee94667d1ec39ea29fbe2c83738e9a0a6911180130faee"], [13, 3, 1, "", "2:22 e95b22baaaaccde95e5436616a10d509d3d62c095e320c2f3c8dd4e40946315a"], [13, 3, 1, "", "1:8 402be3937906f8d4fa926dd2d3368473a0c85d6086a0eaf2ced7795159268355"], [13, 3, 1, "", "1:29 486e270c4089e2051cac9eaba641373777e921aa5c7fe474f0ca357161b85e9e"], [13, 3, 1, "", "1:18 94c265f36be700f5ab1b92a26255bccb819f831e2c5eb49430450911142fd3fc"], [13, 3, 1, "", "2:38 0830b44abd4b4c395984463fae9b127ebdbe221c966d5585ce9c6279c5e1253a"], [13, 3, 1, "", "1:28 6cff8dae509fe0e99e81732637131e38defb7dc8880572cd5eaab052c4f188ae"], [13, 3, 1, "", "1:25 eb8c9934a20fbabd92ca5744c146afd324847e0dfda556cf639c4dfb8f63fe77"], [13, 3, 1, "", "2:40 abea834cf3c23b93b75de1a6678a732d14decb29a408e444d3a290397ea29134"], [13, 3, 1, "", "2:30 c2122b8e33a87c74ed1103c4a38fb30ea601a8445ed9d99df70a31536b77d278"], [13, 3, 1, "", "1:11 a26371ca4aa01bab4d2e1d2db822d99d09f609cc2e368e34640291ed8b08987b"], [13, 3, 1, "", "2:29 05610e4ed44e10cfa011be9ec110980564ae67ea3f1a345629bc1726e0fbd447"], [13, 3, 1, "", "2:33 dea0ddd23f309d02462555b58271dfaff6e5958548830d4a0c6891eafc50b025"], [13, 3, 1, "", "1:30 ab3d0ca0fad9f39d9ea1ee3f6e6bd6a62feaf78a7c4ad89e4da7e1c9e1cd94e9"], [13, 3, 1, "", "1:31 88ba61d8f48ccf3c27d589bf4bce3d0792b2193ee35a423cf45e9b005f6270f3"], [13, 3, 1, "", "2:17 c180e76cf8759c8f1c126845c7c4691255b1fc7300dd6d998b1ec33d2ba5193a"], [13, 3, 1, "", "1:6 fce3a5b86ad0c82c14627febfea99be0d1adbc87a19da2a21ac7918c982c2165"]], "6.5.10": [[5, 3, 1, "", "2:1 1bb5b885646bba801baad9691ebaddf623dd4aaa4261744f0fb83b8b026b635b"], [5, 3, 1, "", "2:10 aa1553b4d77d65e20c4f21c81f7f481f61757cd3a2e996c6cdb03b04d102e93f"], [5, 3, 1, "", "1:5 562d40caca29e42fd9e6720706fed8695f5caea2e545f287ae8c03e6ee6db2ea"], [5, 3, 1, "", "2:15 d5cac296c4841b11d032f3f8c436aae5e3196e6c8b1ac76278a96a0d9713b852"], [5, 3, 1, "", "1:4 2a9810e20da91ce5a1634df073730e215ba4b469e104c426c9270f979aa97c01"], [5, 3, 1, "", "2:17 d7fc919d5ec540ac0eef14fa6ea2b5d26ca87b8a8dd1204ed7f5526c7c669f43"], [5, 3, 1, "", "2:5 243a77cae715bb740c108cb3cf10510655383e55689af1201db4edc1017ecb52"], [5, 3, 1, "", "1:2 7178659e8d13267c6d2cace3f92c866bde8b3c7f20b6284b91d1813f23ab2b48"], [5, 3, 1, "", "2:8 d7fce64f27e5e966da37da7025ecb83935790a56516a53756543ad92bf4ed4d2"], [5, 3, 1, "", "2:11 b68bcc8992526aa0a831e5dcbb9b1792ad9a389fb52b6f314b1118753322841c"], [5, 3, 1, "", "1:6 a334732322599082a903e3f83305caf0f889eec5caf952a203bf92469d3a7ebc"], [5, 3, 1, "", "2:6 2a3a9a4116094d25733de0cab8310e4330e09ce09ef7e57f0514cbd22b7da44f"], [5, 3, 1, "", "2:18 53ec6be8b47c6be5b010eea7546935286e1827c719d139f77363a74e1e7a7220"], [5, 3, 1, "", "2:16 8bc627e3bf0f027c3c06ec7c4a610c3cae859ce1cc52705452b6a2b18e6245a8"], [5, 3, 1, "", "2:14 54b18adecbfa6f101f756b60fda6240a68c94d6181b080c20c1fcbbe1e2b319a"], [5, 3, 1, "", "2:19 c7335948424f81e31b96930ee1dc2ecdeaf3b3a9deebd55825c5a52ff484e337"], [5, 3, 1, "", "2:9 00243d283fa4c9c0a35d15022e20300d26b61ece13bc0541fb6abbdc62083508"], [5, 3, 1, "", "2:20 49260bff9918873b5d8535276a39574ffd2b3a81c0ef8739ba1315dd51b7246e"], [5, 3, 1, "", "1:3 f899cb72136ebd3d961dc27d192d55c7b2c0be9c5ddb36fcac37dfc24b7f38b7"], [5, 3, 1, "", "2:12 a834153c99b871fe9e977b743df601c1c87e148ffa80105b101da6fab4145491"], [5, 3, 1, "", "1:1 63dad52c617e3ee41bf8bdd92adc2ef8b74de581ac2dd9eff2d4ae7a9d79e71b"], [5, 3, 1, "", "2:7 35df6c0e03bf68532c179009e4096b702f74a652fc496ed46f7ff46c2f66543b"], [5, 3, 1, "", "2:3 51a40a20e8b5e9e446c016a0c4b190ac02f0b1693e12a79e14c1eb0265f19dbc"], [5, 3, 1, "", "2:4 7bf354d6273ccc3c800c65f0c583c41706d2028f00ef46c96172bd6442282ba5"], [5, 3, 1, "", "2:13 9d43daaf0511fffc8a32f8ac5b4ad06460cd1377cdaf72b00b2c07c7e9f1c45f"], [5, 3, 1, "", "2:2 7bf58363b94e40971985a05b3232d9315c7404e7587a09a94399d1a424725557"]], "17": [[2, 3, 1, "", "2:8 72763ab828f9c57a7ba7ae57c095d30f4ef5bb34e5319df45f176f6570588e00"], [2, 3, 1, "", "1:2 2c6d410f6594c15bcbb289be0b5a44ae8b19c478583342e5405aef3abbdb8951"], [2, 3, 1, "", "2:14 b14552f886fa68d1904ccff6320f2d395f90fee027a70f30588a9ba68a53b172"], [2, 3, 1, "", "2:1 aca31f1758bf227f88cdd68e64370874768f51dd10e9211ec344537b1d7ba6cd"], [2, 3, 1, "", "2:13 5b5d7f2d72de32a5c8c9e36b4111885655abad9b351cd2bdd65dac06dcdf6660"], [2, 3, 1, "", "1:4 14b867fe8baaef726910084c46d92291fffbfe3b462586c4a7ecd134f8152d96"], [2, 3, 1, "", "2:9 051b06b8e012ef9e9c02369b0cb8074a99acd99781938a746c9de16fa2ce4dcd"], [2, 3, 1, "", "3:3 306a3b2eabc2ff31f77f6446060185578f9427fcc497d1588cb51a4c94ae4819"], [2, 3, 1, "", "2:12 3b07334d52a95685b653abaecb58f071b99276e911b0f4bc4ab80cda4ef4ff1f"], [2, 3, 1, "", "1:3 11baae79e2b2bec1ba1dccff05f08bedf2b603f0b2748f345dafa59243aab72f"], [2, 3, 1, "", "2:6 3df9c673e62071885a6938566ce59609242470b1c63272f358bf5f999f2324fe"], [2, 3, 1, "", "2:15 1bf7e1661a0f7e7762a5549fe82988a4afbe4436720588214b9ad3857ecc02a7"], [2, 3, 1, "", "1:5 3e1f608593a27c63b70db641f71e71a331b116739b77b1bc9ce207481f0dd8be"], [2, 3, 1, "", "3:2 0a94602025c891b37d5f98e1ccd525f0cd66c06df02df85b06336668d0711cbe"], [2, 3, 1, "", "3:4 d6389f23a8eff8343451429941d835b9e1b00fa45cf260112041467021172752"], [2, 3, 1, "", "3:1 dfbc3bd3bcdae5a3f76ab60f5c1fbcb25458c3975778746db7eea952015a2f79"], [2, 3, 1, "", "2:7 9c9a349252f3cb141e008067381e5a19c45f3b1738132bfebc02583b25c36873"], [2, 3, 1, "", "2:4 fa9d632297e07c71321455d7ac82181279f4349b2878ed60e0088fb76453fa21"], [2, 3, 1, "", "2:11 f182e5451b68bf0b4094178052d33c3a59b7d40c5282e4bf77de423b44b77f8d"], [2, 3, 1, "", "1:1 18cfbb89a43fe476f2c0e5f3299b552fe8abafac2b759f081654338c7597f688"], [2, 3, 1, "", "2:3 f04e33b2cedb200500a0733c23e46638bb219c9422ea4796905e57f57c0bc457"], [2, 3, 1, "", "2:5 17b8684e84e891ce119a119dcdf3b5cc1df0bd9132fc39002ef445333a7386cf"], [2, 3, 1, "", "2:10 a8ab421b6894b056917c74396d9ac843c73dad27e12268a43fad03a877c8009c"], [2, 3, 1, "", "2:2 ce72ccfc2f3e59228fae42edd3521e8333bddb6951896be2347ec2387355262a"], [2, 3, 1, "", "1:6 37c5ee82be489b2f1bd2eb9efdd02a9e9734ac2867c6bfc04f37f9877a9ab760"], [2, 3, 1, "", "1:7 a206190ea6bc9a6672886ed000599cd972f4abec22f754db4c4d9acbc6754a4c"]], "4.11.2": [[22, 3, 1, "", "2:9 03a369fe556766892948f430b4527499cd07a737e8ebb566d9f4935b1ed0bd81"], [22, 3, 1, "", "1:12 939150187e841861875019dc485b2aa948610bdabcf75995a8afad5299edfc9c"], [22, 3, 1, "", "1:8 f51fdfab79671ea2955e16f13e207e87820a37d5f55b1d4c22064de5c137211a"], [22, 3, 1, "", "2:2 5fc0a7214a5fa354bcf5cb9aca684565b666321cce8849cf8e89065c73dca2bc"], [22, 3, 1, "", "2:12 779b7205751c55010c330675d65578fe47e6bdaefe5a76eef9dc878a6ad61921"], [22, 3, 1, "", "1:13 89652dc80a444cd6f5989de7e2a59fcbee6155ba69450db9b25c7c463673bdf4"], [22, 3, 1, "", "1:2 9223cf2e73ff1760ca4c9edcf7ea6c2b6a71a16c836006c862557a4a50880a0b"], [22, 3, 1, "", "2:6 8f137c8f4826a9313a42e8c5bec10771adb0f8414465461fd20d604736c77eea"], [22, 3, 1, "", "2:13 83a4d8e45980a24abbd901d57911b4c082699c53464ebbe23837f6862ff654c0"], [22, 3, 1, "", "2:10 53b32f8e3a420b85e3831feb7488281662c227e49e7585de6de3f2147d00ec6d"], [22, 3, 1, "", "2:14 cc35a963cac35f4ca35b83a2c99092463e9f24c42b164f201487fd81193c4138"], [22, 3, 1, "", "2:3 cc7a74a98eb6db165a74e65d78a53928cd6ceb8d9b8f47c5549d190d9c561b5d"], [22, 3, 1, "", "1:9 b8004c9524d9dcc6e7c1fad6f95241fbb7388c13ce2a105eea1f0fe9fc97517a"], [22, 3, 1, "", "2:11 81829e6f383a4c65151f020b3440763a7261c3898230a6504f0d83bbb62f8f40"], [22, 3, 1, "", "2:1 5f76aa9810ba03c28ebf2942db3a8fb181ab22d0b664086601393227aa7bc9eb"], [22, 3, 1, "", "1:14 8bea878c1256e24db0fc455c3c525bca9c6c94300cfac8d7f432673f4a43fafd"], [22, 3, 1, "", "3:1 7acef59265b9dc0eb9021e3c4144a4243c0f3bcc0119c1cd151745c380b1bd69"], [22, 3, 1, "", "1:1 3eb2acc0e91b94225e6e44043b9ed3ef348d1fbdfb8db38506d619d240c6f6e5"], [22, 3, 1, "", "1:10 b6f79b18180060bbc48e3b28c798cfabb1fbe4261d4f29db7e66461a870e1b05"], [22, 3, 1, "", "1:11 7f5298c7fcf4553ee2096af2930625f9d951363c4f6529b7d5d99c07b1fc520f"], [22, 3, 1, "", "1:6 8a55fc830de2323e466a47edb68b3963f8dbb9972e1194ecb80a9c6b4a9252fd"], [22, 3, 1, "", "1:3 596c70e3ed03568cc8842491654b253cff2dd3c53ecff886f8790626e79cdf54"], [22, 3, 1, "", "1:4 a91c1cca73e27a37a40cfe16ebf7b3dd4618e680e133ba6257ba1c08b26b66a6"], [22, 3, 1, "", "2:5 f655a5cbd5d73a7e395bd286c59614f96f179cfba822ade23467a58dd59c9416"], [22, 3, 1, "", "1:5 fea4e03795d124973a8ffab094f6ee265a8f520b32a2c7d748015882a86761cc"], [22, 3, 1, "", "2:7 1d2016f00c240d05addd5fab89f965d3641505505bfb01110d95a59a9d0abfda"], [22, 3, 1, "", "3:2 151cb09b57de0325104c84d42d1aac2b8865f4dc1fdbf7fc0da0db0967ba3270"], [22, 3, 1, "", "2:8 a43584acfcb4f9504ce4581592588e3c52f9f07bc3fac6200626820608fe115a"], [22, 3, 1, "", "2:4 f0a3247f449084aa9aae9debf4ffa6a6913bb680bf0b458cb343993f72476848"], [22, 3, 1, "", "1:7 9511193dd174fc3bafe80e8350dddde4679a8741fb947fe3f5e1e891a33d51ae"]], "1": [[8, 3, 1, "", "3:2 397ee14d96917a0a9033a587347a2246e4118f1270d64cce0f7eefeeaf565980"], [8, 3, 1, "", "3:6 c669dced28f1bb44dbac7e17e855e184b1f14baecfa15e22b21d2379a5998be6"], [8, 3, 1, "", "1:2 2fd3ee99a2741348afeb5b1c225ce4f0f75e2a082a1761ab70b2514a188bf003"], [8, 3, 1, "", "3:5 70b86c11c1708aa3d4d6b52af002352aebaef77835c4b45ebc4233a789844230"], [8, 3, 1, "", "2:1 ac30f10574356a3a3472c8858b8b13e8b8ef034312c5823a3674a594b4e4e468"], [8, 3, 1, "", "3:3 969a1f3b691a3118abcd815618a71feba07fdd5be4c2a12ce37d0b49595d013a"], [8, 3, 1, "", "1:3 3cafe78bf672e065271c827827275c25ee801c1d3205969de17e9f49d6aab5ba"], [8, 3, 1, "", "3:4 0d6e2d5075e9ccebe0f79ee2d1d393c07fae6b8d4b6cbf7fbf59b1348185fc5d"], [8, 3, 1, "", "3:1 34f82930e1b6b4af471b30519f81d43725341882ad0a3e8e36d85ab7b3f5713b"], [8, 3, 1, "", "1:1 a07b4fe66cf65b8ce3a858b2856554611de4b9e53002b5ffa7fbb90c6cfc2b44"]], "21": [[6, 3, 1, "", "1:2 303e206ff87fda7c72da6833ecc1035fb2e1bc4de71a73e3c1d6fce85b12b068"], [6, 3, 1, "", "1:12 1da7fe0a23d93d524fed3110b8c116e9b7fe7f1563c51830ffd8b98ce562b9dd"], [6, 3, 1, "", "2:1 32c972f272a9d15a0eb8dc264c17c46b370c4bd9b1088bfd65a68fdb64c4b15e"], [6, 3, 1, "", "2:3 160ef01077e123c673f3437e37cc0c39bc2ecf284187af80088547f8c4dcea59"], [6, 3, 1, "", "1:13 42ee2288dd6a0bde172c2aa19bdd6c764e4c21913a22a4d9d65065b478aa14ba"], [6, 3, 1, "", "1:15 fab1088ce02afa3c8566f0f5033efbd1b6cfec69fc639a64273cc39e32f479e5"], [6, 3, 1, "", "4:1 a342af289e2343c6a6c563bb75a44dd7f003efc17cc5dddaf9db25fc1395f17c"], [6, 3, 1, "", "1:7 73a1ea71c6511f5c8fa189351be1febafe409c8be34b695dbf2b171521b6a22a"], [6, 3, 1, "", "3:7 8a5942ade1d1568f8a2e335a8767ab295816829fc64e2c4ef250f53feee9ec69"], [6, 3, 1, "", "1:3 a7324b60f99f6fb51284703d13f58460e71099e1fae889aca7365c5c7c1b5976"], [6, 3, 1, "", "1:6 39df1027aa9c166e4e50895b0a788131e1f5f2323e7cfd31b5e06e5b3c128c65"], [6, 3, 1, "", "1:14 a81529042a5b1033d4dfd23dc355a422cafc5e8a94dac4134dcc1cdbe6d6b01d"], [6, 3, 1, "", "1:11 3669dcdebc7765bda115346c9c6980555f7499a5575f7f12566645e7c5580b1b"], [6, 3, 1, "", "4:5 0fb23c674fc5c6699fc7b3869fdc36f00d967880169275042498442dc58a8872"], [6, 3, 1, "", "4:3 0950c80e76e16cc26a368f06ab710449600669547abe9b7d1b6e520dc0065ff9"], [6, 3, 1, "", "4:2 7456ec21405a4f2629a47ca17fd031b08d4bf3cde66139fe81c3b11248264ca1"], [6, 3, 1, "", "2:5 7d4b55c59ea318d78494221e436aedbac6a9c1c17661c2243e80990dd2188a52"], [6, 3, 1, "", "1:10 c2d1059fcd1026468253d1771f735c5e6a5bab43177231babeb00190e68633a2"], [6, 3, 1, "", "3:8 0e21072dc94fa05d0ff274b95c7cdfe5e96a5fddabfd26720dd20bcd7aecbf38"], [6, 3, 1, "", "3:2 1bf19f866a19f72882e1486cea9582179a769d7bd9a3d9378b982a74452ebb7b"], [6, 3, 1, "", "1:5 c336142c062c3b0f4238fbadf03105300bfcc6e13ec8c02ac9c02aa0bb4dcf50"], [6, 3, 1, "", "1:18 325e66e1fabd736adc5af45c19421a9268caa39bd78c98d091266005e54f20c8"], [6, 3, 1, "", "3:5 9ff777cfdc4b91eb8472493cfbc9e96b5e66329d621fb37d3c8603b420f63f79"], [6, 3, 1, "", "2:2 d3516af1c3ea4a3ba811bf1081ac06de4b8eb22057c37dc0bd4d086ee54db362"], [6, 3, 1, "", "2:4 dd7c836fa590b14a7da0c87f48b6eb0d11c83010e9f4ac1e0615ebecc9ba7eb3"], [6, 3, 1, "", "3:3 9abb006e22c228a40953b442c54e63fd9a10cc675390d5e7d61b1fb7221ec353"], [6, 3, 1, "", "1:8 bde0533495e75b4ceb809bb02e397e0d5daa1d7c3d1977865fcaf0ff5f4d989a"], [6, 3, 1, "", "3:6 69809b6272d266f36a20ad706492a4e3561e0afa136d36145d8804f83456d978"], [6, 3, 1, "", "1:16 aa45e16b2c9fb1e7d7ecf23ca38806bc2f369b1d1be518e74d28e24e6b54a8b4"], [6, 3, 1, "", "4:4 1e3dcb44d797a493ed568db4d4a7c292794fa22ef50cc810f94492b86ec20c75"], [6, 3, 1, "", "1:17 563032c0e9c472e10f9c487c70925926c24107c3258cc003fb04dd03b00c21af"], [6, 3, 1, "", "3:1 0104ba914d1d2a6dafc2b7914cc94254e1ab3678864a25c1864a89740a54294f"], [6, 3, 1, "", "3:4 af35e63fe34e63713827f5525caee153a033f726c0cf64300b5612781daf29fc"], [6, 3, 1, "", "1:4 9deadcb79842b0adc5ae917673a5a388d2bd4ed4c1732bf5a25e4e650395ca87"], [6, 3, 1, "", "1:1 5907d37d1b47c67dacab00d10295ab91ec2974c77016fc225a28413fdcecf896"], [6, 3, 1, "", "1:9 907e87e17820da8559bd8a486992acf18956b1456ecc61cb90278065e01374ca"]], "4.3.3": [[22, 3, 1, "", "1:1 9f2ef3098e38ced762fc72ca6a4bc1dec698a33084b9c778e96312d3ffe46bf1"], [22, 3, 1, "", "2:15 27d4b5e93c8a23fea7497ff03639ed73f72387be79afe5bb2ef004898a152b78"], [22, 3, 1, "", "2:13 fd5107a41862e15e8bf69245f1ca0a14bd39123490c3f4b6af8e4a980f4ec4ea"], [22, 3, 1, "", "2:8 278b33ab9e405eba53e40103ea42d106398186c9d15ba8ee1995c7a728b563d3"], [22, 3, 1, "", "2:5 9ad8b2b92eaa9597eb9af4e33da92fe59cbffaa97c890e6086435f557e43fb50"], [22, 3, 1, "", "2:4 b24ffd36ee78bac00ba6eef084b0bbaf5b5915c937f0c8172e3068776977c8c1"], [22, 3, 1, "", "2:1 c91bb9a77a65e19d420bace1cde89e8b2bd3a6b0a5554c2e2d6c5d4b2b8a6a45"], [22, 3, 1, "", "2:14 3c6952dc4550a4388ae5861a5f0f6e10a791a23bc1f697d783dbac6b3281a6ec"], [22, 3, 1, "", "2:10 b4b087216df02d090a94bd841759e6bcd8283ef3c137cfe09f138ae17ddd5071"], [22, 3, 1, "", "2:3 78b32c0312f4dd50cbc257f858487dcb75f68d6bdf006abab97290c56ce8d417"], [22, 3, 1, "", "2:12 ec17bdab7274d1767c59acd310b20c0c01f2da8a8b7716c404d17f1cc07484ba"], [22, 3, 1, "", "2:9 9dec417eca723a851afba4b1fbf40615b81b0b680eaadd85d45cecd136fda1a3"], [22, 3, 1, "", "2:11 f3bf5c08e43865c62017a10e1b7306084527a18b37767d4c100314a6e0c1c2f6"], [22, 3, 1, "", "2:6 b1e3f5d5efc7e3aacb83d9a6a8f313f9e28d458979266baee253365b8454376a"], [22, 3, 1, "", "2:16 adc4ea56adb80d9c82a72320b251471c3e69a20eb1fca729a0ba24c65f115ede"], [22, 3, 1, "", "2:2 49357a257118ef34e9a0f670c27a41b0d29de7f40242b56aed6fcbd777d0759b"], [22, 3, 1, "", "2:7 a9f676afe50447b4889e6b3ba228a3314e819d297389ab57b60c289c43192d76"], [22, 3, 1, "", "1:2 cec08d9131666b39b8d3688a587aa88db5e36d49b4c55c6fa925a6d90e9338b8"]], "14.4": [[3, 3, 1, "", "7:27 4025d7292308fbfa960b1bb6777f0012c20f86641c9d40465dbeefdf5b08c521"], [3, 3, 1, "", "7:10 3b60014467b97b96f55006cc958d04dba76f07721782eae6af5f4185ef0b50ed"], [3, 3, 1, "", "2:10 6da6b05924e3ca7b78a52d8b6bebba58a20200ccc2beec4a64d3e81ad77da76f"], [3, 3, 1, "", "7:1 f551c6d52274528f4d39e9f7ebb33850b7a9886014adda99bd7dfdea6a937703"], [3, 3, 1, "", "2:6 5be283d945e26887b35476d71c9983067056e07394062f8e074c437f23e48e7c"], [3, 3, 1, "", "2:2 8279dc6a8b235106f42ec6b4f7ac14f3cbc73a5387e8050967651ecbc6aba0b0"], [3, 3, 1, "", "1:6 704d759b8e808aade84bf9d91c6547afd260d382951c9e63b34d612e46adb44a"], [3, 3, 1, "", "4:2 f9d012717e48391d6a169f0d2134dd95a7d39ab75ea97dbf1dff6d58431a9ba5"], [3, 3, 1, "", "2:12 689d6488c7516efa05b316fc2b100ccd54fc41bf3bac4b72f0868c6a4f251d1d"], [3, 3, 1, "", "4:1 521fb43b24f85cbd6c81cae0c33b399291a86e51201554028deeb6b63c47e26a"], [3, 3, 1, "", "7:25 08f70ffd77b18c260a9e349a49a29aed866ef6fa09e0df2aa9f1a8228046edc8"], [3, 3, 1, "", "7:17 b147985d5033458a477fc80cfbdbe97b50bfe9cba065f8e54ce66e21162aa93b"], [3, 3, 1, "", "7:29 0db116cf8a599b71212419a8bae8425a590f80dc601f73ff9e537a80f6411a9a"], [3, 3, 1, "", "2:1 d584c25b23d784679f49bee07542de8692b945ee1f537fbbfe6de0748ac4fb71"], [3, 3, 1, "", "7:32 be9f93509f539e90659d105d4f3312acd8a85b94e8c3aa00920639811e1eb437"], [3, 3, 1, "", "6:3 fb291d2a2d9aa2c05d01d7c0697cf5633d229a13e733f5c63cf3880d0e198fe7"], [3, 3, 1, "", "7:19 86db3013b3c7a67a2925b579f72ceec4124fd83d53e5dc632e4b57d7cc2eaf3b"], [3, 3, 1, "", "5:5 3554e24b5a9b2499a683328f0576d51a86bd26bf117490738edb7ae2e7904a1c"], [3, 3, 1, "", "7:16 ef0cd3b9e3e74fb06c3b65260e11dad890b4f75033c75029d59385ec3657f7b4"], [3, 3, 1, "", "7:8 b37222b3100e2b80b7b034edb7a76cc840d78dd0fe191e49a45846b0e6903d8d"], [3, 3, 1, "", "7:35 73d81df70d3dae226f85d4fc1d947dcb6c50a3b857102f823d92d248260ce169"], [3, 3, 1, "", "5:4 f92935a62e26ce498f4d124d356e3e78782eef0ef6a3740c3cf24f7b09250efe"], [3, 3, 1, "", "4:3 688be0bee74edd58c2e2e383d5686e45abd8a325780d2d340605d0b7b3af96bc"], [3, 3, 1, "", "7:31 2831803e44ad7befd12a919e248e44a0be126600a95ea86bddaf2a682634f7ea"], [3, 3, 1, "", "7:12 92bfa8ddd580edf9895e16b361150c8c3d0cdd1c9ccde8524f7e6451e4e7fc64"], [3, 3, 1, "", "7:4 a879143703b2ebbf1c26fff249edc2ee837f8d4c7b131b30fc5b2da7cb149c8b"], [3, 3, 1, "", "7:37 0900771280a33d9ba8e1d92770357e08ea0ba60343df556c52ebd24218d890a6"], [3, 3, 1, "", "1:4 c828a2288a376f29a23988cc6c36a6e201e5de5b00188c8dae26d122a334a4e2"], [3, 3, 1, "", "2:9 8ba2db48a9fbc5cd1345c45bbc4ffcce13b8b4fd94cb3d312f53128b4459aaf9"], [3, 3, 1, "", "3:2 25bc4c9ccd15441cb75deda5c2ca31e035e40a8231453a5c22e52e2646c44186"], [3, 3, 1, "", "7:14 628e0a86e2c9490c0f27ad412acf3bfcaebb23591129c816d0863d06c698ea97"], [3, 3, 1, "", "7:9 f2348baa759c683ef36d18d117184e9e34670dd0247232e3c9765ce2bd5acf41"], [3, 3, 1, "", "6:2 20ccfad5b0eb356d3674f0df4b46713ca8de9f5e25b83f9ec21fa2ff02dc92cc"], [3, 3, 1, "", "7:20 c2e9b4fad1e4fc3b81216128713d9fd685d26f561850a43261e300f242650592"], [3, 3, 1, "", "2:3 1bf64d3433e9732df7b69f03bc39b74cb23d3c97ec46beaacab32fd3c95b7311"], [3, 3, 1, "", "7:6 0486289257a5a1890cd132dfa6c3f59e5fddf88be745323f21a5d89198421ac0"], [3, 3, 1, "", "5:1 46ec90b1b86c7151216c55420994d294c6454cf9a68db0d8835a9fb9b50e5984"], [3, 3, 1, "", "7:3 0c3ab46d2d4bbdfb7f8aa15e861edba999dcd3ab2c8247042b749fdfea5d82b2"], [3, 3, 1, "", "5:2 9ea7a212c6751d354e97c5eaa4a920477f382ff731fbf5eaf9539e771f658286"], [3, 3, 1, "", "7:5 e3f691f921462849f2125bb6f79621259b85389c58f9db3809ce843964ba6095"], [3, 3, 1, "", "7:11 ee8879063f069e206d0ee79c4f20ae8cdc570027eeec9cd9ba5327ad2ecc4697"], [3, 3, 1, "", "5:7 6c12e7861360d4792869765a4ef4afc10ef9b835148fd7c3b5b6a78c61e470db"], [3, 3, 1, "", "7:28 6e01c796d3afc2eeedc107698dfc4456b7446b5110ba7583416245987f3b16db"], [3, 3, 1, "", "1:1 1c091220f546537aa0376292e1056112fdb4f6accdb5704f2b02a353e1dc7f57"], [3, 3, 1, "", "5:3 d453f4e8c7603cc4a3af26b98e29a3619d3e4151e2257de52a6d49f61e7ac8d1"], [3, 3, 1, "", "7:2 4d1555490789b23e0b29f3539cc6b17f32c58c25a752e2dff0ab22d6d85ba927"], [3, 3, 1, "", "7:30 b12e44bc28cdd8d7415305251565ee0efd311e80ca5798f02424d3d97af7abf9"], [3, 3, 1, "", "7:21 f953ad67423f37e5b897c8c6668894471626c602b1893f1d007a340ddedbecbd"], [3, 3, 1, "", "2:8 d80167a0dcd4ced3ddd314d967d1072c823cab9fb8cd19ea7168bce3bda55d70"], [3, 3, 1, "", "7:7 5552d190c3a9cad12620fa1208ea5d3f5618d642ab37332f58d35c9d58779495"], [3, 3, 1, "", "3:1 fb831c1ad14c0df880fe0e2965047fd726fb0ed1e305c93656d65e870501e7cd"], [3, 3, 1, "", "7:26 6d3036f41d092e3cd2e55476c4918788be2ab98eb9c6d0b9e69ee70d433cbce7"], [3, 3, 1, "", "2:5 ba9481f2a0dab8367b56e1986f679ff8388f4d6fdbd58144bd8fec7d02d50597"], [3, 3, 1, "", "7:33 9360333f7d8597a9b299a8028b723451ce669aa9bf7571105bcffc0ed2665b48"], [3, 3, 1, "", "7:24 ab92461a17e2778df037251723d9e8305445c141efe44b6ca98f7ddd5804cbe9"], [3, 3, 1, "", "7:34 07f7dbb2dcd0707931f55e12d3c59fd8e10ecb809691978bc03ebcae149c872a"], [3, 3, 1, "", "5:6 2e5e179e6007b149b3d35850933d604403fbaf8f3cce6fdbd380b2f719d27cd8"], [3, 3, 1, "", "7:36 e9128513da136c0be871747b63ccd23562fce9810967916d929dfa3e17fdd8b7"], [3, 3, 1, "", "7:22 f961d6fe49562f6bd683b5e7dac9856e6b65949cdfe488452a9af791a1a20a38"], [3, 3, 1, "", "7:13 be583136a634bdd26f4a80930ae3ca6dbbdd6e0358978bd6923a42e1c84b0da7"], [3, 3, 1, "", "7:18 f72b277b5c1c9727052cdaaee9b8c8db7db662bebc2b7e7059b6af7aed73da62"], [3, 3, 1, "", "1:3 38c14cea741975dfcf0745579b4485aa6e7fb1819efc47af41906460216ba171"], [3, 3, 1, "", "2:4 b58069d3632126cd1d327344ae6ddc3ea80724b6edb47aae53f655412afbebe2"], [3, 3, 1, "", "1:2 28f8cbea9a3c14d13f591f4f492b25d66fb3fef3471e02a0bce1eb50f219a2fa"], [3, 3, 1, "", "7:23 0132fa4a1bb8914b9f99869812101355d04a8da7aad46c2a3fdb0838b020ca97"], [3, 3, 1, "", "1:5 9738803f2e1cc4b49daa374b470dec9c822944abdddc2d5553cc3a7d2ff81962"], [3, 3, 1, "", "3:3 21fe2e6b23a8c76e0b909cb3bb66d87811b819ce8cae90179b3d73eceff47c01"], [3, 3, 1, "", "1:7 01919a0675796333a57c77739f2e33e59788ca34fb915657ee4300af13e689ff"], [3, 3, 1, "", "6:1 9d8d566bf0cc9c442a6f8caa9750acaad5fd97b2051978a07e83ecde9be6c8ed"], [3, 3, 1, "", "7:38 32dbf2307aedd581270c9472e89c27976e8bafcdef78287e45a2d79c85a0e2fa"], [3, 3, 1, "", "2:11 e918fbab918fabdf9fdbc58cfc78079484a925ab64ba7147cf502d5a1ad77c81"], [3, 3, 1, "", "2:7 b51781ef00cf909b9c6f954d1f3ad0fcde40305f987b06a26fde3bc2fce0cebd"], [3, 3, 1, "", "7:15 c3092ffb4d6f8e51556d11db102ff26ff4a26fcc6d578001ab2367f0466f8681"]], "7.4": [[25, 3, 1, "", "1:7 75d27ef13729037fd83b4022475756231b8ae7d7944805b47de72178a03c8b1a"], [25, 3, 1, "", "1:6 26b8f032dee42ea2be31ad066b7ea126c0a123b1038d4a62f29eb01d10f33637"], [25, 3, 1, "", "1:11 3bb8d78cd408d9dd893e63b174a91171c065d65c7708b50a9d029c3bff7c32b1"], [25, 3, 1, "", "1:5 4b1f204406987d2425c7aa65db5e4321ca60c66f8abe6f59d4b9c954b56369fc"], [25, 3, 1, "", "1:8 d4d542c7748a3c35fbf6025eac3cfaadc015af1b45fc042ee9cdfe0b8b09c0db"], [25, 3, 1, "", "1:3 7495b43c987ba177e81ed96d19821da97b72ed887800433fa2c3b5d3899da923"], [25, 3, 1, "", "1:10 b6c301614db85e9f9a3aa268b8e6ec7397cfd563b3d321bedae74884809dc6ab"], [25, 3, 1, "", "1:4 c27b3a87d8e551f6925166f12702de6c3b84e10e0560e1124e14b34b75af3571"], [25, 3, 1, "", "1:1 2ab496292105588acffc417faa7257c109d7d2599887fea194b6276c78d7d9f9"], [25, 3, 1, "", "1:9 8f845fa5e99e7c007d619bef33689d1b260b69d4631f9648c454ffebb40c4360"], [25, 3, 1, "", "1:2 0802dcedbdb411093a11433793ec2d81046430a75caa08c88a0652e21e3f2b48"]], "2.4.2": [[15, 3, 1, "", "1:1 62ac30b5cfa63f4632a34f11e4698ea67c7ae55a34b3d28b393ca9d5fa086c06"], [15, 3, 1, "", "2:2 f646d235451afad8b859ba4be5f8fb7a8bfd7a81daf561627ab2473cdba57128"], [15, 3, 1, "", "1:2 5e13841395ee1fa0c45128b43036136b6cb4e4916df10822bac39fdbd3793ff4"], [15, 3, 1, "", "1:3 8f22427e1ba53391df74a01e8e153344365f804365f3a68124e8fb15dc383bb6"], [15, 3, 1, "", "2:1 990fc45d4abab0b67d0ef88df0be04d33d65c7522287bb90176a8a85a131faf8"]], "13.2.8": [[1, 3, 1, "", "1:1 b7f82a1f9a690d7f22754bcc39c0c5a7aa96121a1dd60e82b27d66a66723bc28"], [1, 3, 1, "", "2:5 d3ba7cfda60161cb47300e194e3d076342330aae22d93b71577c8de8eaa19e68"], [1, 3, 1, "", "4:2 51be5aebe1c07fea1dd288f810fd58b529feabbb2db4633c447eac8036526b22"], [1, 3, 1, "", "1:2 482470d45ab2936cb24974dba4d6dd68a83506c1c8d812b93b1125611ef28893"], [1, 3, 1, "", "4:1 d914e82b19183ec81ba7ca878ce84320d00af280cfaeebaf06a1bce3ce91dc34"], [1, 3, 1, "", "5:2 c57f5a4e85fdec7a28646b6dac958146ae5ffacab2268b24082814db828cc895"], [1, 3, 1, "", "5:1 ccd312dde256071afed24a8368cb4561a8238f97767345ad8286d082eb213a6e"], [1, 3, 1, "", "5:3 f06497bca4b72dd176f21ed2508cb69fa3833ef6cbd8a4b22af928fc995b81b8"], [1, 3, 1, "", "2:2 c57f6b3b535491797fe56ebb3d700049dd61c9daed4faeabf4b81ff930713d72"], [1, 3, 1, "", "2:6 15633d7af605c9b73e99840c7e31720cc2a83e5731086fef2f9861de505c03ce"], [1, 3, 1, "", "2:3 0f7a33e20540faa9a9f1f692378ac792ba6bdad3b1cae65e1aa6f5f1d46f15ad"], [1, 3, 1, "", "3:2 c2045a082f6a84673475a58ccde2204fadd47f7c6e23407bfaed9319e1242fdd"], [1, 3, 1, "", "3:1 a7056881313a129fd3ec31f81d6d3bb01a2c9d5f56b3d256ff553f5d47df7eda"], [1, 3, 1, "", "2:1 cb9be301d970ad119fddcd5b1aed8838b378d008a99aee3b37680273ef7c2735"], [1, 3, 1, "", "2:4 1f21807e410d91d0bdf2a148125d253f2e11d2ef02a10360f295161deb2db79d"]], "7": [[25, 3, 1, "", "1:2 7c5a50f4fdf5e813f75ac692c03fc8f4b3ef0e7f8d0ee6e1de095293de8bfffb"], [25, 3, 1, "", "4:4 08b9626baa3159ce1dfdeca36fdc64f24594ba26b6b57c9810b67ee7c84c26cb"], [25, 3, 1, "", "2:15 8aa9153a03b15bd583210b61b2721907a729d0f7febdc4e7a31ff91f096d0e47"], [25, 3, 1, "", "1:1 2174a4a8c9a0e42e91119740bc49a39ed632666f931bc9de2607ce70e1542bd8"], [25, 3, 1, "", "1:9 015386deba230b6b14d0f7cf80bf7dfbacb3ff23137205e63509bf82cc10cb4e"], [25, 3, 1, "", "1:6 195d2e43a2cb6b0474fb0ebaa8190f17c133efecdb317ae5ad83e396aaf05e0b"], [25, 3, 1, "", "2:6 436a9f15d2686b36fb1f179b13f38d0cce872399fc6c8d997896182219ca9b12"], [25, 3, 1, "", "4:3 317f39071a5788d82b4865c063b86490996160f886858c0f19fdba967e4204e8"], [25, 3, 1, "", "2:12 14ed04b36fe95b827d15d5985c20be8554b5d34cabcbdcff30e24ab1af96c712"], [25, 3, 1, "", "3:1 c643b7ee2f09d4d661349de57526a0d8f6ba3fa1f1d3cf25ce2abb1ca7ad5487"], [25, 3, 1, "", "2:17 ae3be52255b3602f2d17694a7c90103ed859c959d8b5e8b02d731dd9ee8ac70f"], [25, 3, 1, "", "2:4 db2fb6ad99eb58cdd6f4bdb9e2edeff34b4c9b422e25781877ba2d6267194842"], [25, 3, 1, "", "1:8 9590b37a5fb341bc26220cabf636eb0b9430c183eefc8266362a284afabdcf54"], [25, 3, 1, "", "2:5 61e4575688b23d6d7db99392e1b544003c08b7a838ac8fc1fdad3b1e44ad8ce6"], [25, 3, 1, "", "2:16 adfd4f4616593d54184002394d94d8724adb27b43f0a4ac9b591831eb3d24ce0"], [25, 3, 1, "", "2:14 c16b08cc3a5ca2e215cad78f4c6f8d9d9c03d11b6737b12ca2cf558d58a77b3e"], [25, 3, 1, "", "4:6 4de69432bc744f7df3566698f62d36feec0eb8432fae9503c73491871c1858d3"], [25, 3, 1, "", "4:1 e459e293d2e06ba989b65a863e33bf3d1559d14ba80224385e6471d4187db194"], [25, 3, 1, "", "2:1 1fc950d02b5b3c40129159c65daf7d001e7f01521a71c3d8b8a2058dbe50c167"], [25, 3, 1, "", "2:7 7594d6fedfa7f00a180909cf5235b4243c8be61026a444da258f79f104bdd93f"], [25, 3, 1, "", "2:3 5c1b55de587710b67a5131939b84300663f0c0699041210a7ce0779e6c1a0f65"], [25, 3, 1, "", "2:8 ac1f8731f3004fb8442f085915588c449be8d285a8cae244ac37519247a147c9"], [25, 3, 1, "", "1:3 4716f007f8ab2d62c80effe03cf31b1970b0da6143b16e60aed00dceda659994"], [25, 3, 1, "", "2:2 8c4334c679018baf9392151eb71d12964b85d09d0477dbea3910ea98adb3612f"], [25, 3, 1, "", "1:5 ca441fbadf454d310fef0a445ecd27e40458052ffd2566f775fd1f5d49ab6961"], [25, 3, 1, "", "1:11 18ea98ed7ee862889d2d483387c3b1e28a42e39e9d60b7bbc3e65d9e4deff0a5"], [25, 3, 1, "", "4:5 13806969584a605aded5db6ac700acea4334fa75cce1409689f2cdc10b30c2c8"], [25, 3, 1, "", "2:9 ae7960becaff9d4e85d3aa35ebbfdf4c482ac55566c5938d255ec72bb2cfe41e"], [25, 3, 1, "", "4:2 a56061a790ee2cc114f7f43c891827153cacfdd9d5bbdee36e4db521b6d5fc2f"], [25, 3, 1, "", "2:11 d07bf654cb1e5a9429203f2ebf243ae97b0345768f8f570784f2e53ba60d1a81"], [25, 3, 1, "", "1:7 ea8a4c823672702b1fff3e67be0d3834bfde988e46a4ab82202acfcc2d7b9898"], [25, 3, 1, "", "1:4 ff5ba133064323870b5d011bd88ce9eeacc9f115fdaa6244b44b18ee640a1431"], [25, 3, 1, "", "2:13 0bef3205d769452568c2d9b7420b359b46261b2fd90918adcdf762a9b9d97651"], [25, 3, 1, "", "1:10 916f9839884f7b71825ecd5be8ae92f6b7ab789a916c47ba1a5f366bd8ac4382"], [25, 3, 1, "", "2:10 74a8e2029bbf9068f3842d85c2c37aa40cf499e68bbff4aaad87bbcca3cddcff"]], "13.2.1": [[1, 3, 1, "", "4:1 1df8df023327dd4f97448aabeb73c307d5da815e417c8cba242c9e9bfc721c1d"], [1, 3, 1, "", "4:13 e9b710a4e7a5d951c56b3f75f26e35b7a826e3d5c1958e4e71d5502857541ad0"], [1, 3, 1, "", "4:14 4e93115858ebed6f679bcd9090c45327132a80d56ebcefa7ba556b066fc97d72"], [1, 3, 1, "", "4:20 4bcec9bb92108de19e67a173df0098642ddb36e508bfcd6556bd6ee10daced06"], [1, 3, 1, "", "4:19 f975dc2d5c0c2c15b963eccd4795930fa5cce62aa848ff640e9de66a52ea3cbc"], [1, 3, 1, "", "1:2 e8b558243f7bf0325a129db3b6a9dcfdeaf35a9b8aee0f97064da28323c33ce0"], [1, 3, 1, "", "4:3 e472ceda7230cf454f09e04024a0eaaa04baecb00eb12585de90bdece33f7f1d"], [1, 3, 1, "", "2:3 132910b8fef15bd7f371019b12f4f3ff9e87a2bad1099553cefb639d39ab7d5c"], [1, 3, 1, "", "4:24 9a1429077ce3fd1214a1e364203492d57772729632414f91b3c2cd2f3d0559ac"], [1, 3, 1, "", "4:16 7858b9613091a34085b288d29faa10cc8eba087a29ddb9ec313ffbdd3f6db23e"], [1, 3, 1, "", "4:2 585e4a1fa321aa3303ab0bd5552d8d1721f633efa71ec8860f55edcc75647378"], [1, 3, 1, "", "5:6 5b17e06e43d9f47282dbe761e0e463c0d2b276faa4045afc0ab58815012d19db"], [1, 3, 1, "", "4:9 27fceb61f07a31faf22bccecf31e526e2d22bf0615fbe8998ffcd1dd528e8e35"], [1, 3, 1, "", "2:5 02ef19bf80c5200669e96e008b98fccff3c5fa277c7fad57dece77bdf97528fc"], [1, 3, 1, "", "4:26 c66a6be45c57e16772d12a0c52d3d765424f9d564f839da0cb77fc8c01347d4f"], [1, 3, 1, "", "4:18 a692dae36ad20687143af0ddd8381c71260bb5e4917fbc7b203f47f6e384c986"], [1, 3, 1, "", "4:12 75c3e60c0e86babf3644778265ff04d82086fd20428ca94add2ab7fa29a4b786"], [1, 3, 1, "", "5:1 e23f26c1bdaac35fb187af2c3437a156c142109266b6922552c87a35c4fd7652"], [1, 3, 1, "", "4:15 5140f4b9a43b91808591e2b954a2980ff337e13a4e8335e3e29f7498a06a869e"], [1, 3, 1, "", "2:1 8af34535fc44405dd0d1185fc8ff42acca2853c54da038fc47f8bf644aeedc58"], [1, 3, 1, "", "4:28 55fa6aaa332a37320f9c7223150099eba092430986498c5ae328de57fa2e9487"], [1, 3, 1, "", "3:2 7089a3f20c79b60dbcbc66b2e3df9d1c5911e691c738cd1846adf88d4ac1e68b"], [1, 3, 1, "", "4:7 897555f2c7487adb369d557e88e95f68598fd643686dc9402f4f295226b210f6"], [1, 3, 1, "", "4:23 2765819a612a9117bbe617d8b73b4ff6a353b2f5cd2953bc1c894701ba157e98"], [1, 3, 1, "", "4:5 094f219b2ede048c90c66692b41e7a30763694b917cfced20fa4eb76afc6a626"], [1, 3, 1, "", "2:6 cd14e98a49d9891ed4fcd4b3b9a2704b3acc39acbfd6deb0698c5b2810227f7e"], [1, 3, 1, "", "4:25 dd2313cfedf44267dbb54d88f3314ca7c7076bfc167b691f549028e3e4965bef"], [1, 3, 1, "", "4:17 417c3d70bcfa0a289a99c07935492966631944ffed968fac67820222ee2f9f1d"], [1, 3, 1, "", "2:2 4d894bc4ab40b2e9fb23428a9ce2913d411c123546417eb804e57322674bae21"], [1, 3, 1, "", "4:10 e37b94209979512d83141b81df8da7e950dc0f59ee4df88e7a1977cf6547eb6a"], [1, 3, 1, "", "4:27 2cc4b06fbda49374ef17f4974acd16d167b72b9b46c9b13f70587ab9a098587c"], [1, 3, 1, "", "4:6 78bb46c24f2ca946ed0b4e7c6089e40d13e6c39431bb0fee1bab3542dde16f26"], [1, 3, 1, "", "5:5 ef4fb5367f8b8eec661ad431d7645eeb45c5a5691ee03447d7b267f66d6b2bc7"], [1, 3, 1, "", "4:11 f04d0e556354ad85a7cb772b90a5bea40dfc80d7258b591367ef1c4299bd26cd"], [1, 3, 1, "", "4:22 cbb68dabefc941e4d38db9be75022e8aef69299cd2368f981991501d97245972"], [1, 3, 1, "", "5:2 be22b61cc84fba1c898524be4f927f7ae8b8aec54323ad08f5b3a0d7ae1c6ff9"], [1, 3, 1, "", "3:1 8009c0049e3490fddc7e24a87c11b90f80ecb8de0220062b76efe87d97c52f20"], [1, 3, 1, "", "1:1 fb40c1f17f95fed4bda4668940636f75c4436a94cdf00ee6fd2ae36e0ea1c564"], [1, 3, 1, "", "4:8 eb4568cb53c1a9e06aea725449fa9eba6f2a425e98354dca4df23d483faa90e2"], [1, 3, 1, "", "4:21 2e1bf630eca35a69526f65ac5f8fbdfe0c2f92ca2b3ac6d6be31c9e1440e29a3"], [1, 3, 1, "", "4:29 6743b7e3fdc6f0ff88d22af6ed0826b488e6d15d91849cf2f44fe00b8824ed1c"], [1, 3, 1, "", "5:4 cf4ab277047420d2b26238c76cfc2a3cc9ba2c6e60092568995ceba4e201831f"], [1, 3, 1, "", "4:4 f31211e5b9f382a935e4e483c3fc10fc958066dcb3b64be6772d797738339919"], [1, 3, 1, "", "2:4 c0e37dc273ef977b6bdcb9424c48613b76cb248df209151bdc9e32a5e5e9d029"], [1, 3, 1, "", "5:3 778290a828a1c18436fe29f9d858726e4e341c74a14f532e55779389a4733012"]], "4.14": [[22, 3, 1, "", "2:6 74f5a55b32bebc82b21a7e2a9db5f21b1c14e6be7e935138309af650bb1b5ee1"], [22, 3, 1, "", "2:29 92ec09eb8c13eb5501dd2aa83335c6b18b661577435da0da11d655d174667b7d"], [22, 3, 1, "", "3:3 6bfff075569653189958ff85ac5cf2713c6e2e10a61755e557a5a274114a10f4"], [22, 3, 1, "", "2:17 cf5c8e900ca37acad0bc171bfa0c6b714f1d23d6b8cb493c3038690fdb8ae839"], [22, 3, 1, "", "2:3 9ad41a73cca1f1351639e50cba9344d86cdc286da8a2b7f88955ec691b73c9b7"], [22, 3, 1, "", "2:14 5ef125fa78302d1bd0ab1c9c6ce402e84343ce65094c6dbcaa49f0bd9aad81f8"], [22, 3, 1, "", "2:4 ddfa75fd9e0142c3c367eb0ba02a65e7221d9e86a4ddef947ebbcfa2bf8a4f60"], [22, 3, 1, "", "2:13 cfe83442e8b9e2c97e23204f4e49cab1e49d103de5746c223fe4e5a2f4d47494"], [22, 3, 1, "", "2:31 5375ee031b5992cc2d81fb87c92113aa2df9714381a2516c70a907104f22544f"], [22, 3, 1, "", "3:1 d79a7a7c2d74efad1b16985dc59f37eab43dacda82826ca7822557c72a0932ec"], [22, 3, 1, "", "2:24 e5f06b8eeaab8e4cd33caf943dbf9fe82b844d719bf0985302a75167735ee7fd"], [22, 3, 1, "", "2:41 55f986a2532a84d35f03d42bf891d3f758900a1764931afb6e6748f104d30de0"], [22, 3, 1, "", "2:12 8b26cdf579eba2baed79aeec149c7a4d4277036b4004f66485b0ecade29cd5ad"], [22, 3, 1, "", "2:1 71b5298b738eb859f8cc6f0ef4b99931284871ae39f1bdc321d865a23684d1cd"], [22, 3, 1, "", "2:40 a38f8ae59566df6812eb2e4a65493f7869a7ee5d1490a9ea14cca661e002257a"], [22, 3, 1, "", "3:7 c4bf3768ceb2465a2a096c8aef590aee129db81593c92b2b8d8529e5a0e7fdfa"], [22, 3, 1, "", "2:34 e9ab99af1e3626b5bc2ec4a97eb9b693d57cbf3941d58b50da79a3a97cd65b65"], [22, 3, 1, "", "2:2 737d3ffccd43df4591537722f4458fda52a59fc66125c7bfefb7f5640a36a8bc"], [22, 3, 1, "", "3:6 e2eeb47e603a2757ced1b1b048a74e8c70eff013d072dae88111c56d15f1a50a"], [22, 3, 1, "", "2:36 319beaaf1f1caf0096dba73af40779542bd6c1e51e16900e8189ad49bbf270b7"], [22, 3, 1, "", "2:28 a7da2fd26ad1dfa3533285dad37d02fed2b4908be213a6a3a98775b0c2ebdb51"], [22, 3, 1, "", "1:3 93c72453a949d0ff6dedc23875b1b7d9dbf23442a6be174a4e932b1facdb5265"], [22, 3, 1, "", "2:11 c31d4d2d2e461e81ba0e0d047ad24e21fe792abb8e791776c1087a6004460b67"], [22, 3, 1, "", "2:38 b40dd94eaa2e2861c1ac9a47ac10ee9e80b71b3fce42aa4c362c82feaafaf088"], [22, 3, 1, "", "2:25 42ce008b0a6cfe49436f4f3897238024485cda9f72a13fbfab9b3d7814f4111f"], [22, 3, 1, "", "2:20 a734eb2b309a56c538d9dd9dfb1c4826d69b2288840fcb2d3cd674d2e60ef9c2"], [22, 3, 1, "", "3:2 32d1b793cd39bce611678730276e1b4319fbec6614cd48c07f2d26a1e76e5679"], [22, 3, 1, "", "2:7 1f5b98767e075851c7d070ea2843150c47227558e39872de71e84085c4a044b6"], [22, 3, 1, "", "2:15 d8c93934a67920a9c041b06a6f58c10bca90f62627301c61c512c531cf54b8cb"], [22, 3, 1, "", "2:39 4b83f6d8b60d4cc3f44054e47b3add3b07386dbadb45a3e11809ac73890747d5"], [22, 3, 1, "", "2:46 8b74cbe1bf4dbd256643c98b2f8a49a0f64cb55a7774638a968c045d642880d1"], [22, 3, 1, "", "2:26 90d2a2db73cec5e5c1430778f7c4c4e671046095294db8fca4b4f056f598ef18"], [22, 3, 1, "", "2:21 cad8abc0d81bf2f72b8ee690d6d77d6170b0848acffa5edbfe5137073f871803"], [22, 3, 1, "", "2:8 920a8bda29bfda122db8cdb94e70a6c5a4fd76dc0dcc4e6a47f71c256eed960a"], [22, 3, 1, "", "1:1 89e96b4228d15b001e337309f76928a584c677698e9d8f56c3fd0bf4ef702172"], [22, 3, 1, "", "2:18 288d8383e4a918a8df537e25a4154df2c81df5a683c07e73b4544c524b308ed0"], [22, 3, 1, "", "2:19 cfc97b21efeb749f2447127d8a51da98dc6e41cb501744689a98e040ea67ea73"], [22, 3, 1, "", "2:42 ac51179a778b0f9f9797899d9ef592d947ee84fdc5a06197c3326fcf1bcebda8"], [22, 3, 1, "", "2:43 d108ec536a18cd310c0309f9f0992815ce2c842ccd88899e8bc3b86859afbb92"], [22, 3, 1, "", "2:10 cf9cf2053b0da4ee4b6530a47cadc73a560b803d10402cde9767cf463797e626"], [22, 3, 1, "", "2:44 01dcce0fab7d9e766e601132b4336c4324d2cb983b16cbc83cd69c7fa6031d79"], [22, 3, 1, "", "3:8 4eabb3c647de45efeb944bafbeabae6a318a9325155ef389199603ed1e19acc1"], [22, 3, 1, "", "3:5 ed43d8d7ebdf76d78bd1611b62a5a14e51cc7b74a08399dbbe6a89ca09432165"], [22, 3, 1, "", "2:37 0a0c6af41fd048b6c722a4d47422c162b6d1d238eb34928fd9b8d573a4d1e344"], [22, 3, 1, "", "2:45 46f39fc8f0d7ac26fb707ada2c7d2bb2adf405a080f461715483c86974008ef6"], [22, 3, 1, "", "1:2 b2051972bf09f0bc6966717b054dfab460bc29d92a31477488c0f18205bac5d0"], [22, 3, 1, "", "2:32 7a621c5f9277c4f46a52133620c001507d1ffde9ce5bc9b977dae5382a587119"], [22, 3, 1, "", "2:5 23cf56704ab7dff0f1809d6e8435b4c569536305b94f1a7f05e5b58529ee4a7d"], [22, 3, 1, "", "2:23 9b7e9c4d5c82583cf8a4c06355a662c0499656e0c927ae7d7b2567c8177d654a"], [22, 3, 1, "", "2:35 e44c013173ea636304b228c4399fefdf0e90a39d2d469805209757504b18f9d1"], [22, 3, 1, "", "2:33 198b15c57f80ef7b7004d08d14db0126c5a03181c18d4c5c5d9fb54b608cd93a"], [22, 3, 1, "", "2:9 6b1036112f36ab96e0fba76056076e5a4b5cebf3a68ee27c25399aec62dc6107"], [22, 3, 1, "", "2:30 d15a6c43afbdab395dde7bf007ffaa85c419254890a3a269617d7567fb692360"], [22, 3, 1, "", "2:27 f5d848b029abc9525e976478047895ce24e4ac85a7af51e1f425f22ab5340b9b"], [22, 3, 1, "", "2:22 2215e0ca6e0b0930e0b97655a732b0131268013502b68c2a789b71977bb44466"], [22, 3, 1, "", "3:4 01b2cb5f3106d4540ec427082a3baee106878240cfbf49a243c14625f8e7f690"], [22, 3, 1, "", "2:16 9cb44289a5c32876d21e093980654ac08ef05f7b857ee5acd5f952af4fe5882d"]], "20.2": [[17, 3, 1, "", "3:2 ad536eef612c80a23662ccb5976e09fc7a7cd564b3099362de958cb078de4636"], [17, 3, 1, "", "3:7 85bf012ed3c7f1fe9e724f38a2d891b1697ec17ecde0a3277e037fe496069d6a"], [17, 3, 1, "", "3:10 ae2d00ba71cdeeebcbc5ba13db842b607d9367375f608225d84eeb55ce0afb90"], [17, 3, 1, "", "2:3 77dd4bd0709e93df0c9294bd185bd0cb487a9e1991042f0cb0ecffb5df13bc60"], [17, 3, 1, "", "3:4 65f907abc0b4741ed3d04dfb54bf57f7733475bd00f7eb52a681cf2df6dd26cf"], [17, 3, 1, "", "1:4 1a1931bdd5b2a64999e14fa18b646001ec64e8e677c906ce614ba221a5dbf2c6"], [17, 3, 1, "", "2:10 a284d52790bdad317fdaac6d6bb30541a4dba804471aa74bf317849a3eba4ca2"], [17, 3, 1, "", "2:1 aeee3f491d3c18c862f68c8f41eed353a109270ae1f717f9d5620bd9e311fbc6"], [17, 3, 1, "", "3:3 0e6bc1537645755a80173fb2e360056fe473f07b84fa83e420a2119802b5688e"], [17, 3, 1, "", "2:4 7fa2a69e91d4ee885cc21d70cb2d326b60305f03bba8a17a36209a53457749bb"], [17, 3, 1, "", "1:7 ba0099799988b2f6d17799a6f6f9c33b477183b8eeec921be942c1c46fe6e668"], [17, 3, 1, "", "3:11 130f778e0740bb2eac48f0b045d7c7d7854a7f114684fd426c548a5289d530b9"], [17, 3, 1, "", "3:8 301c590c9b06bc5965288c7611ce54546237f2ab270ad8d08ada06606d3129bf"], [17, 3, 1, "", "1:10 78e85689e473377a80352ef6fe022993d405de27b2c6c0393cc70edc6d40e0e8"], [17, 3, 1, "", "3:12 a9469713d62e5ab294be5b5463896a680482fe532ef2db60c9a17dd040147917"], [17, 3, 1, "", "2:6 d8d72a951c13aa5fe8714a16539462fbbaf7ead2c1ad8ecd97cf3071f5db6ab8"], [17, 3, 1, "", "2:11 81811154b26e520b237186a9289476a52adca1dac91598bea29f6d2f8ad5c0af"], [17, 3, 1, "", "3:6 a67726cd1b3c0fa718910126228b74a584cd8d14685cff5a51c66aecafa25a2e"], [17, 3, 1, "", "1:6 67268d716ea7849d7125350436f4e4a6d5d38effc37ae5216408b2690ab8d033"], [17, 3, 1, "", "3:13 1f2493e72099adeeabdbdb5af0e9a9021fe478c82c788215781e06312b59c4e4"], [17, 3, 1, "", "3:1 a507e2ee0a755f9e9bef9483a14b746466426c98185a2634629bff10acf93070"], [17, 3, 1, "", "2:2 5242e5a075162a366a5adf0a32e20e73a4ed4c93a3b63541a8201de95af0cbfe"], [17, 3, 1, "", "1:9 6e54b9a8b956ed9a206672b6145a346a9d87f0734de85341ef04814529bcee31"], [17, 3, 1, "", "1:3 1d126893f14def3d9f5d85d0190f84dc53a460ce5e6da350afffa20da8714d0b"], [17, 3, 1, "", "1:8 7de42cd159846bf2a84aba1bcaf2c1f39e0a6092c7db776d8abb5854419ee2c1"], [17, 3, 1, "", "2:5 700ee188839152335fdb7422422a37ae9cb40c8bb9bc9940787cd260d61e7276"], [17, 3, 1, "", "2:12 99a2dde0b9166346d32d075006f6fff461527d79389470e64b255fb7a9f63733"], [17, 3, 1, "", "2:7 6a638cc0c5ef1383ed2612ba3ab85735c70a35cbabcde5839d61b426d3411406"], [17, 3, 1, "", "1:5 589f04afe8c234ee2c179f3f0931eaded30292da86287719098525edb953002c"], [17, 3, 1, "", "1:2 195f49e7c5486c12cd274b338a19d3eaa1a19f99570f7ee0b52a3b1eeb90251e"], [17, 3, 1, "", "3:9 db387e1df17fe1b34f0785313cbd032471da2d489046fbbd57783da324ddd87b"], [17, 3, 1, "", "1:1 35211e047d31106ec03bc1b7ccba14cee77f4c950b50ddedbd47d9cbe9dc876f"], [17, 3, 1, "", "2:8 704edbd352cfa964eac3571f6d328a271b59ec3801b0d4deb1b3ff167d9edcbf"], [17, 3, 1, "", "2:9 f217c6bc6e853a2b8556dbc0b41314003eaa542eca75e8a17d1573264d4e2151"], [17, 3, 1, "", "3:5 ef5cb13d4e805e4e81816f26647b316792ceb249829578bfaa57070acb415879"]], "4.13": [[22, 3, 1, "", "1:4 7f14d5ddfe3e2040c798b3f2d8f25e11b0f81f91269a2671aba43d70a8af5063"], [22, 3, 1, "", "1:2 663e533be7fe2c58643b5cb29f1fafabecaebe9a67814b0c45b7339f9d6bce98"], [22, 3, 1, "", "1:8 e083235f159e108c388da479f4936b36dd2295363c8b91b7e278346774955c83"], [22, 3, 1, "", "1:12 b43aecbed94e34ebbf059fd7dd52fc451df0deec59c26167f70142669b8ca293"], [22, 3, 1, "", "1:3 4f932d4a55167c3225e7142ff450c023aa8ab9c2ffd3b2a47def283f52f5f94e"], [22, 3, 1, "", "1:9 2617716de591dde4480a295b243e0b0c274432a579cc5786fce8def72047c033"], [22, 3, 1, "", "1:10 45afe066d5ef3c3b31decbde94b80e2c45c5c03be74022b5c37133f162b2544b"], [22, 3, 1, "", "1:11 d1ce3e872cb3cdd9970e74966c197ed43066d9c21e6b962361276044a54ee9fa"], [22, 3, 1, "", "1:5 9d15230a9c2fcfdf8a4f47962a5d4e7dcb5bb898443fee71fc2974ce3fa2df1b"], [22, 3, 1, "", "1:1 a7dbfe3171723b462343aa8888eb93779e47e2cb6564c4d0b5409518c3d3d3f9"], [22, 3, 1, "", "1:7 5711109d6669d3b8bf4917e6183c03969ae5401cf0c18e9b48a3ed6232f13fd1"], [22, 3, 1, "", "1:6 5e74c4465ead60c8c56f509d76b21f8c91f43c939d7054478a87b61c9e02bd7e"]], "13.2.3": [[1, 3, 1, "", "2:1 a1c77a2b2980c21e6e863dd1b876f7c14683644e96cf49df977a847b4e9e5e1a"], [1, 3, 1, "", "1:1 921207c7548372ce92fdca679bc3476d41831899b57c4e34b13268b01997e0f8"], [1, 3, 1, "", "2:2 0a92a3c710cbd1738e619ab4ed564919e5913e3252de308e5f6f347d1833cea7"], [1, 3, 1, "", "2:3 01d955a36e6ea356f588c104a043bbb024bd45ea952c638344667bf6abc1fc81"]], "13.2.12": [[1, 3, 1, "", "3:4 e7ee08c2d3407ba055bfeec7a59f1c8c56257bf55ff14412206210e1dbbe08a2"], [1, 3, 1, "", "1:2 001e5f299105a44ca3acba687e810549c184a7062f15f48c4c2907feedcd00db"], [1, 3, 1, "", "3:5 2c4a77cf5f2b9daf7f0535ffb85ee39298f774999cb40b3f78672fb5a2bd7a24"], [1, 3, 1, "", "2:3 4b053fefee6cf33683101e489e70e2569e4deb8d7aa26b06a840e03085ddb586"], [1, 3, 1, "", "2:2 0f5bcffb6ab2fd79ab1a1578fd84c818378597bd4bf7bc940dba19ff7cc9de02"], [1, 3, 1, "", "3:3 580975987fb8829aa62f5481e0c98f2f9a739c3d0a5cc0719d34be6815601aa3"], [1, 3, 1, "", "3:2 de64cdcc854596c8cf8a9e3bb1b6312bf4faac5928890297f69918e148a51d43"], [1, 3, 1, "", "3:6 f1ebf979a3ed2dde03dae2e93cc771988c8f5fa634afce4ee6b664c193adc1b4"], [1, 3, 1, "", "3:9 f1e97f65682f7f35e2f314273d3b307d456c7be2cce75abddd4bbacff9429ddc"], [1, 3, 1, "", "3:1 41f8276015dc58f76e82db668219043600611837b52a93fd9dbb18436201041a"], [1, 3, 1, "", "3:8 6bfc6057de86432e2367e8c9682ff52750a502d7bd68f37c400345417f514d4b"], [1, 3, 1, "", "3:10 2799842d7aed69f223fca391a95a67b96cb9d904f240678550cd095843a9163c"], [1, 3, 1, "", "1:1 233bac50acbcf5ce70191e350e3e9d720fd83236b2a754a5846e557024e5fb50"], [1, 3, 1, "", "2:1 bc29bb034a6a845f15d32f52bc63929f460f59dfafc941ba3d3ac7f591786021"], [1, 3, 1, "", "3:7 c19b0501aa117ddef6f66c5dc6c307c9c23cdfb62ecb953be67f2cf7448cda23"]], "13.2.11": [[1, 3, 1, "", "1:1 b627ddaa5ef649b306598dd5f6297c67a76f75ec92d0b5746f31fa0163690273"], [1, 3, 1, "", "2:8 8e4d1d0997dd94de884dbc95268544335e331949cd1d45db0be53a80200a5714"], [1, 3, 1, "", "3:1 7102958597ca2f19205e0e9f7c950d9b597adf5a8c1e6fe96e7661413a02f860"], [1, 3, 1, "", "2:9 7b2ec9db6d8b1c8ace22368047c47d159462712924d519696cffb84e602fcbfc"], [1, 3, 1, "", "3:3 d52e19f42f5927bd34a651b16184a11e9fce5ae8de504bde89af1da5a51e0c59"], [1, 3, 1, "", "1:2 da27332328b097f036a002143a0c62df334d3fafe943281b9e5ac3f53256ac87"], [1, 3, 1, "", "2:6 051e4b8ff27f299cff0e443ea677b2f935831974162b34dba8fd7b30feb610a7"], [1, 3, 1, "", "2:3 7be989fe417f083b8e5dd74846cda7e32d86a89db6194539d9733eb40ba837bc"], [1, 3, 1, "", "2:10 f8d09837569e3e2a9dace1f81b8514e10951252bd8ca780e1a7de6210fc4abe5"], [1, 3, 1, "", "2:2 19a78bf1c35131ec0625e919fd7f92ef2acc5b5986bdae84101d8449b0bf671a"], [1, 3, 1, "", "2:4 12c2336bf9e9b05b5fe0f3bab73c7b1cdb604d082afa1e7984eb3b79f71b3642"], [1, 3, 1, "", "2:1 811d25ac05c366571fee950dbae9130bfedbc07a6e6b74ecfd339fc993199f16"], [1, 3, 1, "", "3:2 b8684eebecaefb67c2e17229476d5544ed6ff0e7e8b51d4b8cab06a169d1541c"], [1, 3, 1, "", "2:7 c82af1ca7021a4e17089b436f3d65889b6c5d9a6e7600fae295b40ff0f0f6ec6"], [1, 3, 1, "", "2:5 a88dbeff7797209a81595c30a58d7f150b9104f217bcef43b2ee461555a5a0ce"]], "13.2.7": [[1, 3, 1, "", "2:2 c1cc259e5bd84ef7201ecf3eea15ae58c6db27ab49f9b20cca614c7397dc0cd0"], [1, 3, 1, "", "2:1 4a50bf4d79c29ee4da73fa4b82e49dbde7e5bb057e6709e84b888a7458ea5356"], [1, 3, 1, "", "1:1 e029467a0536bae96ae25a73cd801fbfc9c8874c35c9cef6110fda5cb0ae9916"], [1, 3, 1, "", "1:2 181e8dbd1bc511f8b6a2fd59595070b2e85422b0c0b2fa446b31cf0408650ba2"]], "16": [[4, 3, 1, "", "2:4 b5c6b6bfc6de8e05e13b1fa486c385523fa6472c257f7c8c4b2b86ec91d6664f"], [4, 3, 1, "", "2:1 7a15948904b2de411b7c6338a4b97095cd8046a23ef8462801fa784b9b75ba03"], [4, 3, 1, "", "1:1 f4d500cf3ddd573cf21ec19b03d0e534bb8caa50bdf5d11eecd095eeaae539f2"], [4, 3, 1, "", "1:2 d0ec8ad699ff1c4778bd35b0577f2de16559c4f7a8a67503e9d8b5ffb3feefe0"], [4, 3, 1, "", "2:2 890c034f6aea73b0142607337332d673a009ec8f47e288cd2cfdab3f5c91cee4"], [4, 3, 1, "", "1:3 df2cd62113f2dc6ca452da3c12891fd958bc64f17397066b0a128c09a0fef520"], [4, 3, 1, "", "2:3 77bbb6c647c37714e1fa9e1f81b3f63485155de50d4d371608e8f006a638a216"], [4, 3, 1, "", "1:4 7ce748762310bab19fffad785d50307098ea7d0e69ac336f7218ce22e6205dfa"]], "4.8": [[22, 3, 1, "", "2:5 80503a5bbbf247afc4589e84831bd9388ca01a63f6f99729d27e31db000127ad"], [22, 3, 1, "", "2:2 3124f0bbb81e269149020178aaf1e90f668b07b973c22882933da2f505d2ecc5"], [22, 3, 1, "", "1:1 9013893b3cd5acfa5451f4ad18860a989a9ad70cd891c50e846503ea7f274dcf"], [22, 3, 1, "", "2:4 8afd9b150960eee9cad7ad77a00f4d78e50ae87ac73c9a1198b12f79aa8ff09e"], [22, 3, 1, "", "1:3 0dc7132c60e97eae3fe8c4763fb5b0ee4e27b69d33014e5a64c902c25e992bba"], [22, 3, 1, "", "1:2 16cb713fd246c7e18f528a4ffd5338a0fbce00bff8b4aa68d64f137a4d38b4c1"], [22, 3, 1, "", "2:3 6257637cc04d7a1e7f32788a155b69595ebd5872f7e7366b15a24bc0cb01c3ec"], [22, 3, 1, "", "2:1 7e198679726fb24effe560d32f6ed44994be67d60bad4c175f3da2c84b40b0d9"]], "20.4": [[17, 3, 1, "", "2:17 7b97106af69b3585b467ae757b209987fcfa719d9d0056adfca9fbc914a2d73b"], [17, 3, 1, "", "2:15 924ac328fa7b1c896d1efd435201562db8738164a53715c1956c4c2da5a4012c"], [17, 3, 1, "", "2:8 c46a8e07cda751526560f7fc97ae3c1b78414ebc17c1ce3cd210620619ebbf25"], [17, 3, 1, "", "2:14 4f0f8d199b56a8e97493384b9448af0cf2c03e0ee0924725a9973869747db80f"], [17, 3, 1, "", "2:10 928fa72878c7bba4b1bce0f51d05314cb2480974eb15a3baa42edf4802016c4b"], [17, 3, 1, "", "2:6 ccd3909779e2ae52e078ac9ec0171a31569a1a5f27a764f1116aa514d4ab1e76"], [17, 3, 1, "", "2:13 ffbe98be6393f55c5b73a7849f41caadf322b1ac4e018fa42c59e7305db89820"], [17, 3, 1, "", "2:5 5c84ed6a518944136878abb4c88f566d332adfa28adc88939272040b8b6376d9"], [17, 3, 1, "", "2:3 3a3dab26920d694cfc94f0c1b2f51523cd3b42dbae5b61643d7c56834c7220cf"], [17, 3, 1, "", "2:4 0138c8400ce4f71c65b6aa2722efe3060cbd1d41df1c72e0d5f3b34a20f300b5"], [17, 3, 1, "", "2:16 7c1fe9eccd483e7a420e8b7c1d1c1164588a91adea0ff813953d9cf07171ea38"], [17, 3, 1, "", "2:2 3a923fd62e7cb8e223448548b2aa38404e63cc3e8b41254c70fa1d13076ad338"], [17, 3, 1, "", "2:19 30c1a84b2185098caed8510493324650b62ebcbc98651ffdef52e7656b859109"], [17, 3, 1, "", "2:7 cfa58e13c7d71f34271957f476e066a784af6a8ed0072bb215252e5c076b03c3"], [17, 3, 1, "", "2:12 b20e0ffba294f223744cb483c484961c3e57930764952f5beab1e3448b7f8cde"], [17, 3, 1, "", "2:1 0625ef0bcc1537bbd7e48bbb52e650fac001e4ce41c99c213d6d9c46b45e74e0"], [17, 3, 1, "", "2:11 923b9e5ad7c41a86ba16ba5fc020547055484598d353ee7d4600ac28f7464960"], [17, 3, 1, "", "2:18 a990d3628235419098482e04aad2d699f6205b88761be1c1cea45b6dad882cd1"], [17, 3, 1, "", "2:9 89ea10945ee36c0a8d05b165f2dab20d4778edf60bc0f8b3696a46d9199743b8"], [17, 3, 1, "", "1:1 6b8396da1325228a967d0d28720f37811bfec9f46d17c5b5d20ab8838236c8d1"]], "2.6": [[15, 3, 1, "", "3:2 c2adb1a3f82e557d2e62b7aa4e734ce8a14427d039fd743bf82710befacdae6a"], [15, 3, 1, "", "1:1 8394e357df5177d8ada084b53fdd141fc0e1a1ca7b937b28a47415ac0dce750f"], [15, 3, 1, "", "3:1 507c02a61084d5e2447a4401c3c9ff54ecfb2b0e46adf98b0e9f96d5fbcd8eb7"], [15, 3, 1, "", "3:3 7190ee3532730e20b19057227f945e1ad04d6f993bc33984e2dad01773e09ab2"], [15, 3, 1, "", "3:4 dc15f002b42ce194ade6b4b0f4f6b5ca7bb28176b493eac737f309f66b3e42da"], [15, 3, 1, "", "2:1 3f05a14ae9bd0f2dcdc7c65c76de451ed9485badef6dc6bb29c3fae69124e92d"]], "13.2.10": [[1, 3, 1, "", "1:3 63933d48ff890b9977fb1e7739ec4a0c3fce66da852cfc19921e9fef4c0c30c6"], [1, 3, 1, "", "1:2 81930ef591f96d6b1e90e5ad685dadeadd18244ffd6bf2b93e1e564d00df7002"], [1, 3, 1, "", "2:2 812969d17f6cf1c8f09c3aa7e496056b918a7936c5656724b5023957f1a6480d"], [1, 3, 1, "", "2:5 55f1527bb22419e4a271f37b4ddc4109e3478e34cbcaf56381afe6e82f4ff76a"], [1, 3, 1, "", "2:1 bf65af2170c2fce6c798624dc20ef98cdd4c56ba8a6d771db6d63c5b33b9fe50"], [1, 3, 1, "", "1:1 78b6ef76a225f8a6314dbb484e5f6c33a4323ad9202816ead2f71474e4fcdc82"], [1, 3, 1, "", "2:3 c0823a0a3da1888952864c8a1e51dcb076f7acb24133027a4c96805704a36b87"], [1, 3, 1, "", "2:4 be41407d903f76e4c4f3bb28728743dc02d28c58b2abb01664514d25f6707420"]], "13.2": [[1, 3, 1, "", "4:1 3211f6c48f79ae56d33f1f9bacd442f463c800f82da1ca3bc76e3afbd75c27ea"]], "13.2.2": [[1, 3, 1, "", "1:9 fbaba2bbfc24b35f86a4f7dd04dbe8282ddf984c2d109a9ee52a777dc8b3360f"], [1, 3, 1, "", "1:2 58fc80fa15a48bf125434201acfd61890abb0876c32f33ee234150c5a2db53fa"], [1, 3, 1, "", "1:6 b1317fa9240a0683317601af9dbd0d64b3bdfb9f8516093a3aa3febe38ef4940"], [1, 3, 1, "", "2:1 d4c02f4ddc98da8bafd4fc43fb7cb00dc77d84e6b42cf83332e1d8ab9e29250f"], [1, 3, 1, "", "1:5 0a8af2d1ed68a8e58507a513800cba27fe171d005323ccf9b1dea50098d45eda"], [1, 3, 1, "", "2:2 58b7d08514f893172d59bfa69761494f4bb62b45412529d75cd3eb80fe2a6e9d"], [1, 3, 1, "", "1:4 e3e52c127b3a45a28120d4a22599dc479401160fd2ab551667790d586a58ed83"], [1, 3, 1, "", "1:8 7b842e2904a1bd499fdf9166a26058c88d4357ca86b54fce379427f3db4f6c87"], [1, 3, 1, "", "1:1 8ce58553238726c00673ba1eb2613f145c385fd18764cfb47b1674bfa60a342b"], [1, 3, 1, "", "1:7 c678d8736b809e8b047bb8dec6b729baecd22ff0dc7cfca0cea327a1174294dc"], [1, 3, 1, "", "1:3 20bbdb81e00aa2ce6e15572b261930193367b58565a11d3b7df5fe4d2fb92058"]]}, "objtypes": {"0": "spec:term", "1": "spec:syntaxes", "2": "spec:code_terms", "3": "spec:paragraph"}, "objnames": {"0": ["spec", "term", "Specification term"], "1": ["spec", "syntaxes", "Specification syntactic category"], "2": ["spec", "code_terms", "Specification programmatic construct"], "3": ["spec", "paragraph", "Specification paragraph"]}, "titleterms": {"associ": [0, 10], "item": [0, 3, 10, 14, 22], "attribut": [1, 10, 17], "properti": 1, "built": [1, 10], "code": [1, 10], "gener": [1, 3, 8, 9, 10], "cold": 1, "inlin": [1, 10, 13], "no_builtin": 1, "target_featur": 1, "track_cal": 1, "condit": [1, 10, 20], "compil": [1, 10, 20], "cfg": 1, "cfg_attr": 1, "deriv": [1, 10, 17], "automatically_deriv": 1, "diagnost": 1, "document": 1, "doc": [1, 10], "foreign": [1, 10], "function": [1, 6, 7, 10, 17, 22], "interfac": [1, 10], "crate_nam": 1, "crate_typ": 1, "export_nam": 1, "link": 1, "link_nam": 1, "link_sect": 1, "link_ordin": 1, "no_link": 1, "no_main": 1, "no_mangl": 1, "repr": 1, "us": [1, 3, 10], "limit": 1, "recursion_limit": 1, "type_length_limit": 1, "macro": [1, 3, 10, 13, 17], "macro_export": 1, "macro_us": 1, "proc_macro": 1, "proc_macro_attribut": 1, "proc_macro_der": 1, "modul": [1, 10, 20], "path": [1, 3, 5, 10, 19], "prelud": [1, 3, 10], "no_implicit_prelud": 1, "no_std": 1, "runtim": 1, "global_alloc": 1, "panic_handl": 1, "windows_subsystem": 1, "test": 1, "ignor": 1, "should_pan": 1, "type": [1, 3, 5, 10, 22], "non_exhaust": 1, "concurr": 2, "send": [2, 10], "sync": [2, 10], "atom": [2, 10], "asynchron": 2, "comput": 2, "entiti": [3, 10], "resolut": [3, 10], "visibl": [3, 10], "scope": [3, 8, 10, 18], "bind": [3, 10, 19], "paramet": [3, 9, 10, 13, 22], "label": [3, 5, 10], "self": [3, 10], "textual": [3, 10], "hierarchi": [3, 10], "namespac": [3, 10], "import": [3, 10, 20], "shadow": [3, 10], "field": [3, 5, 10], "method": [3, 5, 8, 10], "call": [3, 5, 10], "simpl": [3, 10, 15], "express": [3, 5, 10, 21], "except": 4, "error": [4, 5, 10], "panic": [4, 10], "abort": [4, 10], "classif": [5, 22], "assigne": [5, 10], "constant": [5, 10, 25], "diverg": [5, 10], "place": [5, 10], "valu": [5, 10, 25], "liter": [5, 10, 15, 19], "block": [5, 6, 10], "async": [5, 10], "name": [5, 10], "unsaf": [5, 10], "oper": [5, 10], "borrow": [5, 10, 18], "derefer": [5, 10], "propag": [5, 10], "negat": [5, 10], "arithmet": [5, 10], "bit": [5, 10], "comparison": [5, 10], "lazi": [5, 10], "boolean": [5, 10, 15], "cast": [5, 10], "assign": [5, 10], "basic": [5, 10], "destructur": [5, 10], "compound": [5, 10], "underscor": [5, 10, 19], "parenthes": [5, 10, 19, 22], "arrai": [5, 10, 22], "index": [5, 10], "tupl": [5, 10, 19, 22], "struct": [5, 10, 19, 22], "invoc": [5, 10, 17], "conform": [5, 8, 9, 10, 11], "access": [5, 10], "closur": [5, 10, 22], "loop": [5, 10], "For": 5, "infinit": [5, 10], "while": [5, 10], "let": [5, 10, 21], "break": [5, 10], "continu": [5, 10], "rang": [5, 10, 19], "If": 5, "match": [5, 10, 17, 19], "return": [5, 10], "await": [5, 10], "preced": [5, 10], "captur": [5, 10], "overflow": [5, 10], "ffi": [6, 10], "abi": [6, 10, 13], "extern": [6, 10], "static": [6, 10, 22, 25], "extent": 8, "structur": [8, 10, 20, 22], "descript": 8, "syntax": 8, "notat": 8, "version": 8, "definit": [8, 10], "where": [9, 10], "claus": [9, 10], "argument": [9, 10, 13], "glossari": 10, "clobber": [10, 13], "kind": 10, "abstract": [10, 22], "data": [10, 22], "activ": 10, "addit": 10, "adjust": 10, "operand": 10, "align": 10, "all": 10, "configur": 10, "predic": 10, "anonym": 10, "ani": 10, "applic": 10, "binari": 10, "ariti": 10, "element": [10, 15], "constructor": 10, "repetit": [10, 17], "assembli": [10, 13], "direct": [10, 13], "instruct": [10, 13], "option": [10, 13], "implement": [10, 11], "trait": [10, 22], "project": 10, "control": 10, "flow": 10, "boundari": 10, "content": [10, 12], "auto": 10, "base": 10, "initi": [10, 18], "crate": [10, 20], "mode": [10, 19], "pattern": [10, 19], "xor": 10, "comment": [10, 15], "bool": [10, 22], "bound": [10, 22], "byte": [10, 15], "string": [10, 15], "c": 10, "represent": [10, 22], "sign": 10, "int": 10, "site": 10, "hygien": [10, 17], "calle": 10, "target": 10, "environ": 10, "char": [10, 22], "charact": [10, 15], "bodi": 10, "point": [10, 22], "root": [10, 20], "concret": 10, "condition": 10, "sourc": [10, 20], "context": 10, "promot": [10, 25], "constrain": 10, "construct": 10, "constructe": 10, "contain": 10, "copi": 10, "indic": [10, 12], "public": 10, "modifi": [10, 13], "dangl": 10, "race": 10, "decim": 10, "declar": [10, 17], "deconstructe": 10, "default": 10, "chain": 10, "destruct": [10, 18], "destructor": [10, 18], "discrimin": 10, "variabl": [10, 25], "divis": 10, "drop": [10, 18], "order": [10, 18], "extens": [10, 18], "dynam": 10, "size": 10, "elabor": 10, "elid": 10, "lifetim": [10, 22], "els": 10, "empti": 10, "statement": [10, 21], "enum": [10, 22], "variant": 10, "equal": [10, 22], "escap": 10, "evalu": 10, "execut": 10, "explicit": 10, "regist": [10, 13], "explicitli": 10, "export": 10, "without": 10, "f32": 10, "f64": 10, "fat": 10, "pointer": [10, 22], "list": [10, 23], "selector": 10, "final": 10, "arm": 10, "fix": 10, "float": [10, 15, 22], "suffix": 10, "fragment": 10, "specifi": 10, "full": 10, "elis": [10, 22], "qualifi": 10, "signatur": 10, "like": [10, 17], "fundament": 10, "futur": 10, "substitut": 10, "alia": 10, "union": [10, 22], "glob": 10, "global": 10, "greater": 10, "than": 10, "half": 10, "open": 10, "hexadecim": 10, "higher": 10, "rank": 10, "i8": 10, "i16": 10, "i32": 10, "i64": 10, "i128": 10, "identifi": [10, 15, 19], "immut": 10, "raw": [10, 15, 22], "refer": [10, 16, 18, 19, 22], "impl": [10, 22], "header": [10, 22], "coher": [10, 11], "implicit": 10, "implicitli": 10, "impli": 10, "inclus": 10, "incomplet": 10, "deconstructor": 10, "indirect": [10, 22], "inert": 10, "infer": [10, 22], "inher": 10, "inner": 10, "line": 10, "input": 10, "output": 10, "integ": [10, 15, 22], "interior": [10, 22], "mutabl": [10, 22], "intermedi": 10, "irrefut": 10, "isiz": 10, "iter": 10, "keyword": [10, 15], "layout": [10, 22], "left": 10, "less": 10, "lexic": [10, 15], "librari": 10, "local": 10, "expans": [10, 17], "matcher": 10, "transcript": [10, 17], "rule": [10, 17], "transcrib": 10, "main": 10, "guard": 10, "metavari": [10, 17], "mix": 10, "move": 10, "multi": 10, "segment": 10, "multipl": 10, "nan": 10, "box": 10, "nest": 10, "never": [10, 22], "non": 10, "null": 10, "numer": [10, 15, 22], "object": [10, 22], "safe": 10, "safeti": [10, 22], "obsolet": 10, "octal": 10, "opt": 10, "out": 10, "outer": 10, "outlin": 10, "outliv": 10, "overlap": 10, "owner": 10, "ownership": [10, 18], "partial": 10, "pass": [10, 18], "convent": [10, 18], "altern": 10, "plane": 10, "posit": 10, "primit": 10, "privat": 10, "proc": 10, "procedur": [10, 17], "punctuat": [10, 15], "pure": 10, "high": 10, "low": 10, "from": 10, "reachabl": 10, "receiv": 10, "record": [10, 19], "recurs": [10, 22], "refut": [10, 19], "class": [10, 13], "remaind": 10, "renam": 10, "repeat": 10, "reserv": [10, 15], "rest": [10, 19], "right": 10, "rustc": 10, "invari": 10, "scalar": [10, 22], "select": 10, "separ": [10, 15], "sequenc": [10, 22], "share": 10, "shift": 10, "shorthand": 10, "prefix": 10, "singl": 10, "slice": [10, 19, 22], "file": [10, 20], "str": [10, 22], "strict": [10, 15], "subexpress": 10, "subject": 10, "subpattern": 10, "subtract": 10, "subtrait": 10, "subtyp": [10, 22], "super": 10, "supertrait": 10, "syntact": 10, "categori": 10, "tail": 10, "temporari": [10, 25], "termin": 10, "thin": 10, "token": [10, 17], "transpar": 10, "trivial": 10, "ascript": 10, "coercion": [10, 22], "specif": [10, 12], "unif": [10, 22], "u8": 10, "u16": 10, "u32": 10, "u64": 10, "u128": 10, "unari": 10, "undefin": [10, 23], "behavior": [10, 23], "under": 10, "unhygien": 10, "unicod": 10, "unifi": 10, "uniqu": 10, "unit": 10, "unnam": 10, "unqualifi": 10, "rust": [10, 16], "unsafeti": [10, 24], "unsign": 10, "unsiz": 10, "unsuffix": 10, "usiz": 10, "valid": 10, "variad": 10, "part": 10, "varianc": [10, 22], "weak": [10, 15], "whitespac": 10, "zero": 10, "ferrocen": 12, "languag": 12, "appendic": 12, "tabl": 12, "support": 13, "asm": 13, "global_asm": 13, "set": 15, "licens": 16, "ada": 16, "manual": 16, "copyright": 16, "notic": 16, "apach": 16, "mit": 16, "program": 20, "other": 22, "alias": 22, "model": 22}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "ferrocene_spec": "1", "sphinx": 57}, "alltitles": {"Ferrocene Language Specification": [[12, "ferrocene-language-specification"]], "Contents:": [[12, null]], "Appendices:": [[12, null]], "Indices and tables": [[12, "indices-and-tables"]], "Macros": [[17, "macros"]], "Declarative Macros": [[17, "declarative-macros"]], "Metavariables": [[17, "metavariables"]], "Repetition": [[17, "repetition"]], "Procedural Macros": [[17, "procedural-macros"]], "Function-like Macros": [[17, "function-like-macros"]], "Derive Macros": [[17, "derive-macros"]], "Attribute Macros": [[17, "attribute-macros"]], "Macro Invocation": [[17, "macro-invocation"]], "Macro Expansion": [[17, "macro-expansion"]], "Macro Matching": [[17, "macro-matching"]], "Rule Matching": [[17, "rule-matching"]], "Token Matching": [[17, "token-matching"]], "Macro Transcription": [[17, "macro-transcription"]], "Hygiene": [[17, "hygiene"]], "Inline Assembly": [[13, "inline-assembly"]], "Registers": [[13, "registers"]], "Register Classes": [[13, "register-classes"]], "Register Arguments": [[13, "register-arguments"]], "Assembly Instructions": [[13, "assembly-instructions"]], "Register Parameter Modifiers": [[13, "register-parameter-modifiers"]], "Directive Support": [[13, "directive-support"]], "ABI Clobbers": [[13, "abi-clobbers"]], "Assembly Options": [[13, "assembly-options"]], "Macros asm and global_asm": [[13, "macros-asm-and-global-asm"]], "Licenses": [[16, "licenses"]], "Ada Reference Manual Copyright Notice": [[16, "ada-reference-manual-copyright-notice"]], "Rust Reference Apache License": [[16, "rust-reference-apache-license"]], "Rust Reference MIT License": [[16, "rust-reference-mit-license"]], "Items": [[14, "items"]], "Lexical Elements": [[15, "lexical-elements"]], "Character Set": [[15, "character-set"]], "Lexical Elements, Separators, and Punctuation": [[15, "lexical-elements-separators-and-punctuation"]], "Identifiers": [[15, "fls-21vnag69kbwe"]], "Literals": [[15, "literals"]], "Byte Literals": [[15, "byte-literals"]], "Byte String Literals": [[15, "byte-string-literals"]], "Simple Byte String Literals": [[15, "simple-byte-string-literals"]], "Raw Byte String Literals": [[15, "raw-byte-string-literals"]], "Numeric Literals": [[15, "numeric-literals"]], "Integer Literals": [[15, "integer-literals"]], "Float Literals": [[15, "float-literals"]], "Character Literals": [[15, "character-literals"]], "String Literals": [[15, "string-literals"]], "Simple String Literals": [[15, "simple-string-literals"]], "Raw String Literals": [[15, "raw-string-literals"]], "Boolean Literals": [[15, "boolean-literals"]], "Comments": [[15, "comments"]], "Keywords": [[15, "keywords"]], "Strict Keywords": [[15, "strict-keywords"]], "Reserved Keywords": [[15, "reserved-keywords"]], "Weak Keywords": [[15, "weak-keywords"]], "Unsafety": [[24, "unsafety"]], "Values": [[25, "values"]], "Constants": [[25, "constants"]], "Statics": [[25, "statics"]], "Temporaries": [[25, "temporaries"]], "Variables": [[25, "variables"]], "Constant Promotion": [[25, "constant-promotion"]], "Ownership and Destruction": [[18, "ownership-and-destruction"]], "Ownership": [[18, "ownership"]], "Initialization": [[18, "initialization"]], "References": [[18, "references"]], "Borrowing": [[18, "borrowing"]], "Passing Conventions": [[18, "passing-conventions"]], "Destruction": [[18, "destruction"]], "Destructors": [[18, "destructors"]], "Drop Scopes": [[18, "drop-scopes"]], "Drop Scope Extension": [[18, "drop-scope-extension"]], "Drop Order": [[18, "drop-order"]], "Patterns": [[19, "patterns"]], "Refutability": [[19, "refutability"]], "Identifier Patterns": [[19, "fls-7bxv8lybxm18"]], "Literal Patterns": [[19, "literal-patterns"]], "Parenthesized Patterns": [[19, "parenthesized-patterns"]], "Path Patterns": [[19, "path-patterns"]], "Range Patterns": [[19, "range-patterns"]], "Reference Patterns": [[19, "reference-patterns"]], "Rest Patterns": [[19, "rest-patterns"]], "Slice Patterns": [[19, "slice-patterns"]], "Struct Patterns": [[19, "struct-patterns"]], "Record Struct Patterns": [[19, "record-struct-patterns"]], "Tuple Struct Patterns": [[19, "tuple-struct-patterns"]], "Tuple Patterns": [[19, "tuple-patterns"]], "Underscore Patterns": [[19, "underscore-patterns"]], "Binding Modes": [[19, "binding-modes"]], "Pattern Matching": [[19, "pattern-matching"]], "Identifier Pattern Matching": [[19, "fls-vnai6ag4qrdb"]], "Literal Pattern Matching": [[19, "literal-pattern-matching"]], "Parenthesized Pattern Matching": [[19, "parenthesized-pattern-matching"]], "Path Pattern Matching": [[19, "path-pattern-matching"]], "Range Pattern Matching": [[19, "range-pattern-matching"]], "Reference Pattern Matching": [[19, "reference-pattern-matching"]], "Slice Pattern Matching": [[19, "slice-pattern-matching"]], "Record Struct Pattern Matching": [[19, "record-struct-pattern-matching"]], "Tuple Struct Pattern Matching": [[19, "tuple-struct-pattern-matching"]], "Tuple Pattern Matching": [[19, "tuple-pattern-matching"]], "Underscore Pattern Matching": [[19, "underscore-pattern-matching"]], "Program Structure and Compilation": [[20, "program-structure-and-compilation"]], "Source Files": [[20, "source-files"]], "Modules": [[20, "modules"]], "Crates": [[20, "crates"]], "Crate Imports": [[20, "crate-imports"]], "Compilation Roots": [[20, "compilation-roots"]], "Conditional Compilation": [[20, "conditional-compilation"]], "Statements": [[21, "statements"]], "Let Statements": [[21, "let-statements"]], "Expression Statements": [[21, "expression-statements"]], "Types and Traits": [[22, "types-and-traits"]], "Types": [[22, "types"]], "Type Classification": [[22, "type-classification"]], "Scalar Types": [[22, "scalar-types"]], "Bool Type": [[22, "bool-type"]], "Char Type": [[22, "char-type"]], "Numeric Types": [[22, "numeric-types"]], "Floating Point Types": [[22, "floating-point-types"]], "Integer Types": [[22, "integer-types"]], "Sequence Types": [[22, "sequence-types"]], "Array Types": [[22, "array-types"]], "Slice Types": [[22, "slice-types"]], "Str Type": [[22, "str-type"]], "Tuple Types": [[22, "tuple-types"]], "Abstract Data Types": [[22, "abstract-data-types"]], "Enum Types": [[22, "enum-types"]], "Struct Types": [[22, "struct-types"]], "Union Types": [[22, "union-types"]], "Function Types": [[22, "function-types"]], "Closure Types": [[22, "closure-types"]], "Function Item Types": [[22, "function-item-types"]], "Indirection Types": [[22, "indirection-types"]], "Function Pointer Types": [[22, "function-pointer-types"]], "Raw Pointer Types": [[22, "raw-pointer-types"]], "Reference Types": [[22, "reference-types"]], "Trait Types": [[22, "trait-types"]], "Impl Trait Types": [[22, "impl-trait-types"]], "Trait Object Types": [[22, "trait-object-types"]], "Other Types": [[22, "other-types"]], "Inferred Types": [[22, "inferred-types"]], "Type Parameters": [[22, "type-parameters"]], "Never Type": [[22, "never-type"]], "Parenthesized Types": [[22, "parenthesized-types"]], "Type Aliases": [[22, "type-aliases"]], "Representation": [[22, "representation"]], "Type Layout": [[22, "type-layout"]], "Type Representation": [[22, "type-representation"]], "Enum Type Representation": [[22, "enum-type-representation"]], "Struct Type Representation": [[22, "struct-type-representation"]], "Union Type Representation": [[22, "union-type-representation"]], "Type Model": [[22, "type-model"]], "Recursive Types": [[22, "recursive-types"]], "Type Unification": [[22, "type-unification"]], "Type Coercion": [[22, "type-coercion"]], "Structural Equality": [[22, "structural-equality"]], "Interior Mutability": [[22, "interior-mutability"]], "Type Inference": [[22, "type-inference"]], "Traits": [[22, "traits"]], "Object Safety": [[22, "object-safety"]], "Trait and Lifetime Bounds": [[22, "trait-and-lifetime-bounds"]], "Lifetimes": [[22, "lifetimes"]], "Subtyping and Variance": [[22, "subtyping-and-variance"]], "Lifetime Elision": [[22, "lifetime-elision"]], "Function Lifetime Elision": [[22, "function-lifetime-elision"]], "Static Lifetime Elision": [[22, "static-lifetime-elision"]], "Trait Object Lifetime Elision": [[22, "trait-object-lifetime-elision"]], "Impl Header Lifetime Elision": [[22, "impl-header-lifetime-elision"]], "List of undefined behavior": [[23, "list-of-undefined-behavior"]], "Generics": [[9, "generics"]], "Generic Parameters": [[9, "generic-parameters"]], "Where Clauses": [[9, "where-clauses"]], "Generic Arguments": [[9, "generic-arguments"]], "Generic Conformance": [[9, "generic-conformance"]], "Glossary": [[10, "glossary"]], "ABI": [[10, "abi"], [6, "abi"]], "ABI clobber": [[10, "abi-clobber"]], "ABI kind": [[10, "abi-kind"]], "abort": [[10, "abort"]], "abstract data type": [[10, "abstract-data-type"]], "active attribute": [[10, "active-attribute"]], "addition assignment": [[10, "addition-assignment"]], "addition assignment expression": [[10, "addition-assignment-expression"]], "addition expression": [[10, "addition-expression"]], "adjusted call operand": [[10, "adjusted-call-operand"]], "alignment": [[10, "alignment"]], "all configuration predicate": [[10, "all-configuration-predicate"]], "anonymous loop expression": [[10, "anonymous-loop-expression"]], "anonymous return type": [[10, "anonymous-return-type"]], "anonymous type parameter": [[10, "anonymous-type-parameter"]], "any configuration predicate": [[10, "any-configuration-predicate"]], "Application Binary Interface": [[10, "application-binary-interface"]], "argument operand": [[10, "argument-operand"]], "arithmetic expression": [[10, "arithmetic-expression"]], "arithmetic operator": [[10, "arithmetic-operator"]], "arithmetic overflow": [[10, "arithmetic-overflow"]], "arity": [[10, "arity"]], "array": [[10, "array"]], "array element constructor": [[10, "array-element-constructor"]], "array expression": [[10, "array-expression"]], "array repetition constructor": [[10, "array-repetition-constructor"]], "array type": [[10, "array-type"]], "assembly code block": [[10, "assembly-code-block"]], "assembly directive": [[10, "assembly-directive"]], "assembly instruction": [[10, "assembly-instruction"]], "assembly option": [[10, "assembly-option"]], "assigned operand": [[10, "assigned-operand"]], "assignee expression": [[10, "assignee-expression"]], "assignee operand": [[10, "assignee-operand"]], "assignment": [[10, "assignment"]], "assignment expression": [[10, "assignment-expression"]], "associated constant": [[10, "associated-constant"]], "associated function": [[10, "associated-function"]], "associated implementation constant": [[10, "associated-implementation-constant"]], "associated implementation function": [[10, "associated-implementation-function"]], "associated implementation type": [[10, "associated-implementation-type"]], "associated item": [[10, "associated-item"]], "associated trait constant": [[10, "associated-trait-constant"]], "associated trait function": [[10, "associated-trait-function"]], "associated trait implementation item": [[10, "associated-trait-implementation-item"]], "associated trait item": [[10, "associated-trait-item"]], "associated trait type": [[10, "associated-trait-type"]], "associated type": [[10, "associated-type"]], "associated type projection": [[10, "associated-type-projection"]], "associativity": [[10, "associativity"]], "async block": [[10, "async-block"]], "async block expression": [[10, "async-block-expression"]], "async control flow boundary": [[10, "async-control-flow-boundary"]], "async function": [[10, "async-function"]], "atomic": [[10, "atomic"]], "atomic type": [[10, "atomic-type"]], "attribute": [[10, "attribute"]], "attribute content": [[10, "attribute-content"]], "attribute macro": [[10, "attribute-macro"]], "auto trait": [[10, "auto-trait"]], "await expression": [[10, "await-expression"]], "base initializer": [[10, "base-initializer"]], "basic assignment": [[10, "basic-assignment"]], "binary crate": [[10, "binary-crate"]], "binary literal": [[10, "binary-literal"]], "binary operator": [[10, "binary-operator"]], "binding": [[10, "binding"]], "binding argument": [[10, "binding-argument"]], "binding mode": [[10, "binding-mode"]], "binding pattern": [[10, "binding-pattern"]], "binding scope": [[10, "binding-scope"]], "bit and assignment": [[10, "bit-and-assignment"]], "bit and assignment expression": [[10, "bit-and-assignment-expression"]], "bit and expression": [[10, "bit-and-expression"]], "bit expression": [[10, "bit-expression"]], "bit or assignment": [[10, "bit-or-assignment"]], "bit or assignment expression": [[10, "bit-or-assignment-expression"]], "bit or expression": [[10, "bit-or-expression"]], "bit xor assignment": [[10, "bit-xor-assignment"]], "bit xor assignment expression": [[10, "bit-xor-assignment-expression"]], "bit xor expression": [[10, "bit-xor-expression"]], "block comment": [[10, "block-comment"]], "block expression": [[10, "block-expression"]], "bool": [[10, "bool"]], "boolean literal": [[10, "boolean-literal"]], "borrow": [[10, "borrow"]], "borrow expression": [[10, "borrow-expression"]], "borrowed": [[10, "borrowed"]], "borrowing": [[10, "borrowing"]], "bound": [[10, "bound"]], "bound pattern": [[10, "bound-pattern"]], "break expression": [[10, "break-expression"]], "break type": [[10, "break-type"]], "break value": [[10, "break-value"]], "built-in attribute": [[10, "built-in-attribute"]], "built-in trait": [[10, "built-in-trait"]], "byte literal": [[10, "byte-literal"]], "byte string literal": [[10, "byte-string-literal"]], "C": [[10, "c"]], "C representation": [[10, "c-representation"]], "C signed int type": [[10, "c-signed-int-type"]], "Call conformance": [[10, "call-conformance"]], "call expression": [[10, "call-expression"]], "call operand": [[10, "call-operand"]], "call resolution": [[10, "call-resolution"]], "call site hygiene": [[10, "call-site-hygiene"]], "callee type": [[10, "callee-type"]], "capture mode": [[10, "capture-mode"]], "capture target": [[10, "capture-target"]], "capturing": [[10, "capturing"]], "capturing environment": [[10, "capturing-environment"]], "capturing expression": [[10, "capturing-expression"]], "cast": [[10, "cast"]], "char": [[10, "char"]], "character literal": [[10, "character-literal"]], "closure body": [[10, "closure-body"]], "closure expression": [[10, "closure-expression"]], "closure parameter": [[10, "closure-parameter"]], "closure type": [[10, "closure-type"]], "code point": [[10, "code-point"]], "comment": [[10, "comment"]], "comparison expression": [[10, "comparison-expression"]], "compilation root": [[10, "compilation-root"]], "compound assignment": [[10, "compound-assignment"]], "compound assignment expression": [[10, "compound-assignment-expression"]], "concrete type": [[10, "concrete-type"]], "conditional compilation": [[10, "conditional-compilation"]], "conditionally-compiled source code": [[10, "conditionally-compiled-source-code"]], "configuration predicate": [[10, "configuration-predicate"]], "constant": [[10, "constant"]], "constant argument": [[10, "constant-argument"]], "constant context": [[10, "constant-context"]], "constant expression": [[10, "constant-expression"]], "constant function": [[10, "constant-function"]], "constant initializer": [[10, "constant-initializer"]], "constant parameter": [[10, "constant-parameter"]], "constant parameter initializer": [[10, "constant-parameter-initializer"]], "constant promotion": [[10, "constant-promotion"]], "constrain": [[10, "constrain"]], "construct": [[10, "construct"]], "constructee": [[10, "constructee"]], "container operand": [[10, "container-operand"]], "continue expression": [[10, "continue-expression"]], "control flow boundary": [[10, "control-flow-boundary"]], "copy type": [[10, "copy-type"]], "crate": [[10, "crate"]], "crate import": [[10, "crate-import"]], "crate indication": [[10, "crate-indication"]], "crate public modifier": [[10, "crate-public-modifier"]], "crate root": [[10, "crate-root"]], "crate root module": [[10, "crate-root-module"]], "dangling": [[10, "dangling"]], "data race": [[10, "data-race"]], "decimal literal": [[10, "decimal-literal"]], "declaration": [[10, "declaration"]], "declarative macro": [[10, "declarative-macro"]], "deconstructee": [[10, "deconstructee"]], "default representation": [[10, "default-representation"]], "definition site hygiene": [[10, "definition-site-hygiene"]], "dereference": [[10, "dereference"]], "dereference expression": [[10, "dereference-expression"]], "dereference type": [[10, "dereference-type"]], "dereference type chain": [[10, "dereference-type-chain"]], "derive macro": [[10, "derive-macro"]], "destruction": [[10, "destruction"]], "destructor": [[10, "destructor"]], "destructuring assignment": [[10, "destructuring-assignment"]], "direction modifier": [[10, "direction-modifier"]], "discriminant": [[10, "discriminant"]], "discriminant initializer": [[10, "discriminant-initializer"]], "discriminant type": [[10, "discriminant-type"]], "diverging expression": [[10, "diverging-expression"]], "diverging type variable": [[10, "diverging-type-variable"]], "division assignment": [[10, "division-assignment"]], "division assignment expression": [[10, "division-assignment-expression"]], "division expression": [[10, "division-expression"]], "doc comment": [[10, "doc-comment"]], "drop construct": [[10, "drop-construct"]], "drop order": [[10, "drop-order"]], "drop scope": [[10, "drop-scope"]], "drop scope extension": [[10, "drop-scope-extension"]], "drop type": [[10, "drop-type"]], "dropping": [[10, "dropping"]], "dynamically sized type": [[10, "dynamically-sized-type"]], "elaboration": [[10, "elaboration"]], "element type": [[10, "element-type"]], "elided": [[10, "elided"]], "elided lifetime": [[10, "elided-lifetime"]], "else expression": [[10, "else-expression"]], "empty statement": [[10, "empty-statement"]], "entity": [[10, "entity"]], "enum": [[10, "enum"]], "enum field": [[10, "enum-field"]], "enum type": [[10, "enum-type"]], "enum value": [[10, "enum-value"]], "enum variant": [[10, "enum-variant"]], "enum variant value": [[10, "enum-variant-value"]], "equals expression": [[10, "equals-expression"]], "error propagation expression": [[10, "error-propagation-expression"]], "escaped character": [[10, "escaped-character"]], "evaluated": [[10, "evaluated"]], "evaluation": [[10, "evaluation"]], "executed": [[10, "executed"]], "execution": [[10, "execution"]], "explicit register argument": [[10, "explicit-register-argument"]], "explicit register name": [[10, "explicit-register-name"]], "explicitly declared entity": [[10, "explicitly-declared-entity"]], "exported function": [[10, "exported-function"]], "exported static": [[10, "exported-static"]], "expression": [[10, "expression"]], "expression statement": [[10, "expression-statement"]], "expression-with-block": [[10, "expression-with-block"]], "expression-without-block": [[10, "expression-without-block"]], "external block": [[10, "external-block"]], "external function": [[10, "external-function"]], "external function item type": [[10, "external-function-item-type"]], "external static": [[10, "external-static"]], "f32": [[10, "f32"]], "f64": [[10, "f64"]], "fat pointer": [[10, "fat-pointer"]], "fat pointer type": [[10, "fat-pointer-type"]], "FFI": [[10, "ffi"], [6, "ffi"]], "field": [[10, "field"]], "field access expression": [[10, "field-access-expression"]], "field index": [[10, "field-index"]], "field list": [[10, "field-list"]], "field resolution": [[10, "field-resolution"]], "field selector": [[10, "field-selector"]], "final match arm": [[10, "final-match-arm"]], "fixed sized type": [[10, "fixed-sized-type"]], "float literal": [[10, "float-literal"]], "float suffix": [[10, "float-suffix"]], "floating-point type": [[10, "floating-point-type"]], "floating-point type variable": [[10, "floating-point-type-variable"]], "floating-point value": [[10, "floating-point-value"]], "for loop": [[10, "for-loop"]], "for loop expression": [[10, "for-loop-expression"]], "Foreign Function Interface": [[10, "foreign-function-interface"]], "fragment specifier": [[10, "fragment-specifier"]], "full range expression": [[10, "full-range-expression"]], "function": [[10, "function"]], "function body": [[10, "function-body"]], "function item type": [[10, "function-item-type"]], "function lifetime elision": [[10, "function-lifetime-elision"]], "function parameter": [[10, "function-parameter"]], "function pointer type": [[10, "function-pointer-type"]], "function pointer type parameter": [[10, "function-pointer-type-parameter"]], "function qualifier": [[10, "function-qualifier"]], "function signature": [[10, "function-signature"]], "function type": [[10, "function-type"]], "function-like macro": [[10, "function-like-macro"]], "fundamental": [[10, "fundamental"]], "future": [[10, "future"]], "future operand": [[10, "future-operand"]], "generic argument": [[10, "generic-argument"]], "generic associated type": [[10, "generic-associated-type"]], "generic conformance": [[10, "generic-conformance"]], "generic enum": [[10, "generic-enum"]], "generic function": [[10, "generic-function"]], "generic implementation": [[10, "generic-implementation"]], "generic parameter": [[10, "generic-parameter"]], "generic parameter scope": [[10, "generic-parameter-scope"]], "generic struct": [[10, "generic-struct"]], "generic substitution": [[10, "generic-substitution"]], "generic trait": [[10, "generic-trait"]], "generic type": [[10, "generic-type"]], "generic type alias": [[10, "generic-type-alias"]], "generic union": [[10, "generic-union"]], "glob import": [[10, "glob-import"]], "global path": [[10, "global-path"]], "global type variable": [[10, "global-type-variable"]], "greater-than expression": [[10, "greater-than-expression"]], "greater-than-or-equals expression": [[10, "greater-than-or-equals-expression"]], "half-open range pattern": [[10, "half-open-range-pattern"]], "hexadecimal literal": [[10, "hexadecimal-literal"]], "higher-ranked trait bound": [[10, "higher-ranked-trait-bound"]], "hygiene": [[10, "hygiene"]], "hygienic": [[10, "hygienic"]], "i8": [[10, "i8"]], "i16": [[10, "i16"]], "i32": [[10, "i32"]], "i64": [[10, "i64"]], "i128": [[10, "i128"]], "identifier": [[10, "fls-kpsyz8yopova"]], "identifier pattern": [[10, "fls-1g9xxx8s498u"]], "if expression": [[10, "if-expression"]], "if let expression": [[10, "if-let-expression"]], "immutable": [[10, "immutable"]], "immutable borrow": [[10, "immutable-borrow"]], "immutable borrow expression": [[10, "immutable-borrow-expression"]], "immutable place expression": [[10, "immutable-place-expression"]], "immutable place expression context": [[10, "immutable-place-expression-context"]], "immutable raw pointer type": [[10, "immutable-raw-pointer-type"]], "immutable reference": [[10, "immutable-reference"]], "immutable static": [[10, "immutable-static"]], "immutable variable": [[10, "immutable-variable"]], "impl header lifetime elision": [[10, "impl-header-lifetime-elision"]], "impl trait type": [[10, "impl-trait-type"]], "implementation": [[10, "implementation"]], "implementation body": [[10, "implementation-body"]], "implementation coherence": [[10, "implementation-coherence"]], "implementation conformance": [[10, "implementation-conformance"]], "implemented trait": [[10, "implemented-trait"]], "implementing type": [[10, "implementing-type"]], "implicit borrow": [[10, "implicit-borrow"]], "implicitly declared entity": [[10, "implicitly-declared-entity"]], "implied bound": [[10, "implied-bound"]], "in scope": [[10, "in-scope"]], "inclusive range pattern": [[10, "inclusive-range-pattern"]], "incomplete associated constant": [[10, "incomplete-associated-constant"]], "incomplete associated function": [[10, "incomplete-associated-function"]], "incomplete associated type": [[10, "incomplete-associated-type"]], "index expression": [[10, "index-expression"]], "indexable type": [[10, "indexable-type"]], "indexed deconstructor": [[10, "indexed-deconstructor"]], "indexed field selector": [[10, "indexed-field-selector"]], "indexed initializer": [[10, "indexed-initializer"]], "indexed operand": [[10, "indexed-operand"]], "indexing operand": [[10, "indexing-operand"]], "indirection type": [[10, "indirection-type"]], "inert attribute": [[10, "inert-attribute"]], "inferred type": [[10, "inferred-type"]], "infinite loop": [[10, "infinite-loop"]], "infinite loop expression": [[10, "infinite-loop-expression"]], "inherent implementation": [[10, "inherent-implementation"]], "initialization": [[10, "initialization"]], "initialization expression": [[10, "initialization-expression"]], "initialization type": [[10, "initialization-type"]], "inline assembly": [[10, "inline-assembly"]], "inline module": [[10, "inline-module"]], "inner attribute": [[10, "inner-attribute"]], "inner block doc": [[10, "inner-block-doc"]], "inner doc comment": [[10, "inner-doc-comment"]], "inner line doc": [[10, "inner-line-doc"]], "input register": [[10, "input-register"]], "input register expression": [[10, "input-register-expression"]], "input-output register expression": [[10, "input-output-register-expression"]], "integer literal": [[10, "integer-literal"]], "integer suffix": [[10, "integer-suffix"]], "integer type": [[10, "integer-type"]], "integer type variable": [[10, "integer-type-variable"]], "interior mutability": [[10, "interior-mutability"]], "intermediate match arm": [[10, "intermediate-match-arm"]], "irrefutable constant": [[10, "irrefutable-constant"]], "irrefutable pattern": [[10, "irrefutable-pattern"]], "isize": [[10, "isize"]], "item": [[10, "item"]], "item scope": [[10, "item-scope"]], "item statement": [[10, "item-statement"]], "iteration expression": [[10, "iteration-expression"]], "keyword": [[10, "keyword"]], "label": [[10, "label"]], "label indication": [[10, "label-indication"]], "label scope": [[10, "label-scope"]], "layout": [[10, "layout"]], "lazy and expression": [[10, "lazy-and-expression"]], "lazy boolean expression": [[10, "lazy-boolean-expression"]], "lazy or expression": [[10, "lazy-or-expression"]], "left operand": [[10, "left-operand"]], "less-than expression": [[10, "less-than-expression"]], "less-than-or-equals expression": [[10, "less-than-or-equals-expression"]], "let initializer": [[10, "let-initializer"]], "let statement": [[10, "let-statement"]], "lexical element": [[10, "lexical-element"]], "library crate": [[10, "library-crate"]], "lifetime": [[10, "lifetime"]], "lifetime argument": [[10, "lifetime-argument"]], "lifetime bound": [[10, "lifetime-bound"]], "lifetime bound predicate": [[10, "lifetime-bound-predicate"]], "lifetime elision": [[10, "lifetime-elision"]], "lifetime parameter": [[10, "lifetime-parameter"]], "lifetime variable": [[10, "lifetime-variable"]], "line": [[10, "line"]], "line comment": [[10, "line-comment"]], "literal": [[10, "literal"]], "literal expression": [[10, "literal-expression"]], "literal pattern": [[10, "literal-pattern"]], "local trait": [[10, "local-trait"]], "local type": [[10, "local-type"]], "local variable": [[10, "local-variable"]], "loop": [[10, "loop"]], "loop body": [[10, "loop-body"]], "loop expression": [[10, "loop-expression"]], "macro": [[10, "macro"]], "macro expansion": [[10, "macro-expansion"]], "macro implementation function": [[10, "macro-implementation-function"]], "macro invocation": [[10, "macro-invocation"]], "macro match": [[10, "macro-match"]], "macro matcher": [[10, "macro-matcher"]], "macro matching": [[10, "macro-matching"]], "macro repetition": [[10, "macro-repetition"]], "macro repetition in matching": [[10, "macro-repetition-in-matching"]], "macro repetition in transcription": [[10, "macro-repetition-in-transcription"]], "macro rule": [[10, "macro-rule"]], "macro statement": [[10, "macro-statement"]], "macro transcriber": [[10, "macro-transcriber"]], "macro transcription": [[10, "macro-transcription"]], "main function": [[10, "main-function"]], "match arm": [[10, "match-arm"]], "match arm body": [[10, "match-arm-body"]], "match arm guard": [[10, "match-arm-guard"]], "match arm matcher": [[10, "match-arm-matcher"]], "match expression": [[10, "match-expression"]], "metavariable": [[10, "metavariable"]], "metavariable indication": [[10, "metavariable-indication"]], "method": [[10, "method"]], "method call expression": [[10, "method-call-expression"]], "method operand": [[10, "method-operand"]], "method resolution": [[10, "method-resolution"]], "mixed site hygiene": [[10, "mixed-site-hygiene"]], "modifying operand": [[10, "modifying-operand"]], "module": [[10, "module"]], "move type": [[10, "move-type"]], "multi segment path": [[10, "multi-segment-path"]], "multiplication assignment": [[10, "multiplication-assignment"]], "multiplication assignment expression": [[10, "multiplication-assignment-expression"]], "multiplication expression": [[10, "multiplication-expression"]], "mutability": [[10, "mutability"]], "mutable": [[10, "mutable"]], "mutable assignee expression": [[10, "mutable-assignee-expression"]], "mutable binding": [[10, "mutable-binding"]], "mutable borrow": [[10, "mutable-borrow"]], "mutable borrow expression": [[10, "mutable-borrow-expression"]], "mutable place expression": [[10, "mutable-place-expression"]], "mutable place expression context": [[10, "mutable-place-expression-context"]], "mutable raw pointer type": [[10, "mutable-raw-pointer-type"]], "mutable reference": [[10, "mutable-reference"]], "mutable reference type": [[10, "mutable-reference-type"]], "mutable static": [[10, "mutable-static"]], "mutable variable": [[10, "mutable-variable"]], "name": [[10, "name"]], "named block expression": [[10, "named-block-expression"]], "named deconstructor": [[10, "named-deconstructor"]], "named field selector": [[10, "named-field-selector"]], "named initializer": [[10, "named-initializer"]], "named loop expression": [[10, "named-loop-expression"]], "named register argument": [[10, "named-register-argument"]], "namespace": [[10, "namespace"]], "NaN-boxing": [[10, "nan-boxing"]], "negation expression": [[10, "negation-expression"]], "nesting import": [[10, "nesting-import"]], "never type": [[10, "never-type"]], "non-reference pattern": [[10, "non-reference-pattern"]], "not configuration predicate": [[10, "not-configuration-predicate"]], "not-equals expression": [[10, "not-equals-expression"]], "null": [[10, "null"]], "numeric literal": [[10, "numeric-literal"]], "numeric type": [[10, "numeric-type"]], "object safe": [[10, "object-safe"]], "object safety": [[10, "object-safety"]], "obsolete range pattern": [[10, "obsolete-range-pattern"]], "octal literal": [[10, "octal-literal"]], "operand": [[10, "operand"]], "operator expression": [[10, "operator-expression"]], "opt-out trait bound": [[10, "opt-out-trait-bound"]], "outer attribute": [[10, "outer-attribute"]], "outer block doc": [[10, "outer-block-doc"]], "outer doc comment": [[10, "outer-doc-comment"]], "outer line doc": [[10, "outer-line-doc"]], "outline module": [[10, "outline-module"]], "outlives bound": [[10, "outlives-bound"]], "output register": [[10, "output-register"]], "output register expression": [[10, "output-register-expression"]], "overlap": [[10, "overlap"]], "owner": [[10, "owner"]], "ownership": [[10, "ownership"]], "panic": [[10, "panic"]], "parenthesized expression": [[10, "parenthesized-expression"]], "parenthesized pattern": [[10, "parenthesized-pattern"]], "parenthesized type": [[10, "parenthesized-type"]], "partially hygienic": [[10, "partially-hygienic"]], "passing convention": [[10, "passing-convention"]], "path": [[10, "path"]], "path expression": [[10, "path-expression"]], "path expression resolution": [[10, "path-expression-resolution"]], "path pattern": [[10, "path-pattern"]], "path resolution": [[10, "path-resolution"]], "path segment": [[10, "path-segment"]], "pattern": [[10, "pattern"]], "pattern matching": [[10, "pattern-matching"]], "pattern-without-alternation": [[10, "pattern-without-alternation"]], "pattern-without-range": [[10, "pattern-without-range"]], "place": [[10, "place"]], "place expression": [[10, "place-expression"]], "place expression context": [[10, "place-expression-context"]], "plane": [[10, "plane"]], "pointer": [[10, "pointer"]], "pointer type": [[10, "pointer-type"]], "positional register argument": [[10, "positional-register-argument"]], "precedence": [[10, "precedence"]], "prelude": [[10, "prelude"]], "prelude entity": [[10, "prelude-entity"]], "prelude name": [[10, "prelude-name"]], "primitive representation": [[10, "primitive-representation"]], "private visibility": [[10, "private-visibility"]], "proc-macro crate": [[10, "proc-macro-crate"]], "procedural macro": [[10, "procedural-macro"]], "public visibility": [[10, "public-visibility"]], "punctuator": [[10, "punctuator"]], "pure identifier": [[10, "pure-identifier"]], "qualified path expression": [[10, "qualified-path-expression"]], "qualified type": [[10, "qualified-type"]], "qualified type path": [[10, "qualified-type-path"]], "qualifying trait": [[10, "qualifying-trait"]], "range expression": [[10, "range-expression"]], "range expression high bound": [[10, "range-expression-high-bound"]], "range expression low bound": [[10, "range-expression-low-bound"]], "range pattern": [[10, "range-pattern"]], "range pattern bound": [[10, "range-pattern-bound"]], "range pattern high bound": [[10, "range-pattern-high-bound"]], "range pattern low bound": [[10, "range-pattern-low-bound"]], "range-from expression": [[10, "range-from-expression"]], "range-from-to expression": [[10, "range-from-to-expression"]], "range-full expression": [[10, "range-full-expression"]], "range-inclusive expression": [[10, "range-inclusive-expression"]], "range-to expression": [[10, "range-to-expression"]], "range-to-inclusive expression": [[10, "range-to-inclusive-expression"]], "raw byte string literal": [[10, "raw-byte-string-literal"]], "raw pointer": [[10, "raw-pointer"]], "raw pointer type": [[10, "raw-pointer-type"]], "raw string literal": [[10, "raw-string-literal"]], "reachable control flow path": [[10, "reachable-control-flow-path"]], "receiver operand": [[10, "receiver-operand"]], "receiver type": [[10, "receiver-type"]], "record enum variant": [[10, "record-enum-variant"]], "record struct": [[10, "record-struct"]], "record struct field": [[10, "record-struct-field"]], "record struct pattern": [[10, "record-struct-pattern"]], "record struct type": [[10, "record-struct-type"]], "record struct value": [[10, "record-struct-value"]], "recursive type": [[10, "recursive-type"]], "reference": [[10, "reference"]], "reference identifier pattern": [[10, "reference-identifier-pattern"]], "reference pattern": [[10, "reference-pattern"]], "reference type": [[10, "reference-type"]], "referent": [[10, "referent"]], "refutability": [[10, "refutability"]], "refutable constant": [[10, "refutable-constant"]], "refutable pattern": [[10, "refutable-pattern"]], "refutable type": [[10, "refutable-type"]], "register": [[10, "register"]], "register argument": [[10, "register-argument"]], "register class": [[10, "register-class"]], "register class argument": [[10, "register-class-argument"]], "register class name": [[10, "register-class-name"]], "register expression": [[10, "register-expression"]], "register name": [[10, "register-name"]], "register parameter": [[10, "register-parameter"]], "register parameter modifier": [[10, "register-parameter-modifier"]], "remainder assignment": [[10, "remainder-assignment"]], "remainder assignment expression": [[10, "remainder-assignment-expression"]], "remainder expression": [[10, "remainder-expression"]], "renaming": [[10, "renaming"]], "repeat operand": [[10, "repeat-operand"]], "repetition operator": [[10, "repetition-operator"]], "representation": [[10, "representation"]], "representation modifier": [[10, "representation-modifier"]], "reserved keyword": [[10, "reserved-keyword"]], "resolution": [[10, "resolution"]], "rest pattern": [[10, "rest-pattern"]], "return expression": [[10, "return-expression"]], "return type": [[10, "return-type"]], "right operand": [[10, "right-operand"]], "rule matching": [[10, "rule-matching"]], "rustc": [[10, "rustc"]], "safety invariant": [[10, "safety-invariant"]], "scalar type": [[10, "scalar-type"]], "scope": [[10, "scope"]], "scope hierarchy": [[10, "scope-hierarchy"]], "selected field": [[10, "selected-field"]], "Self": [[10, "self"]], "self parameter": [[10, "self-parameter"]], "self public modifier": [[10, "self-public-modifier"]], "Self scope": [[10, "self-scope"]], "send type": [[10, "send-type"]], "separator": [[10, "separator"]], "sequence type": [[10, "sequence-type"]], "shadowing": [[10, "shadowing"]], "shared borrow": [[10, "shared-borrow"]], "shared reference": [[10, "shared-reference"]], "shared reference type": [[10, "shared-reference-type"]], "shift left assignment": [[10, "shift-left-assignment"]], "shift left assignment expression": [[10, "shift-left-assignment-expression"]], "shift left expression": [[10, "shift-left-expression"]], "shift right assignment": [[10, "shift-right-assignment"]], "shift right assignment expression": [[10, "shift-right-assignment-expression"]], "shift right expression": [[10, "shift-right-expression"]], "shorthand deconstructor": [[10, "shorthand-deconstructor"]], "shorthand initializer": [[10, "shorthand-initializer"]], "signed integer type": [[10, "signed-integer-type"]], "simple byte string literal": [[10, "simple-byte-string-literal"]], "simple import": [[10, "simple-import"]], "simple path": [[10, "simple-path"]], "simple path prefix": [[10, "simple-path-prefix"]], "simple path public modifier": [[10, "simple-path-public-modifier"]], "simple path resolution": [[10, "simple-path-resolution"]], "simple public modifier": [[10, "simple-public-modifier"]], "simple register expression": [[10, "simple-register-expression"]], "simple string literal": [[10, "simple-string-literal"]], "single segment path": [[10, "single-segment-path"]], "size": [[10, "size"]], "size operand": [[10, "size-operand"]], "sized type": [[10, "sized-type"]], "slice": [[10, "slice"]], "slice pattern": [[10, "slice-pattern"]], "slice type": [[10, "slice-type"]], "source file": [[10, "source-file"]], "statement": [[10, "statement"]], "static": [[10, "static"]], "static initializer": [[10, "static-initializer"]], "static lifetime elision": [[10, "static-lifetime-elision"]], "str": [[10, "str"]], "strict keyword": [[10, "strict-keyword"]], "string literal": [[10, "string-literal"]], "struct": [[10, "struct"]], "struct expression": [[10, "struct-expression"]], "struct field": [[10, "struct-field"]], "struct pattern": [[10, "struct-pattern"]], "struct type": [[10, "struct-type"]], "struct value": [[10, "struct-value"]], "structurally equal": [[10, "structurally-equal"]], "subexpression": [[10, "subexpression"]], "subject expression": [[10, "subject-expression"]], "subject let expression": [[10, "subject-let-expression"]], "subpattern": [[10, "subpattern"]], "subtraction assignment": [[10, "subtraction-assignment"]], "subtraction assignment expression": [[10, "subtraction-assignment-expression"]], "subtraction expression": [[10, "subtraction-expression"]], "subtrait": [[10, "subtrait"]], "subtype": [[10, "subtype"]], "subtyping": [[10, "subtyping"]], "suffixed float": [[10, "suffixed-float"]], "suffixed integer": [[10, "suffixed-integer"]], "super public modifier": [[10, "super-public-modifier"]], "supertrait": [[10, "supertrait"]], "sync type": [[10, "sync-type"]], "syntactic category": [[10, "syntactic-category"]], "tail expression": [[10, "tail-expression"]], "temporary": [[10, "temporary"]], "terminated": [[10, "terminated"]], "terminated macro invocation": [[10, "terminated-macro-invocation"]], "textual macro scope": [[10, "textual-macro-scope"]], "textual type": [[10, "textual-type"]], "thin pointer": [[10, "thin-pointer"]], "thin pointer type": [[10, "thin-pointer-type"]], "token matching": [[10, "token-matching"]], "tokens": [[10, "tokens"]], "trait": [[10, "trait"]], "trait body": [[10, "trait-body"]], "trait bound": [[10, "trait-bound"]], "trait implementation": [[10, "trait-implementation"]], "trait object lifetime elision": [[10, "trait-object-lifetime-elision"]], "trait object type": [[10, "trait-object-type"]], "trait type": [[10, "trait-type"]], "transparent representation": [[10, "transparent-representation"]], "trivial predicate": [[10, "trivial-predicate"]], "tuple": [[10, "tuple"]], "tuple enum variant": [[10, "tuple-enum-variant"]], "tuple enum variant value": [[10, "tuple-enum-variant-value"]], "tuple expression": [[10, "tuple-expression"]], "tuple field": [[10, "tuple-field"]], "tuple initializer": [[10, "tuple-initializer"]], "tuple pattern": [[10, "tuple-pattern"]], "tuple struct": [[10, "tuple-struct"]], "tuple struct call expression": [[10, "tuple-struct-call-expression"]], "tuple struct field": [[10, "tuple-struct-field"]], "tuple struct pattern": [[10, "tuple-struct-pattern"]], "tuple struct type": [[10, "tuple-struct-type"]], "tuple struct value": [[10, "tuple-struct-value"]], "tuple type": [[10, "tuple-type"]], "type": [[10, "type"]], "type alias": [[10, "type-alias"]], "type argument": [[10, "type-argument"]], "type ascription": [[10, "type-ascription"]], "type bound predicate": [[10, "type-bound-predicate"]], "type cast expression": [[10, "type-cast-expression"]], "type coercion": [[10, "type-coercion"]], "type inference": [[10, "type-inference"]], "type inference root": [[10, "type-inference-root"]], "type parameter": [[10, "type-parameter"]], "type parameter initializer": [[10, "type-parameter-initializer"]], "type parameter type": [[10, "type-parameter-type"]], "type path": [[10, "type-path"]], "type path resolution": [[10, "type-path-resolution"]], "type representation": [[10, "type-representation"]], "type specification": [[10, "type-specification"]], "type unification": [[10, "type-unification"]], "type variable": [[10, "type-variable"]], "u8": [[10, "u8"]], "u16": [[10, "u16"]], "u32": [[10, "u32"]], "u64": [[10, "u64"]], "u128": [[10, "u128"]], "unary operator": [[10, "unary-operator"]], "undefined behavior": [[10, "undefined-behavior"]], "under resolution": [[10, "under-resolution"]], "underscore expression": [[10, "underscore-expression"]], "underscore pattern": [[10, "underscore-pattern"]], "unhygienic": [[10, "unhygienic"]], "Unicode": [[10, "unicode"]], "unifiable": [[10, "unifiable"]], "unifiable types": [[10, "unifiable-types"]], "unified type": [[10, "unified-type"]], "unify": [[10, "unify"]], "union": [[10, "union"]], "union field": [[10, "union-field"]], "union type": [[10, "union-type"]], "union value": [[10, "union-value"]], "unique immutable reference": [[10, "unique-immutable-reference"]], "unit enum variant": [[10, "unit-enum-variant"]], "unit struct": [[10, "unit-struct"]], "unit struct constant": [[10, "unit-struct-constant"]], "unit struct type": [[10, "unit-struct-type"]], "unit struct value": [[10, "unit-struct-value"]], "unit tuple": [[10, "unit-tuple"]], "unit type": [[10, "unit-type"]], "unit value": [[10, "unit-value"]], "unnamed constant": [[10, "unnamed-constant"]], "unnamed lifetime": [[10, "unnamed-lifetime"]], "unqualified path expression": [[10, "unqualified-path-expression"]], "unsafe block": [[10, "unsafe-block"]], "unsafe block expression": [[10, "unsafe-block-expression"]], "unsafe context": [[10, "unsafe-context"]], "unsafe function": [[10, "unsafe-function"]], "unsafe function item type": [[10, "unsafe-function-item-type"]], "unsafe function pointer type": [[10, "unsafe-function-pointer-type"]], "unsafe operation": [[10, "unsafe-operation"]], "unsafe Rust": [[10, "unsafe-rust"]], "unsafe trait": [[10, "unsafe-trait"]], "unsafe trait implementation": [[10, "unsafe-trait-implementation"]], "unsafety": [[10, "unsafety"]], "unsigned integer type": [[10, "unsigned-integer-type"]], "unsized coercion": [[10, "unsized-coercion"]], "unsized type": [[10, "unsized-type"]], "unsuffixed float": [[10, "unsuffixed-float"]], "unsuffixed integer": [[10, "unsuffixed-integer"]], "use import": [[10, "use-import"]], "usize": [[10, "usize"]], "validity invariant": [[10, "validity-invariant"]], "value": [[10, "value"]], "value expression": [[10, "value-expression"]], "value expression context": [[10, "value-expression-context"]], "value operand": [[10, "value-operand"]], "variable": [[10, "variable"]], "variadic part": [[10, "variadic-part"]], "variance": [[10, "variance"]], "visibility": [[10, "visibility"]], "visibility modifier": [[10, "visibility-modifier"]], "weak keyword": [[10, "weak-keyword"]], "where clause": [[10, "where-clause"]], "where clause predicate": [[10, "where-clause-predicate"]], "while let loop": [[10, "while-let-loop"]], "while let loop expression": [[10, "while-let-loop-expression"]], "while loop": [[10, "while-loop"]], "while loop expression": [[10, "while-loop-expression"]], "whitespace string": [[10, "whitespace-string"]], "zero-sized type": [[10, "zero-sized-type"]], "zero-variant enum type": [[10, "zero-variant-enum-type"]], "General": [[8, "general"]], "Scope": [[8, "scope"]], "Extent": [[8, "extent"]], "Structure": [[8, "structure"]], "Conformity": [[8, "conformity"]], "Method of Description and Syntax Notation": [[8, "method-of-description-and-syntax-notation"]], "Versioning": [[8, "versioning"]], "Definitions": [[8, "definitions"]], "External Blocks": [[6, "external-blocks"]], "External Functions": [[6, "external-functions"]], "External Statics": [[6, "external-statics"]], "Functions": [[7, "functions"]], "Implementations": [[11, "implementations"]], "Implementation Coherence": [[11, "implementation-coherence"]], "Implementation Conformance": [[11, "implementation-conformance"]], "Entities and Resolution": [[3, "entities-and-resolution"]], "Entities": [[3, "entities"]], "Visibility": [[3, "visibility"]], "Paths": [[3, "paths"]], "Scopes": [[3, "scopes"]], "Binding Scopes": [[3, "binding-scopes"]], "Generic Parameter Scope": [[3, "generic-parameter-scope"]], "Item Scope": [[3, "item-scope"]], "Label Scope": [[3, "label-scope"]], "Self Scope": [[3, "self-scope"]], "Textual Macro Scope": [[3, "textual-macro-scope"]], "Scope Hierarchy": [[3, "scope-hierarchy"]], "Namespaces": [[3, "namespaces"]], "Preludes": [[3, "preludes"]], "Use Imports": [[3, "use-imports"]], "Shadowing": [[3, "shadowing"]], "Resolution": [[3, "resolution"]], "Field Resolution": [[3, "field-resolution"]], "Method Resolution": [[3, "method-resolution"]], "Call Resolution": [[3, "call-resolution"]], "Path Resolution": [[3, "path-resolution"]], "Simple Path Resolution": [[3, "simple-path-resolution"]], "Path Expression Resolution": [[3, "path-expression-resolution"]], "Type Path Resolution": [[3, "type-path-resolution"]], "Concurrency": [[2, "concurrency"]], "Send and Sync": [[2, "send-and-sync"]], "Atomics": [[2, "atomics"]], "Asynchronous Computation": [[2, "asynchronous-computation"]], "Attributes": [[1, "attributes"]], "Attribute Properties": [[1, "attribute-properties"]], "Built-in Attributes": [[1, "built-in-attributes"]], "Code Generation Attributes": [[1, "code-generation-attributes"]], "Attribute cold": [[1, "attribute-cold"]], "Attribute inline": [[1, "attribute-inline"]], "Attribute no_builtins": [[1, "attribute-no-builtins"]], "Attribute target_feature": [[1, "attribute-target-feature"]], "Attribute track_caller": [[1, "attribute-track-caller"]], "Conditional Compilation Attributes": [[1, "conditional-compilation-attributes"]], "Attribute cfg": [[1, "attribute-cfg"]], "Attribute cfg_attr": [[1, "attribute-cfg-attr"]], "Derivation Attributes": [[1, "derivation-attributes"]], "Attribute automatically_derived": [[1, "attribute-automatically-derived"]], "Attribute derive": [[1, "attribute-derive"]], "Diagnostics Attributes": [[1, "diagnostics-attributes"]], "Documentation Attributes": [[1, "documentation-attributes"]], "Attribute doc": [[1, "attribute-doc"]], "Foreign Function Interface Attributes": [[1, "foreign-function-interface-attributes"]], "Attribute crate_name": [[1, "attribute-crate-name"]], "Attribute crate_type": [[1, "attribute-crate-type"]], "Attribute export_name": [[1, "attribute-export-name"]], "Attribute link": [[1, "attribute-link"]], "Attribute link_name": [[1, "attribute-link-name"]], "Attribute link_section": [[1, "attribute-link-section"]], "Attribute link_ordinal": [[1, "attribute-link-ordinal"]], "Attribute no_link": [[1, "attribute-no-link"]], "Attribute no_main": [[1, "attribute-no-main"]], "Attribute no_mangle": [[1, "attribute-no-mangle"]], "Attribute repr": [[1, "attribute-repr"]], "Attribute used": [[1, "attribute-used"]], "Limits Attributes": [[1, "limits-attributes"]], "Attribute recursion_limit": [[1, "attribute-recursion-limit"]], "Attribute type_length_limit": [[1, "attribute-type-length-limit"]], "Macros Attributes": [[1, "macros-attributes"]], "Attribute macro_export": [[1, "attribute-macro-export"]], "Attribute macro_use": [[1, "attribute-macro-use"]], "Attribute proc_macro": [[1, "attribute-proc-macro"]], "Attribute proc_macro_attribute": [[1, "attribute-proc-macro-attribute"]], "Attribute proc_macro_derive": [[1, "attribute-proc-macro-derive"]], "Modules Attributes": [[1, "modules-attributes"]], "Attribute path": [[1, "attribute-path"]], "Prelude Attributes": [[1, "prelude-attributes"]], "Attribute no_implicit_prelude": [[1, "attribute-no-implicit-prelude"]], "Attribute no_std": [[1, "attribute-no-std"]], "Runtime Attributes": [[1, "runtime-attributes"]], "Attribute global_allocator": [[1, "attribute-global-allocator"]], "Attribute panic_handler": [[1, "attribute-panic-handler"]], "Attribute windows_subsystem": [[1, "attribute-windows-subsystem"]], "Testing Attributes": [[1, "testing-attributes"]], "Attribute ignore": [[1, "attribute-ignore"]], "Attribute should_panic": [[1, "attribute-should-panic"]], "Attribute test": [[1, "attribute-test"]], "Type Attributes": [[1, "type-attributes"]], "Attribute non_exhaustive": [[1, "attribute-non-exhaustive"]], "Exceptions and Errors": [[4, "exceptions-and-errors"]], "Panic": [[4, "panic"]], "Abort": [[4, "abort"]], "Expressions": [[5, "expressions"]], "Expression Classification": [[5, "expression-classification"]], "Assignee Expressions": [[5, "assignee-expressions"]], "Constant Expressions": [[5, "constant-expressions"]], "Diverging Expressions": [[5, "diverging-expressions"]], "Place Expressions": [[5, "place-expressions"]], "Value Expressions": [[5, "value-expressions"]], "Literal Expressions": [[5, "literal-expressions"]], "Path Expressions": [[5, "path-expressions"]], "Block Expressions": [[5, "block-expressions"]], "Async Blocks": [[5, "async-blocks"]], "Named Blocks": [[5, "named-blocks"]], "Unsafe Blocks": [[5, "unsafe-blocks"]], "Operator Expressions": [[5, "operator-expressions"]], "Borrow Expression": [[5, "borrow-expression"]], "Dereference Expression": [[5, "dereference-expression"]], "Error Propagation Expression": [[5, "error-propagation-expression"]], "Negation Expression": [[5, "negation-expression"]], "Arithmetic Expressions": [[5, "arithmetic-expressions"]], "Bit Expressions": [[5, "bit-expressions"]], "Comparison Expressions": [[5, "comparison-expressions"]], "Lazy Boolean Expressions": [[5, "lazy-boolean-expressions"]], "Type Cast Expressions": [[5, "type-cast-expressions"]], "Assignment Expressions": [[5, "assignment-expressions"]], "Basic Assignment": [[5, "basic-assignment"]], "Destructuring Assignment": [[5, "destructuring-assignment"]], "Compound Assignment Expressions": [[5, "compound-assignment-expressions"]], "Underscore Expressions": [[5, "underscore-expressions"]], "Parenthesized Expressions": [[5, "parenthesized-expressions"]], "Array Expressions": [[5, "array-expressions"]], "Indexing Expressions": [[5, "indexing-expressions"]], "Tuple Expressions": [[5, "tuple-expressions"]], "Struct Expressions": [[5, "struct-expressions"]], "Invocation Expressions": [[5, "invocation-expressions"]], "Call Expressions": [[5, "call-expressions"]], "Method Call Expressions": [[5, "method-call-expressions"]], "Call Conformance": [[5, "call-conformance"]], "Field Access Expressions": [[5, "field-access-expressions"]], "Closure Expressions": [[5, "closure-expressions"]], "Loop Expressions": [[5, "loop-expressions"]], "For Loops": [[5, "for-loops"]], "Infinite Loops": [[5, "infinite-loops"]], "While Loops": [[5, "while-loops"]], "While Let Loops": [[5, "while-let-loops"]], "Loop Labels": [[5, "loop-labels"]], "Break Expressions": [[5, "break-expressions"]], "Continue Expressions": [[5, "continue-expressions"]], "Range Expressions": [[5, "range-expressions"]], "If and If Let Expressions": [[5, "if-and-if-let-expressions"]], "If Expressions": [[5, "if-expressions"]], "If Let Expressions": [[5, "if-let-expressions"]], "Match Expressions": [[5, "match-expressions"]], "Return Expressions": [[5, "return-expressions"]], "Await Expressions": [[5, "await-expressions"]], "Expression Precedence": [[5, "expression-precedence"]], "Capturing": [[5, "capturing"]], "Arithmetic Overflow": [[5, "arithmetic-overflow"]], "Associated Items": [[0, "associated-items"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/statements.html b/statements.html new file mode 100644 index 00000000..0ec8508d --- /dev/null +++ b/statements.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + 8. Statements — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    8. Statements

    +

    Syntax

    +
    Statement ::=
    +    ExpressionStatement
    +  | Item
    +  | LetStatement
    +  | TerminatedMacroInvocation
    +  | ;
    +

    Legality Rules

    +

    8:1 +An expression statement is an expression whose result is ignored.

    +

    8:2 +An item statement is a statement that is expressed as an item.

    +

    8:3 +An empty statement is a statement expressed as character 0x3B +(semicolon).

    +

    8:4 +A macro statement is a statement expressed as a +terminated macro invocation.

    +

    Dynamic Semantics

    +

    8:5 +Execution is the process by which a statement achieves its runtime +effects.

    +

    8:6 +The execution of an empty statement has no effect.

    +
    +

    8.1. Let Statements

    +

    Syntax

    +
    LetStatement ::=
    +    OuterAttributeOrDoc* let PatternWithoutAlternation TypeAscription? LetInitializer? ;
    +
    +LetInitializer ::=
    +    = Expression (else BlockExpression)?
    +

    Legality Rules

    +

    8.1:1 +A let statement is a statement that introduces new bindings +produced by its pattern-without-alternation that are optionally +initialized to a value.

    +

    8.1:2 +A let initializer is a construct that provides the value of +the bindings of the let statement using an expression, or +alternatively executes a block expression.

    +

    8.1:3 +If a let statement lacks a block expression, then the pattern of +the let statement shall be an irrefutable pattern.

    +

    8.1:4 +The expected type of the pattern of the let statement is determined as follows:

    + +

    8.1:8 +The type of a binding introduced by a let statement is +determined as follows:

    + +

    8.1:11 +The type of the block expression of a let statement shall be the +never type.

    +

    8.1:12 +The value of a binding introduced by a let statement is +determined as follows:

    + +

    Dynamic Semantics

    +

    8.1:15 +The execution of a let statement with a let initializer proceeds +as follows:

    +
      +
    1. 8.1:16 +The expression of the let initializer is evaluated.

    2. +
    3. 8.1:17 +If the value of the expression is matched successfully against the +pattern of the let statement, then the value is assigned to +each binding introduced by the let statement.

    4. +
    5. 8.1:18 +Otherwise the block expression of the let initializer is evaluated.

    6. +
    +

    Examples

    +
    let local = 0;
    +let local: u32;
    +let (a, b) = (0, 0);
    +let Some(value) = vector.pop() else {
    +    panic!();
    +};
    +
    +
    +
    +
    +

    8.2. Expression Statements

    +

    Syntax

    +
    ExpressionStatement ::=
    +    ExpressionWithBlock ;?
    +  | ExpressionWithoutBlock ;
    +

    Legality Rules

    +

    8.2:1 +An expression statement is an expression whose result is ignored.

    +

    8.2:2 +The expected type of an expression statement without character 0x3B +(semicolon) is the unit type.

    +

    Dynamic Semantics

    +

    8.2:3 +The execution of an expression statement proceeds as follows:

    +
      +
    1. 8.2:4 +The operand is evaluated.

    2. +
    3. 8.2:5 +The value of the operand is dropped.

    4. +
    +

    Examples

    +
    let mut values = vec![1, 2, 3];
    +
    +
    +

    8.2:6 +The following expression statement ignores the result from pop().

    +
    values.pop();
    +
    +
    +

    8.2:7 +The following expression statement does not require a semicolon.

    +
    if values.is_empty() {
    +    values.push(42);
    +}
    +else {
    +    values.remove(0);
    +}
    +
    +
    +

    8.2:8 +The following expression statement is not an index expression.

    +
    [42];
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/types-and-traits.html b/types-and-traits.html new file mode 100644 index 00000000..d49af685 --- /dev/null +++ b/types-and-traits.html @@ -0,0 +1,2900 @@ + + + + + + + + + + + + 4. Types and Traits — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    4. Types and Traits

    +
    +

    4.1. Types

    +

    Syntax

    +
    TypeSpecification ::=
    +    ImplTraitTypeSpecification
    +  | TraitObjectTypeSpecification
    +  | TypeSpecificationWithoutBounds
    +
    +TypeSpecificationList ::=
    +    TypeSpecification (, TypeSpecification)* ,?
    +
    +TypeSpecificationWithoutBounds ::=
    +    ArrayTypeSpecification
    +  | FunctionPointerTypeSpecification
    +  | ImplTraitTypeSpecificationOneBound
    +  | InferredType
    +  | MacroInvocation
    +  | NeverType
    +  | ParenthesizedTypeSpecification
    +  | QualifiedTypePath
    +  | RawPointerTypeSpecification
    +  | ReferenceTypeSpecification
    +  | SliceTypeSpecification
    +  | TraitObjectTypeSpecificationOneBound
    +  | TupleTypeSpecification
    +  | TypePath
    +
    +TypeAscription ::=
    +    : TypeSpecification
    +

    Legality Rules

    +

    4.1:1 +A type defines a set of values and a set of operations that act on +those values.

    +

    4.1:2 +A local type is a type that is defined in the current crate.

    +
    +
    +

    4.2. Type Classification

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    Legality Rules

    +

    4.2:1 +Types are organized in the following categories:

    + +
    +
    +

    4.3. Scalar Types

    +
    +

    4.3.1. Bool Type

    +

    Legality Rules

    +

    4.3.1:1 +Bool is a type whose values denote the truth values of +logic and Boolean algebra.

    +

    4.3.1:2 +Type bool appears in the language prelude under the name +bool.

    +

    4.3.1:3 +Boolean value false has bit pattern 0x00. Boolean value +true has bit pattern 0x01.

    +

    4.3.1:4 +The following operations are defined on type bool:

    +

    4.3.1:5 +Logical not

    + + + + + + + + + + + + + + + +

    4.3.1:6

    a

    !a

    4.3.1:7

    true

    false

    4.3.1:8

    false

    true

    +

    4.3.1:9 +Logical and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:10

    a

    b

    a & b

    4.3.1:11

    true

    true

    true

    4.3.1:12

    true

    false

    false

    4.3.1:13

    false

    true

    false

    4.3.1:14

    false

    false

    false

    +

    4.3.1:15 +Logical or

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:16

    a

    b

    a | b

    4.3.1:17

    true

    true

    true

    4.3.1:18

    true

    false

    true

    4.3.1:19

    false

    true

    true

    4.3.1:20

    false

    false

    false

    +

    4.3.1:21 +Logical exclusive or (xor)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:22

    a

    b

    a ^ b

    4.3.1:23

    true

    true

    false

    4.3.1:24

    true

    false

    true

    4.3.1:25

    false

    true

    true

    4.3.1:26

    false

    false

    false

    +

    4.3.1:27 +Equality

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:28

    a

    b

    a == b

    4.3.1:29

    true

    true

    true

    4.3.1:30

    true

    false

    false

    4.3.1:31

    false

    true

    false

    4.3.1:32

    false

    false

    true

    +

    4.3.1:33 +Greater than

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:34

    a

    b

    a > b

    4.3.1:35

    true

    true

    false

    4.3.1:36

    true

    false

    true

    4.3.1:37

    false

    true

    false

    4.3.1:38

    false

    false

    false

    +

    4.3.1:39 +Operation a != b is equivalent to !(a == b).

    +

    4.3.1:40 +Operation a >= b is equivalent to a == b | a > b.

    +

    4.3.1:41 +Operation a < b is equivalent to !(a >= b).

    +

    4.3.1:42 +Operation a <= b is equivalent to a == b | a < b.

    +

    Undefined Behavior

    +

    4.3.1:43 +It is a validity invariant for a value of type bool to have +a bit pattern of 0x00 and 0x01.

    +
    +
    +

    4.3.2. Char Type

    +

    Legality Rules

    +

    4.3.2:1 +Char is a type whose values are represented as a 32-bit +unsigned word in the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges +of Unicode.

    +

    Undefined Behavior

    +

    4.3.2:2 +It is a validity invariant for a value of type char to be +inside the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges of +Unicode.

    +
    +
    +

    4.3.3. Numeric Types

    +
    +

    4.3.3.1. Floating Point Types

    +

    Legality Rules

    +

    4.3.3.1:1 +Type f32 is equivalent to the IEEE 754-2008 binary32 type.

    +

    4.3.3.1:2 +Type f64 is equivalent to the IEEE 754-2008 binary64 type.

    +
    +
    +

    4.3.3.2. Integer Types

    +

    Legality Rules

    +

    4.3.3.2:1 +Unsigned integer types define the following inclusive ranges over the +domain of whole numbers:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.3.2:2

    Type

    Minimum

    Maximum

    4.3.3.2:3

    u8

    0

    28 - 1

    4.3.3.2:4

    u16

    0

    216 - 1

    4.3.3.2:5

    u32

    0

    232 - 1

    4.3.3.2:6

    u64

    0

    264 - 1

    4.3.3.2:7

    u128

    0

    2128 - 1

    +

    4.3.3.2:8 +Type usize has the same number of bits as the platform’s +pointer type, and is at least 16-bits wide.

    +

    4.3.3.2:9 +Signed integer types define the following inclusive ranges over the +domain of whole numbers:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.3.2:10

    Type

    Minimum

    Maximum

    4.3.3.2:11

    i8

    - (27)

    27 - 1

    4.3.3.2:12

    i16

    - (215)

    215 - 1

    4.3.3.2:13

    i32

    - (231)

    231 - 1

    4.3.3.2:14

    i64

    - (263)

    263 - 1

    4.3.3.2:15

    i128

    - (2127)

    2127 - 1

    +

    4.3.3.2:16 +Type isize has the same number of bits as the platform’s +pointer type, and is at least 16-bits wide.

    +
    +
    +
    +
    +

    4.4. Sequence Types

    +
    +

    4.4.1. Array Types

    +

    Syntax

    +
    ArrayTypeSpecification ::=
    +    [ ElementType ; SizeOperand ]
    +
    +ElementType ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.4.1:1 +An array type is a sequence type that represents a fixed sequence +of elements.

    +

    4.4.1:2 +The element type shall be a fixed sized type.

    +

    4.4.1:3 +The size operand shall be a constant expression.

    +

    4.4.1:4 +The type of the size operand is type usize.

    +

    Examples

    +

    4.4.1:5 +An array type in the context of a let statement:

    +
    let array: [i32; 3] = [1, 2, 3];
    +
    +
    +
    +
    +

    4.4.2. Slice Types

    +

    Syntax

    +
    SliceTypeSpecification ::=
    +    [ ElementType ]
    +

    Legality Rules

    +

    4.4.2:1 +A slice type is a sequence type that provides a view into a sequence +of elements.

    +

    4.4.2:2 +The element type shall be a fixed sized type.

    +

    4.4.2:3 +A slice type is a dynamically sized type.

    +

    Examples

    +

    4.4.2:4 +A slice type in the context of a let statement:

    +
    let array: [i32; 3] = [1, 2, 3];
    +let slice: &[i32] = &array[0..1];
    +
    +
    +
    +
    +

    4.4.3. Str Type

    +

    Legality Rules

    +

    4.4.3:1 +Str is a sequence type that represents a slice of 8-bit unsigned +bytes.

    +

    4.4.3:2 +Type str is a dynamically sized type.

    +

    4.4.3:3 +A value of type str shall denote a valid UTF-8 sequence of +characters.

    +

    Undefined Behavior

    +

    4.4.3:4 +It is a safety invariant for a value of type str to denote +a valid UTF-8 sequence of characters.

    +
    +
    +

    4.4.4. Tuple Types

    +

    Syntax

    +
    TupleTypeSpecification ::=
    +    ( TupleFieldList? )
    +
    +TupleFieldList ::=
    +    TupleField (, TupleField)* ,?
    +
    +TupleField ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.4.4:1 +A tuple type is a sequence type that represents a heterogeneous list +of other types.

    +

    4.4.4:2 +If the type of a tuple field is a dynamically-sized type, then +the tuple field shall be the last tuple field in the +TupleFieldList.

    +

    Examples

    +
    ()
    +(char,)
    +(i32, f64, Vec<String>)
    +
    +
    +
    +
    +
    +

    4.5. Abstract Data Types

    +
    +

    4.5.1. Enum Types

    +

    Syntax

    +
    EnumDeclaration ::=
    +    enum Name GenericParameterList? WhereClause? { EnumVariantList? }
    +
    +EnumVariantList ::=
    +    EnumVariant (, EnumVariant)* ,?
    +
    +EnumVariant ::=
    +    OuterAttributeOrDoc* VisibilityModifier? Name EnumVariantKind?
    +
    +EnumVariantKind ::=
    +    DiscriminantInitializer
    +  | RecordStructFieldList
    +  | TupleStructFieldList
    +
    +DiscriminantInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    4.5.1:1 +An enum type is an abstract data type that contains +enum variants.

    +

    4.5.1:2 +A zero-variant enum type has no values.

    +

    4.5.1:3 +An enum variant is a construct that declares one of the +possible variations of an enum.

    +

    4.5.1:4 +The name of an enum variant shall be unique within the related +EnumDeclaration.

    +

    B.171:1 +A discriminant is an opaque integer that identifies an enum variant.

    +

    4.5.1:6 +A discriminant initializer shall be specified only when all enum +variants appear without an EnumVariantKind.

    +

    4.5.1:7 +The type of the expression of a discriminant initializer shall +be either:

    + +

    4.5.1:10 +The value of the expression of a discriminant initializer shall +be a constant expression.

    +

    4.5.1:11 +The value of a discriminant of an enum variant is determined +as follows:

    +
      +
    1. 4.5.1:12 +If the enum variant contains a discriminant initializer, then the +value is the value of its expression.

    2. +
    3. 4.5.1:13 +Otherwise, if the enum variant is the first enum variant in the +EnumVariantList, then the value is zero.

    4. +
    5. 4.5.1:14 +Otherwise the value is one greater than the value of the +discriminant of the previous enum variant.

    6. +
    +

    4.5.1:15 +It is a static error if two enum variants have discriminants +with the same value.

    +

    4.5.1:16 +It is a static error if the value of a discriminant exceeds the +maximum value of the type of the expression of a discriminant +initializer.

    +

    Undefined Behavior

    +

    4.5.1:17 +It is a validity invariant for a value of an enum type to have a +discriminant specified by the enum type.

    +

    Examples

    +
    enum ZeroVariantEnumType {}
    +
    +enum Animal {
    +   Cat,
    +   Dog(String),
    +   Otter { name: String, weight: f64, age: u8 }
    +}
    +
    +enum Discriminants {
    +    First,       // The discriminant is 0.
    +    Second,      // The discriminant is 1.
    +    Third = 12,  // The discriminant is 12.
    +    Fourth,      // The discriminant is 13.
    +    Fifth = 34,  // The discriminant is 34.
    +    Sixth        // The discriminant is 35.
    +}
    +
    +
    +
    +
    +

    4.5.2. Struct Types

    +

    Syntax

    +
    StructDeclaration ::=
    +    RecordStructDeclaration
    +  | TupleStructDeclaration
    +  | UnitStructDeclaration
    +
    +RecordStructDeclaration ::=
    +    struct Name GenericParameterList? WhereClause? RecordStructFieldList
    +
    +RecordStructFieldList ::=
    +    { (RecordStructField (, RecordStructField)* ,?)? }
    +
    +RecordStructField ::=
    +    OuterAttributeOrDoc* VisibilityModifier? Name TypeAscription
    +
    +TupleStructDeclaration ::=
    +    struct Name GenericParameterList? TupleStructFieldList WhereClause? ;
    +
    +TupleStructFieldList ::=
    +    ( (TupleStructField (, TupleStructField)* ,?)? )
    +
    +TupleStructField ::=
    +    OuterAttributeOrDoc* VisibilityModifier? TypeSpecification
    +
    +UnitStructDeclaration ::=
    +    struct Name GenericParameterList? WhereClause? ;
    +

    Legality Rules

    +

    4.5.2:1 +A struct type is an abstract data type that is a product of other +types.

    +

    4.5.2:2 +The name of a record struct field shall be unique within the +related RecordStructDeclaration.

    +

    4.5.2:3 +If the type of a record struct field is a dynamically sized type, +then the record struct field shall be the last record struct field in +the RecordStructFieldList.

    +

    4.5.2:4 +If the type of a tuple struct field is a dynamically sized type, +then the tuple struct field shall be the last tuple struct field in +the TupleStructFieldList.

    +

    Examples

    +
    struct UnitStruct;
    +
    +struct AnimalRecordStruct {
    +    name: String,
    +    weight: f64,
    +    age: u8
    +}
    +
    +struct AnimalTupleStruct (
    +    String,
    +    f64,
    +    u8
    +);
    +
    +
    +
    +
    +

    4.5.3. Union Types

    +

    Syntax

    +
    UnionDeclaration ::=
    +    union Name GenericParameterList? WhereClause? RecordStructFieldList
    +

    Legality Rules

    +

    4.5.3:1 +A union type is an abstract data type that is a sum of other +types.

    +

    4.5.3:2 +The name of a union field shall be unique within the related +RecordStructDeclaration.

    +

    4.5.3:3 +The type of a union field shall be either:

    + +

    Examples

    +
    union LeafNode {
    +    int: i32,
    +    float: f32,
    +    double: f64
    +}
    +
    +
    +
    +
    +
    +

    4.6. Function Types

    +
    +

    4.6.1. Closure Types

    +

    Legality Rules

    +

    4.6.1:1 +A closure type is a unique anonymous function type that encapsulates +all capture targets of a closure expression.

    +

    4.6.1:2 +A closure type implements the core::ops::FnOnce trait.

    +

    4.6.1:3 +A closure type that does not move out its capture targets +implements the core::ops::FnMut trait.

    +

    4.6.1:4 +A closure type that does not move out or mutate its capture targets +implements the core::ops::Fn trait.

    +

    4.6.1:5 +A closure type that does not encapsulate capture targets is +coercible to a function pointer type.

    +

    4.6.1:6 +A closure type implicitly implements the core::marker::Copy +trait if all the types of the values of the +capturing environment implement the core::marker::Copy trait.

    +

    4.6.1:7 +A closure type implicitly implements the core::clone::Clone +trait if all the types of the values of the +capturing environment implement the core::clone::Clone trait.

    +

    4.6.1:8 +A closure type implicitly implements the core::marker::Send +trait if all the types of the values of the +capturing environment implement the core::marker::Send trait.

    +

    4.6.1:9 +A closure type implicitly implements the core::marker::Sync +trait if all the types of the values of the capturing +environment implement the core::marker::Send trait.

    +
    +
    +

    4.6.2. Function Item Types

    +

    Legality Rules

    +

    4.6.2:1 +A function item type is a unique anonymous function type that +identifies a function.

    +

    4.6.2:2 +An external function item type is a function item type where the +related function is an external function.

    +

    4.6.2:3 +An unsafe function item type is a function item type where the related +function is an unsafe function.

    +

    4.6.2:4 +A function item type is coercible to a function pointer type.

    +

    4.6.2:5 +A function item type implements the core::clone::Clone trait, +the core::marker::Copy trait, the core::ops::Fn trait, +the core::ops::FnMut trait, the core::ops::FnOnce trait, +the core::marker::Send trait, and the core::marker::Sync +trait.

    +
    +
    +
    +

    4.7. Indirection Types

    +
    +

    4.7.1. Function Pointer Types

    +

    Syntax

    +
    FunctionPointerTypeSpecification ::=
    +    ForGenericParameterList? FunctionPointerTypeQualifierList fn
    +      ( FunctionPointerTypeParameterList? ) ReturnTypeWithoutBounds?
    +
    +FunctionPointerTypeQualifierList ::=
    +    unsafe? AbiSpecification?
    +
    +FunctionPointerTypeParameterList ::=
    +    FunctionPointerTypeParameter (, FunctionPointerTypeParameter)*
    +      (, VariadicPart | ,?)
    +
    +VariadicPart ::=
    +    OuterAttributeOrDoc* ...
    +
    +FunctionPointerTypeParameter ::=
    +    OuterAttributeOrDoc* (IdentifierOrUnderscore :)? TypeSpecification
    +

    Legality Rules

    +

    4.7.1:1 +A function pointer type is an indirection type that refers to a +function.

    +

    4.7.1:2 +An unsafe function pointer type is a function pointer type subject to +keyword unsafe.

    +

    4.7.1:3 +A variadic part indicates the presence of C-like optional +parameters.

    +

    4.7.1:4 +A variadic part shall be specified only when the ABI of the +function pointer type is either extern "C" or extern "cdecl".

    +

    4.7.1:5 +The return type of a function pointer type is determined as follows:

    + +

    Undefined Behavior

    +

    4.7.1:8 +It is a validity invariant for a value of a function pointer type +to be not null.

    +

    Examples

    +
    unsafe extern "C" fn (value: i32, ...) -> f64
    +
    +
    +
    +
    +

    4.7.2. Raw Pointer Types

    +

    Syntax

    +
    RawPointerTypeSpecification ::=
    +    * (const | mut) TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    4.7.2:1 +A raw pointer type is an indirection type without validity guarantees.

    +

    4.7.2:2 +A mutable raw pointer type is a raw pointer type subject to +keyword mut.

    +

    4.7.2:3 +An immutable raw pointer type is a raw pointer type subject to +keyword const.

    +

    4.7.2:4 +Comparing two values of raw pointer types compares the addresses +of the values.

    +

    4.7.2:5 +Comparing a value of a raw pointer type to a value of a +dynamically sized type compares the data being pointed to.

    +

    Examples

    +
    *const i128
    +*mut bool
    +
    +
    +
    +
    +

    4.7.3. Reference Types

    +

    Syntax

    +
    ReferenceTypeSpecification ::=
    +    & LifetimeIndication? mut? TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    4.7.3:1 +A reference type is an indirection type with ownership.

    +

    4.7.3:2 +A shared reference type is a reference type not subject to +keyword mut.

    +

    4.7.3:3 +A shared reference type prevents the direct mutation of a referenced +value.

    +

    4.7.3:4 +A shared reference type implements the core::marker::Copy +trait. Copying a shared reference performs a shallow copy.

    +

    4.7.3:5 +Releasing a shared reference has no effect on the value it refers to.

    +

    4.7.3:6 +A mutable reference type is a reference type subject to keyword +mut.

    +

    4.7.3:7 +A mutable reference type allows the direct mutation of a referenced +value.

    +

    4.7.3:8 +A mutable reference type does not implement the copy::marker::Copy +trait.

    +

    Undefined Behavior

    +

    4.7.3:9 +It is validity invariant for a value of a reference type to be +not null.

    +

    Examples

    +
    &i16
    +&'a mut f32
    +
    +
    +
    +
    +
    +

    4.8. Trait Types

    +
    +

    4.8.1. Impl Trait Types

    +

    Syntax

    +
    ImplTraitTypeSpecification ::=
    +    impl TypeBoundList
    +
    +ImplTraitTypeSpecificationOneBound ::=
    +    impl TraitBound
    +

    Legality Rules

    +

    4.8.1:1 +An impl trait type is a type that implements a trait, where the +type is known at compile time.

    +

    4.8.1:2 +An impl trait type shall appear only within a function parameter or +the return type of a function.

    +

    4.8.1:3 +An impl trait type shall not contain opt-out trait bounds.

    +

    Examples

    +
    fn anonymous_type_parameter
    +    (arg: impl Copy + Send + Sync) { ... }
    +
    +fn anonymous_return_type () -> impl MyTrait { ... }
    +
    +
    +
    +
    +

    4.8.2. Trait Object Types

    +

    Syntax

    +
    TraitObjectTypeSpecification ::=
    +    dyn TypeBoundList
    +
    +TraitObjectTypeSpecificationOneBound ::=
    +    dyn TraitBound
    +

    Legality Rules

    +

    4.8.2:1 +A trait object type is a type that implements a trait, where the +type is not known at compile time.

    +

    4.8.2:2 +The first trait bound of a trait object type shall denote an +object safe trait. Any subsequent trait bounds shall denote +auto traits.

    +

    4.8.2:3 +A trait object type shall not contain opt-out trait bounds.

    +

    4.8.2:4 +A trait object type shall contain at most one lifetime bound.

    +

    4.8.2:5 +A trait object type is a dynamically sized type. A +trait object type permits late binding of methods. A method +invoked via a trait object type involves dynamic dispatching.

    +

    Examples

    +
    dyn MyTrait
    +dyn MyTrait + Send
    +dyn MyTrait + 'static + Copy
    +
    +
    +
    +
    +
    +

    4.9. Other Types

    +
    +

    4.9.1. Inferred Types

    +

    Syntax

    +
    InferredType ::=
    +    _
    +

    Legality Rules

    +

    4.9.1:1 +An inferred type is a placeholder for a type deduced by +type inference.

    +

    4.9.1:2 +An inferred type shall not appear in the following positions:

    + +

    4.9.1:7 +An inferred type forces a tool to deduce a type, if possible.

    +

    Examples

    +
    let values: Vec<_> = (0 .. 10).collect();
    +
    +
    +
    +
    +

    4.9.2. Type Parameters

    +

    Legality Rules

    +

    4.9.2:1 +A type parameter type is a placeholder type of a type parameter +to be substituted by generic substitution.

    +

    Examples

    +
    fn type_parameter<T>(parameter: T) {}
    +
    +
    +
    +
    +

    4.9.3. Never Type

    +

    Syntax

    +
    NeverType ::=
    +    !
    +

    Legality Rules

    +

    4.9.3:1 +The never type is a type that represents the result of a computation +that never completes.

    +

    4.9.3:2 +The never type has no values.

    +

    Undefined Behavior

    +

    4.9.3:3 +It is validity invariant to not have a value of the never type.

    +

    Examples

    +
    let never_completes: ! = panic!();
    +
    +
    +
    +
    +

    4.9.4. Parenthesized Types

    +

    Syntax

    +
    ParenthesizedTypeSpecification ::=
    +    ( TypeSpecification )
    +

    Legality Rules

    +

    4.9.4:1 +A parenthesized type is a type that disambiguates the interpretation +of lexical elements.

    +

    Examples

    +
    &'a (dyn MyTrait + Send)
    +
    +
    +
    +
    +
    +

    4.10. Type Aliases

    +

    Syntax

    +
    TypeAliasDeclaration ::=
    +    type Name GenericParameterList? (: TypeBoundList)? WhereClause?
    +      (= InitializationType WhereClause?)? ;
    +
    +InitializationType ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.10:1 +A type alias is an item that defines a name for a type.

    +

    4.10:2 +A type alias shall not have a TypeBoundList unless it is an +associated item.

    +

    4.10:3 +The last where clause is rejected, but may still be consumed by +macros.

    +

    Examples

    +
    type Point = (f64, f64);
    +
    +
    +
    +
    +

    4.11. Representation

    +
    +

    4.11.1. Type Layout

    +

    Legality Rules

    +

    4.11.1:1 +All values have an alignment and a size.

    +

    4.11.1:2 +The alignment of a value specifies which addresses are valid for +storing the value. Alignment is measured in bytes, is at least one, +and always a power of two. A value of alignment N is stored at an +address that is a multiple of N.

    +

    4.11.1:3 +The size of a type is the offset in bytes between successive elements +in array type [T, N] where T is the type of the value, +including any padding for alignment. Size is a multiple of the +alignment.

    +

    4.11.1:4 +The size of scalar types is as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.11.1:5

    Type

    Size

    4.11.1:6

    bool

    1

    4.11.1:7

    u8, i8

    1

    4.11.1:8

    u16, i16

    2

    4.11.1:9

    u32, i32

    4

    4.11.1:10

    u64, i64

    8

    4.11.1:11

    u128, i128

    16

    4.11.1:12

    f32

    4

    4.11.1:13

    f64

    8

    4.11.1:14

    char

    4

    +

    4.11.1:15 +Types usize and isize have size big enough to contain every +address on the target platform.

    +

    4.11.1:16 +For type str, the layout is that of slice type +[u8].

    +

    4.11.1:17 +For array type [T; N] where T is the element type and N +is size operand, the alignment is that of T, and the size is +calculated as core::mem::size_of::<T>() * N.

    +

    4.11.1:18 +For a slice type, the layout is that of the array type it slices.

    +

    4.11.1:19 +For a tuple type, the layout is tool-defined. For a unit tuple, +the size is zero and the alignment is one.

    +

    4.11.1:20 +For a closure type, the layout is tool-defined.

    +

    4.11.1:21 +For a thin pointer, the size and alignment are those of type +usize.

    +

    4.11.1:22 +For a function pointer type, the size and alignment are those of +a thin pointer.

    +

    4.11.1:23 +For a fat pointer, the size and alignment are tool-defined, but +are at least those of a thin pointer.

    +

    4.11.1:24 +For a trait object type, the layout is the same as the value +being coerced into the trait object type at runtime.

    +

    4.11.1:25 +For a struct type, the memory layout is undefined, unless the +struct type is subject to attribute repr.

    +

    4.11.1:26 +For a union type, the memory layout is undefined, unless the +union type is subject to attribute repr. All union fields +share a common storage.

    +

    4.11.1:27 +The size of a recursive type shall be finite.

    +
    +
    +

    4.11.2. Type Representation

    +

    Legality Rules

    +

    4.11.2:1 +Type representation specifies the layout of fields of +abstract data types. Type representation changes the bit padding +between fields of abstract data types as well as their order, but +does not change the layout of the fields themselves.

    +

    4.11.2:2 +Type representation is classified into:

    + +

    4.11.2:7 +C representation lays out a type such that the type is +interoperable with the C language.

    +

    4.11.2:8 +Default representation makes no guarantees about the layout.

    +

    4.11.2:9 +Primitive representation is the type representation of individual +integer types. Primitive representation applies only to an +enum type that is not a zero-variant enum type. It is possible to +combine C representation and primitive representation.

    +

    4.11.2:10 +Transparent representation applies only to an enum type with a +single enum variant or a struct type where the struct type or +enum variant has a single field of non-zero size and any number +of fields of size zero and alignment one.

    +

    4.11.2:11 +Types subject to transparent representation have the same +type representation as the type of their field with non-zero +size.

    +

    4.11.2:12 +Type representation may be specified using attribute repr. An +enum type, a struct type, or a union type that is not subject to +attribute repr has default representation.

    +

    4.11.2:13 +Type representation may be specified using attribute repr and +modified further using attribute repr‘s Alignment +representation modifiers. A representation modifier shall apply only +to a struct type or a union type subject to C representation or +default representation.

    +
    +

    4.11.2.1. Enum Type Representation

    +

    Legality Rules

    +

    4.11.2.1:1 +Zero-variant enum types shall not be subject to C representation.

    +

    4.11.2.1:2 +The size and alignment of an enum type without fields +subject to C representation, default representation, or +primitive representation are those of its discriminant.

    +

    4.11.2.1:3 +The discriminant type of an enum type with C representation is +the corresponding c signed int type for the target platform’s C +ABI.

    +

    4.11.2.1:4 +The discriminant type of an enum type with default representation +is tool-defined.

    +

    4.11.2.1:5 +The discriminant type of an enum type with +primitive representation is the integer type specified by the +primitive representation.

    +

    4.11.2.1:6 +It is a static error if the discriminant type cannot hold all the +discriminant values of an enum type.

    +

    4.11.2.1:7 +An enum type subject to transparent representation shall have a single +enum variant with

    + +

    4.11.2.1:10 +An enum type subject to C representation or primitive +representation has the same type representation as a union type with +C representation that is laid out as follows:

    + +

    4.11.2.1:14 +An enum type subject to transparent representation has the same +type representation as the single field of non-zero size of its +enum variant if one is present, otherwise the enum type has size +zero and alignment one.

    +
    +
    +

    4.11.2.2. Struct Type Representation

    +

    Legality Rules

    +

    4.11.2.2:1 +The alignment of a struct type subject to C representation is +the alignment of the most-aligned field in it.

    +

    4.11.2.2:2 +The size of a struct type subject to C representation is +determined as follows:

    +
      +
    1. 4.11.2.2:3 +Initialize a current offset to zero.

    2. +
    3. 4.11.2.2:4 +For each field of the struct type in declarative order:

      +
        +
      1. 4.11.2.2:5 +Calculate the size and alignment of the field.

      2. +
      3. 4.11.2.2:6 +If the current offset is not a multiple of the field's +alignment, add byte padding to the current offset until it is a +multiple of the alignment. The offset of the field is the +current offset.

      4. +
      5. 4.11.2.2:7 +Increase the current offset by the size of the field.

      6. +
      7. 4.11.2.2:8 +Proceed with the next field.

      8. +
      +
    4. +
    5. 4.11.2.2:9 +Round up the current offset to the nearest multiple of the struct +type's alignment.

    6. +
    7. 4.11.2.2:10 +The size of the struct type is the current offset.

    8. +
    +

    4.11.2.2:11 +A struct type subject to transparent representation shall have:

    + +

    4.11.2.2:14 +A struct type subject to transparent representation has the same +type representation as the single field of non-zero size if one +is present, otherwise the struct type has size zero and alignment +one.

    +
    +
    +

    4.11.2.3. Union Type Representation

    +

    Legality Rules

    +

    4.11.2.3:1 +The size of a union type subject to C representation is +the maximum of the sizes of all its fields, rounded up to +alignment of the union type.

    +

    4.11.2.3:2 +The alignment of a union type subject to C representation is the +maximum of the alignments of all of its fields.

    +
    +
    +
    +
    +

    4.12. Type Model

    +
    +

    4.12.1. Recursive Types

    +

    Legality Rules

    +

    4.12.1:1 +A recursive type is a type whose contained types refer back to +the containing type, either directly or by referring to another type +which refers back to the original recursive type.

    +

    4.12.1:2 +A type that is not an abstract data type shall not be recursive.

    +

    Examples

    +
    enum List<T> {
    +    Nil,
    +    Cons(T, Box<List<T>>)
    +}
    +
    +
    +
    +
    +

    4.12.2. Type Unification

    +

    Legality Rules

    +

    4.12.2:1 +Type unification is the process by which type inference propagates +known types across the type inference root and assigns concrete +types to type variables, as well as a general mechanism to check +for compatibility between two types during method resolution.

    +

    4.12.2:2 +A type is said to unify with another type when the domains, +ranges, and structures of both types are compatible according to the +rules detailed below.

    +

    4.12.2:3 +Two types that unify are said to be unifiable types.

    +

    4.12.2:4 +Type unification is a symmetric operation. If type A unifies +with type B, then B also unifies with A and such +type unification results in the same observable effects.

    +

    4.12.2:5 +If one of the two types is a type variable, type unification +proceeds as follows:

    +
      +
    1. 4.12.2:6 +If either type is a global type variable, the +global type variable is assigned the type of the other unification +operand.

    2. +
    3. 4.12.2:7 +Otherwise, if either type is a diverging type variable, the +diverging type variable is assigned the type of the other +unification operand.

    4. +
    5. 4.12.2:8 +Otherwise, if one type T is an integer type variable, behavior +depends on the other type U:

      +
        +
      1. 4.12.2:9 +If U is an integer type or an integer type variable, the +integer type variable T is assigned type U.

      2. +
      3. 4.12.2:10 +Otherwise, type unification fails.

      4. +
      +
    6. +
    7. 4.12.2:11 +Otherwise, if one type T is an floating-point type variable, +behavior depends on the other type U:

      +
        +
      1. 4.12.2:12 +If U is an floating-point type or an +floating-point type variable, the floating-point type variable +T is assigned type U.

      2. +
      3. 4.12.2:13 +Otherwise, type unification fails.

      4. +
      +
    8. +
    9. 4.12.2:14 +Otherwise, neither type is a type variable, and the rules below +are in effect.

    10. +
    +

    4.12.2:15 +A scalar type is unifiable only with itself.

    +

    4.12.2:16 +The never type is unifiable with any other type.

    +

    4.12.2:17 +An array type is unifiable only with another array type when

    + +

    4.12.2:20 +A slice type is unifiable only with another slice type when the +element types of both slice types are unifiable.

    +

    4.12.2:21 +Type str is unifiable only with itself.

    +

    4.12.2:22 +A tuple type is unifiable only with another tuple type when:

    + +

    4.12.2:25 +An abstract data type is unifiable only with another +abstract data type when:

    + +

    4.12.2:28 +A closure type is unifiable only with another closure type when:

    + +

    4.12.2:31 +A function item type is unifiable only with another function item type +when:

    + +

    4.12.2:34 +A function pointer type is unifiable only with another +function pointer type when:

    + +

    4.12.2:42 +A raw pointer type is unifiable only with another raw pointer type +when:

    + +

    4.12.2:45 +A reference type is unifiable only with another reference type when:

    + +

    4.12.2:48 +An anonymous return type is unifiable with another type when:

    + +

    4.12.2:51 +An impl trait type is unifiable only with itself.

    +

    4.12.2:52 +A trait object type is unifiable only with another trait object type +when:

    +
      +
    • 4.12.2:53 +The bounds are unifiable, and

    • +
    • 4.12.2:54 +The lifetimes are unifiable.

    • +
    +

    4.12.2:55 +A type alias is unifiable with another type when the aliased type +is unifiable with the other type.

    +
    +
    +

    4.12.3. Type Coercion

    +

    Legality Rules

    +

    4.12.3:1 +Type coercion is an implicit operation that changes the type of a +value. Any implicit conversion allowed by type coercion can be made +explicit using a type cast expression.

    +

    4.12.3:2 +A type coercion takes place at a coercion site or within a +coercion-propagating expression.

    +

    4.12.3:3 +The following constructs constitute a coercion site:

    + +

    4.12.3:10 +The following expressions constitute a +coercion-propagating expression:

    + +

    4.12.3:15 +Type coercion from a source type to a target type is allowed to +occur when:

    + +

    4.12.3:29 +An unsized coercion is a type coercion that converts a sized type +into an unsized type. Unsized coercion from a source type to a +target type is allowed to occur when:

    +
      +
    • 4.12.3:30 +The source type is array type [T; N] and the target type is +slice type [T].

    • +
    • 4.12.3:31 +The source type is T and the target type is dyn U, where +T implements U + core::marker::Sized, and U is object safe.

    • +
    • 4.12.3:32 +The source type is

    • +
    +
    S<..., T, ...> {
    +    ...
    +    last_field: X
    +}
    +
    +
    +

    4.12.3:33 +where

    +
      +
    • 4.12.3:34 +S is a struct type,

    • +
    • 4.12.3:35 +T implements core::marker::Unsize<U>,

    • +
    • 4.12.3:36 +last_field is a struct field of S,

    • +
    • 4.12.3:37 +The type of last_field involves T and if the type of +last_field is W<T>, then W<T> implements +core::marker::Unsize<W<U>>,

    • +
    • 4.12.3:38 +T is not part of any other struct field of S.

    • +
    +

    4.12.3:39 +and the target type is S<..., U, ...>.

    +

    4.12.3:40 +Least upper bound coercion is a multi-type coercion that is used in +the following scenarios:

    + +

    4.12.3:47 +Least upper bound coercion considers a set of source types T1, +T2, ..., TN and target type U. The target type is +obtained as follows:

    +
      +
    1. 4.12.3:48 +Initialize target type U to source type T1.

    2. +
    3. 4.12.3:49 +For each current source type TC in the inclusive range T1 to +TN

      +
        +
      1. 4.12.3:50 +If TC can be coerced to U, then continue with the next source +type.

      2. +
      3. 4.12.3:51 +Otherwise, if U can be coerced to TC, make TC the target +type U.

      4. +
      5. 4.12.3:52 +Otherwise, if TC and U are non-capturing closure types, +function item types, function pointer types, or a +combination of those types, and a function pointer type exists +that both TC and U can coerce to, make that +function pointer type be target type U.

      6. +
      7. 4.12.3:53 +Otherwise, no coercion is performed.

      8. +
      9. 4.12.3:54 +Continue with the next source type.

      10. +
      +
    4. +
    +
    +
    +

    4.12.4. Structural Equality

    +

    Legality Rules

    +

    4.12.4:1 +A type is structurally equal when its values can be compared +for equality by structure.

    +

    4.12.4:2 +The following types are structurally equal:

    + +
    +
    +

    4.12.5. Interior Mutability

    +

    Legality Rules

    +

    4.12.5:1 +Interior mutability is a property of types whose values can +be modified through immutable references.

    +

    4.12.5:2 +A type is subject to interior mutability when it contains a +core::cell::UnsafeCell.

    +
    +
    +

    4.12.6. Type Inference

    +

    Legality Rules

    +

    4.12.6:1 +Type inference is the process of automatically determining the type of +expressions and patterns within a type inference root.

    +

    4.12.6:2 +A type inference root is an expression whose inner expressions +and patterns are subject to type inference independently of those +found in other type inference roots.

    +

    4.12.6:3 +The following expressions are considered type inference roots:

    + +

    4.12.6:12 +A type inference root imposes an expected type on its expression +depending on the type inference root as follows:

    + +

    4.12.6:21 +A type variable is a placeholder used during type inference to stand +in for an undetermined type of an expression or a pattern.

    +

    4.12.6:22 +A global type variable is a type variable that can refer to any +type.

    +

    4.12.6:23 +An integer type variable is a type variable that can refer only to +integer types.

    +

    4.12.6:24 +A floating-point type variable is a type variable that can refer only +to floating-point types.

    +

    4.12.6:25 +A diverging type variable is a type variable that can refer to any +type and originates from a diverging expression.

    +

    4.12.6:26 +A lifetime variable is a placeholder used during type inference to +stand in for an undetermined lifetime of a type.

    +

    4.12.6:27 +The type inference algorithm uses type unification to propagate known +types of expressions and patterns across the +type inference root being inferred. In the rules detailed below, a static +error occurs when type unification fails.

    +

    4.12.6:28 +Performing type inference may introduce a requirement that some type +must implement a trait, or that a type or lifetime must outlive +some other lifetime. Such requirements are referred to as +obligations and are detailed in the inference rules below.

    +

    4.12.6:29 +If insufficient type information is available at the time an +obligation is introduced, it may be deferred to be resolved later. +Any time new type information is derived during type inference, the +tool attempts to resolve all outstanding obligations and propagate +any resulting type information via type unification.

    +

    4.12.6:30 +When an associated type <Type as Trait>::Assoc is referenced within a +type inference root (either explicitly within the source code, or via the +inferece rules below), an obligation requiring that Type implements +Trait is introduced.

    +

    4.12.6:31 +Type inference for a type inference root proceeds as follows:

    +
      +
    1. 4.12.6:32 +Recursively process all expressions and statements in the +type inference root in program order.

      +
        +
      1. 4.12.6:33 +For each statement, apply the statement inference rules outlined below.

      2. +
      3. 4.12.6:34 +For each expression, apply the expression inference rules outlined below.

      4. +
      +
    2. +
    3. 4.12.6:35 +If there are any remaining integer type variables that have not been +unified with a concrete integer type, perform integer type fallback by +unifying them with i32.

    4. +
    5. 4.12.6:36 +If there are any remaining floating-point type variables that have not +been unified with a concrete floating-point type, perform floating-point +type fallback by unifying them with f64.

    6. +
    7. 4.12.6:37 +If there are any remaining diverging type variables that have not been +unified with a concrete type, unify them with the unit type.

    8. +
    9. 4.12.6:38 +If there are any remaining global type variables that have not been +unified with a concrete type, raise a static error.

    10. +
    11. 4.12.6:39 +If there are any remaining obligations that do not hold or cannot be +resolved with the available type information, raise a static error.

    12. +
    +

    4.12.6:40 +The type inference rules for statements are as follows:

    + +

    4.12.6:47 +Type inference of expressions may incorporate an expected type, +derived from the context the expression appears in. If the expression +is a coercion site or a coercion-propagating expression, the type +derived via type inference may be coerced to the expected type. If no +type coercion to the expected type is possible, or the expression +is not a coercion site or a coercion-propagating expression, the +inferred expression type is unified with the expected type.

    +

    4.12.6:48 +The type inference rules for expressions are as follows:

    + +

    4.12.6:106 +If an expression is a diverging expression, its type is a new +diverging type variable.

    +
    +
    +
    +

    4.13. Traits

    +

    Syntax

    +
    TraitDeclaration ::=
    +    unsafe? trait Name GenericParameterList? (: SupertraitList?)? WhereClause? TraitBody
    +
    +SupertraitList ::=
    +    TypeBoundList
    +
    +TraitBody ::=
    +    {
    +      InnerAttributeOrDoc*
    +      AssociatedItem*
    +    }
    +

    Legality Rules

    +

    4.13:1 +A trait is an item that describes an interface a type can +implement.

    +

    4.13:2 +A trait body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of a trait.

    +

    4.13:3 +Within a trait, the type Self acts as a placeholder for a +type implementing the trait, and behaves like a type parameter.

    +

    4.13:4 +A local trait is a trait that is defined in the current crate.

    +

    B.378:1 +A subtrait is a trait with a supertrait.

    +

    4.13:6 +A supertrait is a transitive trait that a type must additionally +implement.

    +

    4.13:7 +A subtrait shall not be its own supertrait.

    +

    4.13:8 +A trait of the form

    +
    trait T: Bound {}
    +
    +
    +

    4.13:9 +is equivalent to a where clause of the following form:

    +
    trait T where Self: Bound {}
    +
    +
    +

    4.13:10 +An auto trait is a trait that is implicitly and automatically +implemented by a type when the types of its constituent fields +implement the trait.

    +

    4.13:11 +A type that has no fields implements all auto traits.

    +

    4.13:12 +If determining whether a type T implements an auto trait +would recursively depend on whether T implements said auto trait, this +requirement is ignored and assumed to hold.

    +

    4.13:13 +The following traits are auto traits:

    + +

    4.13:19 +No other traits are auto traits.

    +

    Examples

    +
    trait Sequence<T> {
    +    fn length(&self) -> u32;
    +    fn element_at(&self, position: u32) -> T;
    +}
    +
    +
    +

    4.13:20 +Shape is a supertrait of Circle.

    +
    trait Shape {
    +    fn area(&self) -> f64;
    +}
    +
    +
    +

    4.13:21 +Circle is a subtrait of Shape.

    +
    trait Circle: Shape {
    +    fn radius(&self) -> f64;
    +}
    +
    +
    +
    +

    4.13.1. Object Safety

    +

    Legality Rules

    +

    4.13.1:1 +A trait is object safe when:

    + +

    4.13.1:7 +An associated function is object safe when it is either an +object safe dispatchable function or an object safe +non-dispatchable function.

    +

    4.13.1:8 +A dispatchable function is object safe when:

    + +

    4.13.1:12 +A function is object safe when it specifies a +core::marker::Sized trait bound for Self in a +type bound predicate.

    +
    +
    +
    +

    4.14. Trait and Lifetime Bounds

    +

    Syntax

    +
    TypeBoundList ::=
    +    TypeBound (+ TypeBound)* +?
    +
    +TypeBound ::=
    +    LifetimeIndication
    +  | ParenthesizedTraitBound
    +  | TraitBound
    +
    +LifetimeIndication ::=
    +    Lifetime
    +  | '_
    +  | 'static
    +
    +LifetimeIndicationList ::=
    +    LifetimeIndication (+ LifetimeIndication)* +?
    +
    +ParenthesizedTraitBound ::=
    +    ( TraitBound )
    +
    +TraitBound ::=
    +    ?? ForGenericParameterList? TypePath
    +
    +ForGenericParameterList ::=
    +    for GenericParameterList
    +

    Legality Rules

    +

    4.14:1 +A bound imposes a constraint on a generic parameter by limiting the +set of possible generic substitutions.

    +

    4.14:2 +A bound does not impose a constraint on a generic parameter of a +type alias unless it is an associated item.

    +

    4.14:3 +A lifetime bound is a bound that imposes a constraint on the +lifetimes of generic parameters.

    +

    4.14:4 +A trait bound is a bound that imposes a constraint on the +traits of generic parameters.

    +

    4.14:5 +A ForGenericParameterList shall not specify ConstantParameters or +TypeParameters.

    +

    4.14:6 +A higher-ranked trait bound is a bound that specifies an infinite +list of bounds for all possible lifetimes specified by the +ForGenericParameterList.

    +

    4.14:7 +An opt-out trait bound is a trait bound with Punctuation ? +that nullifies an implicitly added trait bound.

    +

    4.14:8 +An outlives bound is a trait bound which requires that a +lifetime parameter or type outlives a lifetime parameter.

    +

    4.14:9 +Outlives bound 'a: 'b indicates that 'a outlives 'b.

    +

    4.14:10 +Outlives bound T: 'a indicates that all lifetime parameters of +T outlive 'a.

    +

    4.14:11 +An implied bound is a bound that is not expressed in syntax, but is +is the byproduct of relations between lifetime parameters and +function parameters, between lifetime parameters and a +return type, and between lifetime parameters and fields.

    +

    4.14:12 +A reference of the form &'a T, where 'a is a +lifetime parameter and T is a type, yields implied bound +T: 'a.

    +

    4.14:13 +If an outlives bound applies to the type of a field, then this +bound also applies to the related abstract data type as an +implied bound.

    +

    4.14:14 +If an outlives bound applies to the type of a function parameter +or to a return type, then this bound also applies to the related +function as an implied bound.

    +

    Examples

    +
    fn draw<T: Shape>(shape: T) { ... }
    +
    +
    +
    +

    4.14.1. Lifetimes

    +

    Syntax

    +
    Lifetime ::=
    +    ' NonKeywordIdentifier
    +
    +AttributedLifetime ::=
    +    OuterAttributeOrDoc* Lifetime
    +
    +AttributedLifetimeList ::=
    +    AttributedLifetime (, AttributedLifetime)* ,?
    +

    Legality Rules

    +

    4.14.1:1 +A lifetime specifies the expected longevity of a value.

    +

    4.14.1:2 +A lifetime bound shall apply to types and other lifetimes.

    +

    Examples

    +
    &'a i32
    +&'static Shape
    +
    +
    +

    4.14.1:3 +See Paragraph 4.12. for the declaration of Shape.

    +
    +
    +

    4.14.2. Subtyping and Variance

    +

    Legality Rules

    +

    4.14.2:1 +Subtyping is a property of types, allowing one type to be used +where another type is expected.

    +

    4.14.2:2 +Variance is a property of lifetime parameters and +type parameters that describes the circumstances under which a +generic type is a subtype of an instantiation of itself with +different generic arguments.

    +

    4.14.2:3 +A type is its own subtype.

    +

    4.14.2:4 +F<T> is said to be

    +
      +
    • 4.14.2:5 +Covariant over T, when T being a subtype of U implies +that F<T> is a subtype of F<U>, or

    • +
    • 4.14.2:6 +Contravariant over T, when T being a subtype of U +implies that F<U> is a subtype of F<T>, or

    • +
    • 4.14.2:7 +Invariant over T.

    • +
    +

    4.14.2:8 +Variance is determined as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.14.2:9

    Type

    Variance in ‘a

    Variance in T

    4.14.2:10

    &'a T

    covariant

    covariant

    4.14.2:11

    &'a mut T

    covariant

    invariant

    4.14.2:12

    *const T

    covariant

    4.14.2:13

    *mut T

    invariant

    4.14.2:14

    [T]

    covariant

    4.14.2:15

    [T; N]

    covariant

    4.14.2:16

    fn() -> T

    covariant

    4.14.2:17

    fn(T) -> ()

    contravariant

    4.14.2:18

    fn(T) -> T

    invariant

    4.14.2:19

    core::call::UnsafeCell<T>

    invariant

    4.14.2:20

    core::marker::PhantomData<T>

    covariant

    4.14.2:21

    dyn Trait<T> + 'a

    covariant

    invariant

    +

    4.14.2:22 +A trait is invariant in all inputs, including the Self parameter.

    +

    4.14.2:23 +Lifetime parameters and type parameters are subject to +variance.

    +

    4.14.2:24 +The variance of a generic parameter of an abstract data type or +an tuple type is determined as follows:

    +
      +
    1. 4.14.2:25 +For each generic parameter G:

      +
        +
      1. 4.14.2:26 +Initialize variance V of the generic parameter to any.

      2. +
      3. 4.14.2:27 +For each field of the abstract data type or the +tuple type:

        +
          +
        1. 4.14.2:28 +If field type T uses G, then

          +
            +
          1. 4.14.2:29 +If V is any, set V to the variance of T over +G.

          2. +
          3. 4.14.2:30 +Otherwise if V and the variance of T over G differ, +set V to invariant.

          4. +
          +
        2. +
        +
      4. +
      5. 4.14.2:31 +It is a static error if variance V is any.

      6. +
      +
    2. +
    +

    4.14.2:32 +Expressions and statements may impose subtyping requirements +on their subexpressions. Such requirements are applied after +type inference, on the inferred types of the respective +expressions and patterns.

    +

    4.14.2:33 +It is a static error if any subtyping requirements are not met.

    +

    4.14.2:34 +The subtyping requirements for statements are as follows:

    + +

    4.14.2:38 +The subtyping requirements for expressions are as follows:

    + +

    4.14.2:46 +Any type coercion resulting in a method invocation imposes the same +subtyping requirements as an explicit invocation of that method would.

    +
    +
    +

    4.14.3. Lifetime Elision

    +

    Legality Rules

    +

    4.14.3:1 +Lifetime elision is a set of rules that automatically insert +lifetime parameters and/or lifetime arguments when they are +elided in the source code.

    +

    4.14.3:2 +A lifetime may be elided either implicitly or explicitly.

    +

    4.14.3:3 +A lifetime is elided explicitly if it is the '_ lifetime.

    +

    4.14.3:4 +A lifetime is elided implicitly if it is absent.

    +

    4.14.3:5 +Lifetime elision rules are introduced by certain constructs and may +be nested.

    +

    4.14.3:6 +An elided lifetime is subject to the set of lifetime elision rules +introduced by the innermost construct containing the elided lifetime.

    +

    4.14.3:7 +It is a static error to elide a lifetime in a position where no +lifetime elision rules are active.

    +

    4.14.3:8 +Lifetimes cannot be implicitly elided within impl trait types. +If no lifetime bound is present, the impl trait type is not considered +to be bound by any lifetime.

    +
    +

    4.14.3.1. Function Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.1:1 +Function lifetime elision is a form of lifetime elision that applies +to functions, function pointer type parameters, and paths +that resolve to one of the core::ops::Fn, core::ops::FnMut, and +core::ops::FnOnce traits.

    +

    4.14.3.1:2 +An input lifetime is one of the following lifetimes:

    + +

    4.14.3.1:7 +An output lifetime is one of the following lifetimes:

    + +

    4.14.3.1:11 +Lifetime elision proceeds as follows:

    +
      +
    1. 4.14.3.1:12 +Each elided input lifetime is a distinct lifetime parameter in +its related construct.

    2. +
    3. 4.14.3.1:13 +If a construct has exactly one input lifetime, then that +lifetime is assigned to all elided output lifetimes.

    4. +
    5. 4.14.3.1:14 +If a function has a self parameter of the form &self, +&mut self, or self: T where T is a type with a +lifetime, then the lifetime of the self parameter is assigned +to all elided output lifetimes.

    6. +
    7. 4.14.3.1:15 +Otherwise this is a static error.

    8. +
    +

    Examples

    +

    4.14.3.1:16 +Given function f of the form

    +
    fn f <'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command;
    +
    +
    +

    4.14.3.1:17 +its lifetime elided form is

    +
    fn f <T: ToCStr>(&mut self, args: &[T]) -> &mut Command;
    +
    +
    +
    +
    +

    4.14.3.2. Static Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.2:1 +Static lifetime elision is a form of lifetime elision that applies to +the type ascription of constants and statics.

    +

    4.14.3.2:2 +An elided lifetime of a reference type or path in the +type specification of a constant or static is inferred to be the +'static' lifetime.

    +

    4.14.3.2:3 +The lifetime of an associated implementation constant shall not be +elided.

    +

    4.14.3.2:4 +The lifetime of an associated trait constant shall not be elided.

    +

    Examples

    +

    4.14.3.2:5 +Given static S of the form

    +
    static S: &[&usize] = &[];
    +
    +
    +

    4.14.3.2:6 +its lifetime elided form is

    +
    static S: &'static [&'static usize] = &[];
    +
    +
    +
    +
    +

    4.14.3.3. Trait Object Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.3:1 +Trait object lifetime elision is a form of lifetime elision that +applies to trait object types.

    +

    4.14.3.3:2 +An elided lifetime of a trait object type is inferred as follows:

    + +

    Examples

    +

    4.14.3.3:10 +Given type alias T of the form

    +
    type T<'a> = &'a dyn Trait;
    +
    +
    +

    4.14.3.3:11 +its lifetime elided form is

    +
    type T<'a> = &'a (dyn Trait + 'a);
    +
    +
    +
    +
    +

    4.14.3.4. Impl Header Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.4:1 +Impl header lifetime elision is a form of lifetime elision that +applies to the implementing type and implemented trait (if any) of an +implementation.

    +

    4.14.3.4:2 +The impl header lifetime elision rules are as follows:

    + +

    Examples

    +

    4.14.3.4:6 +Given an implementation of the form

    +
    impl Trait<&u8, Strukt<'_>> for &i32 {}
    +
    +
    +

    4.14.3.4:7 +its lifetime elided form is

    +
    impl<'a, 'b, 'c> Trait<&'a u8, Strukt<'b>> for &'c i32 {}
    +
    +
    +

    4.14.3.4:8 +where 'a, 'b, and 'c are anonymous lifetime parameters that +cannot be named by user-written code.

    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/undefined-behavior.html b/undefined-behavior.html new file mode 100644 index 00000000..08431e44 --- /dev/null +++ b/undefined-behavior.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + C. List of undefined behavior — Ferrocene Language Specification + + + + + + + + + + + + + +
    + +
    + +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/unsafety.html b/unsafety.html new file mode 100644 index 00000000..fd842933 --- /dev/null +++ b/unsafety.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + 19. Unsafety — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    19. Unsafety

    +

    Legality Rules

    +

    19:1 +Unsafety is the presence of unsafe operations and unsafe trait +implementations in program text.

    +

    19:2 +An unsafe operation is an operation that may result in +undefined behavior that is not diagnosed as a static error. +Unsafe operations are referred to as unsafe Rust.

    +

    19:3 +The unsafe operations are:

    + +

    19:10 +An unsafe context is either an unsafe block or an +unsafe function.

    +

    19:11 +An unsafe operation shall be used only within an unsafe context.

    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 86eee147f7d488d77cc317902c4e15ce7e7d1e80

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/values.html b/values.html new file mode 100644 index 00000000..accd5d34 --- /dev/null +++ b/values.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + 7. Values — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    7. Values

    +

    Legality Rules

    +

    7:1 +A value is either a literal or the result of a computation, that may +be stored in a memory location, and interpreted based on some type.

    +

    7:2 +Two values overlap when

    + +

    Undefined Behavior

    +

    7:7 +It is undefined behavior to create a value from uninitialized memory unless +the type of the value is a union type.

    +
    +

    7.1. Constants

    +

    Syntax

    +
    ConstantDeclaration ::=
    +    const (Name | _) TypeAscription ConstantInitializer? ;
    +
    +ConstantInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    7.1:1 +A constant is an immutable value whose uses are substituted by +the value.

    +

    7.1:2 +An unnamed constant is a constant declared with character 0x5F (low +line).

    +

    7.1:3 +The type specification of a constant shall have 'static +lifetime.

    +

    7.1:4 +The type of a constant shall implement the core::marker::Sized +trait.

    +

    7.1:5 +A constant initializer is a construct that provides the value of +its related constant.

    +

    7.1:6 +A constant shall have a constant initializer, unless it is an +associated trait constant.

    +

    7.1:7 +The expression of a constant initializer shall be a +constant expression.

    +

    7.1:8 +The value of a constant is determined by evaluating its +constant initializer.

    +

    7.1:9 +A use of a constant is a value expression and creates a copy of the +constant’s value.

    +

    Dynamic Semantics

    +

    7.1:10 +The elaboration of a constant evaluates its constant initializer.

    +

    7.1:11 +A path that refers to a constant is replaced with the value of +the constant.

    +

    Examples

    +
    const ZERO: u32 = 0;
    +
    +
    +
    +
    +

    7.2. Statics

    +

    Syntax

    +
    StaticDeclaration ::=
    +    static mut? Name TypeAscription StaticInitializer? ;
    +
    +StaticInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    7.2:1 +A static is a value that is associated with a specific memory +location.

    +

    7.2:2 +A static defined within a generic function exists once in the +output executable or library.

    +

    7.2:3 +The type specification of a static shall have 'static +lifetime.

    +

    7.2:4 +The type of a static shall implement the core::marker::Sized +trait.

    +

    7.2:5 +A mutable static is a static with keyword mut whose +value can be modified.

    +

    7.2:6 +Access to a mutable static shall require unsafe context.

    +

    7.2:7 +An immutable static is a static whose value cannot be modified.

    +

    7.2:8 +The type of an immutable static shall implement the +core::marker::Sync trait.

    +

    7.2:9 +A static initializer is a construct that provides the value of +its related static.

    +

    7.2:10 +A static shall have a static initializer, unless it is an +external static.

    +

    7.2:11 +The expression of a static initializer shall be a +constant expression.

    +

    7.2:12 +A use of a static is a place expression referring to the unique +location of the static.

    +

    Dynamic Semantics

    +

    7.2:13 +The elaboration of a static evaluates its static initializer.

    +

    7.2:14 +All paths that refer to a static refer to the same memory location.

    +

    7.2:15 +A static is not dropped during destruction.

    +

    7.2:16 +A mutable static whose type is not subject to +interior mutability may reside in read-only memory.

    +

    Undefined Behavior

    +

    7.2:17 +It is undefined behavior to mutate an immutable static whose type is +not subject to interior mutability.

    +

    Examples

    +
    static mut GLOBAL: u32 = 0;
    +
    +
    +
    +
    +

    7.3. Temporaries

    +

    Legality Rules

    +

    7.3:1 +A temporary is an anonymous variable produced by some intermediate +computation.

    +
    +
    +

    7.4. Variables

    +

    Legality Rules

    +

    7.4:1 +A variable is a placeholder for a value that is allocated on the +stack.

    +

    7.4:2 +The following constructs are variables:

    + +

    7.4:5 +A variable shall be used only after it has been initialized through all +reachable control flow paths up to the point of its usage.

    +

    Dynamic Semantics

    +

    7.4:6 +A variable is not initialized when allocated.

    +
    +

    7.4.1. Constant Promotion

    +

    Legality Rules

    +

    7.4.1:1 +Constant promotion is the process of converting a value expression +into a constant.

    +

    7.4.1:2 +Constant promotion is possible only when

    + +

    7.4.1:8 +Constant promotion is always possible for expression &mut [], +promoting the produced mutable borrow to have 'static lifetime.

    +

    7.4.1:9 +Constant promotion proceeds as follows:

    +
      +
    1. 7.4.1:10 +An anonymous constant is created, whose constant initializer holds +the result of the value expression.

    2. +
    3. 7.4.1:11 +The value of the anonymous constant is borrowed with +'static lifetime.

    4. +
    +
    +
    +
    + + +
    + +
    +
    + + + \ No newline at end of file