Issue 5131 in pharo: Error accepting Trait method referencing undefined class

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

Issue 5131 in pharo: Error accepting Trait method referencing undefined class

pharo
Status: Accepted
Owner: [hidden email]
Labels: Type-Bug

New issue 5131 by [hidden email]: Error accepting Trait method  
referencing undefined class
http://code.google.com/p/pharo/issues/detail?id=5131

In 1.3:
1. Open OB on a Trait e.g. TEasilyThemed
2. write a new method that references an undefined class e.g.
     newTextEditor
        ^ MyNewClass new.

26 December 2011 9:08:20 am

VM: Mac OS - intel - 1072 - Croquet Closure Cog VM [CoInterpreter  
VMMaker-oscog-EstebanLorenzano.139] CogVM VM 4.0.0
Image: Pharo1.3 [Latest update: #13320]

Trait(Object)>>doesNotUnderstand: #possibleVariablesFor:continuedFrom:
        Receiver: TEasilyThemed
        Arguments and temporary variables:
                aMessage: possibleVariablesFor: 'TextEntryBuilder' continuedFrom: a  
SortedColle...etc...
                exception: MessageNotUnderstood:  
Trait>>possibleVariablesFor:continuedFrom:
                resumeValue: nil
        Receiver's instance variables:
                methodDict: a MethodDictionary(size 157)
                traitComposition: {}
                localSelectors: nil
                users: an IdentitySet(ComposableMorph StandardWindow MorphicUIManager  
GroupWind...etc...
                organization: ('controls' newAlphaImage:help:  
newAlphaSelector:getAlpha:setAlph...etc...
                name: #TEasilyThemed
                environment: a SystemDictionary(lots of globals)
                classTrait: TEasilyThemed classTrait
                category: #'Polymorph-Widgets'

EncoderForV3PlusClosures(Encoder)>>possibleVariablesFor:
        Receiver: {an EncoderForV3PlusClosures}
        Arguments and temporary variables:
                proposedVariable: 'TextEntryBuilder'
                results: a SortedCollection()
        Receiver's instance variables:
                comment: nil
                pc: nil
                scopeTable: a  
Dictionary('false'->{false} 'nil'->{nil} 'self'->{self} 'super'->...etc...
                nTemps: 0
                supered: false
                requestor: a Parser
                class: TEasilyThemed
                selector: #newTextEntry
                literalStream: a WriteStream #()
                selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}  
#<->{<} #...etc...
                litIndSet: a Dictionary()
                litSet: a LiteralDictionary(-1->{-1} 0->{0} 1->{1} 2->{2} )
                sourceRanges: a Dictionary()
                globalSourceRanges: an OrderedCollection()
                addedSelectorAndMethodClassLiterals: false
                optimizedSelectors: a Set()
                stream: nil
                position: nil
                rootNode: nil
                blockExtentsToLocals: nil

Parser>>possibleVariablesFor:
        Receiver: a Parser
        Arguments and temporary variables:
                proposedVariable: 'TextEntryBuilder'
        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'

UndeclaredVariable>>openMenuIn:
        Receiver: UndeclaredVariable
        Arguments and temporary variables:
                aBlock: [:labels :lines :caption | UIManager default
                chooseFrom: labels
                lin...etc...
                alternatives: nil
                labels: nil
                actions: nil
                lines: nil
                caption: nil
                choice: nil
        Receiver's instance variables:
                messageText: nil
                tag: nil
                signaler: a Parser
                signalContext: UndeclaredVariable(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                name: 'TextEntryBuilder'
                parser: a Parser
                interval: (18 to: 33)

UndeclaredVariable(ParserNotification)>>defaultAction
        Receiver: UndeclaredVariable
        Arguments and temporary variables:

        Receiver's instance variables:
                messageText: nil
                tag: nil
                signaler: a Parser
                signalContext: UndeclaredVariable(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                name: 'TextEntryBuilder'
                parser: a Parser
                interval: (18 to: 33)

UndefinedObject>>handleSignal:
        Receiver: nil
        Arguments and temporary variables:
                exception: UndeclaredVariable
        Receiver's instance variables:
nil

MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: UndeclaredVariable
                val: nil
        Receiver's instance variables:
                sender: PasteUpMorph>>becomeActiveDuring:
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(976486400)")
                closureOrNil: nil
                receiver: [aBlock value]

MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: UndeclaredVariable
                val: nil
        Receiver's instance variables:
                sender: [:def | [def accept: aText notifying: aController]
                on: OBAnnouncerReq...etc...
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(976486400)")
                closureOrNil: nil
                receiver: [def accept: aText notifying: aController]

MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: UndeclaredVariable
                val: nil
        Receiver's instance variables:
                sender: Parser>>parse:class:category:noPattern:context:notifying:ifFail:
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(976486400)")
                closureOrNil: nil
                receiver: [methNode := self method: noPattern context: ctxt]

UndeclaredVariable(Exception)>>signal
        Receiver: UndeclaredVariable
        Arguments and temporary variables:

        Receiver's instance variables:
                messageText: nil
                tag: nil
                signaler: a Parser
                signalContext: UndeclaredVariable(Exception)>>signal
                handlerContext: nil
                outerContext: nil
                name: 'TextEntryBuilder'
                parser: a Parser
                interval: (18 to: 33)

UndeclaredVariable class>>signalFor:name:inRange:
        Receiver: UndeclaredVariable
        Arguments and temporary variables:
                aParser: a Parser
                aString: 'TextEntryBuilder'
                anInterval: (18 to: 33)
        Receiver's instance variables:
                superclass: ParserNotification
                methodDict: a  
MethodDictionary(#openMenuIn:->(UndeclaredVariable>>#openMenuIn: ...etc...
                format: 148
                instanceVariables: #('parser' 'interval')
                organization: ('as yet unclassified' openMenuIn: setParser:name:range:)

                subclasses: nil
                name: #UndeclaredVariable
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Compiler-Exceptions'
                traitComposition: nil
                localSelectors: nil

Parser>>correctVariable:interval:
        Receiver: a Parser
        Arguments and temporary variables:
                proposedVariable: 'TextEntryBuilder'
                spot: (18 to: 33)
                tempIvar: false
                binding: nil
                userSelection: (26 to: 25)
                action: nil
        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'

[self
                correctVariable: varName
                interval: (varStart to: varEnd)] in Parser>>variable
        Receiver: a Parser
        Arguments and temporary variables:
                varName: 'TextEntryBuilder'
                varStart: 18
                varEnd: 33
        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'

[(self
                        lookupInPools: name
                        ifFound: [:assoc | varNode := self global: assoc name: name])
                ifTrue: [varNode]
                ifFalse: [^ action value]] in  
EncoderForV3PlusClosures(Encoder)>>encodeVariable:sourceRange:ifUnknown:
        Receiver: {an EncoderForV3PlusClosures}
        Arguments and temporary variables:
                name: 'TextEntryBuilder'
                action: [self
                correctVariable: varName
                interval: (varStart to: varEnd)]
                varNode: #(nil)
        Receiver's instance variables:
                comment: nil
                pc: nil
                scopeTable: a  
Dictionary('false'->{false} 'nil'->{nil} 'self'->{self} 'super'->...etc...
                nTemps: 0
                supered: false
                requestor: a Parser
                class: TEasilyThemed
                selector: #newTextEntry
                literalStream: a WriteStream #()
                selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}  
#<->{<} #...etc...
                litIndSet: a Dictionary()
                litSet: a LiteralDictionary(-1->{-1} 0->{0} 1->{1} 2->{2} )
                sourceRanges: a Dictionary()
                globalSourceRanges: an OrderedCollection()
                addedSelectorAndMethodClassLiterals: false
                optimizedSelectors: a Set()
                stream: nil
                position: nil
                rootNode: nil
                blockExtentsToLocals: nil

Dictionary>>at:ifAbsent:
        Receiver: a  
Dictionary('false'->{false} 'nil'->{nil} 'self'->{self} 'super'->{super} 'thisContext'->...etc...
        Arguments and temporary variables:
                key: 'TextEntryBuilder'
                aBlock: [(self
                        lookupInPools: name
                        ifFound: [:assoc | varNode := self glo...etc...
                assoc: nil
        Receiver's instance variables:
                tally: 6
                array: an Array(nil nil  
nil 'true'->{true} 'self'->{self} 'false'->{false} 'nil...etc...

EncoderForV3PlusClosures(Encoder)>>encodeVariable:sourceRange:ifUnknown:
        Receiver: {an EncoderForV3PlusClosures}
        Arguments and temporary variables:
                name: 'TextEntryBuilder'
                range: (18 to: 33)
                action: [self
                correctVariable: varName
                interval: (varStart to: varEnd)]
                varNode: #(nil)
        Receiver's instance variables:
                comment: nil
                pc: nil
                scopeTable: a  
Dictionary('false'->{false} 'nil'->{nil} 'self'->{self} 'super'->...etc...
                nTemps: 0
                supered: false
                requestor: a Parser
                class: TEasilyThemed
                selector: #newTextEntry
                literalStream: a WriteStream #()
                selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//}  
#<->{<} #...etc...
                litIndSet: a Dictionary()
                litSet: a LiteralDictionary(-1->{-1} 0->{0} 1->{1} 2->{2} )
                sourceRanges: a Dictionary()
                globalSourceRanges: an OrderedCollection()
                addedSelectorAndMethodClassLiterals: false
                optimizedSelectors: a Set()
                stream: nil
                position: nil
                rootNode: nil
                blockExtentsToLocals: nil

Parser>>variable
        Receiver: a Parser
        Arguments and temporary variables:
                varName: 'TextEntryBuilder'
                varStart: 18
                varEnd: 33
        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'

Parser>>primaryExpression
        Receiver: a Parser
        Arguments and temporary variables:

        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'

Parser>>expression
        Receiver: a Parser
        Arguments and temporary variables:

        Receiver's instance variables:
                source: a ReadStream 'newTextEntry

        ^ TextEntryBuilder new.'
                mark: 38
                hereChar: Character arrowUp
                aheadChar: Character arrowUp
                token: #'.'
                tokenType: #period
                currentComment: nil
                buffer: a WriteStream 'new'
                typeTable: #(#xBinary #xBinary #xBinary #xBinary #xBinary #xBinary  
#xBinary #xB...etc...
                here: 'new'
                hereType: #word
                hereMark: 35
                hereEnd: 37
                prevMark: 18
                prevEnd: 33
                encoder: {an EncoderForV3PlusClosures}
                requestor: an OBPluggableTextMorph(1043333120)
                parseNode: nil
                failBlock: [^ failBlock value]
                requestorOffset: 0
                tempsMark: 16
                doitFlag: false
                properties: an AdditionalMethodState
                category: #'*PolymorphSpd'
...


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5131 in pharo: Error accepting Trait method referencing undefined class

pharo
Updates:
        Status: FixReviewNeeded
        Labels: Milestone-2.0

Comment #1 on issue 5131 by [hidden email]: Error accepting Trait  
method referencing undefined class
http://code.google.com/p/pharo/issues/detail?id=5131

Slice

Name:  
SLICE-Issue-5131-Error-accepting-Trait-method-referencing-undefined-class-md.1
Author: md
Time: 13 July 2012, 5:01:46.834 pm
UUID: 25935588-bf95-4600-94a1-243017b50262
Ancestors:
Dependencies: Traits-md.427

  Issue 5131: Error accepting Trait method referencing undefined class


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5131 in pharo: Error accepting Trait method referencing undefined class

pharo
Updates:
        Status: FixToInclude

Comment #2 on issue 5131 by [hidden email]: Error accepting Trait  
method referencing undefined class
http://code.google.com/p/pharo/issues/detail?id=5131

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 5131 in pharo: Error accepting Trait method referencing undefined class

pharo
Updates:
        Status: Integrated

Comment #3 on issue 5131 by [hidden email]: Error accepting Trait  
method referencing undefined class
http://code.google.com/p/pharo/issues/detail?id=5131

in 2.0 211


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker