Hi Marcus - I can put an image somewhere if that helps (do you just need the .image and .changes)?
Or you can repro from a fresh 6.1 if you follow the exercism Pharo instructions (https://exercism.io/tracks/pharo) to load the first hello world-world example and run the tests. This has my code changes to make create work with a nil class - but maybe we can do better? Tim Sent from my iPhone > On 17 Aug 2018, at 06:21, Marcus Denker <[email protected]> wrote: > > > >> On 10 Aug 2018, at 23:16, Tim Mackinnon <[email protected]> wrote: >> >> Actually I think I figured that bit out - a bit clumsily - (pointers >> appreciated) >> >> createMissingClassActionFor: aMessage in: aContext >> |errorNode senderContext newClass variableNode | >> senderContext := aContext sender. >> errorNode := senderContext method sourceNodeExecutedForPC: senderContext >> pc. >> variableNode := errorNode receiver receiver. >> >> newClass := OCUndeclaredVariableWarning new node: variableNode; >> defineClass: variableNode name. >> aContext restart. >> >> However that last line is wrong, as it doesn’t restart with my newly defined >> class - I also tried >> >> aContext restartWithNewReceiver: newClass >> >> But again, I get a debugger where my class is still bound to nil. So what’s >> the trick to re-evaluate with the new class I’ve created? Or maybe I’m >> totally on the wrong track (still its very interesting…) >> > > > what is a bit bad is that you catch the problem “too late” (that is, the DNU > to nil, not the read of nil), so nil is already pushed on the stack at this > point. > > I tried it in the inspector and at least the class binding was correct after > defining the class… do you have an image with the whole code to try? > > Marcus > >
