Spaces:
Running
Running
File size: 786 Bytes
8f3f8db |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
specifying primitives
primitive: aString parameters: anArray receiver: aClassSymbol
self selectorOverride: aString asSymbol.
anArray size == args size ifFalse:
[^self error: self selectorOverride, ': incorrect number of parameter specifications'].
parmSpecs := anArray collect:
[:each | Smalltalk at: each ifAbsent:
[^self error: self selectorOverride, ': parameter spec must be a Behavior']].
parmSpecs do: [:each | each isBehavior ifFalse:
[^self error: self selectorOverride, ': parameter spec must be a Behavior']].
rcvrSpec := Smalltalk at: aClassSymbol asSymbol ifAbsent:
[^self error: self selectorOverride, ': receiver spec must be a Behavior'].
rcvrSpec isBehavior ifFalse:
[^self error: self selectorOverride, ': receiver spec must be a Behavior'].
^true |