MessageSend.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 24388 4f358c92d248
child 24753 05d67cbad525
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22721
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
     1
"{ Encoding: utf8 }"
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
     2
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
     3
"
4da5558d8141 Initial revision
claus
parents:
diff changeset
     4
 COPYRIGHT (c) 1994 by Claus Gittinger
344
claus
parents: 160
diff changeset
     5
	      All Rights Reserved
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
     6
4da5558d8141 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
4da5558d8141 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
4da5558d8141 Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
4da5558d8141 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
4da5558d8141 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
4da5558d8141 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
4da5558d8141 Initial revision
claus
parents:
diff changeset
    13
"
7781
03095ade1b75 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
    14
"{ Package: 'stx:libbasic' }"
5591
08ada63daf2a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
    15
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
    16
"{ NameSpace: Smalltalk }"
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
    17
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    18
Message subclass:#MessageSend
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    19
	instanceVariableNames:'receiver'
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    20
	classVariableNames:''
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    21
	poolDictionaries:''
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    22
	category:'Kernel-Methods'
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    23
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
    24
4da5558d8141 Initial revision
claus
parents:
diff changeset
    25
!MessageSend class methodsFor:'documentation'!
4da5558d8141 Initial revision
claus
parents:
diff changeset
    26
4da5558d8141 Initial revision
claus
parents:
diff changeset
    27
copyright
4da5558d8141 Initial revision
claus
parents:
diff changeset
    28
"
4da5558d8141 Initial revision
claus
parents:
diff changeset
    29
 COPYRIGHT (c) 1994 by Claus Gittinger
344
claus
parents: 160
diff changeset
    30
	      All Rights Reserved
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    31
4da5558d8141 Initial revision
claus
parents:
diff changeset
    32
 This software is furnished under a license and may be used
4da5558d8141 Initial revision
claus
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
4da5558d8141 Initial revision
claus
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
4da5558d8141 Initial revision
claus
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
4da5558d8141 Initial revision
claus
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
4da5558d8141 Initial revision
claus
parents:
diff changeset
    37
 hereby transferred.
4da5558d8141 Initial revision
claus
parents:
diff changeset
    38
"
4da5558d8141 Initial revision
claus
parents:
diff changeset
    39
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
    40
4da5558d8141 Initial revision
claus
parents:
diff changeset
    41
documentation
4da5558d8141 Initial revision
claus
parents:
diff changeset
    42
"
4da5558d8141 Initial revision
claus
parents:
diff changeset
    43
    Instances of MessageSend can be used for simulation programs.
4da5558d8141 Initial revision
claus
parents:
diff changeset
    44
    They keep some receiver, selector and arguments and can be evaluated
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    45
    at any time later. (basically, they are like MessageObjects, but keep
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    46
    the receiver in addition to the selector & arguments).
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    47
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    48
    They can also be used as replacement for simple [self foo]-blocks.
4da5558d8141 Initial revision
claus
parents:
diff changeset
    49
    Of course, they could also be replaced by blocks such as
4da5558d8141 Initial revision
claus
parents:
diff changeset
    50
    '[receiver perform:selector withArguments:arguments]', 
344
claus
parents: 160
diff changeset
    51
    but blocks are somewhat more expensive in their creation and require
claus
parents: 160
diff changeset
    52
    more storage.
claus
parents: 160
diff changeset
    53
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    54
    If you plan to write a simulator and want to queue cillions of blocks,
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    55
    try to use MessageSends instead of blocks
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    56
    (or even: message, if the receiver is constant);
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    57
    this will save you a lot of memory.
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    58
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    59
    However, the send-operation itself is faster in a block, since it
4da5558d8141 Initial revision
claus
parents:
diff changeset
    60
    will use a better caching scheme (inline-cache) for its send, while
4da5558d8141 Initial revision
claus
parents:
diff changeset
    61
    sending here is done with a #perform:, which is not inline-cached. 
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    62
    Also, blocks are more flexible, in that they allow access to local
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    63
    variables of the defining method - and work without a need to define an
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    64
    extra visited method (read literature on visitor patterns).
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    65
363
claus
parents: 344
diff changeset
    66
    Thus it is not sure, which one is actually better to use ...
claus
parents: 344
diff changeset
    67
claus
parents: 344
diff changeset
    68
    You can either store arguments in the messageSend object, or
claus
parents: 344
diff changeset
    69
    leave them undefined until the send is actually performed, and
claus
parents: 344
diff changeset
    70
    pass any arguments with the value:-messages.
1270
4e8058487ed3 commentary
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
    71
4e8058487ed3 commentary
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
    72
    [See also:]
4e8058487ed3 commentary
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
    73
        Block  Message
1293
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1270
diff changeset
    74
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1270
diff changeset
    75
    [author:]
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1270
diff changeset
    76
        Claus Gittinger
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    77
"
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    78
!
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    79
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    80
examples
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    81
"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    82
    Example:
4da5558d8141 Initial revision
claus
parents:
diff changeset
    83
       |m|
4da5558d8141 Initial revision
claus
parents:
diff changeset
    84
4da5558d8141 Initial revision
claus
parents:
diff changeset
    85
       m := MessageSend receiver:1 selector:#+ arguments:#(2).
363
claus
parents: 344
diff changeset
    86
       m value. 
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    87
1316
248a8cb2ae3b examples
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
    88
248a8cb2ae3b examples
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
    89
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    90
    is almost the same as:
344
claus
parents: 160
diff changeset
    91
       |m|
claus
parents: 160
diff changeset
    92
claus
parents: 160
diff changeset
    93
       m := [1+2].
363
claus
parents: 344
diff changeset
    94
       m value. 
344
claus
parents: 160
diff changeset
    95
claus
parents: 160
diff changeset
    96
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    97
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
    98
    Example2 (a simulation)
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
    99
        |q|
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   100
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   101
        q := Queue new.
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   102
        ...
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   103
        'put some action into the queue'
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   104
        q nextPut:(MessageSend receiver:someone selector:#foo arguments:#().
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   105
        ...
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   106
        'evaluate next action from the queue'
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   107
        q next value
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   108
        ...
344
claus
parents: 160
diff changeset
   109
claus
parents: 160
diff changeset
   110
    if all sends are going to the same receiver, use:
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   111
        |q|
344
claus
parents: 160
diff changeset
   112
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   113
        q := Queue new.
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   114
        ...
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   115
        'put some action into the queue'
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   116
        q nextPut:(Message selector:#foo arguments:#().
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   117
        ...
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   118
        'evaluate next action from the queue'
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   119
        q next sendTo:someone
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   120
        ...
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   121
"
4da5558d8141 Initial revision
claus
parents:
diff changeset
   122
! !
4da5558d8141 Initial revision
claus
parents:
diff changeset
   123
4da5558d8141 Initial revision
claus
parents:
diff changeset
   124
!MessageSend class methodsFor:'instance creation'!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   125
2473
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   126
receiver:r selector:sel
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   127
    "create & return a new instance which can be used to
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   128
     send sel to some receiver, r"
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   129
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   130
    ^ self receiver:r selector:sel arguments:nil
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   131
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   132
    "
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   133
     (MessageSend receiver:nil selector:#foo) value
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   134
    "
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   135
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   136
    "Modified: 20.3.1997 / 21:55:16 / cg"
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   137
!
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   138
5669
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   139
receiver:r selector:sel argument:something
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   140
    "create & return a new instance which can be used to
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   141
     send sel with arguments to some receiver, r"
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   142
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   143
    ^ self receiver:r selector:sel arguments:(Array with:something)
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   144
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   145
    "
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   146
     (MessageSend receiver:nil selector:#foo: argument:1) value
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   147
    "
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   148
!
b3b9daefb6b6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
   149
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   150
receiver:r selector:sel arguments:argArray
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   151
    "create & return a new instance which can be used to
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   152
     send sel with arguments to some receiver, r"
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   153
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   154
    |newMessage|
4da5558d8141 Initial revision
claus
parents:
diff changeset
   155
344
claus
parents: 160
diff changeset
   156
    newMessage := super new setSelector:sel arguments:argArray.
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   157
    newMessage receiver:r.
4da5558d8141 Initial revision
claus
parents:
diff changeset
   158
    ^ newMessage
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   159
2473
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   160
    "
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   161
     (MessageSend receiver:nil selector:#foo: arguments:#(1)) value
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   162
    "
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   163
dc61bb1e6d17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1316
diff changeset
   164
    "Modified: 20.3.1997 / 21:55:44 / cg"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   165
! !
4da5558d8141 Initial revision
claus
parents:
diff changeset
   166
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   167
!MessageSend methodsFor:'Compatibility-Squeak'!
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   168
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   169
cull: optionalFirstArg 
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   170
    "activate the receiver with one or zero arguments.
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   171
     Squeak compatibility, but also present in VW Smalltalk"
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   172
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   173
    selector numArgs >= 1 ifTrue:[^ self value:optionalFirstArg].
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   174
    ^ self value
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   175
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   176
    "Modified: / 03-06-2014 / 12:40:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   177
!
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   178
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   179
cull: optionalFirstArg cull: optionalSecondArg
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   180
    "activate the receiver with two or less arguments.
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   181
     Squeak compatibility, but also present in VW Smalltalk"
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   182
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   183
    | nargs |
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   184
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   185
    nargs := selector numArgs.
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   186
    nargs >= 2 ifTrue:[^ self value:optionalFirstArg value:optionalSecondArg].
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   187
    nargs = 1 ifTrue:[^ self value:optionalFirstArg].
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   188
    ^ self value
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   189
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   190
    "Modified (format): / 03-06-2014 / 12:40:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   191
!
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   192
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   193
cull: firstArg cull: optionalSecondArg cull: optionalThirdArg
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   194
    "activate the receiver with three or less arguments.
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   195
     Squeak compatibility, but also present in VW Smalltalk"
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   196
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   197
    | nargs |
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   198
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   199
    nargs := selector numArgs.
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   200
    nargs >= 2 ifTrue:[
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   201
        nargs >= 3 ifTrue:[
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   202
            ^ self value:firstArg value:optionalSecondArg value:optionalThirdArg
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   203
        ].
17696
bdccf4ca66ba class: MessageSend
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
   204
        ^ self value:firstArg value:optionalSecondArg
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   205
    ].
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   206
    nargs = 1 ifTrue:[^ self value:firstArg].
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   207
    ^ self value
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   208
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   209
    "Modified: / 03-06-2014 / 12:40:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   210
! !
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   211
13184
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   212
!MessageSend methodsFor:'Compatibility-V''Age'!
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   213
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   214
evaluate
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   215
    ^ self value
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   216
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   217
    "Created: / 22-12-2010 / 12:59:25 / cg"
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   218
!
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   219
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   220
evaluateWith:someArgument
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   221
    ^ self value:someArgument
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   222
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   223
    "Created: / 22-12-2010 / 13:50:33 / cg"
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   224
!
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   225
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   226
evaluateWithArguments:argArray
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   227
    ^ self valueWithArguments:argArray
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   228
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   229
    "Created: / 22-12-2010 / 12:59:42 / cg"
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   230
! !
3a98fb1116bf added: #evaluateWith:
Claus Gittinger <cg@exept.de>
parents: 13058
diff changeset
   231
8688
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   232
!MessageSend methodsFor:'accessing'!
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   233
8688
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   234
argumentCount
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   235
    "VisualAge/ANSI compatibility: return the number of arguments of the message"
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   236
8688
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   237
    ^ selector argumentCount
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   238
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   239
    "Modified: 23.4.1996 / 16:52:51 / cg"
c3de1df6642a Define #argumentCount as ANSI alias for #numArgs
Stefan Vogel <sv@exept.de>
parents: 8581
diff changeset
   240
!
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   241
8581
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   242
numArgs
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   243
    "return the number of arguments of the message"
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   244
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   245
    ^ selector numArgs
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   246
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   247
    "Modified: 23.4.1996 / 16:52:51 / cg"
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   248
!
89cc7d8986e3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
   249
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   250
receiver
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   251
    "return the receiver of the message"
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   252
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   253
    ^ receiver
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   254
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   255
    "Modified: 23.4.1996 / 16:52:59 / cg"
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   256
!
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   257
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   258
receiver:r
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   259
    "set the receiver of the message"
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   260
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   261
    receiver := r
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   262
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   263
    "Modified: 23.4.1996 / 16:53:04 / cg"
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   264
! !
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   265
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   266
!MessageSend methodsFor:'evaluation'!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   267
4da5558d8141 Initial revision
claus
parents:
diff changeset
   268
value
160
5dae57a490bd *** empty log message ***
claus
parents: 96
diff changeset
   269
    "evaluate the messagesend with the original arguments"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   270
4da5558d8141 Initial revision
claus
parents:
diff changeset
   271
    ^ receiver perform:selector withArguments:args
4da5558d8141 Initial revision
claus
parents:
diff changeset
   272
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   273
4da5558d8141 Initial revision
claus
parents:
diff changeset
   274
value:someArgument
4da5558d8141 Initial revision
claus
parents:
diff changeset
   275
    "evaluate the messagesend, with someArgument instead of the original"
13058
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   276
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   277
    ^ receiver perform:selector withOptionalArgument:someArgument
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   278
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   279
    "Modified: / 14-09-2010 / 16:04:39 / cg"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   280
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   281
4da5558d8141 Initial revision
claus
parents:
diff changeset
   282
value:arg1 value:arg2
160
5dae57a490bd *** empty log message ***
claus
parents: 96
diff changeset
   283
    "evaluate the messagesend, with arg1 and arg2 instead of the original
5dae57a490bd *** empty log message ***
claus
parents: 96
diff changeset
   284
     arguments"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   285
13058
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   286
    ^ receiver perform:selector withOptionalArgument:arg1 and:arg2
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   287
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   288
    "Modified: / 14-09-2010 / 16:04:58 / cg"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   289
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   290
4da5558d8141 Initial revision
claus
parents:
diff changeset
   291
value:arg1 value:arg2 value:arg3
160
5dae57a490bd *** empty log message ***
claus
parents: 96
diff changeset
   292
    "evaluate the messagesend, with arg1, arg2 and arg3 instead of the original
5dae57a490bd *** empty log message ***
claus
parents: 96
diff changeset
   293
     arguments"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   294
8580
106f40c73275 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7781
diff changeset
   295
    ^ receiver perform:selector with:arg1 with:arg2 with:arg3
363
claus
parents: 344
diff changeset
   296
!
claus
parents: 344
diff changeset
   297
claus
parents: 344
diff changeset
   298
valueWithArguments:argArray
claus
parents: 344
diff changeset
   299
    "evaluate the messagesend, with arguments taken from argArray,
claus
parents: 344
diff changeset
   300
     instead of the original arguments"
claus
parents: 344
diff changeset
   301
8580
106f40c73275 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7781
diff changeset
   302
    ^ receiver perform:selector withArguments:argArray
11417
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   303
!
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   304
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   305
valueWithOptionalArgument:arg
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   306
    "evaluate the messagesend.
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   307
     Optionally pass an argument (if the selector is for a one arg message)."
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   308
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   309
    ^ receiver perform:selector withOptionalArgument:arg
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   310
!
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   311
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   312
valueWithOptionalArgument:arg1 and:arg2
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   313
    "evaluate the messagesend.
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   314
     Optionally pass up to two arguments."
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   315
af0c3065a5c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8688
diff changeset
   316
    ^ receiver perform:selector withOptionalArgument:arg1 and:arg2
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   317
! !
4da5558d8141 Initial revision
claus
parents:
diff changeset
   318
4da5558d8141 Initial revision
claus
parents:
diff changeset
   319
!MessageSend methodsFor:'printing & storing'!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   320
14290
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   321
displayOn:aGCOrStream
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   322
    "Compatibility
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   323
     append a printed desription on some stream (Dolphin,  Squeak)
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   324
     OR:
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   325
     display the receiver in a graphicsContext at 0@0 (ST80).
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   326
     This method allows for any object to be displayed in some view
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   327
     (although the fallBack is to display its printString ...)"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   328
14290
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   329
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
21531
3741418705e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17696
diff changeset
   330
    "/ old ST80 means: draw-yourself on a GC.
14290
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   331
    aGCOrStream isStream ifFalse:[
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   332
        ^ super displayOn:aGCOrStream.
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   333
    ].
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   334
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   335
    aGCOrStream 
24388
4f358c92d248 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 22721
diff changeset
   336
        nextPutAll:self className;
14290
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   337
        nextPut:$(.
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   338
    receiver displayOn:aGCOrStream. 
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   339
    aGCOrStream nextPutAll:'>>'.
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   340
    selector storeOn:aGCOrStream. 
1561011a34fd Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 13184
diff changeset
   341
    aGCOrStream nextPut:$)
21531
3741418705e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17696
diff changeset
   342
3741418705e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17696
diff changeset
   343
    "Modified (comment): / 22-02-2017 / 16:48:49 / cg"
24388
4f358c92d248 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 22721
diff changeset
   344
    "Modified: / 28-06-2019 / 09:04:15 / Claus Gittinger"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   345
!
4da5558d8141 Initial revision
claus
parents:
diff changeset
   346
4da5558d8141 Initial revision
claus
parents:
diff changeset
   347
printOn:aStream
4392
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   348
    "append a user printed representation of the receiver to aStream.
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 2473
diff changeset
   349
     The format is suitable for a human - not meant to be read back."
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   350
4da5558d8141 Initial revision
claus
parents:
diff changeset
   351
    receiver printOn:aStream.
4da5558d8141 Initial revision
claus
parents:
diff changeset
   352
    aStream nextPutAll:'>>'.
4da5558d8141 Initial revision
claus
parents:
diff changeset
   353
    selector printOn:aStream
1269
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   354
77682b54144c commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   355
    "Modified: 23.4.1996 / 16:53:35 / cg"
96
4da5558d8141 Initial revision
claus
parents:
diff changeset
   356
! !
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   357
22721
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   358
!MessageSend methodsFor:'testing'!
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   359
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   360
isBlockOrMessageSend
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   361
    ^ true
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   362
! !
0649d8f051b0 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21531
diff changeset
   363
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   364
!MessageSend class methodsFor:'documentation'!
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   365
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   366
version
21531
3741418705e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17696
diff changeset
   367
    ^ '$Header$'
13058
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   368
!
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   369
d4e72bdf1db7 changed:
Claus Gittinger <cg@exept.de>
parents: 11417
diff changeset
   370
version_CVS
21531
3741418705e1 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17696
diff changeset
   371
    ^ '$Header$'
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   372
! !
16535
7e7955b07b1f Added MessageSend>>#cull:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14290
diff changeset
   373