--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RegressionTests__LiteralsInMethodTests.st Mon Aug 08 20:27:34 2011 +0200
@@ -0,0 +1,98 @@
+"{ Package: 'exept:regression' }"
+
+"{ NameSpace: RegressionTests }"
+
+TestCase subclass:#LiteralsInMethodTests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'tests-Regression'
+!
+
+!LiteralsInMethodTests class methodsFor:'documentation'!
+
+documentation
+"
+ documentation to be added.
+
+ [author:]
+ cg
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+! !
+
+!LiteralsInMethodTests methodsFor:'tested methods'!
+
+classCheck:arg
+ "only a check-method"
+
+ (arg class == Array) ifTrue:[
+ arg yourself
+ ].
+
+ "Created: / 08-08-2011 / 20:26:31 / cg"
+!
+
+methodWithStringLiteral1
+ ^ 'abcd'
+
+ "Created: / 08-08-2011 / 17:14:10 / cg"
+!
+
+methodWithStringLiteral2
+ ^ 'abc'
+
+ "Created: / 08-08-2011 / 17:14:13 / cg"
+! !
+
+!LiteralsInMethodTests methodsFor:'tests'!
+
+test01_methodContainsLiterals
+ "old stc/compiler versions did not generate literals for inlined
+ sends, which made problems when quick-searching for senders (which filters
+ candidate-methods using the literal array"
+
+ |m|
+
+ m := self class compiledMethodAt:#classCheck:.
+ self assert:(m literals includes:#'==').
+ self assert:(m literals includes:#'class').
+ self assert:(m literals includes:#'yourself').
+
+ "
+ self run:#test01_methodContainsLiterals
+ self new test01_methodContainsLiterals
+ "
+
+ "Created: / 08-08-2011 / 16:33:06 / cg"
+!
+
+test02_patternStringLiteral
+"/ for now, only bytecode contains string literals - skip this.
+"/ |m|
+"/
+"/ m := self class compiledMethodAt:#methodWithStringLiteral.
+
+ "
+ self run:#test01_methodContainsLiterals
+ self new test01_methodContainsLiterals
+ "
+
+ "Created: / 08-08-2011 / 16:54:28 / cg"
+! !
+
+!LiteralsInMethodTests class methodsFor:'documentation'!
+
+version
+ ^ '$Header$'
+!
+
+version_CVS
+ ^ '$Header$'
+! !