The Trunk: Kernel-cwp.832.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-cwp.832.mcz

commits-2
Colin Putney uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-cwp.832.mcz

==================== Summary ====================

Name: Kernel-cwp.832
Author: cwp
Time: 18 January 2014, 10:36:05.863 am
UUID: 8aa9fb24-86f6-43bb-b925-d5b6e7d47022
Ancestors: Kernel-nice.831

Remove references to Undeclared and route through the appropriate environment.

=============== Diff against Kernel-nice.831 ===============

Item was changed:
  ----- Method: Behavior>>environment (in category 'accessing') -----
  environment
+ "Return the environment in which the receiver is declared"
- "Return the environment in which the receiver is visible"
  ^Smalltalk globals!

Item was changed:
  ----- Method: Behavior>>literalScannedAs:notifying: (in category 'printing') -----
  literalScannedAs: scannedLiteral notifying: requestor
  "Postprocesses a literal scanned by Scanner scanToken (esp. xLitQuote).
  If scannedLiteral is not an association, answer it.
  Else, if it is of the form:
  nil->#NameOfMetaclass
  answer nil->theMetaclass, if any has that name, else report an error.
  Else, if it is of the form:
  #NameOfGlobalVariable->anythiEng
  answer the global, class, or pool association with that nameE, if any, else
  add it to Undeclared a answer the new Association."
 
  | key value |
  (scannedLiteral isVariableBinding)
  ifFalse: [^ scannedLiteral].
  key := scannedLiteral key.
  value := scannedLiteral value.
  key isNil
  ifTrue: "###<metaclass soleInstance name>"
  [(self bindingOf: value) ifNotNil:[:assoc|
  (assoc value isKindOf: Behavior)
  ifTrue: [^ nil->assoc value class]].
  requestor notify: 'No such metaclass'.
  ^false].
  (key isSymbol)
  ifTrue: "##<global var name>"
+ [^ (self bindingOf: key) ifNil:
+ [self environment undeclare: key]].
- [(self bindingOf: key) ifNotNil:[:assoc | ^assoc].
- Undeclared at: key put: nil.
- ^Undeclared bindingOf: key].
  requestor notify: '## must be followed by a non-local variable name'.
  ^false
 
  " Form literalScannedAs: 14 notifying: nil 14
  Form literalScannedAs: #OneBitForm notiEfying: nil  OneBitForm
  Form literalScannedAs: ##OneBitForm notifying: nil  OneBitForm->a Form
  Form literalScannedAs: ##Form notifying: nil   Form->Form
  Form literalScannedAs: ###Form notifying: nil   nilE->Form class
  "!

Item was changed:
  ----- Method: Class>>removeClassVarName: (in category 'class variables') -----
  removeClassVarName: aString
  "Remove the class variable whose name is the argument, aString, from
  the names defined in the receiver, a class. Create an error notification if
  aString is not a class variable or if it is still being used in the code of
  the class."
 
  | aSymbol |
  aSymbol := aString asSymbol.
  (classPool includesKey: aSymbol)
  ifFalse: [^self error: aString, ' is not a class variable'].
  self withAllSubclasses do:[:subclass |
  (Array with: subclass with: subclass class) do:[:classOrMeta |
  (classOrMeta whichSelectorsReferTo: (classPool associationAt: aSymbol))
  isEmpty ifFalse: [
  InMidstOfFileinNotification signal ifTrue: [
  Transcript cr; show: self name, ' (' , aString , ' is Undeclared) '.
+ ^self environment undeclare: aSymbol from: classPool].
- ^self environment undeclared declare: aSymbol from: classPool].
  (self confirm: (aString,' is still used in code of class ', classOrMeta name,
  '.\Is it okay to move it to Undeclared?') withCRs)
+ ifTrue:[^ self environment undeclare: aSymbol from: classPool]
- ifTrue:[^Undeclared declare: aSymbol from: classPool]
  ifFalse:[^self]]]].
  classPool removeKey: aSymbol.
  classPool isEmpty ifTrue: [classPool := nil].
  !