made a copy
[strongtalk-kjk.git] / StrongtalkSource / DeltaObjectSideBehavior.dlt
blobe8cb117a4ff4c58a6d8ddc8b3dcc11a36e19f3e6
1 Delta define: #DeltaObjectSideBehavior as: (\r
2 (Class subclassOf: 'DeltaSideBehavior' instanceVariables: '') abstract) !\r
3 \r
4 (Delta mirrorFor: #DeltaObjectSideBehavior) revision: '$Revision: 1.2 $'!\r
5 \r
6 (Delta mirrorFor: #DeltaObjectSideBehavior) group: 'ast'!\r
7 \r
8 (Delta mirrorFor: #DeltaObjectSideBehavior)\r
9 comment: \r
10 'Specialized hierarchy for the sides of Object.\r
11  (c) 1995-1997 Sun Microsystems, Inc. ALL RIGHTS RESERVED. \r
12 Use and distribution of this software is subject to the terms of the attached source license.'!\r
14 ! (Delta mirrorFor: #DeltaObjectSideBehavior) methodsFor: 'Unclassified' !\r
17 fixupScopes  ^ <Self>\r
19 "This should be removed at some point after bootstrap. The missing scope entries \r
20   should be set correctly by the mirrors when the scope is created, but this it awkward \r
21   at the moment."\r
23 self deltaHack.\r
24 super fixupScopes.\r
26 "Type for super"\r
27 (self scope at: #super) type isNil ifTrue:[\r
28         (self scope at: #super)\r
29                 name: #super\r
30                 type: DeltaSuperSendToNilError new.\r
31 ].\r
32 !\r
34 heirScope ^ <Scope>\r
35     ^self localScope!\r
37 localScope ^ <Scope>\r
38     ^self scope delta!\r
40 typeOfInstances ^ <ObjectType>\r
41 "This method returns the public protocol of the side.  For the class side,\r
42 we delegate responsibility to the dual.\r
44 For the instance side,  we create an object protocol, using self as the\r
45 filteree.\r
46 We must take care to replace private type variables with public ones;\r
47 this is done by using the appropriate substitution"\r
49 ^ DeltaObjectProtocol new filter: self using: self instanceTypeSubstitution.! !\r