This commit is contained in:
edg-l 2024-05-05 13:11:20 +00:00
parent 4cc2814406
commit 9e632b562f
79 changed files with 49008 additions and 45925 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `lower_type` fn in crate `edlang_lowering`."><title>lower_type in edlang_lowering - Rust</title><script> if (window.location.protocol !== "file:") document.write(`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2">`)</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-e935ef01ae1c1829.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="edlang_lowering" data-themes="" data-resource-suffix="" data-rustdoc-version="1.78.0 (9b00956e5 2024-04-29)" data-channel="1.78.0" data-search-js="search-42d8da7a6b9792c2.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-4c98445ec4002617.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-12cf3b4f4f9dc36d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../edlang_lowering/index.html">edlang_lowering</a><span class="version">0.0.1-alpha.17</span></h2></div><div class="sidebar-elems"></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../edlang_lowering/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">edlang_lowering</a>::<wbr><a class="fn" href="#">lower_type</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/edlang_lowering/lib.rs.html#1292-1387">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub fn lower_type(
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../edlang_lowering/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Function <a href="index.html">edlang_lowering</a>::<wbr><a class="fn" href="#">lower_type</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/edlang_lowering/lib.rs.html#1398-1493">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub fn lower_type(
ctx: &amp;BuildCtx,
t: &amp;<a class="struct" href="../edlang_ast/struct.Type.html" title="struct edlang_ast::Type">Type</a>,
module_id: <a class="struct" href="../edlang_ir/struct.DefId.html" title="struct edlang_ir::DefId">DefId</a>

View file

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `edlang_lowering` crate."><title>edlang_lowering - Rust</title><script> if (window.location.protocol !== "file:") document.write(`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2">`)</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-e935ef01ae1c1829.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="edlang_lowering" data-themes="" data-resource-suffix="" data-rustdoc-version="1.78.0 (9b00956e5 2024-04-29)" data-channel="1.78.0" data-search-js="search-42d8da7a6b9792c2.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-4c98445ec4002617.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-12cf3b4f4f9dc36d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../edlang_lowering/index.html">edlang_lowering</a><span class="version">0.0.1-alpha.17</span></h2></div><div class="sidebar-elems"><ul class="block">
<li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#modules">Modules</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../edlang_lowering/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">edlang_lowering</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/edlang_lowering/lib.rs.html#1-1387">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="errors/index.html" title="mod edlang_lowering::errors">errors</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.lower_modules.html" title="fn edlang_lowering::lower_modules">lower_modules</a></div></li><li><div class="item-name"><a class="fn" href="fn.lower_type.html" title="fn edlang_lowering::lower_type">lower_type</a></div></li></ul></section></div></main></body></html>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../edlang_lowering/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">edlang_lowering</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/edlang_lowering/lib.rs.html#1-1493">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="errors/index.html" title="mod edlang_lowering::errors">errors</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.lower_modules.html" title="fn edlang_lowering::lower_modules">lower_modules</a></div></li><li><div class="item-name"><a class="fn" href="fn.lower_type.html" title="fn edlang_lowering::lower_type">lower_type</a></div></li></ul></section></div></main></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,13 +1,13 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `__ToTriple` trait in crate `edlang_parser`."><title>__ToTriple in edlang_parser::grammar::grammar - Rust</title><script> if (window.location.protocol !== "file:") document.write(`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2">`)</script><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e935ef01ae1c1829.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="edlang_parser" data-themes="" data-resource-suffix="" data-rustdoc-version="1.78.0 (9b00956e5 2024-04-29)" data-channel="1.78.0" data-search-js="search-42d8da7a6b9792c2.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../../static.files/storage-4c98445ec4002617.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-12cf3b4f4f9dc36d.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../edlang_parser/index.html">edlang_parser</a><span class="version">0.0.1-alpha.17</span></h2></div><h2 class="location"><a href="#">__ToTriple</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.to_triple">to_triple</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-__ToTriple%3C'module_name%3E-for-(usize,+Token,+usize)">(usize, Token, usize)</a></li><li><a href="#impl-__ToTriple%3C'module_name%3E-for-Result%3C(usize,+Token,+usize),+LexicalError%3E">Result&lt;(usize, Token, usize), LexicalError&gt;</a></li></ul><h3><a href="#object-safety">Object Safety</a></h3><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In edlang_parser::grammar::grammar</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../../edlang_parser/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="../../index.html">edlang_parser</a>::<wbr><a href="../index.html">grammar</a>::<wbr><a href="index.html">grammar</a>::<wbr><a class="trait" href="#">__ToTriple</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407236-407239">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait __ToTriple&lt;'module_name&gt; {
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../../edlang_parser/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="../../index.html">edlang_parser</a>::<wbr><a href="../index.html">grammar</a>::<wbr><a href="index.html">grammar</a>::<wbr><a class="trait" href="#">__ToTriple</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408667-408670">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait __ToTriple&lt;'module_name&gt; {
// Required method
fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
value: Self
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;;
}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><section id="tymethod.to_triple" class="method"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407238">source</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><section id="tymethod.to_triple" class="method"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408669">source</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
value: Self
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;</h4></section></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.78.0/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-__ToTriple%3C'module_name%3E-for-(usize,+Token,+usize)" class="impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407241-407246">source</a><a href="#impl-__ToTriple%3C'module_name%3E-for-(usize,+Token,+usize)" class="anchor">§</a><h3 class="code-header">impl&lt;'module_name&gt; <a class="trait" href="trait.__ToTriple.html" title="trait edlang_parser::grammar::grammar::__ToTriple">__ToTriple</a>&lt;'module_name&gt; for (<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>)</h3></section></summary><div class="impl-items"><section id="method.to_triple" class="method trait-impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407243-407245">source</a><a href="#method.to_triple" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;</h4></section></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.78.0/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-__ToTriple%3C'module_name%3E-for-(usize,+Token,+usize)" class="impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408672-408677">source</a><a href="#impl-__ToTriple%3C'module_name%3E-for-(usize,+Token,+usize)" class="anchor">§</a><h3 class="code-header">impl&lt;'module_name&gt; <a class="trait" href="trait.__ToTriple.html" title="trait edlang_parser::grammar::grammar::__ToTriple">__ToTriple</a>&lt;'module_name&gt; for (<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>)</h3></section></summary><div class="impl-items"><section id="method.to_triple" class="method trait-impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408674-408676">source</a><a href="#method.to_triple" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
value: Self
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-__ToTriple%3C'module_name%3E-for-Result%3C(usize,+Token,+usize),+LexicalError%3E" class="impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407247-407255">source</a><a href="#impl-__ToTriple%3C'module_name%3E-for-Result%3C(usize,+Token,+usize),+LexicalError%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'module_name&gt; <a class="trait" href="trait.__ToTriple.html" title="trait edlang_parser::grammar::grammar::__ToTriple">__ToTriple</a>&lt;'module_name&gt; for <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;</h3></section></summary><div class="impl-items"><section id="method.to_triple-1" class="method trait-impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#407249-407254">source</a><a href="#method.to_triple-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-__ToTriple%3C'module_name%3E-for-Result%3C(usize,+Token,+usize),+LexicalError%3E" class="impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408678-408686">source</a><a href="#impl-__ToTriple%3C'module_name%3E-for-Result%3C(usize,+Token,+usize),+LexicalError%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'module_name&gt; <a class="trait" href="trait.__ToTriple.html" title="trait edlang_parser::grammar::grammar::__ToTriple">__ToTriple</a>&lt;'module_name&gt; for <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;</h3></section></summary><div class="impl-items"><section id="method.to_triple-1" class="method trait-impl"><a class="src rightside" href="../../../src/edlang_parser/home/runner/work/edlang/edlang/target/debug/build/edlang_parser-9a1b93b75627503f/out/grammar.rs.html#408680-408685">source</a><a href="#method.to_triple-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.to_triple" class="fn">to_triple</a>(
value: Self
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.78.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>), <a class="enum" href="../../../lalrpop_util/enum.ParseError.html" title="enum lalrpop_util::ParseError">ParseError</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.usize.html">usize</a>, <a class="enum" href="../../tokens/enum.Token.html" title="enum edlang_parser::tokens::Token">Token</a>, <a class="enum" href="../../lexer/enum.LexicalError.html" title="enum edlang_parser::lexer::LexicalError">LexicalError</a>&gt;&gt;</h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../../trait.impl/edlang_parser/grammar/grammar/trait.__ToTriple.js" data-ignore-extern-crates="std,core" async></script></section></div></main></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -236,11 +236,11 @@ HIR value. It is just an abbreviation for a common character class.</p>
ClassBytesRange::new(<span class="number">0x00</span>, <span class="number">0xFF</span>),
])));
<span class="macro">assert_eq!</span>(expected, hir);</code></pre></div>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#impl-Clone-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.78.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#776-780">source</a><a href="#impl-Debug-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#777-779">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.78.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.78.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#788-792">source</a><a href="#impl-Display-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="docblock"><p>Print a display representation of this Hir.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#impl-Clone-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.78.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.78.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#776-780">source</a><a href="#impl-Debug-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#777-779">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.78.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.78.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#788-792">source</a><a href="#impl-Display-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="docblock"><p>Print a display representation of this Hir.</p>
<p>The result of this is a valid regular expression pattern string.</p>
<p>This implementation uses constant stack space and heap space proportional
to the size of the <code>Hir</code>.</p>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#789-791">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.78.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.78.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Drop-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#1917-1957">source</a><a href="#impl-Drop-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="docblock"><p>A custom <code>Drop</code> impl is used for <code>HirKind</code> such that it uses constant stack
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#789-791">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.78.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.78.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.78.0/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Drop-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#1917-1957">source</a><a href="#impl-Drop-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="docblock"><p>A custom <code>Drop</code> impl is used for <code>HirKind</code> such that it uses constant stack
space but heap space proportional to the depth of the total <code>Hir</code>.</p>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#1918-1956">source</a><a href="#method.drop" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/ops/drop/trait.Drop.html#tymethod.drop" class="fn">drop</a>(&amp;mut self)</h4></section></summary><div class='docblock'>Executes the destructor for this type. <a href="https://doc.rust-lang.org/1.78.0/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-Hir" class="impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#impl-PartialEq-for-Hir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.78.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../../src/regex_syntax/hir/mod.rs.html#204">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="struct" href="struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.78.0/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.78.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.78.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -268,6 +268,7 @@
<a href="#266" id="266">266</a>
<a href="#267" id="267">267</a>
<a href="#268" id="268">268</a>
<a href="#269" id="269">269</a>
</pre></div><pre class="rust"><code><span class="kw">use </span>std::collections::BTreeMap;
<span class="kw">pub use </span>edlang_span::Span;
@ -309,6 +310,7 @@
</span><span class="kw">pub enum </span>PathSegment {
Field(Ident),
Index { value: Expression, span: Span },
Method { value: FnCallExpr, span: Span },
}
<span class="attr">#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]

View file

@ -556,6 +556,7 @@
<a href="#554" id="554">554</a>
<a href="#555" id="555">555</a>
<a href="#556" id="556">556</a>
<a href="#557" id="557">557</a>
</pre></div><pre class="rust"><code><span class="comment">// Based on a cfg
</span><span class="kw">use </span>std::{
@ -669,6 +670,7 @@
<span class="attr">#[derive(Debug, Clone)]
</span><span class="kw">pub struct </span>AdtBody {
<span class="kw">pub </span>def_id: DefId,
<span class="kw">pub </span>mod_id: DefId,
<span class="kw">pub </span>is_pub: bool,
<span class="kw">pub </span>name: String,
<span class="kw">pub </span>variants: Vec&lt;AdtVariant&gt;,

View file

@ -1387,6 +1387,112 @@
<a href="#1385" id="1385">1385</a>
<a href="#1386" id="1386">1386</a>
<a href="#1387" id="1387">1387</a>
<a href="#1388" id="1388">1388</a>
<a href="#1389" id="1389">1389</a>
<a href="#1390" id="1390">1390</a>
<a href="#1391" id="1391">1391</a>
<a href="#1392" id="1392">1392</a>
<a href="#1393" id="1393">1393</a>
<a href="#1394" id="1394">1394</a>
<a href="#1395" id="1395">1395</a>
<a href="#1396" id="1396">1396</a>
<a href="#1397" id="1397">1397</a>
<a href="#1398" id="1398">1398</a>
<a href="#1399" id="1399">1399</a>
<a href="#1400" id="1400">1400</a>
<a href="#1401" id="1401">1401</a>
<a href="#1402" id="1402">1402</a>
<a href="#1403" id="1403">1403</a>
<a href="#1404" id="1404">1404</a>
<a href="#1405" id="1405">1405</a>
<a href="#1406" id="1406">1406</a>
<a href="#1407" id="1407">1407</a>
<a href="#1408" id="1408">1408</a>
<a href="#1409" id="1409">1409</a>
<a href="#1410" id="1410">1410</a>
<a href="#1411" id="1411">1411</a>
<a href="#1412" id="1412">1412</a>
<a href="#1413" id="1413">1413</a>
<a href="#1414" id="1414">1414</a>
<a href="#1415" id="1415">1415</a>
<a href="#1416" id="1416">1416</a>
<a href="#1417" id="1417">1417</a>
<a href="#1418" id="1418">1418</a>
<a href="#1419" id="1419">1419</a>
<a href="#1420" id="1420">1420</a>
<a href="#1421" id="1421">1421</a>
<a href="#1422" id="1422">1422</a>
<a href="#1423" id="1423">1423</a>
<a href="#1424" id="1424">1424</a>
<a href="#1425" id="1425">1425</a>
<a href="#1426" id="1426">1426</a>
<a href="#1427" id="1427">1427</a>
<a href="#1428" id="1428">1428</a>
<a href="#1429" id="1429">1429</a>
<a href="#1430" id="1430">1430</a>
<a href="#1431" id="1431">1431</a>
<a href="#1432" id="1432">1432</a>
<a href="#1433" id="1433">1433</a>
<a href="#1434" id="1434">1434</a>
<a href="#1435" id="1435">1435</a>
<a href="#1436" id="1436">1436</a>
<a href="#1437" id="1437">1437</a>
<a href="#1438" id="1438">1438</a>
<a href="#1439" id="1439">1439</a>
<a href="#1440" id="1440">1440</a>
<a href="#1441" id="1441">1441</a>
<a href="#1442" id="1442">1442</a>
<a href="#1443" id="1443">1443</a>
<a href="#1444" id="1444">1444</a>
<a href="#1445" id="1445">1445</a>
<a href="#1446" id="1446">1446</a>
<a href="#1447" id="1447">1447</a>
<a href="#1448" id="1448">1448</a>
<a href="#1449" id="1449">1449</a>
<a href="#1450" id="1450">1450</a>
<a href="#1451" id="1451">1451</a>
<a href="#1452" id="1452">1452</a>
<a href="#1453" id="1453">1453</a>
<a href="#1454" id="1454">1454</a>
<a href="#1455" id="1455">1455</a>
<a href="#1456" id="1456">1456</a>
<a href="#1457" id="1457">1457</a>
<a href="#1458" id="1458">1458</a>
<a href="#1459" id="1459">1459</a>
<a href="#1460" id="1460">1460</a>
<a href="#1461" id="1461">1461</a>
<a href="#1462" id="1462">1462</a>
<a href="#1463" id="1463">1463</a>
<a href="#1464" id="1464">1464</a>
<a href="#1465" id="1465">1465</a>
<a href="#1466" id="1466">1466</a>
<a href="#1467" id="1467">1467</a>
<a href="#1468" id="1468">1468</a>
<a href="#1469" id="1469">1469</a>
<a href="#1470" id="1470">1470</a>
<a href="#1471" id="1471">1471</a>
<a href="#1472" id="1472">1472</a>
<a href="#1473" id="1473">1473</a>
<a href="#1474" id="1474">1474</a>
<a href="#1475" id="1475">1475</a>
<a href="#1476" id="1476">1476</a>
<a href="#1477" id="1477">1477</a>
<a href="#1478" id="1478">1478</a>
<a href="#1479" id="1479">1479</a>
<a href="#1480" id="1480">1480</a>
<a href="#1481" id="1481">1481</a>
<a href="#1482" id="1482">1482</a>
<a href="#1483" id="1483">1483</a>
<a href="#1484" id="1484">1484</a>
<a href="#1485" id="1485">1485</a>
<a href="#1486" id="1486">1486</a>
<a href="#1487" id="1487">1487</a>
<a href="#1488" id="1488">1488</a>
<a href="#1489" id="1489">1489</a>
<a href="#1490" id="1490">1490</a>
<a href="#1491" id="1491">1491</a>
<a href="#1492" id="1492">1492</a>
<a href="#1493" id="1493">1493</a>
</pre></div><pre class="rust"><code><span class="kw">use </span>std::collections::HashMap;
<span class="kw">use </span>ast::{BinaryOp, ModuleStatement, Span, WhileStmt};
@ -1571,6 +1677,7 @@
<span class="kw">let </span>body = ctx.body.modules.get(<span class="kw-2">&amp;</span>module_id).unwrap();
<span class="kw-2">*</span>body.symbols.structs.get(<span class="kw-2">&amp;</span>info.name.name).unwrap()
},
mod_id: module_id,
is_pub: <span class="bool-val">true</span>, <span class="comment">// todo struct pub
</span>name: info.name.name.clone(),
variants: Vec::new(),
@ -1980,6 +2087,7 @@
}
}
ast::PathSegment::Index { .. } =&gt; <span class="macro">todo!</span>(),
ast::PathSegment::Method { .. } =&gt; <span class="macro">todo!</span>(),
}
}
@ -2389,6 +2497,8 @@
<span class="kw">let </span><span class="kw-2">mut </span>args = Vec::new();
<span class="macro">assert_eq!</span>(args_ty.len(), info.params.len(), <span class="string">"param length mismatch"</span>);
<span class="kw">for </span>(arg, arg_ty) <span class="kw">in </span>info.params.iter().zip(args_ty) {
<span class="kw">let </span>(rvalue, _rvalue_ty, _span) = lower_expr(builder, arg, <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>arg_ty))<span class="question-mark">?</span>;
args.push(rvalue);
@ -2645,36 +2755,138 @@
)<span class="question-mark">?</span>;
<span class="kw">let </span><span class="kw-2">mut </span>ty = builder.body.locals[local].ty.kind.clone();
<span class="kw">let </span><span class="kw-2">mut </span>projection = Vec::new();
<span class="kw">let </span><span class="kw-2">mut </span>place = Place {
local,
projection: Default::default(),
};
<span class="kw">for </span>extra <span class="kw">in </span><span class="kw-2">&amp;</span>info.extra {
<span class="kw">match </span>extra {
ast::PathSegment::Field(name) =&gt; {
<span class="comment">// is while fine? auto deref
</span><span class="kw">while let </span>TypeKind::Ref(<span class="kw">_</span>, inner) = ty {
projection.push(PlaceElem::Deref);
place.projection.push(PlaceElem::Deref);
ty = inner.kind;
}
<span class="kw">if let </span>TypeKind::Struct(id, _name) = ty {
<span class="kw">let </span>struct_body = builder.ctx.body.structs.get(<span class="kw-2">&amp;</span>id).unwrap();
<span class="kw">let </span>idx = <span class="kw-2">*</span>struct_body.name_to_idx.get(<span class="kw-2">&amp;</span>name.name).unwrap();
projection.push(PlaceElem::Field { field_idx: idx });
place.projection.push(PlaceElem::Field { field_idx: idx });
ty = struct_body.variants[idx].ty.kind.clone();
} <span class="kw">else </span>{
<span class="macro">unimplemented!</span>()
}
}
ast::PathSegment::Index { .. } =&gt; <span class="macro">todo!</span>(),
ast::PathSegment::Method { value, span } =&gt; {
<span class="comment">// is while fine? auto deref
</span><span class="kw">while let </span>TypeKind::Ref(<span class="kw">_</span>, inner) = ty {
place.projection.push(PlaceElem::Deref);
ty = inner.kind;
}
<span class="kw">if let </span>TypeKind::Struct(id, _name) = <span class="kw-2">&amp;</span>ty {
<span class="kw">let </span>struct_body = builder.ctx.body.structs.get(id).unwrap();
<span class="kw">let </span>fn_id = <span class="kw-2">*</span>builder
.ctx
.body
.modules
.get(<span class="kw-2">&amp;</span>struct_body.mod_id)
.unwrap()
.symbols
.methods
.get(id)
.unwrap()
.get(<span class="kw-2">&amp;</span>value.name.name)
.expect(<span class="string">"couldn't find method"</span>);
<span class="kw">let </span>(args_ty, ret_ty) = {
<span class="kw">if let </span><span class="prelude-val">Some</span>(x) = builder.ctx.body.function_signatures.get(<span class="kw-2">&amp;</span>fn_id).cloned() {
x
} <span class="kw">else </span>{
<span class="kw">let </span>(args, ret) = builder
.ctx
.unresolved_function_signatures
.get(<span class="kw-2">&amp;</span>fn_id)
.unwrap();
<span class="kw">let </span>args: Vec&lt;<span class="kw">_</span>&gt; = args
.iter()
.map(|x| lower_type(<span class="kw-2">&amp;</span>builder.ctx, x, builder.local_module))
.collect::&lt;<span class="prelude-ty">Result</span>&lt;Vec&lt;<span class="kw">_</span>&gt;, LoweringError&gt;&gt;()<span class="question-mark">?</span>;
<span class="kw">let </span>ret = ret
.as_ref()
.map(|x| lower_type(<span class="kw-2">&amp;</span>builder.ctx, x, builder.local_module))
.unwrap_or(<span class="prelude-val">Ok</span>(TypeInfo {
span: <span class="prelude-val">None</span>,
kind: TypeKind::Unit,
}))<span class="question-mark">?</span>;
builder
.ctx
.body
.function_signatures
.insert(fn_id, (args.clone(), ret.clone()));
(args, ret)
}
};
<span class="kw">let </span><span class="kw-2">mut </span>args = Vec::new();
<span class="macro">assert_eq!</span>(
args_ty.len() - <span class="number">1</span>,
value.params.len(),
<span class="string">"param length mismatch"
</span>);
<span class="kw">for </span>(arg, arg_ty) <span class="kw">in </span>value.params.iter().zip(<span class="kw-2">&amp;</span>args_ty[<span class="number">1</span>..]) {
<span class="kw">let </span>(rvalue, _rvalue_ty, _span) = lower_expr(builder, arg, <span class="prelude-val">Some</span>(arg_ty))<span class="question-mark">?</span>;
args.push(rvalue);
}
<span class="comment">// insert self
</span><span class="kw">match </span><span class="kw-2">&amp;</span>args_ty[<span class="number">0</span>].kind {
TypeKind::Ptr(is_mut, <span class="kw">_</span>) | TypeKind::Ref(is_mut, <span class="kw">_</span>) =&gt; {
args.insert(<span class="number">0</span>, RValue::Ref(<span class="kw-2">*</span>is_mut, Operand::Move(place), <span class="kw-2">*</span>span));
}
<span class="kw">_ </span>=&gt; {
args.insert(<span class="number">0</span>, RValue::Use(Operand::Move(place), <span class="kw-2">*</span>span));
}
}
<span class="kw">let </span>dest_local = builder.add_local(Local::temp(ret_ty.kind.clone()));
place = Place {
local: dest_local,
projection: Default::default(),
};
<span class="kw">let </span>target_block = builder.body.blocks.len() + <span class="number">1</span>;
<span class="comment">// todo: check if function is diverging such as exit().
</span><span class="kw">let </span>kind = Terminator::Call {
func: fn_id,
args,
destination: place.clone(),
target: <span class="prelude-val">Some</span>(target_block),
};
<span class="kw">let </span>statements = std::mem::take(<span class="kw-2">&amp;mut </span>builder.statements);
builder.body.blocks.push(BasicBlock {
statements: statements.into(),
terminator: kind,
terminator_span: <span class="prelude-val">Some</span>(<span class="kw-2">*</span>span),
});
ty = ret_ty.kind;
} <span class="kw">else </span>{
<span class="macro">unimplemented!</span>()
}
}
}
}
<span class="prelude-val">Ok</span>((
Place {
local,
projection: projection.into(), <span class="comment">// todo, array
</span>},
ty,
info.span,
))
<span class="prelude-val">Ok</span>((place, ty, info.span))
}
<span class="attr">#[allow(clippy::only_used_in_recursion)]

File diff suppressed because one or more lines are too long