[squeak-dev] SwaLint error

David O'Toole deeteeoh1138 at gmail.com
Fri Jan 14 03:07:16 UTC 2022


In Squeak 5.3 and SwaLint from github, I received an error in
RBLiteralValuesSpellingRule>>normalizeSelector: while running the tests.
(See attached bug report.) I had selected all available tests, testing a
single small package (Mosaic). The package is at
https://gitlab.com/dto/squeakmosaic/ if you wish to try reproducing the
error. This repo includes only the Smalltalk code and no other files from
the project. I'm quite unfamiliar with the insides of SwaLint but will be
taking a look to see if I can debug this.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220113/3b91e58c/attachment.html>
-------------- next part --------------
13 January 2022 10:01:19.503181 pm

VM: unix - Smalltalk
Image: Squeak5.3 [latest update: #19461]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/dto/Squeak/shared
Trusted Dir /home/dto/Squeak/shared/secure
Untrusted Dir /home/dto/Squeak/shared/My Squeak

ByteSymbol(Object)>>error:
	Receiver: #currentTextChanged:
	Arguments and temporary variables: 
		aString: 	'symbols can not be modified.'
	Receiver's instance variables: 
#currentTextChanged:

ByteSymbol(Symbol)>>errorNoModification
	Receiver: #currentTextChanged:
	Arguments and temporary variables: 

	Receiver's instance variables: 
#currentTextChanged:

ByteSymbol(Symbol)>>replaceFrom:to:with:startingAt:
	Receiver: #currentTextChanged:
	Arguments and temporary variables: 
		start: 	19
		stop: 	19
		replacement: 	' '
		repStart: 	1
	Receiver's instance variables: 
#currentTextChanged:

ByteSymbol(SequenceableCollection)>>copyReplaceAll:with:asTokens:
	Receiver: #currentTextChanged:
	Arguments and temporary variables: 
		oldSubstring: 	':'
		newSubstring: 	' '
		ifTokens: 	false
		string: 	#currentTextChanged:
		startSearch: 	1
		endIndex: 	19
		currentIndex: 	#(19)
	Receiver's instance variables: 
#currentTextChanged:

ByteSymbol(SequenceableCollection)>>copyReplaceAll:with:
	Receiver: #currentTextChanged:
	Arguments and temporary variables: 
		oldSubstring: 	':'
		newSubstring: 	' '
	Receiver's instance variables: 
#currentTextChanged:

RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeSelector:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
		aString: 	#currentTextChanged:
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeLiteral:on:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
		aLiteral: 	#currentTextChanged:
		aStream: 	a WriteStream
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeLiteral:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
		aLiteral: 	#currentTextChanged:
		stream: 	a WriteStream
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

RBLiteralValuesSpellingRule(RBSpellingRule)>>checkLiteral:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
		aLiteral: 	#currentTextChanged:
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

[] in RBLiteralValuesSpellingRule>>checkMethod:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

Set>>do:
	Receiver: a Set(#currentTextChanged: #updatePairs:)
	Arguments and temporary variables: 
		aBlock: 	[closure] in RBLiteralValuesSpellingRule>>checkMethod:
		element: 	#currentTextChanged:
		index: 	1
		indexLimiT: 	5
	Receiver's instance variables: 
		tally: 	2
		array: 	#(#currentTextChanged: #updatePairs: nil nil nil)

RBLiteralValuesSpellingRule>>checkMethod:
	Receiver: a RBLiteralValuesSpellingRule name: 'Literal values'
	Arguments and temporary variables: 
		aContext: 	a RBSmalllintContext MosaicChopperTask>>#openUi
		literals: 	a Set(#currentTextChanged: #updatePairs:)
	Receiver's instance variables: 
		result: 	Literal values
		matcher: 	a RBParseTreeSearcher

[] in RBSmalllintChecker>>checkMethodsForClass:
	Receiver: a RBSmalllintChecker
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		rule: 	a RBLiteralValuesSpellingRule name: 'Literal values'
		environment: 	MosaicChopperTask MosaicUi MosaicChopperTaskUi MosaicSchemePairUi ...etc...
		context: 	a RBSmalllintContext MosaicChopperTask>>#openUi
		methodBlock: 	[closure] in RBSmalllintChecker>>initialize

[] in RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:
	Receiver: MosaicChopperTask MosaicUi MosaicChopperTaskUi MosaicSchemePairUi Mosaic MosaicChopper Mos...etc...
	Arguments and temporary variables: 
		aClass: 	#openUi
		aBlock: 	(MosaicChopperTask>>#openUi "a CompiledMethod(814468)")
		each: 	MosaicChopperTask
		meth: 	[closure] in RBSmalllintChecker>>checkMethodsForClass:
	Receiver's instance variables: 
		label: 	nil
		searchStrings: 	nil
		environment: 	Smalltalk
		classes: 	an IdentitySet(#MosaicChopperTask #MosaicUi #MosaicChopperTaskUi #MosaicSchemePairUi...etc...
		metaClasses: 	an IdentitySet()

MethodDictionary>>keysAndValuesDo:
	Receiver: a MethodDictionary(#addPair->(MosaicChopperTask>>#addPair "a CompiledMethod(259852)") #compilePairsToScheme...etc...
	Arguments and temporary variables: 
		aBlock: 	[closure] in RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:...etc...
		key: 	#openUi
		i: 	26
		iLimiT: 	32
	Receiver's instance variables: 
		tally: 	10
		array: 	{nil . nil . nil . nil . nil . nil . (MosaicChopperTask>>#addPair "a CompiledMethod...etc...

MosaicChopperTask class(Behavior)>>selectorsAndMethodsDo:
	Receiver: MosaicChopperTask
	Arguments and temporary variables: 
		selectorAndMethodBlock: 	[closure] in RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:...etc...
	Receiver's instance variables: 
		superclass: 	Morph
		methodDict: 	a MethodDictionary(#addPair->(MosaicChopperTask>>#addPair "a CompiledMethod...etc...
		format: 	65544
		instanceVariables: 	#('ui' 'pairs')
		organization: 	('as yet unclassified' addPair compilePairsToScheme compileToScheme:...etc...
		subclasses: 	nil
		name: 	#MosaicChopperTask
		classPool: 	nil
		sharedPools: 	nil
		environment: 	Smalltalk
		category: 	#Mosaic

RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:
	Receiver: MosaicChopperTask MosaicUi MosaicChopperTaskUi MosaicSchemePairUi Mosaic MosaicChopper Mos...etc...
	Arguments and temporary variables: 
		aClass: 	MosaicChopperTask
		aBlock: 	[closure] in RBSmalllintChecker>>checkMethodsForClass:
	Receiver's instance variables: 
		label: 	nil
		searchStrings: 	nil
		environment: 	Smalltalk
		classes: 	an IdentitySet(#MosaicChopperTask #MosaicUi #MosaicChopperTaskUi #MosaicSchemePairUi...etc...
		metaClasses: 	an IdentitySet()

RBSmalllintChecker>>checkMethodsForClass:
	Receiver: a RBSmalllintChecker
	Arguments and temporary variables: 
		aClass: 	MosaicChopperTask
	Receiver's instance variables: 
		rule: 	a RBLiteralValuesSpellingRule name: 'Literal values'
		environment: 	MosaicChopperTask MosaicUi MosaicChopperTaskUi MosaicSchemePairUi ...etc...
		context: 	a RBSmalllintContext MosaicChopperTask>>#openUi
		methodBlock: 	[closure] in RBSmalllintChecker>>initialize

[] in RBSmalllintChecker>>run
	Receiver: a RBSmalllintChecker
	Arguments and temporary variables: 
		class: 	MosaicChopperTask
	Receiver's instance variables: 
		rule: 	a RBLiteralValuesSpellingRule name: 'Literal values'
		environment: 	MosaicChopperTask MosaicUi MosaicChopperTaskUi MosaicSchemePairUi ...etc...
		context: 	a RBSmalllintContext MosaicChopperTask>>#openUi
		methodBlock: 	[closure] in RBSmalllintChecker>>initialize


--- The full stack ---
ByteSymbol(Object)>>error:
ByteSymbol(Symbol)>>errorNoModification
ByteSymbol(Symbol)>>replaceFrom:to:with:startingAt:
ByteSymbol(SequenceableCollection)>>copyReplaceAll:with:asTokens:
ByteSymbol(SequenceableCollection)>>copyReplaceAll:with:
RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeSelector:
RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeLiteral:on:
RBLiteralValuesSpellingRule(RBSpellingRule)>>normalizeLiteral:
RBLiteralValuesSpellingRule(RBSpellingRule)>>checkLiteral:
[] in RBLiteralValuesSpellingRule>>checkMethod:
Set>>do:
RBLiteralValuesSpellingRule>>checkMethod:
[] in RBSmalllintChecker>>checkMethodsForClass:
[] in RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:
MethodDictionary>>keysAndValuesDo:
MosaicChopperTask class(Behavior)>>selectorsAndMethodsDo:
RBClassEnvironment(RBBrowserEnvironment)>>selectorsForClass:do:
RBSmalllintChecker>>checkMethodsForClass:
[] in RBSmalllintChecker>>run
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in RBClassEnvironment>>classesDo:
IdentitySet(Set)>>do:
RBClassEnvironment>>classesDo:
RBSmalllintChecker>>run
RBSmalllintChecker class>>runRule:onEnvironment:
SLSmallLintPlugIn>>smallLintTestResultFor:onTestObjects:
SLSmallLintPlugIn>>smallLintTest:onTestObjects:
[] in SLSmallLintPlugIn>>prepareForTests:onTestObjects:
Array(SequenceableCollection)>>do:
SLSmallLintPlugIn>>prepareForTests:onTestObjects:
SLSmallLintPlugIn>>prepareForTests:onTestSystem:
SLTestRunner>>preparePlugin:
SLTestRunner>>loadPlugIn:
[] in SLTestRunner>>plugInFor:
[] in Dictionary>>at:ifAbsentPut:
Dictionary>>at:ifAbsent:
Dictionary>>at:ifAbsentPut:
SLTestRunner>>plugInFor:
SLTestRunner>>plugInForTest:
SLTestRunner>>loadPlugInForTest:
[] in SLTestRunner>>loadPluginsForTests
Array(SequenceableCollection)>>do:
SLTestRunner>>loadPluginsForTests
[] in SLTestRunner>>run
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
FullBlockClosure(BlockClosure)>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
FullBlockClosure(BlockClosure)>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
ProgressInitiationException(Exception)>>resume
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
SLTestRunner>>run
SLTestRunner>>runOnEnvironment:
SLTestRunner class>>onEnvironment:
SLDefaultDialog>>run
-- and more not shown --


More information about the Squeak-dev mailing list