I checked

testNilWhenErrorInLookup
    "(self  selector: #testNilWhenErrorInLookup) run"

    self assert: (pointClass lookup: #zork) isNil.
    "The method zork is NOT implement on pointClass"


testRaisesErrorSendWhenErrorInLookup
    "(self  selector: #testRaisesErrorSendWhenErrorInLookup) run"

self should: [ pointClass send: #zork withArguments: { aPoint } ] raise: Error.
    "Open a Transcript to see the message trace"


Le 19/11/15 13:50, Edouard Delbar a écrit :
Hello everyone,

I'm new on this mailing list, this is my first mail :-)

I'm a student from University of Lille (France). I'm studying this tutorial (I'm using Pharo 4 but it seems not to be a problem): http://sdmeta.gforge.inria.fr/Teaching/ObjVLisp/ObjV.pillar.pdf. I'm working with the "ObjVLispSkeleton-StephaneDucasse.1" image loaded from this repository:

    MCSmalltalkhubRepository
    owner: 'StephaneDucasse'
    project: 'ObjVLispSkeleton'
    user: ''
    password: ''


I'm stuck at "Method Lookup" p11. First, it seems that unit tests "testNilWhenErrorInLookup" and "testRaisesErrorSendWhenErrorInLookup" are not provided, thus I'm not sure that I'm working with the right image (everything was fine until p11 though). Then, the "lookup: selector" is not provided neither. While there is another method named "lookup: selector from: anObjObject", I can't figure out what I'm supposed to do with the second parameter.

Ok I checked in the other method is old
the new one should be

lookup: selector
    "look for the method named <selector> starting in the receiver.
The lookup is done for a message sent to <anObjObject>. self is an objClass"



Here is what I would do:

    lookup: selector
    "look for the method named <selector> starting in the receiver.
    The lookup is done for a message sent to <anObjObject>. self is an
    objClass"
    ^ self objMethodDict
    at: selector
    ifAbsent: [ self objSuperclassId ifNotNil: [ self objSuperclass
    lookup: selector ] ]


Could someone tell me if this implementation is correct? If it's correct, what do you think the second parameter is for?

Moreover, do you think I'm working with the right image?

Thanks.

- Edouard

Reply via email to