Incredible.....if I run this from a workspace:
| default newClass |
������ SystemChangeNotifier uniqueInstance doSilently: [
��������������� newClass := Object subclass: #TemporalClassForFuel
���������������������� instanceVariableNames: ''
���������������������� classVariableNames: ''
���������������������� poolDictionaries: ''
���������������������� category: #FOO].
It does not halt in SystemChangeNotifier.� But if I do EXACTLY the same but from ClassFactoryForTestCase:
newSubclassOf: aClass instanceVariableNames: ivNamesString classVariableNames:� classVarsString category: category
| default newClass |
������ SystemChangeNotifier uniqueInstance doSilently: [
��������������� newClass := Object subclass: #TemporalClassForFuel
���������������������� instanceVariableNames: ''
���������������������� classVariableNames: ''
���������������������� poolDictionaries: ''
���������������������� category: #FOO].
It DOES HALT.�� :(
any idea what can be happening ?
thanks
On Thu, Apr 19, 2012 at 3:07 PM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Thu, Apr 19, 2012 at 12:21 AM, Fernando Olivero <fernando.olivero@usi.ch> wrote:
Hi Mariano, we should be able to �"silently" create temporal classes,
without notifying the system.
Have you tried something like this:
default := RPackage organizer.
[
� � � �default unregister.
� � � �SystemChangeNotifier uniqueInstance doSilently: [
� � � � � � � � Object subclass: #TemporalClassForFuel
� � � � � � � � � � � �instanceVariableNames: ''
� � � � � � � � � � � �classVariableNames: ''
� � � � � � � � � � � �poolDictionaries: ''
� � � � � � � � � � � �category: 'FuelTests'].
] ensure:[
� � � � �(Smalltalk globals classNamed: 'TemporalClassForFuel' )
removeFromSystem:false.
� � � � �default register].
Hi Fernando. Thanks, but it doesn't seem to work.
I put a halt in SystemChangeNotifier >> classAdded: aClass inCategory: aCategoryName
Then I modfified ClassFactoryForTestCase:
newSubclassOf: aClass instanceVariableNames: ivNamesString classVariableNames:� classVarsString category: category
��� | newClass default |��� ��� newClass := aClass
��� default := RPackage organizer.
��� [
��� ��� default unregister.
��� ��� SystemChangeNotifier uniqueInstance doSilently: [
��� ��� ��� subclass: self newName
��� ��� ��� instanceVariableNames: ivNamesString
��� ��� ��� classVariableNames: classVarsString
��� ��� ��� poolDictionaries: ''
��� ��� ��� category: (self packageName, '-', category) asSymbol.
��� ��� ].
��� ] ensure:[
�������� default register].
��� self createdClasses add: newClass.
��� ^newClass
And when creating a class, it still halts on #classAdded: aClass inCategory: aCategoryName
If I proceed the halt it continues up to RPackage >> systemClassAddedActionFrom:
and it fails trying to import an OBSOLETE class.
�
Look attached screenshot.
Thanks
�Saludos,
Fernando
On Wed, Apr 18, 2012 at 11:49 PM, Mariano Martinez Peck
<marianopeck@gmail.com> wrote:
> Hi guys. I am running some tests with Fuel. In such test I create classes and traits. The problem is that I get a: "MessageNotUnderstood: receiver of "isProvided" is nil"
> Everything starts (it seems) when I do #addToComposition: � and I receive a MethodRecategorized event and RPackage calls #systemMethodRecategorizedActionFrom:
> There, the problem is with �-> �method isProvidedByATrait
> the class of the method is 'AnObsoleteClassForTestToBeDeleted1'
> And the error finally arrives to #providedLocatedMethod where it does "each method isProvided" �the problem is that "each" is a RGMethodDefinition with everything in nil except 'name' �and 'annotations'.
> I attach PharoDebug.log.
> Any help is really appreaciated.
>
> Thanks,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
--
Mariano
http://marianopeck.wordpress.com
--
Mariano
http://marianopeck.wordpress.com