"Fossies" - the Fresh Open Source Software Archive

Member "dmd2/html/d/phobos/dmd_ctfeexpr.html" (20 Nov 2020, 38836 Bytes) of package /linux/misc/dmd.2.094.2.linux.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 
    2 <!DOCTYPE html>
    3 <html>
    4   <head>
    5     <meta charset="UTF-8">
    6     <title>dmd.ctfeexpr</title>
    7     <style type="text/css" media="screen">
    8       html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
    9       blockquote, pre, a, abbr, address, cite, code, del, dfn, em, figure,
   10       img, ins, kbd, q, s, samp, small, strong, sub, sup, var, b, u, i, dl,
   11       dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption,
   12       tbody, tfoot, thead, tr, th, td {
   13         background: transparent none repeat scroll 0 0;
   14         border: 0 none;
   15         font-size: 100%;
   16         margin: 0;
   17         outline: 0 none;
   18         padding: 0;
   19         vertical-align: baseline;
   20       }
   21 
   22       h1 { font-size: 200%; }
   23       h2 { font-size: 160%; }
   24       h3 { font-size: 120%; }
   25       h4 { font-size: 100%; }
   26       h5 { font-size: 80%; }
   27       h6 { font-size: 80%; font-weight: normal; }
   28 
   29       ul, ol {
   30         margin: 1.4em 0;
   31       }
   32       ul ul, ol ol, ul ol, ol ul {
   33         margin-top: 0;
   34         margin-bottom: 0;
   35       }
   36       ul, ol {
   37         margin-left: 2.8em;
   38       }
   39 
   40       ol {
   41         list-style: decimal;
   42       }
   43       ol ol {
   44         list-style: lower-alpha;
   45       }
   46       ol ol ol {
   47         list-style: lower-roman;
   48       }
   49       ol ol ol ol {
   50         list-style: decimal;
   51       }
   52 
   53       blockquote {
   54         margin: 0.1em;
   55         margin-left: 1em;
   56         border-left: 2px solid #cccccc;
   57         padding-left: 0.7em;
   58       }
   59 
   60       .color_red { color: #dc322f; }
   61       .color_blue { color: #268bd2; }
   62       .color_green { color: #859901; }
   63       .color_yellow { color: #b58901; }
   64       .color_black { color: black; }
   65       .color_white { color: white; }
   66 
   67       .font_big {
   68         font-size: 1.2em;
   69       }
   70 
   71       .ddoc_section_h {
   72         font-weight: bold;
   73         font-size: 13px;
   74         line-height: 19.5px;
   75         margin-top: 11px;
   76         display: block;
   77       }
   78 
   79       body.dlang .dlang {
   80         display: inline-block;
   81       }
   82 
   83       body.dlang .declaration .dlang {
   84           display: block;
   85       }
   86 
   87       body.dlang .ddoc_header_anchor a.dlang {
   88         display: block;
   89         color: rgba(0, 136, 204, 1);
   90         text-decoration: none;
   91       }
   92 
   93       body.dlang .ddoc_header_anchor .code {
   94         color: rgba(0, 136, 204, 1);
   95       }
   96 
   97       #ddoc_main .module {
   98           border-color: currentColor rgba(233, 233, 233, 1) rgba(233, 233, 233, 1);
   99           border-style: none solid solid;
  100           border-width: 0 1px 1px;
  101           overflow-x: hidden;
  102           padding: 15px;
  103       }
  104 
  105       #ddoc_main .section .section {
  106         margin-top: 0;
  107       }
  108 
  109       #ddoc_main .ddoc_module_members_section {
  110           padding: 1px 0 0;
  111           transition: transform 0.3s ease 0s;
  112       }
  113 
  114       #ddoc_main .ddoc_member, #ddoc_main .ddoc_module_members section.intro {
  115           background: #fff none repeat scroll 0 0;
  116           list-style-type: none;
  117           width: 100%;
  118       }
  119 
  120       #ddoc_main .ddoc_header_anchor {
  121           font-size: 1.4em;
  122           transition: transform 0.3s ease 0s;
  123       }
  124 
  125       #ddoc_main .ddoc_header_anchor > .code {
  126           display: inline-block;
  127 
  128       }
  129 
  130       #ddoc_main .ddoc_decl {
  131         background-color: transparent;
  132         height: 100%;
  133         left: 0;
  134         top: 0;
  135         padding: 0;
  136         padding-left: 15px;
  137       }
  138 
  139       #ddoc_main .ddoc_decl .section, #ddoc_main .section.ddoc_sections {
  140         background: white none repeat scroll 0 0;
  141         margin: 0;
  142         padding: 5px;
  143         position: relative;
  144         border-radius: 5px;
  145       }
  146 
  147       #ddoc_main .ddoc_decl .section h4:first-of-type, #ddoc_main .section.ddoc_sections h4:first-of-type {
  148         font-size: 13px;
  149         line-height: 1.5;
  150         margin-top: 21px;
  151       }
  152 
  153       #ddoc_main .section .declaration {
  154           margin-top: 21px;
  155       }
  156 
  157       #ddoc_main .section .declaration .code {
  158           color: rgba(0, 0, 0, 1);
  159           margin-bottom: 15px;
  160           padding-bottom: 6px;
  161       }
  162 
  163       #ddoc_main .declaration div .para {
  164           margin-bottom: 0;
  165       }
  166 
  167       #ddoc_main .ddoc_params .graybox tr td:first-of-type {
  168         padding: 7px;
  169         text-align: right;
  170         vertical-align: top;
  171         word-break: normal;
  172         white-space: nowrap;
  173       }
  174 
  175       #ddoc_main .ddoc_params .graybox {
  176         border: 0 none;
  177       }
  178 
  179       #ddoc_main .ddoc_params .graybox td {
  180         border-color: rgba(214, 214, 214, 1);
  181       }
  182 
  183       #ddoc_main .ddoc_params .graybox tr:first-child > td {
  184         border-top: 0 none;
  185       }
  186 
  187       #ddoc_main .ddoc_params .graybox tr:last-child > td {
  188         border-bottom: 0 none;
  189       }
  190 
  191       #ddoc_main .ddoc_params .graybox tr > td:first-child {
  192         border-left: 0 none;
  193       }
  194 
  195       #ddoc_main .ddoc_params .graybox tr > td:last-child {
  196         border-right: 0 none;
  197         width: 100%;
  198       }
  199 
  200       #ddoc_main em.term, #ddoc_main em.term .code {
  201         color: rgba(65, 65, 65, 1);
  202         font-size: 12px;
  203         font-style: italic;
  204         line-height: 1.5;
  205       }
  206 
  207       #ddoc_main .see-also {
  208         cursor: pointer;
  209         font-family: Menlo,monospace;
  210       }
  211 
  212       #ddoc_main .ddoc_decl .section > div:last-of-type {
  213         margin-bottom: 15px;
  214       }
  215 
  216       #ddoc_main .ddoc_member, #ddoc_main .ddoc_module_members {
  217           transition: transform 0.3s ease 0s;
  218       }
  219 
  220       #ddoc_main .code_sample {
  221         background: inherit;
  222       }
  223 
  224       #ddoc_main .declaration .code-line {
  225           display: block;
  226           font: 1em Menlo,monospace;
  227       }
  228 
  229       #ddoc_main a[name] {
  230         margin: -112px 0 0;
  231         padding-top: 112px;
  232       }
  233 
  234       #ddoc_main .ddoc_decl td {
  235         max-width: inherit;
  236       }
  237 
  238       #ddoc_main .declaration a {
  239         color: inherit;
  240       }
  241 
  242       #ddoc_main .declaration a:hover {
  243           color: rgba(0, 136, 204, 1);
  244           text-decoration: underline;
  245       }
  246 
  247       body.ddoc {
  248         background-color: transparent;
  249         color: rgba(0, 0, 0, 1);
  250         font-family: Helvetica,Arial,sans-serif;
  251         font-size: 62.5%;
  252         margin: 0;
  253         border: 0;
  254         left: 0;
  255         top: 0;
  256         padding: 0;
  257       }
  258 
  259       .ddoc a[name] {
  260         display: block;
  261         height: 0;
  262         margin: -85px 0 0;
  263         padding-top: 85px;
  264         width: 0;
  265       }
  266 
  267       .ddoc .module {
  268           border-color: transparent;
  269           background-color: rgba(255, 255, 255, 1);
  270           border-color: currentColor rgba(233, 233, 233, 1) rgba(233, 233, 233, 1);
  271           border-image: none;
  272           border-style: none solid solid;
  273           border-width: 0 1px 1px;
  274           box-shadow: 0 0 1px rgba(0, 0, 0, 0.07);
  275           display: block;
  276           margin-left: 0;
  277           min-height: calc(100% - 173px);
  278           overflow: auto;
  279           padding-bottom: 100px;
  280       }
  281 
  282       .ddoc .content_wrapper {
  283           background-color: rgba(242, 242, 242, 1);
  284           margin: 0 auto;
  285           max-width: 980px;
  286       }
  287 
  288       .ddoc .section {
  289         padding: 15px 25px 30px;
  290       }
  291 
  292       .ddoc .section .section {
  293         margin: 30px 0 0;
  294         padding: 0;
  295       }
  296 
  297       .ddoc .para {
  298         color: rgba(65, 65, 65, 1);
  299         font-size: 1.4em;
  300         line-height: 145%;
  301         margin-bottom: 15px;
  302       }
  303 
  304       .ddoc .ddoc_examples .para {
  305         margin-bottom: 0;
  306       }
  307 
  308       .ddoc .module_name {
  309           color: rgba(0, 0, 0, 1);
  310           display: block;
  311           font-family: Helvetica;
  312           font-size: 2.8em;
  313           font-weight: 100;
  314           margin-bottom: 0;
  315           padding: 15px 0;
  316       }
  317 
  318       .ddoc .module a {
  319           color: rgba(0, 136, 204, 1);
  320           text-decoration: none;
  321       }
  322 
  323       .ddoc .code {
  324         color: rgba(128, 128, 128, 1);
  325         font-family: Menlo,monospace;
  326         font-size: 0.85em;
  327         word-wrap: break-word;
  328       }
  329 
  330       .ddoc .code i {
  331         font-style: normal;
  332       }
  333 
  334       .ddoc .code .code {
  335         font-size: 1em;
  336       }
  337 
  338       .ddoc .code_sample {
  339         background-clip: padding-box;
  340         margin: 1px 0;
  341         text-align: left;
  342       }
  343 
  344       .ddoc .code_sample {
  345         display: block;
  346         font-size: 1.4em;
  347         margin-left: 21px;
  348       }
  349 
  350       .ddoc ol .code_sample {
  351         font-size: 1em;
  352       }
  353 
  354       .ddoc .code_lines {
  355         counter-reset: li;
  356         line-height: 1.6em;
  357         list-style: outside none none;
  358         margin: 0;
  359         padding: 0;
  360       }
  361 
  362       .ddoc .code_listing .code_sample div {
  363         margin-left: 13px;
  364         width: 93%;
  365       }
  366 
  367       .ddoc .code_listing .code_sample div .code_lines li {
  368         list-style-type: none;
  369         margin: 0;
  370         padding-right: 10px;
  371       }
  372 
  373       .ddoc .code_sample div .code_lines li::before {
  374         margin-left: -33px;
  375         margin-right: 25px;
  376       }
  377 
  378       .ddoc .code_sample div .code_lines li:nth-child(n+10)::before {
  379         margin-left: -39px;
  380         margin-right: 25px;
  381       }
  382 
  383       .ddoc .code_sample div .code_lines li:nth-child(n+100)::before {
  384         margin-left: -46px;
  385         margin-right: 25px;
  386       }
  387 
  388       .ddoc .code_sample .code_lines .code {
  389         color: #000;
  390       }
  391 
  392       .ddoc div.dlang {
  393         margin: 10px 0 21px;
  394         padding: 4px 0 2px 10px;
  395       }
  396 
  397       .ddoc div.dlang {
  398           margin: 10px 0 21px;
  399           padding: 4px 0 2px 10px;
  400       }
  401 
  402       .ddoc div.dlang {
  403         border-left: 5px solid rgba(0, 155, 51, 0.2);
  404       }
  405 
  406       .ddoc .code_lines li::before {
  407         color: rgba(128, 128, 128, 1);
  408         content: counter(li, decimal);
  409         counter-increment: li;
  410         font-family: Menlo,monospace;
  411         font-size: 0.9em;
  412         margin-right: 16px;
  413       }
  414 
  415       .ddoc .code_lines li {
  416         padding-left: 0;
  417         white-space: pre-wrap;
  418       }
  419 
  420       .ddoc .code_lines li:only-of-type::before {
  421         color: rgba(255, 255, 255, 1);
  422         content: " ";
  423       }
  424 
  425       .ddoc .code_lines li:only-of-type {
  426         color: rgba(255, 255, 255, 1);
  427         content: " ";
  428       }
  429 
  430       .ddoc .code_lines li:nth-child(n+10) {
  431         text-indent: -17px;
  432       }
  433 
  434       .ddoc .code_lines li:nth-child(n+10)::before {
  435         margin-right: 12px;
  436       }
  437 
  438       .ddoc .graybox {
  439         border: 1px solid rgba(233, 233, 233, 1);
  440         border-collapse: collapse;
  441         border-spacing: 0;
  442         empty-cells: hide;
  443         margin: 20px 0 36px;
  444         text-align: left;
  445       }
  446 
  447       .ddoc .graybox p {
  448         margin: 0;
  449         min-width: 50px;
  450       }
  451 
  452       .ddoc th {
  453         margin: 0;
  454         max-width: 260px;
  455         padding: 5px 10px 5px 10px;
  456         vertical-align: bottom;
  457       }
  458 
  459       .ddoc td {
  460         border: 1px solid rgba(233, 233, 233, 1);
  461         margin: 0;
  462         max-width: 260px;
  463         padding: 5px 10px 5px 10px;
  464         vertical-align: middle;
  465       }
  466 
  467       .punctuation {
  468         color: rgba(0, 0, 0, 1);
  469       }
  470 
  471       .comment {
  472         color: rgba(0, 131, 18, 1);
  473       }
  474 
  475       .operator {
  476         color: #000;
  477       }
  478 
  479       .keyword {
  480         color: rgba(170, 13, 145, 1);
  481       }
  482 
  483       .keyword_type {
  484         color: rgba(170, 51, 145, 1);
  485       }
  486 
  487       .string_literal {
  488         color: rgba(196, 26, 22, 1);
  489       }
  490 
  491       .ddoc_psuper_symbol {
  492         color: rgba(92, 38, 153, 1);
  493       }
  494 
  495       .param {
  496         color: rgba(0, 0, 0, 1);
  497       }
  498 
  499       .psymbol {
  500         color: rgba(0, 0, 0, 1);
  501       }
  502 
  503       .ddoc_member_header .ddoc_header_anchor .code {
  504         font-size: 1em;
  505       }
  506     </style>
  507   </head>
  508   <body id="ddoc_main" class="ddoc dlang">
  509     <div class="content_wrapper">
  510       <article class="module">
  511         <h1 class="module_name">dmd.ctfeexpr</h1>
  512         <section id="module_content"><section class="section ddoc_sections">
  513   <div class="ddoc_summary">
  514   <p class="para">
  515     CTFE for expressions involving pointers, slices, array concatenation etc.
  516 
  517   </p>
  518 </div>
  519 <div class="ddoc_authors">
  520   <h4>Authors</h4>
  521   <p class="para">
  522     <a href="http://www.digitalmars.com">Walter Bright</a>
  523 
  524   </p>
  525 </div>
  526 <div class="ddoc_license">
  527   <h4>License</h4>
  528   <p class="para">
  529     <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>
  530 
  531   </p>
  532 </div>
  533 <div class="ddoc_section">
  534   <p class="para">
  535     <span class="ddoc_section_h">Source:</span>
  536 <a href="https://github.com/dlang/dmd/blob/master/src/dmd/ctfeexpr.d">ctfeexpr.d</a>
  537 
  538   </p>
  539 </div>
  540 <div class="ddoc_section">
  541   <p class="para">
  542     <span class="ddoc_section_h">Documentation:</span>
  543 <a href="https://dlang.org/phobos/dmd_ctfeexpr.html">https://dlang.org/phobos/dmd_ctfeexpr.html</a>
  544 
  545   </p>
  546 </div>
  547 <div class="ddoc_section">
  548   <p class="para">
  549     <span class="ddoc_section_h">Coverage:</span>
  550 <a href="https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ctfeexpr.d">https://codecov.io/gh/dlang/dmd/src/master/src/dmd/ctfeexpr.d</a>
  551   </p>
  552 </div>
  553 
  554 </section>
  555 <section class="section ddoc_module_members_section">
  556   <div class="ddoc_module_members">
  557     <ul class="ddoc_members">
  558   <li class="ddoc_member">
  559   <div class="ddoc_member_header">
  560   <div class="ddoc_header_anchor">
  561   <a href="#ClassReferenceExp" id="ClassReferenceExp"><code class="code">ClassReferenceExp</code></a>
  562 </div>
  563 </div><div class="ddoc_decl">
  564   <section class="section">
  565     <div class="declaration">
  566       <h4>Declaration</h4>
  567       <div class="dlang">
  568         <p class="para">
  569           <code class="code">
  570             <span class="ddoc_anchor" id="ClassReferenceExp"></span>class <code class="code">ClassReferenceExp</code>: <span class="ddoc_psuper_symbol">dmd.expression.Expression</span>;
  571 
  572           </code>
  573         </p>
  574       </div>
  575     </div>
  576   </section>
  577 </div>
  578 <div class="ddoc_decl">
  579   <section class="section ddoc_sections">
  580   <div class="ddoc_summary">
  581   <p class="para">
  582     A reference to a class, or an interface. We need this when we
  583  point to a base class (we must record what the type is).
  584   </p>
  585 </div>
  586 
  587 </section>
  588 
  589 </div>
  590 
  591 </li><li class="ddoc_member">
  592   <div class="ddoc_member_header">
  593   <div class="ddoc_header_anchor">
  594   <a href="#findFieldIndexByName" id="findFieldIndexByName"><code class="code">findFieldIndexByName</code></a>
  595 </div>
  596 </div><div class="ddoc_decl">
  597   <section class="section">
  598     <div class="declaration">
  599       <h4>Declaration</h4>
  600       <div class="dlang">
  601         <p class="para">
  602           <code class="code">
  603             <span class="ddoc_anchor" id="findFieldIndexByName"></span>pure int <code class="code">findFieldIndexByName</code>(const StructDeclaration <code class="code">sd</code>, const VarDeclaration <code class="code">v</code>);
  604 
  605           </code>
  606         </p>
  607       </div>
  608     </div>
  609   </section>
  610 </div>
  611 <div class="ddoc_decl">
  612   <section class="section ddoc_sections">
  613   <div class="ddoc_summary">
  614   <p class="para">
  615     Same as getFieldIndex, but checks for a direct match with the VarDeclaration
  616 
  617   </p>
  618 </div>
  619 <div class="ddoc_returns">
  620   <h4>Return Value</h4>
  621   <p class="para">
  622     index of the field, or -1 if not found
  623   </p>
  624 </div>
  625 
  626 </section>
  627 
  628 </div>
  629 
  630 </li><li class="ddoc_member">
  631   <div class="ddoc_member_header">
  632   <div class="ddoc_header_anchor">
  633   <a href="#ThrownExceptionExp" id="ThrownExceptionExp"><code class="code">ThrownExceptionExp</code></a>
  634 </div>
  635 </div><div class="ddoc_decl">
  636   <section class="section">
  637     <div class="declaration">
  638       <h4>Declaration</h4>
  639       <div class="dlang">
  640         <p class="para">
  641           <code class="code">
  642             <span class="ddoc_anchor" id="ThrownExceptionExp"></span>class <code class="code">ThrownExceptionExp</code>: <span class="ddoc_psuper_symbol">dmd.expression.Expression</span>;
  643 
  644           </code>
  645         </p>
  646       </div>
  647     </div>
  648   </section>
  649 </div>
  650 <div class="ddoc_decl">
  651   <section class="section ddoc_sections">
  652   <div class="ddoc_summary">
  653   <p class="para">
  654     Fake class which holds the thrown exception.
  655  Used for implementing exception handling.
  656   </p>
  657 </div>
  658 
  659 </section>
  660 
  661 </div>
  662 
  663 </li><li class="ddoc_member">
  664   <div class="ddoc_member_header">
  665   <div class="ddoc_header_anchor">
  666   <a href="#CTFEExp" id="CTFEExp"><code class="code">CTFEExp</code></a>
  667 </div>
  668 </div><div class="ddoc_decl">
  669   <section class="section">
  670     <div class="declaration">
  671       <h4>Declaration</h4>
  672       <div class="dlang">
  673         <p class="para">
  674           <code class="code">
  675             <span class="ddoc_anchor" id="CTFEExp"></span>class <code class="code">CTFEExp</code>: <span class="ddoc_psuper_symbol">dmd.expression.Expression</span>;
  676 
  677           </code>
  678         </p>
  679       </div>
  680     </div>
  681   </section>
  682 </div>
  683 <div class="ddoc_decl">
  684   <section class="section ddoc_sections">
  685   <div class="ddoc_summary">
  686   <p class="para">
  687     This type is only used by the interpreter.
  688   </p>
  689 </div>
  690 
  691 </section>
  692 
  693 </div>
  694 
  695 </li><li class="ddoc_member">
  696   <div class="ddoc_member_header">
  697   <div class="ddoc_header_anchor">
  698   <a href="#needToCopyLiteral" id="needToCopyLiteral"><code class="code">needToCopyLiteral</code></a>
  699 </div>
  700 </div><div class="ddoc_decl">
  701   <section class="section">
  702     <div class="declaration">
  703       <h4>Declaration</h4>
  704       <div class="dlang">
  705         <p class="para">
  706           <code class="code">
  707             <span class="ddoc_anchor" id="needToCopyLiteral"></span>bool <code class="code">needToCopyLiteral</code>(const Expression <code class="code">expr</code>);
  708 
  709           </code>
  710         </p>
  711       </div>
  712     </div>
  713   </section>
  714 </div>
  715 <div class="ddoc_decl">
  716   <section class="section ddoc_sections">
  717   <div class="ddoc_summary">
  718   <p class="para">
  719     Aggregate literals (AA/string/array/struct)
  720   </p>
  721 </div>
  722 
  723 </section>
  724 
  725 </div>
  726 
  727 </li><li class="ddoc_member">
  728   <div class="ddoc_member_header">
  729   <div class="ddoc_header_anchor">
  730   <a href="#resolveSlice" id="resolveSlice"><code class="code">resolveSlice</code></a>
  731 </div>
  732 </div><div class="ddoc_decl">
  733   <section class="section">
  734     <div class="declaration">
  735       <h4>Declaration</h4>
  736       <div class="dlang">
  737         <p class="para">
  738           <code class="code">
  739             <span class="ddoc_anchor" id="resolveSlice"></span>Expression <code class="code">resolveSlice</code>(Expression <code class="code">e</code>, UnionExp* <code class="code">pue</code> = null);
  740 
  741           </code>
  742         </p>
  743       </div>
  744     </div>
  745   </section>
  746 </div>
  747 <div class="ddoc_decl">
  748   <section class="section ddoc_sections">
  749   <div class="ddoc_summary">
  750   <p class="para">
  751     If <code class="code">e</code> is a SliceExp, constant fold it.
  752 
  753   </p>
  754 </div>
  755 <div class="ddoc_params">
  756   <h4>Parameters</h4>
  757   <table cellspacing="0" cellpadding="5" border="0" class="graybox">
  758     <tbody>
  759       <tr class="ddoc_param_row">
  760   <td scope="ddoc_param_id">
  761   <code class="code">
  762     <em class="term">Expression <code class="code">e</code></em>
  763   </code>
  764 </td>
  765 <td>
  766   <div class="ddoc_param_desc">
  767     <p class="para">
  768       expression to resolve
  769     </p>
  770   </div>
  771 </td>
  772 </tr>
  773 <tr class="ddoc_param_row">
  774   <td scope="ddoc_param_id">
  775   <code class="code">
  776     <em class="term">UnionExp* <code class="code">pue</code></em>
  777   </code>
  778 </td>
  779 <td>
  780   <div class="ddoc_param_desc">
  781     <p class="para">
  782       if not <code class="code">null</code>, store resulting expression here
  783     </p>
  784   </div>
  785 </td>
  786 </tr>
  787 
  788     </tbody>
  789   </table>
  790 </div>
  791 <div class="ddoc_returns">
  792   <h4>Return Value</h4>
  793   <p class="para">
  794     resulting expression
  795   </p>
  796 </div>
  797 
  798 </section>
  799 
  800 </div>
  801 
  802 </li><li class="ddoc_member">
  803   <div class="ddoc_member_header">
  804   <div class="ddoc_header_anchor">
  805   <a href="#createBlockDuplicatedArrayLiteral" id="createBlockDuplicatedArrayLiteral"><code class="code">createBlockDuplicatedArrayLiteral</code></a>
  806 </div>
  807 </div><div class="ddoc_decl">
  808   <section class="section">
  809     <div class="declaration">
  810       <h4>Declaration</h4>
  811       <div class="dlang">
  812         <p class="para">
  813           <code class="code">
  814             <span class="ddoc_anchor" id="createBlockDuplicatedArrayLiteral"></span>ArrayLiteralExp <code class="code">createBlockDuplicatedArrayLiteral</code>(UnionExp* <code class="code">pue</code>, ref const Loc <code class="code">loc</code>, Type <code class="code">type</code>, Expression <code class="code">elem</code>, size_t <code class="code">dim</code>);
  815 
  816           </code>
  817         </p>
  818       </div>
  819     </div>
  820   </section>
  821 </div>
  822 <div class="ddoc_decl">
  823   <section class="section ddoc_sections">
  824   <div class="ddoc_summary">
  825   <p class="para">
  826     Helper for NewExp
  827  Create an array literal consisting of '<code class="code">elem</code>' duplicated '<code class="code">dim</code>' times.
  828 
  829   </p>
  830 </div>
  831 <div class="ddoc_params">
  832   <h4>Parameters</h4>
  833   <table cellspacing="0" cellpadding="5" border="0" class="graybox">
  834     <tbody>
  835       <tr class="ddoc_param_row">
  836   <td scope="ddoc_param_id">
  837   <code class="code">
  838     <em class="term">UnionExp* <code class="code">pue</code></em>
  839   </code>
  840 </td>
  841 <td>
  842   <div class="ddoc_param_desc">
  843     <p class="para">
  844       where to store result
  845     </p>
  846   </div>
  847 </td>
  848 </tr>
  849 <tr class="ddoc_param_row">
  850   <td scope="ddoc_param_id">
  851   <code class="code">
  852     <em class="term">Loc <code class="code">loc</code></em>
  853   </code>
  854 </td>
  855 <td>
  856   <div class="ddoc_param_desc">
  857     <p class="para">
  858       source location where the interpretation occurs
  859     </p>
  860   </div>
  861 </td>
  862 </tr>
  863 <tr class="ddoc_param_row">
  864   <td scope="ddoc_param_id">
  865   <code class="code">
  866     <em class="term">Type <code class="code">type</code></em>
  867   </code>
  868 </td>
  869 <td>
  870   <div class="ddoc_param_desc">
  871     <p class="para">
  872       target <code class="code">type</code> of the result
  873     </p>
  874   </div>
  875 </td>
  876 </tr>
  877 <tr class="ddoc_param_row">
  878   <td scope="ddoc_param_id">
  879   <code class="code">
  880     <em class="term">Expression <code class="code">elem</code></em>
  881   </code>
  882 </td>
  883 <td>
  884   <div class="ddoc_param_desc">
  885     <p class="para">
  886       the source of array element, it will be owned by the result
  887     </p>
  888   </div>
  889 </td>
  890 </tr>
  891 <tr class="ddoc_param_row">
  892   <td scope="ddoc_param_id">
  893   <code class="code">
  894     <em class="term">size_t <code class="code">dim</code></em>
  895   </code>
  896 </td>
  897 <td>
  898   <div class="ddoc_param_desc">
  899     <p class="para">
  900       element number of the result
  901     </p>
  902   </div>
  903 </td>
  904 </tr>
  905 
  906     </tbody>
  907   </table>
  908 </div>
  909 <div class="ddoc_returns">
  910   <h4>Return Value</h4>
  911   <p class="para">
  912     Constructed ArrayLiteralExp
  913   </p>
  914 </div>
  915 
  916 </section>
  917 
  918 </div>
  919 
  920 </li><li class="ddoc_member">
  921   <div class="ddoc_member_header">
  922   <div class="ddoc_header_anchor">
  923   <a href="#createBlockDuplicatedStringLiteral" id="createBlockDuplicatedStringLiteral"><code class="code">createBlockDuplicatedStringLiteral</code></a>
  924 </div>
  925 </div><div class="ddoc_decl">
  926   <section class="section">
  927     <div class="declaration">
  928       <h4>Declaration</h4>
  929       <div class="dlang">
  930         <p class="para">
  931           <code class="code">
  932             <span class="ddoc_anchor" id="createBlockDuplicatedStringLiteral"></span>StringExp <code class="code">createBlockDuplicatedStringLiteral</code>(UnionExp* <code class="code">pue</code>, ref const Loc <code class="code">loc</code>, Type <code class="code">type</code>, dchar <code class="code">value</code>, size_t <code class="code">dim</code>, ubyte <code class="code">sz</code>);
  933 
  934           </code>
  935         </p>
  936       </div>
  937     </div>
  938   </section>
  939 </div>
  940 <div class="ddoc_decl">
  941   <section class="section ddoc_sections">
  942   <div class="ddoc_summary">
  943   <p class="para">
  944     Helper for NewExp
  945  Create a string literal consisting of '<code class="code">value</code>' duplicated '<code class="code">dim</code>' times.
  946   </p>
  947 </div>
  948 
  949 </section>
  950 
  951 </div>
  952 
  953 </li><li class="ddoc_member">
  954   <div class="ddoc_member_header">
  955   <div class="ddoc_header_anchor">
  956   <a href="#isTypeInfo_Class" id="isTypeInfo_Class"><code class="code">isTypeInfo_Class</code></a>
  957 </div>
  958 </div><div class="ddoc_decl">
  959   <section class="section">
  960     <div class="declaration">
  961       <h4>Declaration</h4>
  962       <div class="dlang">
  963         <p class="para">
  964           <code class="code">
  965             <span class="ddoc_anchor" id="isTypeInfo_Class"></span>bool <code class="code">isTypeInfo_Class</code>(const Type <code class="code">type</code>);
  966 
  967           </code>
  968         </p>
  969       </div>
  970     </div>
  971   </section>
  972 </div>
  973 <div class="ddoc_decl">
  974   <section class="section ddoc_sections">
  975   <div class="ddoc_summary">
  976   <p class="para">
  977     TypeInfo operations
  978   </p>
  979 </div>
  980 
  981 </section>
  982 
  983 </div>
  984 
  985 </li><li class="ddoc_member">
  986   <div class="ddoc_member_header">
  987   <div class="ddoc_header_anchor">
  988   <a href="#isPointer" id="isPointer"><code class="code">isPointer</code></a>
  989 </div>
  990 </div><div class="ddoc_decl">
  991   <section class="section">
  992     <div class="declaration">
  993       <h4>Declaration</h4>
  994       <div class="dlang">
  995         <p class="para">
  996           <code class="code">
  997             <span class="ddoc_anchor" id="isPointer"></span>bool <code class="code">isPointer</code>(Type <code class="code">t</code>);
  998 
  999           </code>
 1000         </p>
 1001       </div>
 1002     </div>
 1003   </section>
 1004 </div>
 1005 <div class="ddoc_decl">
 1006   <section class="section ddoc_sections">
 1007   <div class="ddoc_summary">
 1008   <p class="para">
 1009     Pointer operations
 1010   </p>
 1011 </div>
 1012 
 1013 </section>
 1014 
 1015 </div>
 1016 
 1017 </li><li class="ddoc_member">
 1018   <div class="ddoc_member_header">
 1019   <div class="ddoc_header_anchor">
 1020   <a href="#pointToSameMemoryBlock" id="pointToSameMemoryBlock"><code class="code">pointToSameMemoryBlock</code></a>
 1021 </div>
 1022 </div><div class="ddoc_decl">
 1023   <section class="section">
 1024     <div class="declaration">
 1025       <h4>Declaration</h4>
 1026       <div class="dlang">
 1027         <p class="para">
 1028           <code class="code">
 1029             <span class="ddoc_anchor" id="pointToSameMemoryBlock"></span>bool <code class="code">pointToSameMemoryBlock</code>(Expression <code class="code">agg1</code>, Expression <code class="code">agg2</code>);
 1030 
 1031           </code>
 1032         </p>
 1033       </div>
 1034     </div>
 1035   </section>
 1036 </div>
 1037 <div class="ddoc_decl">
 1038   <section class="section ddoc_sections">
 1039   <div class="ddoc_summary">
 1040   <p class="para">
 1041     Return <code class="code">true</code> if <code class="code">agg1</code> and <code class="code">agg2</code> are pointers to the same memory block
 1042   </p>
 1043 </div>
 1044 
 1045 </section>
 1046 
 1047 </div>
 1048 
 1049 </li><li class="ddoc_member">
 1050   <div class="ddoc_member_header">
 1051   <div class="ddoc_header_anchor">
 1052   <a href="#isCtfeComparable" id="isCtfeComparable"><code class="code">isCtfeComparable</code></a>
 1053 </div>
 1054 </div><div class="ddoc_decl">
 1055   <section class="section">
 1056     <div class="declaration">
 1057       <h4>Declaration</h4>
 1058       <div class="dlang">
 1059         <p class="para">
 1060           <code class="code">
 1061             <span class="ddoc_anchor" id="isCtfeComparable"></span>bool <code class="code">isCtfeComparable</code>(Expression <code class="code">e</code>);
 1062 
 1063           </code>
 1064         </p>
 1065       </div>
 1066     </div>
 1067   </section>
 1068 </div>
 1069 <div class="ddoc_decl">
 1070   <section class="section ddoc_sections">
 1071   <div class="ddoc_summary">
 1072   <p class="para">
 1073     Constant folding, with support for CTFE
 1074 Return <code class="code">true</code> if non-pointer expression <code class="code">e</code> can be compared
 1075 with &gt;,is, ==, etc, using ctfeCmp, ctfeEqual, ctfeIdentity
 1076   </p>
 1077 </div>
 1078 
 1079 </section>
 1080 
 1081 </div>
 1082 
 1083 </li><li class="ddoc_member">
 1084   <div class="ddoc_member_header">
 1085   <div class="ddoc_header_anchor">
 1086   <a href="#specificCmp" id="specificCmp"><code class="code">specificCmp</code></a>
 1087 </div>
 1088 </div><div class="ddoc_decl">
 1089   <section class="section">
 1090     <div class="declaration">
 1091       <h4>Declaration</h4>
 1092       <div class="dlang">
 1093         <p class="para">
 1094           <code class="code">
 1095             <span class="ddoc_anchor" id="specificCmp"></span>bool <code class="code">specificCmp</code>(TOK <code class="code">op</code>, int <code class="code">rawCmp</code>);
 1096 
 1097           </code>
 1098         </p>
 1099       </div>
 1100     </div>
 1101   </section>
 1102 </div>
 1103 <div class="ddoc_decl">
 1104   <section class="section ddoc_sections">
 1105   <div class="ddoc_summary">
 1106   <p class="para">
 1107     Returns cmp OP 0; where OP is ==, !=, &lt;, &gt;=, etc. Result is 0 or 1
 1108   </p>
 1109 </div>
 1110 
 1111 </section>
 1112 
 1113 </div>
 1114 
 1115 </li><li class="ddoc_member">
 1116   <div class="ddoc_member_header">
 1117   <div class="ddoc_header_anchor">
 1118   <a href="#intUnsignedCmp" id="intUnsignedCmp"><code class="code">intUnsignedCmp</code></a>
 1119 </div>
 1120 </div><div class="ddoc_decl">
 1121   <section class="section">
 1122     <div class="declaration">
 1123       <h4>Declaration</h4>
 1124       <div class="dlang">
 1125         <p class="para">
 1126           <code class="code">
 1127             <span class="ddoc_anchor" id="intUnsignedCmp"></span>bool <code class="code">intUnsignedCmp</code>(TOK <code class="code">op</code>, dinteger_t <code class="code">n1</code>, dinteger_t <code class="code">n2</code>);
 1128 
 1129           </code>
 1130         </p>
 1131       </div>
 1132     </div>
 1133   </section>
 1134 </div>
 1135 <div class="ddoc_decl">
 1136   <section class="section ddoc_sections">
 1137   <div class="ddoc_summary">
 1138   <p class="para">
 1139     Returns e1 OP e2; where OP is ==, !=, &lt;, &gt;=, etc. Result is 0 or 1
 1140   </p>
 1141 </div>
 1142 
 1143 </section>
 1144 
 1145 </div>
 1146 
 1147 </li><li class="ddoc_member">
 1148   <div class="ddoc_member_header">
 1149   <div class="ddoc_header_anchor">
 1150   <a href="#intSignedCmp" id="intSignedCmp"><code class="code">intSignedCmp</code></a>
 1151 </div>
 1152 </div><div class="ddoc_decl">
 1153   <section class="section">
 1154     <div class="declaration">
 1155       <h4>Declaration</h4>
 1156       <div class="dlang">
 1157         <p class="para">
 1158           <code class="code">
 1159             <span class="ddoc_anchor" id="intSignedCmp"></span>bool <code class="code">intSignedCmp</code>(TOK <code class="code">op</code>, sinteger_t <code class="code">n1</code>, sinteger_t <code class="code">n2</code>);
 1160 
 1161           </code>
 1162         </p>
 1163       </div>
 1164     </div>
 1165   </section>
 1166 </div>
 1167 <div class="ddoc_decl">
 1168   <section class="section ddoc_sections">
 1169   <div class="ddoc_summary">
 1170   <p class="para">
 1171     Returns e1 OP e2; where OP is ==, !=, &lt;, &gt;=, etc. Result is 0 or 1
 1172   </p>
 1173 </div>
 1174 
 1175 </section>
 1176 
 1177 </div>
 1178 
 1179 </li><li class="ddoc_member">
 1180   <div class="ddoc_member_header">
 1181   <div class="ddoc_header_anchor">
 1182   <a href="#realCmp" id="realCmp"><code class="code">realCmp</code></a>
 1183 </div>
 1184 </div><div class="ddoc_decl">
 1185   <section class="section">
 1186     <div class="declaration">
 1187       <h4>Declaration</h4>
 1188       <div class="dlang">
 1189         <p class="para">
 1190           <code class="code">
 1191             <span class="ddoc_anchor" id="realCmp"></span>bool <code class="code">realCmp</code>(TOK <code class="code">op</code>, real_t <code class="code">r1</code>, real_t <code class="code">r2</code>);
 1192 
 1193           </code>
 1194         </p>
 1195       </div>
 1196     </div>
 1197   </section>
 1198 </div>
 1199 <div class="ddoc_decl">
 1200   <section class="section ddoc_sections">
 1201   <div class="ddoc_summary">
 1202   <p class="para">
 1203     Returns e1 OP e2; where OP is ==, !=, &lt;, &gt;=, etc. Result is 0 or 1
 1204   </p>
 1205 </div>
 1206 
 1207 </section>
 1208 
 1209 </div>
 1210 
 1211 </li><li class="ddoc_member">
 1212   <div class="ddoc_member_header">
 1213   <div class="ddoc_header_anchor">
 1214   <a href="#ctfeEqual" id="ctfeEqual"><code class="code">ctfeEqual</code></a>
 1215 </div>
 1216 </div><div class="ddoc_decl">
 1217   <section class="section">
 1218     <div class="declaration">
 1219       <h4>Declaration</h4>
 1220       <div class="dlang">
 1221         <p class="para">
 1222           <code class="code">
 1223             <span class="ddoc_anchor" id="ctfeEqual"></span>bool <code class="code">ctfeEqual</code>(ref const Loc <code class="code">loc</code>, TOK <code class="code">op</code>, Expression <code class="code">e1</code>, Expression <code class="code">e2</code>);
 1224 
 1225           </code>
 1226         </p>
 1227       </div>
 1228     </div>
 1229   </section>
 1230 </div>
 1231 <div class="ddoc_decl">
 1232   <section class="section ddoc_sections">
 1233   <div class="ddoc_summary">
 1234   <p class="para">
 1235     Evaluate ==, !=.  Resolves slices before comparing. Returns 0 or 1
 1236   </p>
 1237 </div>
 1238 
 1239 </section>
 1240 
 1241 </div>
 1242 
 1243 </li><li class="ddoc_member">
 1244   <div class="ddoc_member_header">
 1245   <div class="ddoc_header_anchor">
 1246   <a href="#ctfeIdentity" id="ctfeIdentity"><code class="code">ctfeIdentity</code></a>
 1247 </div>
 1248 </div><div class="ddoc_decl">
 1249   <section class="section">
 1250     <div class="declaration">
 1251       <h4>Declaration</h4>
 1252       <div class="dlang">
 1253         <p class="para">
 1254           <code class="code">
 1255             <span class="ddoc_anchor" id="ctfeIdentity"></span>bool <code class="code">ctfeIdentity</code>(ref const Loc <code class="code">loc</code>, TOK <code class="code">op</code>, Expression <code class="code">e1</code>, Expression <code class="code">e2</code>);
 1256 
 1257           </code>
 1258         </p>
 1259       </div>
 1260     </div>
 1261   </section>
 1262 </div>
 1263 <div class="ddoc_decl">
 1264   <section class="section ddoc_sections">
 1265   <div class="ddoc_summary">
 1266   <p class="para">
 1267     Evaluate is, !is.  Resolves slices before comparing. Returns 0 or 1
 1268   </p>
 1269 </div>
 1270 
 1271 </section>
 1272 
 1273 </div>
 1274 
 1275 </li><li class="ddoc_member">
 1276   <div class="ddoc_member_header">
 1277   <div class="ddoc_header_anchor">
 1278   <a href="#ctfeCmp" id="ctfeCmp"><code class="code">ctfeCmp</code></a>
 1279 </div>
 1280 </div><div class="ddoc_decl">
 1281   <section class="section">
 1282     <div class="declaration">
 1283       <h4>Declaration</h4>
 1284       <div class="dlang">
 1285         <p class="para">
 1286           <code class="code">
 1287             <span class="ddoc_anchor" id="ctfeCmp"></span>bool <code class="code">ctfeCmp</code>(ref const Loc <code class="code">loc</code>, TOK <code class="code">op</code>, Expression <code class="code">e1</code>, Expression <code class="code">e2</code>);
 1288 
 1289           </code>
 1290         </p>
 1291       </div>
 1292     </div>
 1293   </section>
 1294 </div>
 1295 <div class="ddoc_decl">
 1296   <section class="section ddoc_sections">
 1297   <div class="ddoc_summary">
 1298   <p class="para">
 1299     Evaluate &gt;,&lt;=, etc. Resolves slices before comparing. Returns 0 or 1
 1300   </p>
 1301 </div>
 1302 
 1303 </section>
 1304 
 1305 </div>
 1306 
 1307 </li><li class="ddoc_member">
 1308   <div class="ddoc_member_header">
 1309   <div class="ddoc_header_anchor">
 1310   <a href="#assignInPlace" id="assignInPlace"><code class="code">assignInPlace</code></a>
 1311 </div>
 1312 </div><div class="ddoc_decl">
 1313   <section class="section">
 1314     <div class="declaration">
 1315       <h4>Declaration</h4>
 1316       <div class="dlang">
 1317         <p class="para">
 1318           <code class="code">
 1319             <span class="ddoc_anchor" id="assignInPlace"></span>void <code class="code">assignInPlace</code>(Expression <code class="code">dest</code>, Expression <code class="code">src</code>);
 1320 
 1321           </code>
 1322         </p>
 1323       </div>
 1324     </div>
 1325   </section>
 1326 </div>
 1327 <div class="ddoc_decl">
 1328   <section class="section ddoc_sections">
 1329   <div class="ddoc_summary">
 1330   <p class="para">
 1331     Assignment helper functions
 1332   </p>
 1333 </div>
 1334 
 1335 </section>
 1336 
 1337 </div>
 1338 
 1339 </li><li class="ddoc_member">
 1340   <div class="ddoc_member_header">
 1341   <div class="ddoc_header_anchor">
 1342   <a href="#changeArrayLiteralLength" id="changeArrayLiteralLength"><code class="code">changeArrayLiteralLength</code></a>
 1343 </div>
 1344 </div><div class="ddoc_decl">
 1345   <section class="section">
 1346     <div class="declaration">
 1347       <h4>Declaration</h4>
 1348       <div class="dlang">
 1349         <p class="para">
 1350           <code class="code">
 1351             <span class="ddoc_anchor" id="changeArrayLiteralLength"></span>UnionExp <code class="code">changeArrayLiteralLength</code>(ref const Loc <code class="code">loc</code>, TypeArray <code class="code">arrayType</code>, Expression <code class="code">oldval</code>, size_t <code class="code">oldlen</code>, size_t <code class="code">newlen</code>);
 1352 
 1353           </code>
 1354         </p>
 1355       </div>
 1356     </div>
 1357   </section>
 1358 </div>
 1359 <div class="ddoc_decl">
 1360   <section class="section ddoc_sections">
 1361   <div class="ddoc_summary">
 1362   <p class="para">
 1363     Given array literal <code class="code">oldval</code> of type ArrayLiteralExp or StringExp, of length
 1364 <code class="code">oldlen</code>, change its length to <code class="code">newlen</code>. If the <code class="code">newlen</code> is longer than <code class="code">oldlen</code>,
 1365 all new elements will be set to the default initializer for the element type.
 1366   </p>
 1367 </div>
 1368 
 1369 </section>
 1370 
 1371 </div>
 1372 
 1373 </li><li class="ddoc_member">
 1374   <div class="ddoc_member_header">
 1375   <div class="ddoc_header_anchor">
 1376   <a href="#isCtfeValueValid" id="isCtfeValueValid"><code class="code">isCtfeValueValid</code></a>
 1377 </div>
 1378 </div><div class="ddoc_decl">
 1379   <section class="section">
 1380     <div class="declaration">
 1381       <h4>Declaration</h4>
 1382       <div class="dlang">
 1383         <p class="para">
 1384           <code class="code">
 1385             <span class="ddoc_anchor" id="isCtfeValueValid"></span>bool <code class="code">isCtfeValueValid</code>(Expression <code class="code">newval</code>);
 1386 
 1387           </code>
 1388         </p>
 1389       </div>
 1390     </div>
 1391   </section>
 1392 </div>
 1393 <div class="ddoc_decl">
 1394   <section class="section ddoc_sections">
 1395   <div class="ddoc_summary">
 1396   <p class="para">
 1397     CTFE Sanity Checks
 1398   </p>
 1399 </div>
 1400 
 1401 </section>
 1402 
 1403 </div>
 1404 
 1405 </li><li class="ddoc_member">
 1406   <div class="ddoc_member_header">
 1407   <div class="ddoc_header_anchor">
 1408   <a href="#voidInitLiteral" id="voidInitLiteral"><code class="code">voidInitLiteral</code></a>
 1409 </div>
 1410 </div><div class="ddoc_decl">
 1411   <section class="section">
 1412     <div class="declaration">
 1413       <h4>Declaration</h4>
 1414       <div class="dlang">
 1415         <p class="para">
 1416           <code class="code">
 1417             <span class="ddoc_anchor" id="voidInitLiteral"></span>UnionExp <code class="code">voidInitLiteral</code>(Type <code class="code">t</code>, VarDeclaration <code class="code">var</code>);
 1418 
 1419           </code>
 1420         </p>
 1421       </div>
 1422     </div>
 1423   </section>
 1424 </div>
 1425 <div class="ddoc_decl">
 1426   <section class="section ddoc_sections">
 1427   <div class="ddoc_summary">
 1428   <p class="para">
 1429     Void initialization
 1430   </p>
 1431 </div>
 1432 
 1433 </section>
 1434 
 1435 </div>
 1436 
 1437 </li>
 1438 </ul>
 1439   </div>
 1440 </section>
 1441 </section>
 1442       </article>
 1443     </div>
 1444   </body>
 1445 </html>