[squeak-dev] The Trunk: Compiler-eem.442.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Oct 2 19:24:17 UTC 2020


Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.442.mcz

==================== Summary ====================

Name: Compiler-eem.442
Author: eem
Time: 2 October 2020, 12:24:11.925015 pm
UUID: b9e6bdcf-95df-433b-8bbb-b2168a1e8a90
Ancestors: Compiler-pre.441

Make sure that the default return value of a doit is self, not nil.

=============== Diff against Compiler-pre.441 ===============

Item was changed:
  ----- Method: Parser>>method:context: (in category 'expression types') -----
  method: doit context: ctxt 
  	" pattern [ | temporaries ] block => MethodNode."
  
  	| sap blk prim temps messageComment methodNode |
  	sap := self pattern: doit inContext: ctxt.
  	"sap={selector, arguments, precedence}"
  	self properties selector: (sap at: 1).
  	encoder selector: (sap at: 1).
  	(sap at: 2) do: [:argNode | argNode beMethodArg].
  	doit ifFalse: [self pragmaSequence].
  	temps := self temporaries.
  	messageComment := currentComment.
  	currentComment := nil.
  	doit ifFalse: [self pragmaSequence].
  	prim := self pragmaPrimitives.
+ 	self statements: #() innerBlock: false blockNode: BlockNode new.
- 	self statements: #() innerBlock: doit.
  	blk := parseNode.
  	doit ifTrue: [blk returnLast]
  		ifFalse: [blk returnSelfIfNoOther: encoder].
  	hereType == #doIt ifFalse: [^self expected: 'Nothing more'].
  	methodNode := self newMethodNode comment: messageComment.
  	methodNode
  		selector: (sap at: 1)
  		arguments: (sap at: 2)
  		precedence: (sap at: 3)
  		temporaries: temps
  		block: blk
  		encoder: encoder
  		primitive: prim
  		properties: properties.
  	self interactive ifTrue:
  		[self declareUndeclaredTemps: methodNode.
  		 self removeUnusedTemps: methodNode].
  	^methodNode!



More information about the Squeak-dev mailing list