<html><head></head><body><div style="color:#000; background-color:#fff; font-family:verdana, helvetica, sans-serif;font-size:10px"><div id="yui_3_16_0_1_1448101622248_115814"><span id="yui_3_16_0_1_1448101622248_115910">Multumesc de promptitudine. </span></div><div id="yui_3_16_0_1_1448101622248_115814"><span><br></span></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><span id="yui_3_16_0_1_1448101622248_115926">Cu toate acestea, in cazul exemplului dat de mine, attr-miss3, tot nu inteleg de ce trebuie sa se returneze respectiva eroare. Pare ca ar intoarce eroare din linia 16, de la cast-ul unei necunoscute variabile y, cand exista o eroare precedenta pe care codul meu a scos-o in evidenta. Iarasi, trebuie ghicit. Cu toate acestea</span> nu exista nicio alta variabila in acel cod care sa dea eroare de nedefinire.</div><div id="yui_3_16_0_1_1448101622248_115814"><span><br></span></div><div id="yui_3_16_0_1_1448101622248_115814">Reproduc din manual LCPL:</div><div id="yui_3_16_0_1_1448101622248_115814"><br></div><div id="yui_3_16_0_1_1448101622248_115814"><ID> = <EXPR></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id id="yui_3_16_0_1_1448101622248_115929" class=""><expr id="yui_3_16_0_1_1448101622248_115931" class="">[...] Cele doua tipuri trebuie sa corespunda, sau tipul expresiei <expr id="yui_3_16_0_1_1448101622248_115933" class=""> sa
poata fi convertit implicit la tipul expresiei<id id="yui_3_16_0_1_1448101622248_115935" class="">. [...]<string id="yui_3_16_0_1_1448101622248_115937" class=""><expr id="yui_3_16_0_1_1448101622248_115939" class=""> <span id="yui_3_16_0_1_1448101622248_116049">Pentru o variabila de un anumit tip se poate folosi orice tip aflat mai jos in ierarhia de clase</span>.</expr></string></id></expr></expr></id><br></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116713"><expr class="" id="yui_3_16_0_1_1448101622248_116711"><expr class="" id="yui_3_16_0_1_1448101622248_116709"><id class="" id="yui_3_16_0_1_1448101622248_116707"><string class="" id="yui_3_16_0_1_1448101622248_116705"><expr class="" id="yui_3_16_0_1_1448101622248_116703"><br id="yui_3_16_0_1_1448101622248_116702"></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116087"><expr class="" id="yui_3_16_0_1_1448101622248_116086"><expr class="" id="yui_3_16_0_1_1448101622248_116085"><id class="" id="yui_3_16_0_1_1448101622248_116084"><string class="" id="yui_3_16_0_1_1448101622248_116083"><expr class="" id="yui_3_16_0_1_1448101622248_116082">Concret, in testul attr-miss3, avem situatia ierarhiei de clase:<span id="yui_3_16_0_1_1448101622248_116373"> int (mosteneste) <span id="yui_3_16_0_1_1448101622248_116265">intModel</span></span></expr></string></id></expr></expr></id><span class="" id="yui_3_16_0_1_1448101622248_116432">.</span></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class=""><b><br></b></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116448"><expr class="" id="yui_3_16_0_1_1448101622248_116447"><expr class="" id="yui_3_16_0_1_1448101622248_116446"><id class="" id="yui_3_16_0_1_1448101622248_116445"><string class="" id="yui_3_16_0_1_1448101622248_116444"><expr class="" id="yui_3_16_0_1_1448101622248_116443">Pe liniile 13 si 14 avem asa:</expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class=""><br></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116582"><expr class="" id="yui_3_16_0_1_1448101622248_116581"><expr class="" id="yui_3_16_0_1_1448101622248_116580"><id class="" id="yui_3_16_0_1_1448101622248_116579"><string class="" id="yui_3_16_0_1_1448101622248_116578"><expr class="" id="yui_3_16_0_1_1448101622248_116577">local intModel x; end;</expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class="">x = new int;</expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class=""><br></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116898"><expr class="" id="yui_3_16_0_1_1448101622248_116897"><expr class="" id="yui_3_16_0_1_1448101622248_116896"><id class="" id="yui_3_16_0_1_1448101622248_116895"><string class="" id="yui_3_16_0_1_1448101622248_116894"><expr class="" id="yui_3_16_0_1_1448101622248_116893">In cazul acesta, tipul expresiei (int) este mai "sus" in ierarhie fata de tipul variabilei (intModel). Ceea ce inseamna ca nu se poate reduce un tip mai complex la unul mai simplu (are si o metoda in plus!). Este asa?</expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class=""><br></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_116882"><expr class="" id="yui_3_16_0_1_1448101622248_116881"><expr class="" id="yui_3_16_0_1_1448101622248_116880"><id class="" id="yui_3_16_0_1_1448101622248_116879"><string class="" id="yui_3_16_0_1_1448101622248_116878"><expr class="" id="yui_3_16_0_1_1448101622248_116877">Vreau doar sa ma asigur ca am inteles corect. Daca da, inseamna ca eroarea intoarsa de testul respectiv nu este cea corecta, existand una care apare mai devreme.</expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class=""><expr class=""><expr class=""><id class=""><string class=""><expr class=""><br></expr></string></id></expr></expr></id></div><div id="yui_3_16_0_1_1448101622248_115814" dir="ltr"><id class="" id="yui_3_16_0_1_1448101622248_117194"><expr class="" id="yui_3_16_0_1_1448101622248_117193"><expr class="" id="yui_3_16_0_1_1448101622248_117192"><id class="" id="yui_3_16_0_1_1448101622248_117191"><string class="" id="yui_3_16_0_1_1448101622248_117190"><expr class="" id="yui_3_16_0_1_1448101622248_117189">Multumesc pentru explicatii,</expr></string></id></expr></expr></id></div><div></div><div id="yui_3_16_0_1_1448101622248_115816"> </div><div class="signature" id="yui_3_16_0_1_1448101622248_115819"><div id="yui_3_16_0_1_1448101622248_115818">Dragos-Ronald Rugescu<span style="font-weight:bold;"></span></div><div style="font-family:arial, helvetica, clean, sans-serif;" id="yui_3_16_0_1_1448101622248_115821"><span style="font-weight:bold;"><br></span></div><div style="font-family:arial, helvetica, clean, sans-serif;" id="yui_3_16_0_1_1448101622248_115824"><span id="yui_3_16_0_1_1448101622248_115823">Assistant CEO</span><br><span id="yui_3_16_0_1_1448101622248_116293">ADDA Ltd</span></div><div style="font-family:arial, helvetica, clean, sans-serif;" id="yui_3_16_0_1_1448101622248_115828"><span id="yui_3_16_0_1_1448101622248_115827">Excellence. Professionalism. Vision.</span><br>18 Pictor Octav Bancila St., Sector 6, Bucharest, 060144<br></div><div style="font-family:arial, helvetica, clean, sans-serif;" id="yui_3_16_0_1_1448101622248_115828">Romania</div><div style="font-family:arial, helvetica, clean, sans-serif;" id="yui_3_16_0_1_1448101622248_115828">dragos.rugescu@yahoo.com</div></div> <br><div class="qtdSeparateBR" id="yui_3_16_0_1_1448101622248_115856"><br><br></div><div class="yahoo_quoted" id="yui_3_16_0_1_1448101622248_115864" style="display: block;"> <div style="font-family: verdana, helvetica, sans-serif; font-size: 10px;" id="yui_3_16_0_1_1448101622248_115863"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1448101622248_115862"> <div dir="ltr" id="yui_3_16_0_1_1448101622248_115880"><font size="2" face="Arial" id="yui_3_16_0_1_1448101622248_115879"> On Wednesday, November 25, 2015 10:27 PM, Bogdan Nitulescu via cpl <cpl@cursuri.cs.pub.ro> wrote:<br></font></div>  <br><br> <div class="y_msg_container" id="yui_3_16_0_1_1448101622248_115861"><div id="yiv9686699542"><div id="yui_3_16_0_1_1448101622248_115860">
    Ai dreptate. E nevoie de un pic de ajutor aici. Dar e simplu.<br clear="none">
    <br clear="none">
    OK, sa zicem ca am dat<br clear="none">
    <blockquote type="cite" id="yui_3_16_0_1_1448101622248_115878">make run-attr-miss3<br clear="none">
    </blockquote>
    si primesc un fail "Wrong error:" . De unde stiu care este "the
    Right error"?<br clear="none">
    <br clear="none">
    Well testul e implementat in C++ , si se gaseste in
    tests/error/attr-miss3TestRig.cpp  . Codul arata asa:<br clear="none">
    <br clear="none">
    <blockquote type="cite" id="yui_3_16_0_1_1448101622248_115867"><tt id="yui_3_16_0_1_1448101622248_115876">   bool test(lcpl::Program *p) noexcept
        override {</tt><tt><br clear="none">
      </tt><tt>
              try {</tt><tt><br clear="none">
      </tt><tt id="yui_3_16_0_1_1448101622248_115871">
                createAndRunSema(p);</tt><tt><br clear="none">
      </tt><tt id="yui_3_16_0_1_1448101622248_115869">
              } catch (lcpl::UnknownVariableException &) {</tt><tt><br clear="none">
      </tt><tt id="yui_3_16_0_1_1448101622248_115866">
                return pass();</tt><tt><br clear="none">
      </tt><tt id="yui_3_16_0_1_1448101622248_115874">
              } catch (lcpl::SemanticException &e) {</tt><tt><br clear="none">
      </tt><tt>
                return fail(std::string("Wrong error: ") + e.what());</tt><tt><br clear="none">
      </tt><tt>
              }</tt><tt><br clear="none">
      </tt>
      <tt><br clear="none">
      </tt><tt>
              return fail("Should error");</tt><tt><br clear="none">
      </tt><tt>
            }</tt></blockquote>
    <br clear="none">
    Si devine destul de clar. Output-ul corect este dat de un "throw
    UnknownVariableException".<br clear="none">
    <br clear="none">
    Adaug si in wiki.<br clear="none">
    <br clear="none">
    --Bogdan<br clear="none">
    <br clear="none">
    <div class="yiv9686699542yqt1757119249" id="yiv9686699542yqt86815"><div class="yiv9686699542moz-cite-prefix">On 11/25/2015 8:28 PM, Dragos Rugescu
      via cpl wrote:<br clear="none">
    </div>
    <blockquote type="cite">
      <div style="color:#000;background-color:#fff;font-family:verdana, helvetica, sans-serif;font-size:10px;">
        <div id="yiv9686699542yui_3_16_0_1_1448101622248_100441"><span>Buna seara,</span></div>
        <div id="yiv9686699542yui_3_16_0_1_1448101622248_100443"><span><br clear="none">
          </span></div>
        <div id="yiv9686699542yui_3_16_0_1_1448101622248_100373">Am o problema de
          depanare.</div>
        <div id="yiv9686699542yui_3_16_0_1_1448101622248_100370"><span><br clear="none">
          </span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100339"><span id="yiv9686699542yui_3_16_0_1_1448101622248_100343">Spre exemplu, in
            cazul testului attr-miss3, tester-ul raporteaza ca am output
            prost.</span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100339"><span id="yiv9686699542yui_3_16_0_1_1448101622248_100587">(FAIL: Wrong error:
            Error in line 14 : Incompatible types intModel and int)</span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100339"><span><br clear="none">
          </span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100339"><span id="yiv9686699542yui_3_16_0_1_1448101622248_100503">Nu spune insa de ce,
            si care ar fi cel corect. Toate testele precedente imi trec,
            (inclusiv attr-miss si attr-miss2). Holbandu-ma la fisierul
            sursa, nu vad ce nu e in regula la output-ul meu.</span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100337"><span><br clear="none">
          </span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100335">In fazele
          initiale de rezolvare a temei ramanem doar la ghicit (poate o
          fi atributul, poate nu).</div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100335"><br clear="none">
        </div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100335">Avand in
          vedere ca este foarte dificil de urmarit ce se doreste a fi
          output-ul corect in unele circumstante, cum putem vedea in caz
          de eroare, ce trebuia sa afisam? Analizand structura arhivei,
          output-ul interpretorului imi pare obfuscat special (what's
          the point?).<span><br clear="none">
          </span></div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100335"><br clear="none">
        </div>
        <div dir="ltr" id="yiv9686699542yui_3_16_0_1_1448101622248_100335">Multumesc
          anticipat,</div>
        <div id="yiv9686699542yui_3_16_0_1_1448101622248_100341"> </div>
        <div class="yiv9686699542signature" id="yiv9686699542yui_3_16_0_1_1448101622248_100323">
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100333">Dragos-Ronald
            Rugescu<span style="font-weight:bold;"></span></div>
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100331" style="font-family:arial, helvetica, clean, sans-serif;"><span style="font-weight:bold;"><br clear="none">
            </span></div>
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100329" style="font-family:arial, helvetica, clean, sans-serif;"><span style="font-weight:bold;">Assistant CEO</span><br clear="none">
            <span style="font-weight:bold;">ADDA Ltd</span></div>
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100327" style="font-family:arial, helvetica, clean, sans-serif;"><span id="yiv9686699542yui_3_16_0_1_1448101622248_100501" style="font-style:italic;">Excellence.
              Professionalism. Vision.</span><br clear="none">
            18 Pictor Octav Bancila St., Sector 6, Bucharest, 060144<br clear="none">
            <span id="yiv9686699542yui_3_16_0_1_1448101622248_100499" style="font-weight:bold;"><span style="color:rgb(0, 0, 127);">Ro</span><span style="color:rgb(255, 127, 0);">ma</span><span style="color:rgb(255, 0, 0);">nia</span>, <span style="color:rgb(0, 0, 191);">E</span><span style="color:rgb(191, 191, 0);">U</span></span><br clear="none">
            <a rel="nofollow" shape="rect" target="_blank" href="http://www.addastronautica.r0/">www.addastronautica.ro</a></div>
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100325" style="font-family:arial, helvetica, clean, sans-serif;"><a rel="nofollow" shape="rect" id="yiv9686699542yui_3_16_0_1_1448101622248_100783" ymailto="mailto:dragos.rugescu@yahoo.com" target="_blank" href="mailto:dragos.rugescu@yahoo.com"></a><a rel="nofollow" shape="rect" class="yiv9686699542moz-txt-link-abbreviated" ymailto="mailto:dragos.rugescu@yahoo.com" target="_blank" href="mailto:dragos.rugescu@yahoo.com">dragos.rugescu@yahoo.com</a><br clear="none">
          </div>
          <div id="yiv9686699542yui_3_16_0_1_1448101622248_100322"><a rel="nofollow" shape="rect" id="yiv9686699542yui_3_16_0_1_1448101622248_100497" ymailto="mailto:dragos.rugescu@addastronautica.ro" target="_blank" href="mailto:dragos.rugescu@addastronautica.ro"></a><a rel="nofollow" shape="rect" class="yiv9686699542moz-txt-link-abbreviated" ymailto="mailto:dragos.rugescu@addastronautica.ro" target="_blank" href="mailto:dragos.rugescu@addastronautica.ro">dragos.rugescu@addastronautica.ro</a><br clear="none">
          </div>
        </div>
      </div>
      <br clear="none">
      <fieldset class="yiv9686699542mimeAttachmentHeader"></fieldset>
      <br clear="none">
      <pre>_______________________________________________
cpl mailing list
<a rel="nofollow" shape="rect" class="yiv9686699542moz-txt-link-abbreviated" ymailto="mailto:cpl@cursuri.cs.pub.ro" target="_blank" href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a>
<a rel="nofollow" shape="rect" class="yiv9686699542moz-txt-link-freetext" target="_blank" href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a>
</pre>
    </blockquote></div>
    <br clear="none">
  </div></div><br><div class="yqt1757119249" id="yqt59087">_______________________________________________<br clear="none">cpl mailing list<br clear="none"><a shape="rect" ymailto="mailto:cpl@cursuri.cs.pub.ro" href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a><br clear="none"><a shape="rect" href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a><br clear="none"></div><br><br></div>  </div> </div>  </div></div></body></html>