Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007170 [Squeak Packages] OmniBrowser minor always 08-30-08 17:35 09-04-08 09:40
Reporter rjriv View Status public  
Assigned To dr
Priority normal Resolution fixed  
Status resolved  
Summary 0007170: OBPackageBrowserAdaptor will not display class side Traits
Description 1. Open a fresh sq3.10.2-7179dev08.08.1.image
2. Create a new package 'TraitsPlayground'
3. Create a new Trait:

Trait named: #TClassSideTrait
    uses: {}
    category: 'TraitsPlayground'

4. Create a class side method:

class TClassSideTrait>>#classSideTrait
     Transcript show: 'A class side trait'

5. Try to compile. You get the dreaded big red block and yellow X in the method pane, combined with the Debugger output in the Additional Information.

6. Note that the trait DOES exist, and can be view with a the default SystemBrowser.

Additional Information UndefinedObject(Object)>>error:
[] in WorldState>>displayWorldSafely: {[:err :rcvr | errCtx := thisContext. [errCtx := errCtx sender. [errCtx no...]}
BlockContext>>valueWithPossibleArgs:
[] in BlockContext>>ifError: {[:ex | errorHandlerBlock valueWithPossibleArgs: {ex description. ex receiver}]}
BlockContext>>valueWithPossibleArgs:
[] in MethodContext(ContextPart)>>handleSignal: {[(self tempAt: 2) valueWithPossibleArgs: {exception}]}
BlockContext>>ensure:
MethodContext(ContextPart)>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #organization
MethodReference>>category
OBMethodNode>>category
OBInheritanceFilter>>icon:forNode:
[] in OBEnhancementMetaNode(OBMetaNode)>>iconForNode: {[:icon :filter | filter icon: icon forNode: aNode]}
[] in OrderedCollection(Collection)>>inject:into: {[:each | nextValue := binaryBlock value: nextValue value: each]}
OrderedCollection>>do:
OrderedCollection(Collection)>>inject:into:
OBEnhancementMetaNode(OBMetaNode)>>iconForNode:
OBMethodNode(OBNode)>>icon
OBEnhancementColumn(OBColumn)>>iconAt:
OBPluggableListMorph>>iconAt:
OBLazyListMorph>>display:atRow:on:
OBLazyListMorph(LazyListMorph)>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in OBLazyListMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBLazyListMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in TransformMorph>>drawSubmorphsOn: {[:m | myCanvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn: {[:myCanvas | submorphs reverseDo: [:m | myCanvas fullDrawMorph: m]]}
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in OBPluggableListMorph(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in OBPluggableListMorph(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo: [:m | canvas fullDrawMorph: m]]}
OBPluggableListMorph(Morph)>>drawSubmorphsOn:
OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
[] in OBPluggableListMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPluggableListMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in OBPane(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in OBPane(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo: [:m | canvas fullDrawMorph: m]]}
FormCanvas>>clipBy:during:
OBPane(Morph)>>drawSubmorphsOn:
[] in OBPane(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPane(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in TransformMorph>>drawSubmorphsOn: {[:m | myCanvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn: {[:myCanvas | submorphs reverseDo: [:m | myCanvas fullDrawMorph: m]]}
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in OBPaneScroller(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in OBPaneScroller(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo: [:m | canvas fullDrawMorph: m]]}
OBPaneScroller(Morph)>>drawSubmorphsOn:
[] in OBPaneScroller(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBPaneScroller(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in OBGroupingMorph(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in OBGroupingMorph(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo: [:m | canvas fullDrawMorph: m]]}
OBGroupingMorph(Morph)>>drawSubmorphsOn:
[] in OBGroupingMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
OBGroupingMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in SystemWindow(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in SystemWindow(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo: [:m | canvas fullDrawMorph: m]]}
FormCanvas>>clipBy:during:
SystemWindow(Morph)>>drawSubmorphsOn:
[] in SystemWindow(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds) ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
SystemWindow(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in WorldState>>drawWorld:submorphs:invalidAreasOn: {[:r | rectToFill := r. i := 1. [rectToFill isNil or: [i > n]] whileFa...]}
Rectangle>>allAreasOutsideList:startingAt:do:
Rectangle>>allAreasOutsideList:do:
[] in WorldState>>drawWorld:submorphs:invalidAreasOn: {[:dirtyRect | dirtyRect allAreasOutsideList: validList do: [:r | rec...]}
Array(SequenceableCollection)>>do:
WorldState>>drawWorld:submorphs:invalidAreasOn:
[] in WorldState>>displayWorld:submorphs: {[worldDamageRects := self drawWorld: aWorld submorphs: submorphs ...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
WorldState>>displayWorld:submorphs:
PasteUpMorph>>privateOuterDisplayWorld
PasteUpMorph>>displayWorld
[] in WorldState>>displayWorldSafely: {[aWorld displayWorld]}
BlockContext>>on:do:
BlockContext>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}
[] in BlockContext>>newProcess {[self value. Processor terminateActive]}

Attached Files

- Relationships

- Notes
(0012580 - 282 - 288 - 288 - 288 - 288 - 288)
dr
09-04-08 09:40

There is indeed a problem with class-side traits methods, they are correctly not represented in OmniBrowser in a correct way.
OB-Standard-dr.347 fixes the mentioned defect, but the representation of class-side traits methods is still wrong. I will need to look at that more deeply.
 

- Issue History
Date Modified Username Field Change
08-30-08 17:35 rjriv New Issue
08-30-08 17:35 rjriv Status new => assigned
08-30-08 17:35 rjriv Assigned To  => Damien Cassou
09-04-08 06:09 Damien Cassou Assigned To Damien Cassou => dr
09-04-08 09:40 dr Status assigned => resolved
09-04-08 09:40 dr Resolution open => fixed
09-04-08 09:40 dr Note Added: 0012580


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
38 total queries executed.
31 unique queries executed.
Powered by Mantis Bugtracker