<div dir="auto">+1</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 17 juin 2019 à 22:51,  <<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A new version of Compiler was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Compiler-ct.404.mcz" rel="noreferrer noreferrer" target="_blank">http://source.squeak.org/inbox/Compiler-ct.404.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Compiler-ct.404<br>
Author: ct<br>
Time: 17 June 2019, 10:51:02.869037 pm<br>
UUID: 19e019f5-3ff6-0143-926d-e29c155cc4be<br>
Ancestors: Compiler-eem.403<br>
<br>
Fix a defect in Parser>>#parseCue:noPattern:ifFail:<br>
<br>
Full failure case description:<br>
<br>
Run the following statement:<br>
        Compiler evaluate: ''''''''<br>
In the appearing error window, enter any valid smalltalk expression and save it. Before loading this commit, it will give you a NonBooleanError as doItFlag was set too late (and so was not passed to SyntaxErrorNotification).<br>
<br>
=============== Diff against Compiler-eem.403 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Parser>>parseCue:noPattern:ifFail: (in category 'public access') -----<br>
  parseCue: aCue noPattern: noPattern ifFail: aBlock <br>
        "Answer a MethodNode for the argument, sourceStream, that is the root of<br>
         a parse tree. Parsing is done with respect to the CompilationCue to <br>
         resolve variables. Errors in parsing are reported to the cue's requestor; <br>
         otherwise aBlock is evaluated. The argument noPattern is a Boolean that is<br>
         true if the the sourceStream does not contain a method header (i.e., for DoIts)."<br>
<br>
        | methNode repeatNeeded myStream s p subSelection |<br>
        myStream := aCue sourceStream.<br>
        [repeatNeeded := false.<br>
         p := myStream position.<br>
         s := myStream upToEnd.<br>
         myStream position: p.<br>
<br>
+        doitFlag := noPattern.<br>
         self encoder init: aCue notifying: self.<br>
         self init: myStream cue: aCue failBlock: [^ aBlock value].<br>
<br>
         subSelection := self interactive and: [cue requestor selectionInterval = (p + 1 to: p + s size)].<br>
<br>
-        doitFlag := noPattern.<br>
         failBlock:= aBlock.<br>
         [methNode := self method: noPattern context: cue context] <br>
                on: ReparseAfterSourceEditing <br>
                do:     [ :ex |<br>
                        repeatNeeded := true.<br>
                        properties := nil. "Avoid accumulating pragmas and primitives Number"<br>
                        myStream := ex newSource <br>
                                ifNil: [subSelection<br>
                                                        ifTrue:<br>
                                                                [ReadStream<br>
                                                                        on: cue requestor text string<br>
                                                                        from: cue requestor selectionInterval first<br>
                                                                        to: cue requestor selectionInterval last]<br>
                                                        ifFalse:<br>
                                                                [ReadStream on: cue requestor text string]]<br>
                                ifNotNil: [:src | myStream := src readStream]].<br>
         repeatNeeded] whileTrue:<br>
                [encoder := self encoder class new].<br>
        methNode sourceText: s.<br>
        ^methNode<br>
  !<br>
<br>
<br>
</blockquote></div>