class: UndefinedObject
changed: #subclass:instanceVariableNames:classVariableNames:poolDictionaries:privateIn:
--- a/UndefinedObject.st Wed Jun 10 02:39:01 2015 +0200
+++ b/UndefinedObject.st Wed Jun 10 02:39:28 2015 +0200
@@ -11,6 +11,8 @@
"
"{ Package: 'stx:libbasic' }"
+"{ NameSpace: Smalltalk }"
+
Object subclass:#UndefinedObject
instanceVariableNames:''
classVariableNames:'CreateMinimumProtocolInNewSubclassQuery'
@@ -108,7 +110,6 @@
"Modified: 3.1.1997 / 15:06:15 / cg"
! !
-
!UndefinedObject class methodsFor:'queries'!
canBeSubclassed
@@ -155,8 +156,6 @@
-
-
!UndefinedObject methodsFor:'converting'!
asBoolean
@@ -300,6 +299,7 @@
^ 0
! !
+
!UndefinedObject methodsFor:'subclass creation'!
nilSubclass:action
@@ -453,10 +453,18 @@
!UndefinedObject methodsFor:'subclass creation-private'!
-subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClass
+subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClassArg
"create a new private class which has nil as superclass
- i.e. traps into #doesNotUnderstand: for all of its messages."
+ |category ownerClass|
+
+ (ownerClass := ownerClassArg) isNil ifTrue:[
+ self error:'Nil (undefined) owner class - proceed to define as global' mayProceed:true.
+ ] ifFalse:[
+ category := ownerClassArg category
+ ].
+
^ self
nilSubclass:[
Object class
@@ -469,7 +477,7 @@
pointers:true
classVariableNames:classVarString
poolDictionaries:pool
- category:ownerClass category
+ category:category
comment:nil
changed:true
]
@@ -721,15 +729,14 @@
^ aVisitor visitNilWith:aParameter
! !
-
!UndefinedObject class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.78 2014-10-26 01:31:37 vrany Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.78 2014-10-26 01:31:37 vrany Exp $'
+ ^ '$Header$'
! !