class deprecation notices

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

class deprecation notices

Ben Coman
In Pharo 5.0 I see deprecated classes stripped of all methods and variables defined in a package like...  

Object subclass: #NBExternalStructure
instanceVariableNames: ''
classVariableNames: ''
package: 'Deprecated50'

It was was useful having these remain to facilitate loading Pharo 4.0's TalkFFI for a first look at porting it to Pharo 5.0.  Somewhat expectedly, the class initialization fails with... 
   MessageNotUnderstood: CXIdxDeclInfoStruct class>>rebuildFieldAccessors

(since that method used to be in NBExternalStructure
due to  "NBExternalStructure subclass: #CXIdxDeclInfoStruct)

But it would be nicer to get a Deprecated message rather than a MNU, initially something simple like this...

    Deprecated subclass: #NBExternalStructure

    Deprecated class >> doesNotUnderstand:
         DeprecatedError signal.

but maybe later something like...

    Deprecated class >> doesNotUnderstand:
         Transcript crShow: self deprecationNotes.
         DeprecatedError signal.

    NBExternalStructure class >> deprecationNotes        
        ^ 'Blah-d-blah. Use UFFIXxxxxx instead'.

cheers -ben
Reply | Threaded
Open this post in threaded view
|

Re: class deprecation notices

stepharo

yes NB is really specific with its metadata description


Le 10/9/16 à 10:03, Ben Coman a écrit :
In Pharo 5.0 I see deprecated classes stripped of all methods and variables defined in a package like...  

Object subclass: #NBExternalStructure
instanceVariableNames: ''
classVariableNames: ''
package: 'Deprecated50'

It was was useful having these remain to facilitate loading Pharo 4.0's TalkFFI for a first look at porting it to Pharo 5.0.  Somewhat expectedly, the class initialization fails with... 
   MessageNotUnderstood: CXIdxDeclInfoStruct class>>rebuildFieldAccessors

(since that method used to be in NBExternalStructure
due to  "NBExternalStructure subclass: #CXIdxDeclInfoStruct)

But it would be nicer to get a Deprecated message rather than a MNU, initially something simple like this...

    Deprecated subclass: #NBExternalStructure

    Deprecated class >> doesNotUnderstand:
         DeprecatedError signal.

but maybe later something like...

    Deprecated class >> doesNotUnderstand:
         Transcript crShow: self deprecationNotes.
         DeprecatedError signal.

    NBExternalStructure class >> deprecationNotes        
        ^ 'Blah-d-blah. Use UFFIXxxxxx instead'.

cheers -ben