[Glass] ChangeList parseSelector bug

Dale Henrichs dale.henrichs at gemtalksystems.com
Mon Oct 26 17:21:03 PDT 2020


Turns out that the fix was in FileList[1] and it has been fixed.

Dale

[1] https://github.com/dalehenrich/filetree/issues/231

On 10/26/20 10:54 AM, Dale Henrichs wrote:
> Bruno,
>
> GsDevKit is the right place ...
>
> Dale
>
> On 10/26/20 10:31 AM, bruno buzzi brassesco via Glass wrote:
>> Hi,
>>
>> In which github repo should i report this issue ?
>> (GsDevKit ???)
>>
>> regards,
>> bruno
>>
>> On 26/10/2020 14:26, bruno buzzi brassesco via Glass wrote:
>>> Hi,
>>>
>>> It seems there is bug in ChangeList>>parseSelector: (or 
>>> Scanner>>scanMessageParts:) (tested on GS 3.5.1 & 3.5.4).
>>> Try:
>>> ChangeList parseSelector:
>>> 'myMethodName
>>>     -1 to: 2 do: [:i |].'.
>>>
>>> But the following will work ok :
>>> ChangeList parseSelector:
>>> 'myMethodName
>>>     ||
>>>     -1 to: 2 do: [:i |].'.
>>>
>>> So it seems a border case when you have a negative number 
>>> immediately after the selector.
>>>
>>> The following also will fail:
>>> ChangeList parseSelector:
>>> 'myMethodName
>>>     -1 '.
>>>
>>> The workaround will be add  empty temp definition at the beginning 
>>> "||" of the method.
>>>
>>> regards,
>>> bruno
>>>
>>> Stack:
>>> MessageNotUnderstood >> defaultAction @2 line 3
>>> MessageNotUnderstood (AbstractException) >> _signalWith: @5 line 25
>>> MessageNotUnderstood (AbstractException) >> signal @2 line 47
>>> SmallInteger (Object) >> doesNotUnderstand: @9 line 10
>>> SmallInteger (Object) >> _doesNotUnderstand:args:envId:reason: @8 
>>> line 14
>>> String >> addAll: @51 line 32
>>> WriteStream >> nextPutAll: @8 line 9
>>> ChangeList class >> parseSelector: @15 line 8
>>> MCFileTreeStCypressReader >> methodSelectorFor: @2 line 2
>>> [] in MCFileTreeStCypressReader >> 
>>> addMethodDefinitionsForClass:methodProperties:in:extensionMethod: 
>>> @43 line 19
>>> [] in FileDirectory >> readOnlyFileNamed:do: @8 line 4
>>> ExecBlock0 (ExecBlock) >> ensure: @2 line 12
>>> ServerFileDirectory (FileDirectory) >> readOnlyFileNamed:do: @4 line 4
>>> DirectoryEntry >> readStreamDo: @4 line 2
>>> [] in MCFileTreeStCypressReader >> 
>>> addMethodDefinitionsForClass:methodProperties:in:extensionMethod: 
>>> @29 line 14
>>> Array (Collection) >> do: @5 line 10
>>> [] in MCFileTreeStCypressReader >> 
>>> addMethodDefinitionsForClass:methodProperties:in:extensionMethod: 
>>> @21 line 12
>>> Array (Collection) >> do: @5 line 10
>>> MCFileTreeStCypressReader >> 
>>> addMethodDefinitionsForClass:methodProperties:in:extensionMethod: @2 
>>> line 3
>>> MCFileTreeStCypressReader >> 
>>> addMethodDefinitionsForClass:methodProperties:in: @2 line 3
>>> MCFileTreeStCypressReader >> addClassAndMethodDefinitionsFromEntry: 
>>> @21 line 29
>>> [] in MCFileTreeStCypressReader >> 
>>> addClassAndMethodDefinitionsFromDirectory: @10 line 5
>>> Array (Collection) >> do: @5 line 10
>>> MCFileTreeStCypressReader >> 
>>> addClassAndMethodDefinitionsFromDirectory: @3 line 3
>>> MCFileTreeStCypressReader >> loadDefinitions @15 line 11
>>> MCFileTreeStCypressReader (MCVersionReader) >> definitions @3 line 2
>>> MCFileTreeStCypressReader (MCVersionReader) >> snapshot @2 line 2
>>> MCFileTreeStCypressReader >> basicVersion @5 line 5
>>> MCFileTreeStCypressReader (MCVersionReader) >> version @2 line 2
>>> [] in MCFileBasedRepository >> loadVersionFromFileNamed: @5 line 2
>>> [] in MCFileTreeRepository >> versionReaderForFileNamed:do: @12 line 10
>>> MCGitHubRepository (MCFileTreeRepository) >> 
>>> readStreamForFileNamed:do: @3 line 2
>>> MCGitHubRepository (MCFileTreeRepository) >> 
>>> versionReaderForFileNamed:do: @2 line 3
>>> MCGitHubRepository (MCFileBasedRepository) >> 
>>> loadVersionFromFileNamed: @2 line 2
>>> [] in MCFileTreeRepository >> goferVersionFrom: @31 line 20
>>> Array (Collection) >> do: @5 line 10
>>> MCGitHubRepository (MCFileTreeRepository) >> goferVersionFrom: @6 
>>> line 9
>>> MetacelloCachingGoferResolvedReference (GoferResolvedReference) >> 
>>> version @3 line 4
>>> MetacelloCachingGoferResolvedReference >> version @3 line 4
>>> [] in MetacelloFetchingMCSpecLoader >> 
>>> resolveDependencies:nearest:into: @45 line 28
>>> OrderedCollection (Collection) >> do: @5 line 10
>>> [] in MetacelloFetchingMCSpecLoader >> 
>>> resolveDependencies:nearest:into: @38 line 28
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> MetacelloFetchingMCSpecLoader >> resolveDependencies:nearest:into: 
>>> @15 line 31
>>> [] in MetacelloFetchingMCSpecLoader >> linearLoadPackageSpec:gofer: 
>>> @41 line 51
>>> MetacelloGemStonePlatform (MetacelloPlatform) >> do:displaying: @2 
>>> line 3
>>> MetacelloFetchingMCSpecLoader >> linearLoadPackageSpec:gofer: @5 line 3
>>> MetacelloPackageSpec >> loadUsing:gofer: @2 line 3
>>> [] in MetacelloCommonMCSpecLoader >> 
>>> linearLoadPackageSpecs:repositories: @13 line 6
>>> OrderedCollection (Collection) >> do: @5 line 10
>>> MetacelloFetchingMCSpecLoader (MetacelloCommonMCSpecLoader) >> 
>>> linearLoadPackageSpecs:repositories: @5 line 6
>>> [] in MetacelloFetchingMCSpecLoader >> 
>>> linearLoadPackageSpecs:repositories: @7 line 4
>>> ExecBlock0 (ExecBlock) >> ensure: @2 line 12
>>> MetacelloLoaderPolicy >> pushLoadDirective:during: @6 line 7
>>> MetacelloLoaderPolicy >> pushLinearLoadDirectivesDuring:for: @3 line 3
>>> MetacelloFetchingMCSpecLoader >> 
>>> linearLoadPackageSpecs:repositories: @3 line 4
>>> MetacelloFetchingMCSpecLoader (MetacelloCommonMCSpecLoader) >> load 
>>> @15 line 7
>>> MetacelloMCVersionSpecLoader >> load @13 line 21
>>> MetacelloMCVersion >> executeLoadFromArray: @9 line 7
>>> [] in MetacelloMCVersion >> fetchRequiredFromArray: @33 line 11
>>> [] in MetacelloPlatform >> useStackCacheDuring:defaultDictionary: 
>>> @13 line 9
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> MetacelloGemStonePlatform (MetacelloPlatform) >> 
>>> useStackCacheDuring:defaultDictionary: @9 line 10
>>> [] in MetacelloMCVersion >> fetchRequiredFromArray: @29 line 11
>>> ExecBlock0 (ExecBlock) >> ensure: @2 line 12
>>> [] in MetacelloMCVersion >> fetchRequiredFromArray: @21 line 12
>>> MetacelloGemStonePlatform (MetacelloPlatform) >> do:displaying: @2 
>>> line 3
>>> MetacelloMCVersion >> fetchRequiredFromArray: @17 line 7
>>> [] in MetacelloMCVersion >> doLoadRequiredFromArray: @27 line 10
>>> ExecBlock0 (ExecBlock) >> ensure: @2 line 12
>>> MetacelloMCVersion >> doLoadRequiredFromArray: @22 line 16
>>> MetacelloMCVersion >> load @4 line 3
>>> [] in MetacelloScriptEngine >> 
>>> load:onProjectDownGrade:onProjectUpgrade: @17 line 15
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> [] in MetacelloScriptEngine >> handleNotificationsForAction: @20 line 6
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> [] in MetacelloScriptEngine >> handleNotificationsForAction: @12 
>>> line 14
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> [] in MetacelloScriptEngine >> handleNotificationsForAction: @6 line 20
>>> ExecBlock0 (ExecBlock) >> on:do: @3 line 44
>>> MetacelloScriptEngine >> handleNotificationsForAction: @2 line 24
>>> [] in MetacelloScriptEngine >> 
>>> load:onProjectDownGrade:onProjectUpgrade: @6 line 5
>>> ExecBlock0 (ExecBlock) >> ensure: @2 line 12
>>> MetacelloProjectRegistration class >> 
>>> copyRegistryRestoreOnErrorWhile: @8 line 14
>>> MetacelloScriptEngine >> load:onProjectDownGrade:onProjectUpgrade: 
>>> @2 line 3
>>> MetacelloScriptEngine >> load: @2 line 3
>>> MetacelloScriptEngine (Object) >> perform:withArguments: @1 line 12
>>> [] in MetacelloScriptExecutor >> execute: @40 line 15
>>> [] in MetacelloScriptApiExecutor >> executeString:do: @13 line 6
>>> Array (Collection) >> do: @5 line 10
>>> MetacelloScriptApiExecutor >> executeString:do: @6 line 4
>>> String >> execute:against: @2 line 2
>>> MetacelloScriptApiExecutor (MetacelloScriptExecutor) >> execute: @6 
>>> line 9
>>> Metacello >> execute:args: @8 line 5
>>> Metacello >> load @2 line 2
>>> Executed Code  @5 line 4
>>> GsNMethod class >> _gsReturnToC @1 line 11
>>>
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com
>>> https://lists.gemtalksystems.com/mailman/listinfo/glass
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> https://lists.gemtalksystems.com/mailman/listinfo/glass


More information about the Glass mailing list