diff -r a5f135955d71 -r ef51c9c52b52 ClassInspectorView.st --- a/ClassInspectorView.st Thu Jun 02 06:51:52 2016 +0200 +++ b/ClassInspectorView.st Mon Jun 06 12:37:27 2016 +0100 @@ -1,3 +1,5 @@ +"{ Encoding: utf8 }" + " COPYRIGHT (c) 1994 by Claus Gittinger All Rights Reserved @@ -78,27 +80,35 @@ valueAtLine:lineNr "return a list of names to show in the selectionList" - |list idx0| + |list idx0 nm cls| list := super fieldList. lineNr <= list size ifTrue:[ ^ super valueAtLine:lineNr ]. - "/ - "/ a class variable - "/ - idx0 := list size + 1. - inspectedObject class withAllSuperclasses reverseDo:[:aClass | - |varNames varName| + nm := self listEntryAt:lineNr. + nm isNil ifTrue:[ ^nil]. - varNames := aClass classVarNames. - varNames notEmpty ifTrue:[ - (lineNr between:idx0+1 and:(idx0 + 1 + varNames size - 1)) ifTrue:[ - varName := varNames at:lineNr-idx0. - ^ aClass classVarAt:varName. - ]. - idx0 := idx0 + varNames size + 1. - ] + "/ + "/ a class variable? + "/ + cls := inspectedObject class theNonMetaclass whichClassDefinesClassVar:nm. + cls notNil ifTrue:[ + ^ cls classVarAt:nm. ]. + +"/ idx0 := list size + 1. +"/ inspectedObject class withAllSuperclasses reverseDo:[:aClass | +"/ |varNames varName| +"/ +"/ varNames := aClass classVarNames. +"/ varNames notEmpty ifTrue:[ +"/ (lineNr between:idx0+1 and:(idx0 + 1 + varNames size - 1)) ifTrue:[ +"/ varName := varNames at:lineNr-idx0. +"/ ^ aClass classVarAt:varName. +"/ ]. +"/ idx0 := idx0 + varNames size + 1. +"/ ] +"/ ]. ^ nil ! !