2016-06-17 16:41 GMT+02:00 Max Leske <maxleske@gmail.com>:
I found at least one problem the NEC: NEC assumes that all global bindings answer a class but that is not true in cases such as Processor and Transcript.
Can you give a code example where this would fail / raise an error . We should add a test case for this.
Hereâs a fix:
NECVarTypeGuesser>>pushLiteralVariable: anAssociation "Push Contents Of anAssociation On Top Of Stack bytecode." | info | contextCount > 0 ifTrue:[^self].
info := NECTypeInfo definedByMessageSend: (anAssociation value isBehavior ifTrue: [ anAssociation value ] ifFalse: [ anAssociation value class ]). types add: info
Issue: https://pharo.fogbugz.com/f/cases/18513/NEC-fails-to-guess-the-type-of-non-c...
Cheers, Max
On 05 Jun 2016, at 17:44, Nicolai Hess <nicolaihess@gmail.com> wrote:
2016-06-04 20:41 GMT+02:00 stepharo <stepharo@free.fr>:
Just to report (I did not have the time to check in 60a) but I got red square of death with komitter.
I also got
NECTypedModel>>initializeSelectorsFor: aClass |excludedClasses| selectors reset. excludedClasses := (expanded ifTrue: [#()] ifFalse: [Object withAllSuperclasses]). selectors addAll: ((aClass allSelectorsWithout: excludedClasses)
collect: [:each | NECSelectorEntry contents: each type: #selector])
DNU on allSelectorsWithout:
with such code
mostCommonlyUsedSelectors "self mostCommonlyUsedSelectors"
| result | result := Bag new. environment cla
^ cursor here
do: [ :each | result addAll: each selectors]. ^ result sortedCounts
Stef
Can not reproduce the NEC- bug. What 5.0 image did you use, the release version? In what class did you try to add the method mostCommonlyUsedSelectors?
nicolai