[Glass] ChangeList parseSelector bug

bruno buzzi brassesco smalltalk at adinet.com.uy
Mon Oct 26 10:26:21 PDT 2020


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



More information about the Glass mailing list