[Pkg] The Trunk: EToys-cmm.342.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu May 9 07:01:16 UTC 2019
Nicolas Cellier uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-cmm.342.mcz
==================== Summary ====================
Name: EToys-cmm.342
Author: cmm
Time: 7 May 2019, 6:34:48.519808 pm
UUID: da78bdd2-19c3-446e-aec2-be2dab3a21eb
Ancestors: EToys-kfr.341
Ask whether a Parameter and Phrase tiles whether they're #isBooleanType, to allow proper distinction of the actual instances of Boolean.
=============== Diff against EToys-kfr.341 ===============
Item was changed:
----- Method: CategoryViewer>>booleanPhraseFromPhrase: (in category 'support') -----
booleanPhraseFromPhrase: phrase
"Answer, if possible, a boolean-valued phrase derived from the phrase provided"
| retrieverOp retrieverTile |
(phrase isKindOf: ParameterTile orOf: FunctionTile) ifTrue: [^ phrase booleanComparatorPhrase].
+ phrase isBooleanType ifTrue: [^ phrase].
- phrase isBoolean ifTrue: [^ phrase].
((scriptedPlayer respondsTo: #costume)
and:[scriptedPlayer costume isInWorld not]) ifTrue: [^ Array new].
((phrase isMemberOf: PhraseTileMorph) and: [phrase submorphs size > 1] and: [#(bearingTo: distanceToPlayer:) includes: phrase submorphs second operatorOrExpression])
ifTrue:
[^ self booleanPhraseFromNumericGetterWithArgument: phrase].
((retrieverTile := phrase submorphs last) isKindOf: TileMorph) ifFalse: [^ phrase].
retrieverOp := retrieverTile operatorOrExpression.
(Vocabulary vocabularyForType: phrase resultType)
affordsCoercionToBoolean ifTrue: [
retrieverOp = #getPatchValueIn: ifTrue: [
^ self booleanPhraseForGetPatchValueOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getRedComponentIn: ifTrue: [
^ self booleanPhraseForGetColorComponentOfType: phrase resultType componentName: #red retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getGreenComponentIn: ifTrue: [
^ self booleanPhraseForGetColorComponentOfType: phrase resultType componentName: #green retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getBlueComponentIn: ifTrue: [
^ self booleanPhraseForGetColorComponentOfType: phrase resultType componentName: #blue retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getUphillIn: ifTrue: [
^ self booleanPhraseForGetUpHillOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getDistanceTo: ifTrue: [
^ self booleanPhraseForGetDistanceToOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #getAngleTo: ifTrue: [
^ self booleanPhraseForGetAngleToOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
retrieverOp = #bounceOn: ifTrue: [
^ self booleanPhraseForBounceOnOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
" (retrieverOp = #bounceOn:color: or: [retrieverOp = #bounceOnColor:]) ifTrue: [
^ self booleanPhraseForBounceOnColorOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
]."
"retrieverOp = #getTurtleAt: ifTrue: [
^ self booleanPhraseForGetTurtleAtOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
]."
retrieverOp = #getTurtleOf: ifTrue: [
^ self booleanPhraseForGetTurtleOfOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
^ self booleanPhraseForRetrieverOfType: phrase resultType retrieverOp: retrieverOp player: phrase actualObject.
].
^ phrase!
Item was removed:
- ----- Method: ParameterTile>>isBoolean (in category 'access') -----
- isBoolean
- "Answer whether the receiver's type is inherently boolean"
-
- ^ self scriptEditor typeForParameter == #Boolean!
Item was added:
+ ----- Method: ParameterTile>>isBooleanType (in category 'access') -----
+ isBooleanType
+ "Answer whether the receiver's type is inherently boolean"
+
+ ^ self scriptEditor typeForParameter == #Boolean!
Item was removed:
- ----- Method: PhraseTileMorph>>isBoolean (in category 'queries') -----
- isBoolean
- "Answer whether the receiver has a boolean type"
-
- ^ self resultType = #Boolean!
Item was added:
+ ----- Method: PhraseTileMorph>>isBooleanType (in category 'queries') -----
+ isBooleanType
+ "Answer whether the receiver has a boolean type"
+
+ ^ self resultType = #Boolean!
Item was changed:
----- Method: PhraseTileMorph>>rowOfRightTypeFor:forActor: (in category 'all') -----
rowOfRightTypeFor: aLayoutMorph forActor: aPlayer
"Answer a phrase of the right type for the putative container"
| aTemporaryViewer aPhrase |
aLayoutMorph demandsBoolean ifTrue:
+ [self isBooleanType ifTrue: [^ self].
- [self isBoolean ifTrue: [^ self].
aTemporaryViewer := CategoryViewer new invisiblySetPlayer: aPlayer.
aPhrase := aTemporaryViewer booleanPhraseFromPhrase: self.
aPhrase justGrabbedFromViewer: false.
^ aPhrase].
^ self!
Item was removed:
- ----- Method: SystemQueryPhrase>>isBoolean (in category 'access') -----
- isBoolean
- ^ true!
Item was added:
+ ----- Method: SystemQueryPhrase>>isBooleanType (in category 'access') -----
+ isBooleanType
+ ^ true!
More information about the Packages
mailing list