[BUG] FileContentsBrowser/PseudoClass bug pretty printing

C. David Shaffer cdshaffer at acm.org
Thu Feb 26 02:45:04 UTC 2004


If color pretty printing are enabled, if a method being viewed in the 
FileContentsBrowser includes an i-var reference which the PseudoClass 
can't find in it's scope table, you get the attached stack trace.  I'm 
not exactly sure how PseudoClass is supposed to work so I don't know if 
this is considered a bug (*) in that class but I think that the browser 
should non-pretty print the text if parsing fails.


David

* the i-var that wasn't in scopeTable was an i-var of a superclass of 
the class that PseudoClass was "extending" but the class definition was 
not in the file so PC would have to look at the existing class 
definition to get its context correct for the extension supplied in the 
file...I'm not sure if it is expected to go that far.
-------------- next part --------------
Error: Object is not in the collection.
25 February 2004 9:34:50 pm

VM: unix - a SmalltalkImage
Image: Squeak3.7alpha [latest update: #5707]

OrderedCollection(Object)>>error:
	Receiver: an OrderedCollection(a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'ad...etc...
	Arguments and temporary variables: 
		aString: 	'Object is not in the collection.'
	Receiver's instance variables: 
		array: 	#(nil nil a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'adding' a WhiskerListItemMor...etc...
		firstIndex: 	3
		lastIndex: 	9

OrderedCollection(Collection)>>errorNotFound:
	Receiver: an OrderedCollection(a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'ad...etc...
	Arguments and temporary variables: 
		anObject: 	[] in MultiSelectHierarchicalListMorph>>selectByExpandingThroughColle...etc...
	Receiver's instance variables: 
		array: 	#(nil nil a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'adding' a WhiskerListItemMor...etc...
		firstIndex: 	3
		lastIndex: 	9

[] in OrderedCollection(Collection)>>detect: {[self errorNotFound: aBlock]}
	Arguments and temporary variables: 
		aBlock: 	[] in MultiSelectHierarchicalListMorph>>selectByExpandingThroughCollect...etc...

OrderedCollection(Collection)>>detect:ifNone:
	Receiver: an OrderedCollection(a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'ad...etc...
	Arguments and temporary variables: 
		aBlock: 	[] in MultiSelectHierarchicalListMorph>>selectByExpandingThroughCollect...etc...
		exceptionBlock: 	[] in OrderedCollection(Collection)>>detect: {[self errorNotFound: aBlock]}...etc...
		each: 	a WhiskerListItemMorph(299)'topological sort'
	Receiver's instance variables: 
		array: 	#(nil nil a WhiskerListItemMorph(619)'accessing' a WhiskerListItemMorph(578)'adding' a WhiskerListItemMor...etc...
		firstIndex: 	3
		lastIndex: 	9


--- The full stack ---
OrderedCollection(Object)>>error:
OrderedCollection(Collection)>>errorNotFound:
[] in OrderedCollection(Collection)>>detect: {[self errorNotFound: aBlock]}
OrderedCollection(Collection)>>detect:ifNone:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OrderedCollection(Collection)>>detect:
[] in MultiSelectHierarchicalListMorph>>selectByExpandingThroughCollection: {[:eachItem |  morph := siblings     detect: [:itemMorph | itemMorph complexC...]}
OrderedCollection>>do:
MultiSelectHierarchicalListMorph>>selectByExpandingThroughCollection:
WhiskerWindow>>selectMethod:inClass:
WhiskerBrowser class>>openExistingBrowserOnClass:selector:
Browser class>>fullOnClass:selector:
FileContentsBrowser>>browseMethodFull
FileContentsBrowser(StringHolder)>>perform:orSendTo:
[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector numArgs) = 0   ifTrue: [target perform: selector] ...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.  ActiveEvent := anEvent.  result := focusHolder     han...]}
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h processEvents.  h isGenieRecognizing   ifTrue: [r...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}


More information about the Squeak-dev mailing list