(no subject)

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

(no subject)

Ben Coman
A minor thing, but a fix is probably easy...

I have...

FFIExternalStructure subclass: #CXSourceLocation
instanceVariableNames: ''
classVariableNames: 'VoidPointer2'
package: 'Libclang'

initialize
    "self initialize"
    VoidPointer2 := FFITypeArray ofType: 'void*' size: 2.

fieldsDesc
    "self rebuildFieldAccessors"
^#(
VoidPointer2 ptr_data;
uint int_data;
)


Now when I debug into "self rebuildFieldAccessors"
into #compileFields:withAccessors:
through  "fieldSpec fieldsAndTypesDo: [ :fieldName :type |  "
the [Variables] tab shows... 

      type    "FFITypeArrayType(a subclass of FFITypeArray)"

and my perception is that this is wrong 
since FFITypeArrayType is not a subclass FFITypeArray.
Intuitively I'm reading the text in the round brackets as a commentary on FFITypeArrayType.


But debugging into "type printString"
bring me to FFITypeArrayType(FFIExternalReferenceType) >> printOn: aStream

      aStream << self className << '(' << objectClass name << ')'

where objectClass is an instance variable, so the commentary is about composition rather than inheritance.  

Now I properly understand the truth, I still have trouble with perceiving the printString the wrong way, so I'd like to add a visual cue that this is composition. 
Do we have such a standard convention?
Options...

1. Square brackets   
a.      FFITypeArrayType[a subclass of FFITypeArray] 
b.      FFITypeArrayType([a subclass of FFITypeArray])

2. Curly brackets
a.     FFITypeArrayType{a subclass of FFITypeArray} 
b.     FFITypeArrayType({a subclass of FFITypeArray}) 

3. Array-ish
a.     FFITypeArrayType#(a subclass of FFITypeArray) 
b.     FFITypeArrayType(#(a subclass of FFITypeArray)) 

4. Text
a.     FFITypeArrayType(holding a subclass of FFITypeArray)     

I'm tending towards [2a] or [2b] since two brackets together seem more distinct.
It may be easy to overlook a difference in a single bracket,
and also it feels more like holding something inside the object.

cheers -ben


P.S. Regarding the existing Libclang bindings.  I'm not trying to compete but more along the line... "its worthwhile reinventing the wheel when you want to learn more about how a wheel works."   I'll switch over to existing bindings in a while.