Object.st
changeset 24583 97dfa6eae5bb
parent 24561 835db9da5790
child 24585 fa8fe00176f5
--- a/Object.st	Wed Aug 21 22:52:53 2019 +0200
+++ b/Object.st	Wed Aug 21 22:54:26 2019 +0200
@@ -264,6 +264,7 @@
     "Modified: / 30-01-2019 / 16:26:31 / Claus Gittinger"
 ! !
 
+
 !Object class methodsFor:'Compatibility-ST80'!
 
 rootError
@@ -506,6 +507,7 @@
     InfoPrinting := aBoolean
 ! !
 
+
 !Object class methodsFor:'queries'!
 
 isAbstract
@@ -529,6 +531,10 @@
 
 
 
+
+
+
+
 !Object methodsFor:'Compatibility-GNU'!
 
 display
@@ -545,6 +551,7 @@
     self printCR
 ! !
 
+
 !Object methodsFor:'Compatibility-ST80'!
 
 isMetaclass
@@ -629,36 +636,73 @@
     self errorKeyNotFound:aKey.
 ! !
 
+
 !Object methodsFor:'accessing'!
 
 _at:index
-    "experimental:
-     this is a synthetic selector, generated by the compiler,
+    "this is a synthetic selector, generated by the compiler,
      if a construct of the form expr[idx...] is parsed.
-     I.e.
-	v[n]
+     I.e. 
+        foo[n]
      generates
-	v _at: n
-    "
-
+        foo _at: n
+    "
     ^ self at:index
-
-    "Created: / 21-03-2011 / 14:07:57 / cg"
-!
-
-_at:index put:value
-    "experimental:
-     this is a synthetic selector, generated by the compiler,
+!
+
+_at:index1 at:index2
+    "this is a synthetic selector, generated by the compiler,
+     if a construct of the form expr[idx...] is parsed.
+     I.e. 
+        foo[n,m]
+     generates
+        foo _at:n at:m
+    "
+    ^ (self at:index1) at:index2
+!
+
+_at:index1 at:index2 at:index3
+    "this is a synthetic selector, generated by the compiler,
      if a construct of the form expr[idx...] is parsed.
-     I.e.
-	v[n]
+     I.e. 
+        foo[n,m,o]
+     generates
+        foo _at:n at:m at:o
+    "
+    ^ ((self at:index1) at:index2) at:index3
+!
+
+_at:index1 at:index2 at:index3 put:val
+    "this is a synthetic selector, generated by the compiler,
+     if a construct of the form expr[idx...] := val is parsed.
+     I.e. 
+        foo[n,m,o] := val
      generates
-	v _at: n
-    "
-
-    ^ self at:index put:value
-
-    "Created: / 21-03-2011 / 14:10:12 / cg"
+        foo _at:n at:m at:o put:val
+    "
+    ^ ((self at:index1) at:index2) at:index3 put:val
+!
+
+_at:index1 at:index2 put:val
+    "this is a synthetic selector, generated by the compiler,
+     if a construct of the form expr[idx...] := val is parsed.
+     I.e. 
+        foo[n,m] := val
+     generates
+        foo _at:n at:m put:val
+    "
+    ^ (self at:index1) at:index2 put:val                   
+!
+
+_at:index put:val
+    "this is a synthetic selector, generated by the compiler,
+     if a construct of the form expr[idx...] := val is parsed.
+     I.e. 
+        foo[n] := val
+     generates
+        foo _at:n put:val
+    "
+    ^ self at:index put:val
 !
 
 addSlot: slotName
@@ -1724,6 +1768,8 @@
     "
 ! !
 
+
+
 !Object methodsFor:'attributes access'!
 
 objectAttributeAt:attributeKey
@@ -1868,6 +1914,8 @@
 ! !
 
 
+
+
 !Object methodsFor:'change & update'!
 
 broadcast:aSelectorSymbol
@@ -7431,6 +7479,7 @@
     "
 ! !
 
+
 !Object methodsFor:'printing & storing'!
 
 _errorPrint
@@ -8492,6 +8541,7 @@
     ^ self
 ! !
 
+
 !Object methodsFor:'secure message sending'!
 
 ?:selector
@@ -9159,6 +9209,7 @@
     "Modified: / 30-07-2018 / 09:02:13 / Stefan Vogel"
 ! !
 
+
 !Object methodsFor:'synchronized evaluation'!
 
 freeSynchronizationSemaphore
@@ -11155,6 +11206,9 @@
     ^ aVisitor visitObject:self with:aParameter
 ! !
 
+
+
+
 !Object class methodsFor:'documentation'!
 
 version