Hello all Thank you for the helpful answers.
What I updated was PPCMNode>>#name "protocol: accessing" name "hackity hack, this should not be used except for tests..." ^ self printString This is the root object of the document model [1] generated by the PetitMarkDown parser, a common markdown parser by Jan Kurs [2]. Now 488 out of 479 tests pass. Regards Hannes [1] PPCMNode is the base class of the document node hierarchy of a document described by markdown ProtoObject #() Object #() PPCMNode #() PPCMDelegateNode #(#children) PPCMBlockQuote #(#code #infoString) PPCMContainer #() PPCMDocument #() PPCMEmphasize #() PPCMFencedCode #(#infoString) PPCMHeader #(#level #title) PPCMHtmlBlock #() PPCMIndentedCode #() PPCMLine #() PPCMList #(#type #start) PPCMListItem #() PPCMParagraph #() PPCMStrong #() PPCMHardBreak #() PPCMHrule #(#rule) PPCMHtml #(#text) PPCMInlinedCode #(#code) PPCMLink #(#label #destination #title) PPCMLinkRef #(#label) PPCMLinkRefDef #(#label #destination #title) PPCMLinkRefDefPlaceholder #() PPCMPlainLine #(#text) PPCMPlainText #(#text) PPCMSoftBreak #() PPCMText #(#text) [2] Name: PetitMarkdown-JanKurs.7 Author: JanKurs Time: 24 August 2016, 12:25:40.146088 pm UUID: a2256c36-fc35-48ad-936d-9fd7567488e1 http://smalltalkhub.com/mc/JanKurs/PetitParser/main On 8/26/17, PBKResearch <pe...@pbkresearch.co.uk> wrote: > Hannes > > > > You are certainly not required to eliminate #name altogether; all you have > to do is to ensure that any object that receives the message #name knows how > to answer its own name in an appropriate way. To rephrase Ben’s second para > in a more long-winded way: > > > > a. Run the code that generates the deprecation warning. > b. In the warning pop-up, click on ‘Debug’. > c. Examine the debug stack in the top pane. It is probable that the first > two lines will read: > > HannesClass(Object) deprecated:on:in > > HannesClass(Object) name > > where HannesClass is the name of some class in your domain > model. > > d. You now know that some code you have written is sending the message > #name > to an instance of HannesClass, but the class does not have such a method. > The solution is to decide how an instance of that class should answer its > name, and implement that as a method on the instance side of that class. If > nothing else is obvious, the usual default is ^self printString. > e. If the top line of the debug stack does not refer to a class in your > model, work your way down the stack until you find a class that is yours. > > > > Hope this helps > > > > Peter Kenny > > > > > > > > From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of > Ben Coman > Sent: 26 August 2017 13:08 > To: Any question about pharo is welcome <pharo-users@lists.pharo.org> > Subject: Re: [Pharo-users] Object>>#name deprecated in Pharo 6 -- what do I > need to do? > > > > Just checking my presumption... is PPCMNode>>#gtTreeViewIn: > > you own application method? So where it sends #name, instead send > #printString (or #asString). > > > > Alternatively, #name is being sent to some domain object that doesn't > implement #name, so it falls back to the super one from Object. So > implement YourDomainObject>>#name: so the one from Object is not executed. > > > > cheers -ben > > > > > > On Sat, Aug 26, 2017 at 4:38 PM, H. Hirzel <hannes.hir...@gmail.com > <mailto:hannes.hir...@gmail.com> > wrote: > > OK, so #name should not be used at all [1] > > The error message I get is > > PPCommonMarkSpecTest class>>DoIt (blockVisitor is Undeclared) > The method Object>>#name called from PPCMNode>>#gtTreeViewIn: has been > deprecated. > Implement your own domain representation of an object, or use > #asString or #printString instead. > > > I wonder how I can fix this without going to much into details. > > --Hannes > > > ------------------------------------------------------------------------------------------------------------------------ > [1] Pharo 6.1 source code: > > Object>>name > "Answer a name for the receiver. This is used generically in the > title of certain inspectors, such as the referred-to inspector, and > specificially by various subsystems. By default, we let the object > just print itself out.. " > > self > deprecated: 'Implement your own domain representation of an > object, > or use #asString or #printString instead.' > on: '27 May 2016' > in: #Pharo6. > ^ self printString > > > On 8/25/17, Ben Coman <b...@openinworld.com <mailto:b...@openinworld.com> > > wrote: >> I don't have an Image to check, but I believe Object>>name >> just does "^self printString", >> so by default, in your application send #printString instead of #name. >> >> cheers -ben >> >> P.S. Perhaps this would be a good candidate for automated rewrite? >> >> >> On Thu, Aug 24, 2017 at 8:49 PM, H. Hirzel <hannes.hir...@gmail.com >> <mailto:hannes.hir...@gmail.com> > wrote: >> >>> Hello >>> >>> In the last days there was a discussion that >>> >>> Object>>#name >>> >>> >>> should no longer be used. I did not follow the discussion in detail. >>> What was decided how #name should be replaced? >>> >>> What do I need to do if I get a deprecation warning [1]? >>> >>> >>> Thanks for the answer in advance >>> >>> Hannes >>> >>> >>> >>> >>> [1] >>> The method Object>>#name called from PPCMNode>>#gtTreeViewIn: has been >>> deprecated. >>> Implement your own domain representation of an object, or use >>> #asString or #printString instead. >>> >>> Select Proceed to continue, or close this window to cancel the >>> operation. >>> >>> >> > > > >